
:root{
    --bg:#0f172a;
    --panel:#ffffff;
    --panel-soft:#f8fafc;
    --line:#dbe3ef;
    --text:#0f172a;
    --muted:#64748b;
    --brand:#2563eb;
    --brand-soft:#dbeafe;
    --success:#0f766e;
    --danger:#b91c1c;
    --shadow:0 18px 45px rgba(15,23,42,.08);
    --radius:22px;
}
*{box-sizing:border-box}
body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:linear-gradient(180deg,#eff6ff 0%,#f8fafc 30%,#eef2ff 100%);
    color:var(--text);
}
.shell{
    width:min(1280px,calc(100% - 32px));
    margin:32px auto 48px;
}
.hero{
    display:grid;
    grid-template-columns:1.7fr .9fr;
    gap:20px;
    margin-bottom:24px;
}
.hero > div,
.card{
    background:var(--panel);
    border:1px solid rgba(148,163,184,.18);
    border-radius:var(--radius);
    box-shadow:var(--shadow);
}
.hero > div{padding:28px}
.eyebrow{
    margin:0 0 8px;
    font-size:13px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--brand);
    font-weight:700;
}
.hero h1{
    margin:0 0 12px;
    font-size:clamp(32px,5vw,52px);
    line-height:1.02;
}
.hero-copy{
    margin:0;
    color:var(--muted);
    font-size:16px;
    line-height:1.65;
    max-width:62ch;
}
.hero-note{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:10px;
    background:linear-gradient(135deg,#0f172a,#1e293b);
    color:#fff;
}
.hero-note span{
    color:#cbd5e1;
    line-height:1.6;
}
.layout{
    display:grid;
    grid-template-columns:420px 1fr;
    gap:24px;
    margin-bottom:24px;
}
.card{padding:24px}
.card-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}
.card-head h2{
    margin:0;
    font-size:24px;
}
.card-head p{
    margin:0;
    color:var(--muted);
}
.form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.form-grid label{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.form-grid label span{
    font-size:13px;
    font-weight:700;
    color:#334155;
}
select,button{
    font:inherit;
}
select{
    width:100%;
    min-height:48px;
    border:1px solid var(--line);
    border-radius:14px;
    padding:0 14px;
    background:#fff;
    color:var(--text);
    outline:none;
}
select:focus{
    border-color:var(--brand);
    box-shadow:0 0 0 4px rgba(37,99,235,.12);
}
.cta-wrap{
    grid-column:1 / -1;
    display:flex;
    gap:12px;
    align-items:center;
    padding-top:4px;
}
.btn-primary,.btn-secondary{
    min-height:48px;
    border-radius:14px;
    border:none;
    padding:0 18px;
    cursor:pointer;
    font-weight:700;
}
.btn-primary{
    background:var(--brand);
    color:#fff;
}
.btn-secondary{
    background:#e2e8f0;
    color:#0f172a;
}
.helper{
    margin-top:16px;
    padding:14px 16px;
    border-radius:16px;
    background:var(--panel-soft);
    border:1px dashed var(--line);
    color:#334155;
    font-size:14px;
}
.kpi-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}
.kpi{
    padding:18px;
    border-radius:18px;
    background:var(--panel-soft);
    border:1px solid var(--line);
    display:flex;
    flex-direction:column;
    gap:8px;
}
.kpi span{
    font-size:13px;
    color:var(--muted);
}
.kpi strong{
    font-size:24px;
    line-height:1.1;
}
.selection-card{margin-bottom:24px}
.selection-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
}
.selection-grid div{
    padding:16px;
    background:var(--panel-soft);
    border:1px solid var(--line);
    border-radius:18px;
}
.selection-grid span{
    display:block;
    color:var(--muted);
    font-size:12px;
    margin-bottom:8px;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.selection-grid strong{
    font-size:17px;
    line-height:1.35;
}
.tables{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
}
.table-wrap{
    overflow:auto;
    border:1px solid var(--line);
    border-radius:16px;
}
table{
    width:100%;
    border-collapse:collapse;
    min-width:560px;
}
thead th{
    background:#eff6ff;
    color:#1e3a8a;
    text-align:left;
    font-size:13px;
    padding:14px;
    border-bottom:1px solid var(--line);
}
tbody td{
    padding:14px;
    border-bottom:1px solid var(--line);
    font-size:14px;
}
tbody tr:last-child td{border-bottom:none}
.error-box{
    margin-bottom:16px;
    padding:14px 16px;
    border:1px solid rgba(185,28,28,.2);
    background:#fef2f2;
    color:var(--danger);
    border-radius:14px;
}
.loading{
    opacity:.65;
    pointer-events:none;
}
@media (max-width: 1080px){
    .layout,
    .tables,
    .hero{
        grid-template-columns:1fr;
    }
    .selection-grid{
        grid-template-columns:repeat(2,1fr);
    }
}
@media (max-width: 720px){
    .shell{
        width:min(100% - 20px,1280px);
        margin:16px auto 32px;
    }
    .card,
    .hero > div{
        padding:18px;
    }
    .form-grid,
    .kpi-grid,
    .selection-grid{
        grid-template-columns:1fr;
    }
    .cta-wrap{
        flex-direction:column;
    }
    .btn-primary,.btn-secondary{
        width:100%;
    }
}
