:root{--bg: #f3f4f8;--surface: #ffffff;--surface-muted: #f8f9fc;--border: #e5e7f0;--text: #1a1d29;--muted: #6b7280;--primary: #1971c2;--primary-dark: #145591;--primary-soft: #e7f1fb;--danger: #e03131;--danger-soft: #fdecec;--success: #2f9e44;--success-soft: #e9f7ec;--warning: #f08c00;--warning-soft: #fef3e0;--neutral-soft: #eef0f4;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow-md: 0 8px 24px rgba(16, 24, 40, .08);--shadow-lg: 0 16px 40px rgba(16, 24, 40, .12);--sidebar-w: 240px}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1{font-size:1.5rem;margin:0 0 .4rem;letter-spacing:-.01em}h2{font-size:1.05rem;margin:0 0 .5rem}a{color:var(--primary)}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:linear-gradient(180deg,#191c24,#14161c);color:#fff;display:flex;flex-direction:column;padding:1.5rem 1rem;position:sticky;top:0;height:100vh}.sidebar .brand{font-weight:800;font-size:1.15rem;letter-spacing:-.01em;margin-bottom:2rem;padding:0 .5rem;display:flex;align-items:center;gap:.5rem}.sidebar .brand:before{content:"🥋";font-size:1.2rem}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar nav a{color:#b7bac4;text-decoration:none;padding:.6rem .9rem;border-radius:999px;font-size:.92rem;font-weight:500;transition:background .15s ease,color .15s ease}.sidebar nav a.active,.sidebar nav a:hover{background:#ffffff1a;color:#fff}.sidebar nav a[target=_blank]{color:#7c8291;font-size:.85rem}.sidebar .user{font-size:.85rem;color:#9aa0a8;display:flex;flex-direction:column;gap:.6rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.sidebar .user button{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#d3d5db;border-radius:999px;padding:.4rem .8rem;cursor:pointer;font-size:.85rem}.sidebar .user button:hover{background:#ffffff1f}.nav-toggle{display:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:2.4rem;height:2.4rem;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer}.mobile-bar,.sidebar-backdrop{display:none}.content{flex:1;padding:2rem;max-width:1200px;width:100%;margin:0 auto}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.eyebrow{text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;color:var(--muted);font-weight:700;margin:0 0 .25rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.card{position:relative;background:var(--surface);border-radius:var(--radius-lg);padding:1.25rem 1.4rem;box-shadow:var(--shadow-sm);border:1px solid var(--border);overflow:hidden;transition:box-shadow .15s ease,transform .15s ease}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:#9aa0a8}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card.status-running:before{background:var(--success)}.card.status-down:before{background:var(--danger)}.card.status-deploying:before{background:var(--warning)}.card.status-disabled:before,.card.status-deleted:before{background:#adb5bd}.card h2{margin:0 0 .6rem;font-size:1.05rem}.card .url a{color:var(--primary);text-decoration:none;word-break:break-all}.card .url a:hover{text-decoration:underline}.card .status{margin:.5rem 0}.card .meta{color:var(--muted);font-size:.83rem;margin:.15rem 0}.badge,.pill{display:inline-flex;align-items:center;padding:.22rem .75rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}.badge-running,.badge-success{background:var(--success-soft);color:var(--success)}.badge-down,.badge-failed{background:var(--danger-soft);color:var(--danger)}.badge-deploying{background:var(--warning-soft);color:var(--warning)}.badge-disabled,.badge-deleted,.badge-unknown{background:var(--neutral-soft);color:var(--muted)}.deploy-panel .badge-running{background:var(--warning-soft);color:var(--warning)}.deploy-panel .badge-success{background:var(--success-soft);color:var(--success)}.deploy-panel .badge-failed{background:var(--danger-soft);color:var(--danger)}.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);background:var(--surface)}table{width:100%;border-collapse:collapse;background:var(--surface);min-width:640px}th,td{text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}th{background:var(--surface-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-muted)}button{font-family:inherit;line-height:1.2}.url-cell{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.domain-input{padding:.35rem .55rem;border:1px solid var(--primary);border-radius:var(--radius-sm);font-size:.85rem;min-width:200px;background:var(--surface-muted);color:var(--text)}.icon-btn{display:inline-flex;align-items:center;gap:.3rem;border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:.85rem;padding:.3rem .55rem;border-radius:var(--radius-sm);flex-shrink:0;line-height:1;text-decoration:none;white-space:nowrap}.icon-btn:hover{background:var(--surface-muted);color:var(--text)}.hint{color:var(--muted);margin-bottom:1rem;font-size:.9rem}.notice{background:var(--success-soft);color:var(--success);border-radius:var(--radius-sm);padding:.6rem .9rem;margin-bottom:1rem;font-size:.9rem}.notice.error,.error{background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);padding:.6rem .9rem}.loading{padding:3rem;text-align:center;color:var(--muted)}.deploy-cell{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.deploy-cell input,.deploy-cell select{width:130px;padding:.4rem .6rem;border:1px solid var(--border);border-radius:var(--radius-sm);height:2.2rem;font-size:.88rem;background:var(--surface-muted);color:var(--text)}.deploy-cell button{padding:0 .9rem;height:2.2rem;min-width:6rem;border:none;border-radius:999px;background:var(--primary);color:#fff;cursor:pointer;white-space:nowrap;flex-shrink:0;font-weight:600;font-size:.85rem;transition:background .15s ease}.deploy-cell button:hover:not(:disabled){background:var(--primary-dark)}.deploy-cell button:disabled{background:#ced4da;cursor:not-allowed}.deploy-cell button+button{background:#495057}.deploy-cell button+button:hover:not(:disabled){background:#343a40}.deploy-cell button+button:disabled{background:#ced4da}.deploy-panel{margin-top:1.5rem;background:#14161c;color:#e9ecef;border-radius:var(--radius-lg);padding:1.1rem 1.4rem;box-shadow:var(--shadow-md)}.deploy-panel-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.deploy-panel-header button{margin-left:auto;background:#ffffff14;color:#d3d5db;border:none;border-radius:999px;padding:.35rem .9rem;cursor:pointer;font-size:.85rem}.deploy-panel-header button:hover{background:#ffffff29}.deploy-log{max-height:360px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:.8rem;margin:0;background:#00000040;border-radius:var(--radius-sm);padding:.75rem}.provision-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;max-width:760px;background:var(--surface);padding:1.75rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border)}.provision-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--muted)}.provision-form input,.provision-form select,.provision-form textarea{padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;font-weight:400;color:var(--text);background:var(--surface-muted);transition:border-color .15s ease,background .15s ease}.provision-form input:focus,.provision-form select:focus,.provision-form textarea:focus{outline:none;border-color:var(--primary);background:var(--surface)}.provision-form input[type=color]{padding:.2rem;height:2.5rem;cursor:pointer}.provision-form button{border:none;border-radius:999px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer;padding:.6rem 1rem;font-size:.9rem;transition:background .15s ease}.provision-form button:hover:not(:disabled){background:var(--primary-dark)}.provision-form button:disabled{background:#ced4da;cursor:not-allowed}.provision-form button[type=submit]{grid-column:1 / -1;margin-top:.5rem;padding:.75rem;font-size:1rem}.provision-form .wide{grid-column:1 / -1}.provision-form .checkbox-label{flex-direction:row!important;align-items:center;gap:.6rem!important;grid-column:1 / -1;background:var(--surface-muted);border-radius:var(--radius-sm);padding:.65rem .8rem;font-weight:500}.provision-form .checkbox-label input{width:auto}@media(max-width:640px){.provision-form{grid-template-columns:1fr;padding:1.25rem}}.help section{background:var(--surface);border-radius:var(--radius-lg);padding:1.4rem 1.6rem;margin-bottom:1rem;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.help h2{margin-top:0;font-size:1.05rem}.help ul{padding-left:1.2rem;line-height:1.7}.help code{background:var(--surface-muted);padding:.1rem .4rem;border-radius:4px;font-size:.9em}.toast-host{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000;max-width:360px}.toast{padding:.8rem 1.1rem;border-radius:var(--radius-md);color:#fff;font-size:.9rem;box-shadow:var(--shadow-lg);cursor:pointer;animation:toast-in .15s ease-out}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}@keyframes toast-in{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:860px){.shell{flex-direction:column}.mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;background:#14161c;color:#fff;position:sticky;top:0;z-index:30}.mobile-bar .brand{font-weight:800;display:flex;align-items:center;gap:.5rem}.mobile-bar .brand:before{content:"🥋"}.nav-toggle{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;height:100vh;z-index:40;transform:translate(-100%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.sidebar.open{transform:translate(0)}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1280;z-index:35}.content{padding:1.25rem}.cards{grid-template-columns:1fr}.deploy-cell{flex-direction:column;align-items:stretch}.deploy-cell input,.deploy-cell select{width:100%}}
