:root{--background:#f7f9fb;--foreground:#172026;--muted:#66727f;--line:#d9e1e8;--surface:#ffffff;--surface-strong:#edf3f6;--accent:#0f766e;--accent-strong:#115e59;--danger:#b42318;--success:#067647;--warning:#b54708;--radius:6px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--background);color:var(--foreground);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{display:grid;min-height:100vh;grid-template-columns:248px 1fr}.sidebar{border-right:1px solid var(--line);background:#ffffff;padding:24px 18px}.brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border-radius:var(--radius);background:var(--accent);color:#ffffff;font-weight:800}.nav{display:grid;grid-gap:6px;gap:6px;margin-top:28px}.nav a{border-radius:var(--radius);color:var(--muted);font-size:14px;padding:10px 12px}.nav a:hover,.nav a[aria-current=page]{background:var(--surface-strong);color:var(--foreground)}.main{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffff;padding:18px 28px}.topbar h1{margin:0;font-size:24px;line-height:1.2}.topbar p{margin:4px 0 0;color:var(--muted);font-size:14px}.content{padding:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;color:var(--foreground);cursor:pointer;font-size:14px;font-weight:650;padding:8px 12px}.button.primary{border-color:var(--accent);background:var(--accent);color:#ffffff}.button.primary:hover{background:var(--accent-strong)}.button:disabled{cursor:not-allowed;opacity:.65}.grid{display:grid;grid-template-columns:minmax(720px,1fr) minmax(320px,360px);grid-gap:18px;gap:18px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:14px 16px}.panel-header h2{margin:0;font-size:15px}.table{width:100%;border-collapse:collapse;font-size:14px;table-layout:fixed}.table td,.table th{border-bottom:1px solid var(--line);overflow-wrap:anywhere;padding:12px 14px;text-align:left;vertical-align:top}.table th{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.sites-table td:first-child,.sites-table th:first-child{width:27%}.sites-table td:nth-child(2),.sites-table th:nth-child(2){width:29%}.sites-table td:nth-child(3),.sites-table th:nth-child(3){width:14%}.sites-table td:nth-child(4),.sites-table th:nth-child(4){width:12%}.sites-table td:nth-child(5),.sites-table th:nth-child(5){width:18%}.commit-hint{display:block;color:var(--muted);font-size:12px;margin-top:4px}.status{display:inline-flex;align-items:center;border-radius:999px;background:var(--surface-strong);color:var(--foreground);font-size:12px;font-weight:700;padding:4px 8px}.status.success{background:#dcfae6;color:var(--success)}.status.failed{background:#fee4e2;color:var(--danger)}.status.deploying,.status.verifying_ssl,.status.waiting_for_route{background:#fef0c7;color:var(--warning)}.detail-list{display:grid;grid-gap:14px;gap:14px;padding:16px}.detail-item{display:grid;grid-gap:4px;gap:4px}.detail-item span{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase}.detail-item code,.detail-item strong{font-size:14px}.form{display:grid;max-width:760px;grid-gap:18px;gap:18px}.field{display:grid;grid-gap:8px;gap:8px}.field label{font-size:14px;font-weight:700}.field input,.select{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;color:var(--foreground);padding:11px 12px}.field small{color:var(--muted);font-size:13px}.log-panel{overflow:auto;max-height:360px;background:#111827;color:#d1fae5;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6;padding:14px 16px;white-space:pre-wrap}.log-actions,.log-panel{border-top:1px solid var(--line)}.log-actions{display:flex;justify-content:flex-end;gap:8px;background:#ffffff;padding:10px 16px}.row-actions{display:inline-flex;flex-wrap:nowrap;gap:6px;white-space:nowrap}.icon-button,.icon-only-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;color:var(--foreground);cursor:pointer}.icon-button{gap:6px;min-height:32px;font-size:12px;font-weight:700;padding:6px 7px}.icon-only-button{width:34px;height:34px}.icon-button:disabled,.icon-only-button:disabled{cursor:not-allowed;opacity:.55}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgb(15 23 42/55%);padding:24px}.modal{display:grid;width:min(980px,100%);max-height:min(760px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;box-shadow:0 20px 50px rgb(15 23 42/20%)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:14px 16px}.modal-header h2,.modal-header p{margin:0}.modal-header h2{font-size:16px}.modal-header p{color:var(--muted);font-size:13px;margin-top:4px}.modal-body,.modal-log{padding:16px}.modal-log{overflow:auto;max-height:620px;margin:0;background:#111827;color:#d1fae5;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6;white-space:pre-wrap}.notice{border-radius:var(--radius);font-size:14px;font-weight:650;padding:10px 12px}.notice.success{background:#dcfae6;color:var(--success)}.notice.error{background:#fee4e2;color:var(--danger)}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{display:grid;width:min(440px,100%);grid-gap:18px;gap:18px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;padding:24px}.login-panel h1,.login-panel p{margin:0}.login-panel p{color:var(--muted)}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.grid{grid-template-columns:1fr}}