:root {
    --bg: #edf4ff;
    --panel: #ffffff;
    --panel-soft: #f7faff;
    --line: #d8e2f0;
    --text: #142033;
    --muted: #66758c;
    --primary: #2563eb;
    --primary-2: #4f46e5;
    --primary-soft: #dbeafe;
    --success: #166534;
    --danger: #b91c1c;
    --warning: #b45309;
    --sidebar-a: #0b1220;
    --sidebar-b: #16213e;
    --sidebar-c: #273c75;
    --shadow: 0 18px 50px rgba(15, 23, 42, 0.08);
    --radius: 18px;
}
*{box-sizing:border-box} html,body{margin:0;padding:0} body{font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top left,#f8fbff,#edf4ff 55%,#e7eefb);color:var(--text)} a{text-decoration:none;color:inherit}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:305px;background:linear-gradient(180deg,var(--sidebar-a),var(--sidebar-b) 54%,var(--sidebar-c));color:#fff;padding:22px 18px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;box-shadow:24px 0 60px rgba(11,18,32,.16)}
.glass-card{background:rgba(255,255,255,.07);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08)}
.brand-block{display:flex;align-items:center;gap:14px;padding:14px;border-radius:20px}
.brand-icon{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,#60a5fa,#818cf8);display:grid;place-items:center;font-size:29px;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.brand-block h1{margin:0;font-size:20px}.brand-block p{margin:4px 0 0;color:rgba(255,255,255,.75);font-size:12px}
.menu-group-label{padding:8px 10px 0;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.55);font-weight:700}
.sidebar-nav{display:flex;flex-direction:column;gap:7px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:15px;color:rgba(255,255,255,.88);transition:.22s}.nav-link:hover,.nav-link.active{background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.08));color:#fff;transform:translateX(2px)}.nav-icon{width:26px;height:26px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.08);font-size:14px;flex:0 0 26px}
.sidebar-footer{margin-top:auto;display:grid;gap:14px}.user-chip{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px}.avatar{width:44px;height:44px;border-radius:14px;background:#fff;color:#1d4ed8;display:grid;place-items:center;font-weight:700;box-shadow:0 10px 24px rgba(37,99,235,.25)}.user-chip span{display:block;font-size:12px;color:rgba(255,255,255,.72)}.logout-link{text-align:center;padding:12px;border-radius:14px;background:rgba(239,68,68,.18);color:#fecaca;border:1px solid rgba(248,113,113,.28);font-weight:700}
.main-panel{flex:1;padding:26px}.page-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px}.topbar-card{padding:22px 24px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-size:12px;font-weight:700;margin:0 0 8px}.page-topbar h2{margin:0;font-size:30px}.page-subtitle{margin:10px 0 0;color:var(--muted)}.topbar-actions{display:flex;gap:10px;flex-wrap:wrap}.status-pill{padding:10px 14px;border-radius:999px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);font-size:13px;font-weight:600}.muted-pill{color:var(--muted)}
.page-content{display:grid;gap:24px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}.section-grid{display:grid;gap:24px}.two-col{grid-template-columns:2fr 1fr}.card{background:var(--panel);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(216,226,240,.95)}.card h2,.card h3{margin-top:0}.metric-card{position:relative;overflow:hidden}.metric-card:after{content:'';position:absolute;width:130px;height:130px;border-radius:50%;background:linear-gradient(135deg,#dbeafe,#e9ddff);right:-48px;top:-48px}.metric-label{font-size:13px;color:var(--muted);font-weight:700;margin-bottom:8px}.metric-value{font-size:34px;font-weight:700;position:relative;z-index:1}.metric-note{font-size:13px;color:var(--muted);position:relative;z-index:1;margin-top:8px}
.alert{padding:14px 16px;border-radius:14px;font-weight:600}.alert-success{background:#dcfce7;color:var(--success);border:1px solid #bbf7d0}.alert-error{background:#fee2e2;color:var(--danger);border:1px solid #fecaca}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}.toolbar form.inline-search{display:flex;gap:10px;flex-wrap:wrap}.toolbar .actions{display:flex;gap:10px;flex-wrap:wrap}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font:inherit;color:var(--text)}textarea{resize:vertical}label{display:block;font-size:14px;font-weight:700;margin-bottom:8px;color:#334155}
button,.btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(79,70,229,.18)}.btn-secondary{background:#0f172a}.btn-warning{background:#f59e0b}.btn-danger{background:#dc2626}.btn-light{background:#fff;color:#172033;border:1px solid var(--line);box-shadow:none}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stack-form{display:grid;gap:16px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.table-wrap table{width:100%;border-collapse:collapse;background:#fff}.table-wrap th,.table-wrap td{padding:13px 14px;border-bottom:1px solid #eaf0f6;text-align:left;vertical-align:top}.table-wrap th{background:#f8fbff;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#475569}.table-wrap tr:hover td{background:#fafcff}
.badge-list,.quick-links,.kpi-row,.report-grid{display:flex;gap:10px;flex-wrap:wrap}.badge{padding:8px 12px;background:#eff6ff;color:#1d4ed8;border-radius:999px;font-size:13px;font-weight:700}.quick-link{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}.kpi-box{min-width:180px;flex:1;padding:18px;border-radius:16px;background:#f8fbff;border:1px solid var(--line)}.kpi-box span{display:block;color:var(--muted);margin-bottom:8px}.kpi-box strong{font-size:28px}
.split{display:grid;grid-template-columns:1.1fr 1.4fr;gap:24px}.result{padding:18px;border-radius:14px;background:#f8fbff;border:1px dashed #bfd4f6;line-height:1.7;font-family:"Courier New",monospace}.muted{color:var(--muted)}.small{font-size:12px;color:var(--muted)}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px}.login-layout{width:min(1040px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:24px}.login-panel{background:#fff;border-radius:24px;box-shadow:var(--shadow);padding:34px;border:1px solid rgba(219,227,239,.9)}.login-hero{background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff}.login-hero p{color:rgba(255,255,255,.82)}.hero-chip{display:inline-block;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.feature-list{padding-left:18px}.demo-box{margin-top:18px;padding:14px;border-radius:14px;background:#f8fbff;border:1px solid var(--line)}.demo-box span{display:block;margin-top:4px;color:var(--muted)}
.action-links{display:flex;gap:8px;flex-wrap:wrap}.empty{padding:18px;border:1px dashed var(--line);border-radius:14px;background:#fafcff;color:var(--muted)}
code{padding:4px 8px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1e3a8a;font-weight:700}
.convention-card{display:grid;gap:16px}.convention-image{width:100%;max-width:640px;border-radius:18px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow)}.dashboard-convention-image{max-width:520px}
.report-grid .report-box{min-width:220px;flex:1;padding:18px;border-radius:16px;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid var(--line)}
.print-only{display:none}.screen-only{display:block}
@media (max-width: 980px){.sidebar{position:relative;height:auto;width:100%}.app-shell{flex-direction:column}.login-layout,.split,.two-col{grid-template-columns:1fr}.main-panel{padding:20px}.page-topbar{flex-direction:column}}
@media print {
    body{background:#fff}
    .sidebar,.page-topbar .topbar-actions,.alert,.screen-only,.btn,.logout-link{display:none !important}
    .app-shell,.main-panel,.page-content{display:block;padding:0;margin:0}
    .main-panel{width:100%}
    .card,.table-wrap{box-shadow:none;border:1px solid #cbd5e1;break-inside:avoid;page-break-inside:avoid}
    .page-topbar{display:block;padding:0;border:none;box-shadow:none;margin-bottom:18px}
    .print-only{display:block}
}
