:root{color-scheme:dark;--bg:#080b10;--surface:#111720;--surface-2:#151d28;--surface-3:#0d121a;--border:#263241;--text:#edf3fb;--muted:#a7b4c5;--primary:#5b8cff;--primary-hover:#7aa3ff;--success:#46d184;--danger:#ff6475;--warning:#f6b84b;--radius:10px;--shadow:0 18px 60px rgba(0,0,0,.28)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(circle at 18% -8%,#182235 0,#080b10 38%),var(--bg);color:var(--text)}a{color:#9abaff;text-decoration:none}a:hover{color:#c8d9ff}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px 34px;background:rgba(8,11,16,.88);border-bottom:1px solid var(--border);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;color:var(--text)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:linear-gradient(135deg,var(--primary),#8b6cff);font-weight:900}.brand strong{display:block;font-size:17px}.brand small{display:block;margin-top:1px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nav-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nav-links a{padding:9px 10px;border-radius:8px;color:var(--muted);font-weight:700}.nav-links a:hover{background:var(--surface-2);color:var(--text)}.nav-links form{margin:0}.page{width:min(1440px,100%);margin:0 auto;padding:30px 34px 48px}.eyebrow{margin:0 0 8px;color:#8fb1ff;font-size:12px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.muted,.meta-line{color:var(--muted)}.meta-line{margin:6px 0 0;font-size:13px}.notice,.error,.warning{margin:0 0 16px;padding:12px 14px;border-radius:var(--radius);border:1px solid #35527c;background:#10213a;color:#dceaff}.error{border-color:#7f3340;background:#2a1118;color:#ffd9de}.warning{border-color:#7a5d26;background:#291f0d;color:#ffe4a5}
h1{margin:0;font-size:34px;line-height:1.08;letter-spacing:0}h2{margin:0;font-size:21px}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:end;margin:10px 0 20px}.hero-copy p:last-child{max-width:780px;margin:12px 0 0;color:var(--muted);font-size:16px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card{min-height:96px;padding:18px;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-card strong{display:block;font-size:34px;line-height:1}.stat-card span{display:block;margin-top:8px;color:var(--muted);font-weight:700}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);gap:18px;margin-bottom:18px}.card{background:linear-gradient(180deg,rgba(17,23,32,.98),rgba(12,17,25,.98));border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.launch-card{background:linear-gradient(180deg,#131b27,#0d121a);border-color:#304057}.launch-code{margin:16px 0 14px;font:900 62px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.12em;color:#fff;text-shadow:0 0 22px rgba(91,140,255,.26)}.code-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted)}.ttl{font-size:13px}.empty-state{display:grid;gap:5px;padding:18px;border:1px dashed #344358;border-radius:var(--radius);background:rgba(8,12,18,.46);color:var(--muted)}.empty-state strong{color:var(--text)}.compact-empty{min-height:132px;align-content:center}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;grid-column:1/-1;gap:10px}.stack{display:grid;gap:14px}label{display:grid;gap:7px;color:#d5deea;font-weight:750}label small{color:var(--muted);font-size:12px;font-weight:650}input,textarea,select{width:100%;border:1px solid #303d4f;border-radius:8px;padding:11px 12px;background:#080d14;color:var(--text);font:inherit;outline:none}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(91,140,255,.18)}input::placeholder,textarea::placeholder{color:#687789}.btn,button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 14px;border:1px solid #354356;border-radius:8px;background:#151e2a;color:var(--text);font:800 14px/1 Inter,ui-sans-serif,system-ui,sans-serif;cursor:pointer;white-space:nowrap}.btn:hover,button:hover{background:#1a2635;border-color:#536982}.btn:focus-visible,button:focus-visible{outline:3px solid rgba(91,140,255,.28);outline-offset:2px}.btn-primary{border-color:#7ca1ff;background:linear-gradient(180deg,var(--primary),#3f73df);color:white}.btn-primary:hover{background:linear-gradient(180deg,var(--primary-hover),#4f82ef)}.btn-secondary{background:#121b27;color:#dbe7f5}.btn-success{border-color:#2f8c5b;background:#12301f;color:#b9f6d0}.btn-danger,.danger{border-color:#74313c;background:#2a1218;color:#ffd5db}.btn-ghost{background:transparent}.full-button{width:100%}
.project-list,.file-list{display:grid;gap:12px}.project-card,.file-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid #223044;border-radius:var(--radius);background:rgba(9,14,21,.72)}.project-card:hover,.file-card:hover{border-color:#38506d;background:rgba(13,20,30,.86)}.project-card.is-disabled{opacity:.76}.project-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.project-title{font-size:18px;font-weight:850;color:var(--text)}.project-desc{margin:8px 0 0;color:#cfdae8}.status-warning{margin:8px 0 0;color:#ffd98a;font-size:13px;font-weight:800}.project-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.project-actions form,.file-card form{margin:0}.badge{display:inline-flex;align-items:center;min-height:25px;padding:4px 9px;border:1px solid #3a4859;border-radius:999px;background:#121a25;color:var(--muted);font-size:12px;font-weight:850}.badge-muted{color:#c4cfdd}.badge-version{border-color:#3b5686;color:#b9ccff;background:#111d33}.badge-success{border-color:#28784f;color:#aef2c8;background:#10271a}.badge-danger{border-color:#74404a;color:#ffcbd2;background:#2a1419}.badge-warning{border-color:#7d5b1f;color:#ffe0a1;background:#2b210e}.table-wrap{overflow-x:auto;border:1px solid #223044;border-radius:var(--radius)}.logs-table{width:100%;border-collapse:collapse;table-layout:fixed;background:rgba(8,12,18,.55)}.logs-table th,.logs-table td{padding:11px 12px;border-bottom:1px solid #1f2c3c;text-align:left;vertical-align:middle}.logs-table th{background:#121a25;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.logs-table tr:last-child td{border-bottom:0}.logs-table th:nth-child(1){width:180px}.logs-table th:nth-child(2){width:130px}.logs-table th:nth-child(3){width:120px}.logs-table th:nth-child(4){width:150px}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hash{max-width:100%;font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#8d9bad}.back-link{margin:0 0 14px}.detail-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center}.editor-form{display:grid;gap:14px}.editor{min-height:68vh;font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#060a10}.login-layout{min-height:calc(100vh - 150px);display:grid;place-items:center}.login-card{width:min(460px,100%)}
@media(max-width:1100px){.dashboard-hero,.dashboard-grid{grid-template-columns:1fr}.stats-grid{max-width:440px}.project-card,.file-card{grid-template-columns:1fr}.project-actions{justify-content:flex-start}.logs-table{min-width:860px}}@media(max-width:680px){.topbar{align-items:flex-start;display:grid;padding:14px 18px}.page{padding:20px 18px 36px}h1{font-size:29px}.stats-grid,.form-grid{grid-template-columns:1fr}.launch-code{font-size:44px}.card{padding:16px}.card-head{display:grid}.nav-links{gap:6px}.nav-links a{padding:8px}.form-actions{justify-content:stretch}.form-actions .btn,.form-actions button{width:100%}}
