:root{--bg:#0d1117;--surface:#161b22;--surface-2:#1c2430;--border:#2a3441;--text:#e6edf3;--muted:#8b98a5;--accent:#1f9d55;--accent-strong:#24b365;--danger:#d64545;--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:1100px;margin:0 auto;padding:32px 20px 64px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.stat-value{font-size:30px;font-weight:650;margin-top:6px}button,input,select,textarea{font:inherit}input[type=email],input[type=file],input[type=password],input[type=text],select{width:100%;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}.field{margin-bottom:14px}button{padding:10px 16px;border-radius:8px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--accent-strong)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:transparent;border-color:var(--border);color:var(--text)}button.danger{background:transparent;border-color:var(--danger);color:#ff8080}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:14px;gap:14px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.tile img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--surface-2)}.tile-body{padding:10px;display:flex;flex-direction:column;gap:8px}.tile-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.banner{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);border-radius:8px;padding:12px 14px;margin-bottom:20px;font-size:14px}.banner.warn{border-left-color:#d99a2b}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.tab{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:14px}.tab[data-active=true]{background:var(--accent);border-color:var(--accent);color:#fff}code{background:var(--surface-2);padding:2px 6px;border-radius:5px;font-size:13px}