:root{--bg:#f0f4f8;--surface:#ffffff;--ink:#1e3a5f;--ink-nav:#4a6a8a;--ink-muted:#64748b;--accent:#0ea5e9;--accent-ink:#ffffff;--accent-hover:#0284c7;--accent-soft:#e8f4fd;--hover:#f0f6fb;--border:#e2eaf2;--border-strong:#cbd8e6;--ok:#16a34a;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--danger:#dc2626;--danger-soft:#fee2e2;--radius-sm:6px;--radius:8px;--radius-lg:10px;--shadow:0 1px 3px rgba(30,58,95,0.06);--header-h:56px;--sidebar-w:180px;--tabbar-h:60px;font-family:system-ui,-apple-system,sans-serif}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,sans-serif;line-height:1.6;-webkit-text-size-adjust:100%}a{color:var(--accent-hover)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 16px;border-radius:var(--radius);border:1px solid transparent;background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:.9rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:default}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--hover)}.btn-danger{background:var(--surface);color:var(--danger);border-color:#f5c2c2}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{min-height:32px;padding:4px 10px;font-size:.8rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.input,.select,.textarea{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:9px 12px;font-size:16px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.textarea{resize:vertical;line-height:1.7}.label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:6px}.hint{font-size:.8rem;color:var(--ink-muted);margin:4px 0 0}.error-text{color:var(--danger)}.error-text,.ok-text{font-size:.85rem;margin:8px 0 0}.ok-text{color:var(--ok)}.page-title{font-size:1.3rem;font-weight:700;margin:0 0 4px}.page-sub{color:var(--ink-muted);font-size:.88rem;margin:0 0 20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.admin-doc-links{display:none;gap:8px;margin:-8px 0 16px}@media (max-width:768px){.admin-doc-links{display:flex}}