:root{--bg: #0b0f14;--panel: #121821;--panel2: #0e141c;--line: #1e2733;--text: #e6edf3;--muted: #8b98a8;--accent: #36d399;--accent2: #5b9cff;--warn: #f0b429;--danger: #f0506e;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 600px at 70% -10%,#14202e 0%,var(--bg) 60%);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:880px;margin:0 auto;padding:28px 20px 60px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.brand{display:flex;align-items:center;gap:14px}.logo{font-size:30px}h1{margin:0;font-size:26px;letter-spacing:-.02em}.tag{margin:2px 0 0;color:var(--muted);font-size:13px}.badge{font-size:12px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);font-family:var(--mono)}.badge-on{color:var(--accent);border-color:#1c5b44;background:#0f2019}.badge-off{color:var(--muted)}.badge-warn{color:var(--warn);border-color:#5b4a16}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:18px}.card h2{margin:0 0 14px;font-size:16px}form{display:flex;flex-direction:column;gap:12px}input,select,textarea,button{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:11px 13px}input::placeholder,textarea::placeholder{color:#54616f}.url{width:100%;font-family:var(--mono);font-size:14px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row input{flex:1;min-width:160px}.ttl{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.port{width:120px;flex:0 0 auto}button{cursor:pointer;background:linear-gradient(180deg,#1b2a3d,#142133);border-color:#284057;transition:filter .15s}button:hover:not(:disabled){filter:brightness(1.2)}button:disabled{opacity:.5;cursor:not-allowed}button[type=submit]{background:linear-gradient(180deg,#2bbd86,#1f9c6e);border-color:#2bbd86;color:#04150e;font-weight:600}.examples{display:flex;gap:18px;list-style:none;padding:0;margin:14px 0 0}.link{background:none;border:none;padding:0;color:var(--accent2);cursor:pointer;font-size:13px}.link:hover{text-decoration:underline;filter:none}.link.danger{color:var(--danger)}.hint{color:var(--muted);font-size:13px;margin:4px 0 0}.error{color:var(--danger);font-size:13px;margin:4px 0 0}.ok{color:var(--accent);font-size:13px;margin:4px 0 0}.empty{color:var(--muted)}.deps{display:flex;flex-direction:column;gap:12px}.dep{border:1px solid var(--line);border-radius:11px;background:var(--panel2);overflow:hidden}.dep-dead{opacity:.6}.dep-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.dep-title{color:var(--text);text-decoration:none;font-weight:600;flex:1}.dep-title:hover{color:var(--accent2)}.kind{font-family:var(--mono);font-size:11px;text-transform:uppercase;padding:3px 7px;border-radius:6px;border:1px solid var(--line)}.kind-github{color:#c9d1d9}.kind-huggingface{color:var(--warn);border-color:#5b4a16}.dep-body{padding:12px 14px}.dep-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:6px}.meta{font-size:12px;color:var(--muted)}.meta code{font-family:var(--mono);color:#b9c6d4}.wait{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:#c4d0dc;margin:0 0 8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#0a0f15}.wait strong{font-family:var(--mono);color:var(--text)}.wait-gpu{border-color:#5b4a16;background:#1a1606;color:var(--warn)}.wait-gpu strong{color:var(--warn)}.wait-sub{flex-basis:100%;color:var(--muted);font-size:12px;margin-top:2px}.spin{width:12px;height:12px;border-radius:50%;border:2px solid #2a3340;border-top-color:var(--accent);display:inline-block;animation:spin .8s linear infinite}.wait-gpu .spin{border-top-color:var(--warn)}@keyframes spin{to{transform:rotate(360deg)}}.dep-msg{font-size:13px;color:#c4d0dc;min-height:18px}.dep-actions{display:flex;gap:16px;align-items:center;margin-top:10px}.btn-open{font-family:var(--mono);font-size:13px;color:var(--accent);text-decoration:none;border:1px solid #1c5b44;background:#0f2019;padding:6px 10px;border-radius:8px}.btn-open:hover{filter:brightness(1.2)}.log{margin:12px 0 0;padding:10px 12px;background:#070a0e;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:12px;color:#9fb0c0;white-space:pre-wrap;max-height:220px;overflow:auto}.attest{margin:12px 0 0;padding:12px 14px;border:1px solid #1c5b44;border-radius:9px;background:#0c1814}.attest.loading,.attest.error{border-color:var(--line);background:#070a0e;color:var(--muted);font-size:13px}.attest.error{color:var(--danger);border-color:#5b1c2a}.attest-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.attest-ok{color:var(--accent);font-weight:600}.attest-no{color:var(--warn);font-weight:600}.attest-count{font-family:var(--mono);font-size:11px;color:var(--accent);border:1px solid #1c5b44;background:#0f2019;padding:2px 8px;border-radius:999px}.attest-plat{font-family:var(--mono);font-size:11px;color:var(--muted)}.attest-grid{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13px}.attest-grid dt{color:var(--muted);font-family:var(--mono);font-size:12px}.attest-grid dd{margin:0;color:#c4d0dc}.attest-grid dd code,.attest-grid dd strong{font-family:var(--mono)}.attest-grid em{color:var(--muted);font-style:normal;font-size:12px}.attest-note{color:var(--muted);font-size:12px;margin:10px 0 0}.attest details{margin-top:10px}.attest summary{cursor:pointer;color:var(--accent2);font-size:13px}.pill{font-family:var(--mono);font-size:11px;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.pill-pending,.pill-building,.pill-deploying{background:#2a2410;color:var(--warn)}.pill-running{background:#0f2019;color:var(--accent)}.pill-failed{background:#2a1218;color:var(--danger)}.pill-expired{background:#1a1f27;color:var(--muted)}.admin{background:var(--panel2)}.admin-toggle{background:none;border:none;padding:0;color:var(--muted);font-size:14px;cursor:pointer}.admin-toggle:hover{color:var(--text);filter:none}.admin-body{display:flex;flex-direction:column;gap:10px;margin-top:14px}.admin-body textarea{font-family:var(--mono);font-size:12px;resize:vertical}.admin-body button{align-self:flex-start}footer{margin-top:30px;text-align:center;color:var(--muted);font-size:12px}footer a{color:var(--accent2)}
