:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1014;--panel:#161a22;--border:#242a36;--text:#e7ecf3;--muted:#8892a6;--accent:#4f8cff;--danger:#ef4444}*{box-sizing:border-box}body,html,#root{background:var(--bg);height:100%;color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:8px 14px;font-weight:500}button.danger{background:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}input,select{color:var(--text);border:1px solid var(--border);font:inherit;background:#0b0e14;border-radius:6px;width:100%;padding:8px 10px}label{color:var(--muted);margin-bottom:10px;font-size:13px;display:block}label input,label select{margin-top:4px}label.checkbox{align-items:center;gap:6px;display:flex}label.checkbox input{width:auto;margin:0}.loading{color:var(--muted);padding:40px}.login-wrap{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;width:100%;max-width:360px;padding:28px}.login-card h1{margin:0 0 4px;font-size:22px}.login-card .muted{color:var(--muted);margin:0 0 18px;font-size:13px}.login-card button{width:100%;margin-top:6px;padding:10px}.error{color:#fca5a5;background:#ef444426;border:1px solid #ef444466;border-radius:6px;margin-bottom:10px;padding:8px 10px;font-size:13px}.layout{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;padding:18px;display:flex}.brand{margin:0 0 22px;font-size:18px}.sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav a{color:var(--muted);border-radius:6px;padding:8px 10px;font-size:14px}.sidebar nav a.active{color:var(--text);background:#4f8cff1f}.sidebar .user{color:var(--muted);flex-direction:column;gap:8px;font-size:13px;display:flex}.sidebar .user button{border:1px solid var(--border);color:var(--text);background:0 0}.content{padding:24px 32px;overflow-x:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:18px;padding:18px}.card h3{margin:0 0 14px;font-size:15px}.form .row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.form .actions{align-items:center;gap:10px;margin-top:6px;display:flex}.form .actions .muted{color:var(--muted);font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}td.url{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}td button{margin-right:6px;padding:4px 10px;font-size:12px}.muted{color:var(--muted)}.small{font-size:12px}.upload-box{border:1px dashed var(--border);background:#0b0e14;border-radius:6px;flex-direction:column;gap:6px;margin-bottom:12px;padding:10px;display:flex}.upload-field{flex-direction:column;gap:8px;display:flex}.upload-field input[type=file]{padding:4px;font-size:13px}.upload-hint{color:var(--muted);font-size:12px;font-style:italic}.upload-progress{align-items:center;gap:10px;display:flex}.upload-progress .progress{flex:1}.progress{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.upload-preview{border:1px solid var(--border);background:#0b0e14;border-radius:6px;gap:12px;padding:8px;display:flex}.upload-preview img,.upload-preview video{object-fit:contain;background:#000;border-radius:4px;max-width:220px;max-height:150px}.upload-meta{flex-direction:column;flex:1;justify-content:center;gap:6px;min-width:0;display:flex}.upload-meta .row{justify-content:space-between;gap:12px;display:flex}.dim-badge{color:#86efac;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:4px;flex-direction:column;gap:2px;padding:6px 10px;font-size:12px;display:flex}.dim-badge.warn{color:#fcd34d;background:#eab3081a;border-color:#eab30859}.dim-badge strong{font-size:13px}button.link{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-size:12px}button.link:hover{text-decoration:underline}.upload-status{color:var(--accent);align-items:center;gap:8px;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
