/* v8.4.1 base */
:root{
  --bg:#f7f9fc; --fg:#111; --muted:#6b7280; --card:#fff; --border:#e5e7eb;
  --header-bg:#ffffff; --header-fg:#111; --footer-bg:#ffffff; --footer-fg:#6b7280;
  --ring:#d1d5db;
}
:root[data-theme="dark"]{
  --bg:#0f1115; --fg:#e5e7eb; --muted:#9aa3af; --card:#171a21; --border:#232730;
  --header-bg:#111319; --header-fg:#e5e7eb; --footer-bg:#111319; --footer-fg:#9aa3af;
  --ring:#2a2f39;
}
*{box-sizing:border-box}
html,body{height:100%}
body, h1, h2, h3, h4, h5, h6 {font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
body{margin:0;background:var(--bg);color:var(--fg);display:flex;flex-direction:column;min-height:100vh}
.page::before, .page::after {content:none !important; display:none !important;}
.site-header{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 14px;background:var(--header-bg);color:var(--header-fg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.logo{max-width:80px;max-height:80px;display:block;object-fit:contain}
.header-spacer{flex:1}
.header-actions{display:flex;align-items:center;gap:10px}
.icon-btn{appearance:none;border:1px solid var(--ring);background:transparent;border-radius:10px;padding:8px 10px;cursor:pointer;color:inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px}
.icon-btn:hover{background:rgba(127,127,127,0.08)}
.page{flex:1;padding:22px}
h1{font-size:28px;line-height:1.25;margin:0 0 14px 0;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin-top:6px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;text-decoration:none;color:inherit;display:block;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.card h3{margin:0 0 6px;font-size:18px}
.card p{margin:0;color:var(--muted)}
.alert{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--card)}
.alert.ok{border-color:rgba(22,163,74,.35)} .alert.err{border-color:rgba(220,38,38,.45)}
.form-grid{display:grid;gap:10px}
.form-grid input[type="password"], .form-grid input[type="text"], textarea{width:100%;padding:10px;border:1px solid var(--ring);border-radius:10px;background:transparent;color:inherit;box-sizing:border-box}
.switch{display:flex;align-items:center;gap:10px}
.switch input{width:18px;height:18px}
.btn{display:inline-block;background:#0b63f6;color:#fff;border:none;border-radius:10px;padding:8px 12px;text-decoration:none;font-weight:600;cursor:pointer}
.btn:hover{opacity:.92}
.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.table th,.table td{border-bottom:1px solid var(--border);padding:10px}
.table thead th{background:rgba(127,127,127,0.08);text-align:left}
.table tr:last-child td{border-bottom:none}
.site-footer{background:var(--footer-bg);color:var(--footer-fg);border-top:1px solid var(--border);text-align:center;padding:10px;margin-top:auto}
.version-link{color:inherit;text-decoration:none;opacity:.9}
.version-link:hover{text-decoration:underline;opacity:1}
.row.gap{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.star-btn{font-size:22px;text-decoration:none;line-height:1}
