:root{--bg:#f6f9ff;--panel:#fff;--border:#d6e4ff;--text:#0f172a;--muted:#64748b;--blue:#2563eb;--blue-weak:#eaf1ff;--blue-strong:#1d4ed8;--danger:#ef4444;--success:#16a34a;--radius:14px;--shadow:0 10px 25px rgba(37,99,235,.10)}
*{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.header{position:sticky;top:0;z-index:10;background:rgba(241,246,255,0.8);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 18px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--blue)} .brand .logo{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#60a5fa,#2563eb)}
.nav a{color:var(--text);text-decoration:none;padding:8px 10px;border-radius:12px} .nav a.active,.nav a:hover{background:var(--blue-weak);color:var(--blue-strong)}
.container{max-width:960px;margin:24px auto;padding:0 18px}
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.h1{margin:0 0 14px 0;font-size:22px} .label{font-size:12px;color:var(--muted);margin-bottom:6px} .row{display:flex;flex-direction:column;margin-bottom:12px}
.input,.select{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fff;min-width:140px} .button{border:none;border-radius:12px;padding:8px 12px;font-weight:700;cursor:pointer}
.button.blue{background:var(--blue);color:#fff} .button.gray{background:#eef2ff;color:#1e3a8a} .button.danger{background:var(--danger);color:#fff}
.badge{padding:3px 8px;border-radius:999px;font-size:12px;border:1px solid var(--border);background:#f8fbff} .small{font-size:12px;color:var(--muted)}
.table{width:100%;border-collapse:separate;border-spacing:0} .table th,.table td{padding:10px;border-bottom:1px solid var(--border);font-size:14px}
.flash{padding:10px;border:1px solid var(--border);border-radius:10px;margin:10px 0}
.flash.ok{background:#f0fff7;color:#166534;border-color:#c7f1cf}
.flash.err{background:#fff5f5;color:#7f1d1d;border-color:#ffd1d1}
