:root{--bg:#0f1713;--side:#0b110e;--panel:#15201a;--panel-2:#1b2a22;--line:#243629;--text:#edf2ee;--muted:#98ac9f;--accent:#4fb477;--accent-strong:#2f8a51;--accent-ink:#07130c;--gold:#d9a441;--danger:#ff8a7a;--warn:#d9a441;--radius:14px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app{grid-template-columns:236px 1fr;min-height:100vh;display:grid}.side{background:var(--side);border-right:1px solid var(--line);height:100vh;padding:20px 14px;position:sticky;top:0;overflow-y:auto}.side .brand{color:var(--text);letter-spacing:.2px;align-items:center;gap:12px;padding:4px 8px 22px;font-size:17px;font-weight:600;display:flex}.side .brand:hover{text-decoration:none}.side .brand b{color:var(--accent);font-weight:700}.side .brand small{color:var(--muted);letter-spacing:.6px;text-transform:uppercase;margin-top:1px;font-size:11px;font-weight:500;display:block}.side-nav{gap:2px;display:grid}.side-nav a{color:var(--muted);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-weight:500;display:flex}.side-nav a:hover{background:var(--panel);color:var(--text);text-decoration:none}.side-nav a.active{background:var(--panel-2);color:var(--text);box-shadow:inset 3px 0 0 var(--gold)}.side-nav a.active svg{color:var(--accent)}.content{width:100%;max-width:1180px;padding:32px clamp(16px,4vw,48px) 80px}h1{letter-spacing:-.2px;margin:0 0 6px;font-size:26px}h2{margin:28px 0 10px;font-size:18px}p.lead{color:var(--muted);margin:0 0 22px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.grid{gap:18px;display:grid}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.grid.form{grid-template-columns:1fr 1fr}label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}input[type=text],input[type=password],textarea,select{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:var(--accent-strong);outline:none;box-shadow:0 0 0 3px #2f8a5140}textarea{resize:vertical;min-height:180px}.field{margin-bottom:14px}.hint{color:var(--muted);margin-top:6px;font-size:12px}.btn{background:var(--accent-strong);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:10px;align-items:center;gap:8px;padding:11px 18px;font-weight:600;transition:background .15s;display:inline-flex}.btn:hover{background:var(--accent);color:var(--accent-ink);text-decoration:none}.btn:disabled{opacity:.55;cursor:wait}.btn.ghost{color:var(--text);border:1px solid var(--line);background:0 0}.btn.ghost:hover{background:var(--panel-2);color:var(--text)}.pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px;display:inline-block}.pill.done{color:var(--accent);border-color:var(--accent-strong);background:#2f8a511f}.pill.rendering{color:var(--gold);border-color:var(--gold);background:#d9a4411a}.pill.error{color:var(--danger);border-color:var(--danger)}.video-card{transition:border-color .15s,transform .15s}.video-card:hover{border-color:var(--accent-strong)}.video-card video,.video-card .ph{background:#000;border-radius:10px;width:100%;display:block}.video-card .ph{aspect-ratio:9/16;max-height:360px;color:var(--muted);place-items:center;font-size:13px;display:grid}.video-card .meta{flex-wrap:wrap;gap:6px;margin:10px 0 6px;display:flex}.video-card h3{margin:0 0 4px;font-size:15px}.err{color:var(--danger);white-space:pre-wrap;font-size:13px}.engine-list{gap:10px;display:grid}.engine-list label{border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.engine-list label:hover{border-color:var(--accent-strong)}.engine-list label small{color:var(--muted);display:block}.login h1{color:var(--text)}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:860px){.app{grid-template-columns:1fr}.side{z-index:10;height:auto;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);position:fixed;inset:auto 0 0}.side .brand{display:none}.side-nav{gap:4px;display:flex;overflow-x:auto}.side-nav a{text-align:center;flex-direction:column;justify-content:center;gap:3px;min-width:66px;padding:8px 10px;font-size:11px}.side-nav a.active{box-shadow:inset 0 3px 0 var(--gold)}.content{padding-bottom:110px}.grid.form{grid-template-columns:1fr}}@media (display-mode:standalone){.content{padding-top:24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app:has(.login){grid-template-columns:1fr}.app:has(.login) .side{display:none}.app:has(.login) .content{margin:0 auto}.app:has(.login){display:block}.app:has(.login) .content{max-width:none;padding:0 16px}.login{max-width:400px;margin:9vh auto 5vh}.login-brand{text-align:center;justify-items:center;gap:6px;margin-bottom:22px;display:grid}.login-brand h1{margin:6px 0 0;font-size:28px}.login-brand h1 b{color:var(--accent)}.login-brand small{color:var(--muted);letter-spacing:.6px;text-transform:uppercase;font-size:11px}input[type=email]{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;padding:10px 12px}input[type=email]:focus{border-color:var(--accent-strong);outline:none;box-shadow:0 0 0 3px #2f8a5140}.okmsg{color:var(--accent);border:1px solid var(--accent-strong);background:#2f8a511f;border-radius:10px;margin-bottom:14px;padding:10px 12px;font-size:14px}.warnbox{border-color:var(--gold);color:var(--gold);margin-bottom:12px;font-size:14px}.side-user{border-top:1px solid var(--line);justify-items:start;gap:8px;margin-top:20px;padding:14px 8px 0;font-size:13px;display:grid}.linkbtn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.linkbtn:hover{color:var(--text);text-decoration:underline}@media (max-width:860px){.side-user{display:none}}.tbl{border-collapse:collapse;width:100%}.tbl th,.tbl td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.tbl th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.tbl tr:last-child td{border-bottom:0}.tbl select{width:auto;padding:6px 8px}.tbl .btn{padding:6px 12px;font-size:13px}.chat-fab{z-index:30;background:var(--accent-strong);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:8px;padding:12px 18px;font-weight:600;display:inline-flex;position:fixed;bottom:18px;right:18px;box-shadow:0 6px 24px #00000073}.chat-fab:hover{background:var(--accent);color:var(--accent-ink)}.chat-panel{z-index:31;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;width:min(380px,100vw - 24px);height:min(520px,70vh);display:flex;position:fixed;bottom:76px;right:18px;overflow:hidden;box-shadow:0 12px 40px #0000008c}.chat-panel header{border-bottom:1px solid var(--line);background:var(--panel-2);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chat-panel header button{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px}.chat-log{flex:1;align-content:start;gap:10px;padding:14px;display:grid;overflow-y:auto}.bubble{white-space:pre-wrap;border-radius:12px;max-width:88%;padding:9px 12px;font-size:14px}.bubble.user{background:var(--accent-strong);color:#fff;justify-self:end}.bubble.assistant{background:var(--panel-2);border:1px solid var(--line);justify-self:start}.chat-panel form{border-top:1px solid var(--line);gap:8px;padding:10px;display:flex}.chat-panel form input{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:10px;flex:1;min-width:0;padding:9px 11px}@media (max-width:860px){.chat-fab{padding:12px;bottom:84px}.chat-fab span{display:none}.chat-panel{bottom:140px}}
