:root{color-scheme:light;--navy:#10284d;--blue:#1d5da8;--ink:#14213d;--muted:#667085;--line:#dfe5ef;--bg:#f4f7fb;--green:#067647;--red:#b42318;--amber:#b54708}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.hidden{display:none!important}
button,input,select,textarea{font:inherit}button{cursor:pointer}.login{min-height:100vh;display:grid;place-items:center;padding:18px}.box,.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 30px rgba(16,40,77,.06)}.box{width:min(450px,100%);padding:20px}.card{padding:16px}.brandLogo{display:block;width:100%;height:auto;object-fit:contain;background:#fff;border-radius:10px}.loginLogo{max-width:390px;margin:0 auto 16px}.sideLogo{max-width:230px;margin:0 auto 12px}.sub{color:var(--muted)}
label{display:block;font-weight:600;margin:10px 0 5px}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #cdd5df;border-radius:9px;background:#fff;color:var(--ink)}textarea{min-height:82px;resize:vertical}.btn{border:0;border-radius:9px;padding:10px 13px;background:var(--blue);color:#fff;min-height:42px}.btn.alt{background:#fff;color:var(--ink);border:1px solid #cbd5e1}.btn.danger{background:#fff0ee;color:var(--red);border:1px solid #ffc9c2}.btn.good{background:#ecfdf3;color:var(--green);border:1px solid #abefc6}.btn.warn{background:#fffaeb;color:var(--amber);border:1px solid #fedf89}.btn.sm{min-height:34px;padding:6px 9px;font-size:12px}.linkBtn{border:0;background:transparent;color:var(--blue);padding:8px 0;text-align:left;font-weight:700}.loginActions{display:grid;gap:9px;margin-top:14px}.setupBox{margin-top:12px;padding:12px;border:1px dashed #aeb8c8;border-radius:10px;background:#f8fafc}.divider{height:1px;background:#e5e9f0;margin:16px 0}.help{font-size:12px;color:var(--muted);line-height:1.45}.msgOk{color:var(--green)}.msgErr{color:var(--red)}
.app{display:grid;grid-template-columns:254px 1fr;min-height:100vh}aside{background:var(--navy);color:#fff;padding:14px;overflow-y:auto;position:sticky;top:0;height:100vh}.sideBrandWrap{padding:4px 4px 12px}.menuGroup{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8fa7c5;margin:13px 8px 5px}nav button{width:100%;text-align:left;border:0;background:transparent;color:#d9e4f4;padding:10px 11px;border-radius:9px;margin:1px 0}nav button:hover,nav button.active{background:#1b447c;color:#fff}
main{padding:20px;min-width:0}.top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.top h1{margin:0 0 4px;font-size:28px}.topActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.toolbar{display:flex;gap:9px;justify-content:space-between;align-items:center;margin-bottom:12px}.toolbar>div{display:flex;gap:7px;flex-wrap:wrap}.toolbar input{max-width:360px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.kpi{padding:15px}.kpi .label{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.kpi .value{font-size:25px;font-weight:800;margin-top:7px}.kpi .meta{font-size:12px;color:var(--muted);margin-top:5px}.positive{color:var(--green)}.negative{color:var(--red)}.amber{color:var(--amber)}
.dashHero{background:linear-gradient(135deg,#10284d,#1d5da8);color:#fff;border:0}.dashHero .sub{color:#dbe7f6}.dashRow{display:grid;grid-template-columns:1.35fr .65fr;gap:12px;margin-top:12px}.quickActions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quickActions button{min-height:54px}.rateStrip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.rateBox{background:#f8fafc;border:1px solid #e7ecf2;border-radius:10px;padding:10px}.rateBox b{display:block;font-size:18px;margin-top:3px}
.table{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.table table{width:100%;border-collapse:collapse}.table th,.table td{padding:9px 10px;border-bottom:1px solid #e9edf2;text-align:left;white-space:nowrap;vertical-align:middle}.table th{background:#f8fafc;font-size:12px;color:#475467;position:sticky;top:0;z-index:1}.sortBtn{border:0;background:transparent;color:inherit;font-weight:700;padding:0;white-space:nowrap}.rowActions{display:flex;gap:5px;align-items:center}.empty{padding:24px;text-align:center;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.52);display:grid;place-items:center;padding:12px;z-index:100}.modal>.card{width:min(860px,97vw);max-height:94vh;overflow:auto}.form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.span{grid-column:1/-1}.formActions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.inline{display:flex;gap:7px;align-items:end}.inline>*{flex:1}.inline .btn{flex:0 0 auto}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef4ff;color:#1d5da8;font-size:11px;font-weight:700}.badge.green{background:#ecfdf3;color:var(--green)}.badge.red{background:#fef3f2;color:var(--red)}
.moduleGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.moduleCard{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}.moduleCard h3{margin:7px 0 5px}.notice{padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #e4e9f0;color:#475467;margin:10px 0}.mobileMenu,.overlay{display:none}
@media(max-width:1100px){.grid{grid-template-columns:repeat(2,1fr)}.dashRow{grid-template-columns:1fr}.moduleGrid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){
 .app{grid-template-columns:1fr}aside{position:fixed;z-index:70;left:0;top:0;bottom:0;width:min(86vw,310px);height:100vh;transform:translateX(-105%);transition:.22s;box-shadow:0 0 30px rgba(0,0,0,.35)}aside.open{transform:translateX(0)}
 .mobileMenu{display:block!important;position:fixed;z-index:80;left:12px;top:12px;width:46px;height:46px;border:0;border-radius:11px;background:var(--navy);color:#fff;font-size:22px}.overlay{display:block!important;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60}.mobileMenu.hidden,.overlay.hidden{display:none!important}
 main{padding:68px 10px 16px}.top{flex-direction:column}.topActions{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.topActions .btn{width:100%}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{max-width:none}.toolbar>div{width:100%;display:grid;grid-template-columns:repeat(2,1fr)}.toolbar>div .btn,.toolbar>div label.btn{width:100%;text-align:center}
 .form{grid-template-columns:1fr}.span{grid-column:auto}.grid{grid-template-columns:1fr 1fr}.quickActions{grid-template-columns:1fr 1fr}.moduleGrid{grid-template-columns:1fr}.sideLogo{max-width:250px}
 .mobileStack{border:0;background:transparent;overflow:visible}.mobileStack table,.mobileStack tbody,.mobileStack tr,.mobileStack td{display:block;width:100%}.mobileStack thead{display:none}.mobileStack tr{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;padding:7px 10px;box-shadow:0 3px 12px rgba(16,40,77,.04)}.mobileStack td{border:0!important;padding:6px 2px!important;white-space:normal;display:grid;grid-template-columns:112px 1fr;gap:8px}.mobileStack td::before{content:attr(data-label);font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}.mobileStack td.actionsCell{display:block}.mobileStack td.actionsCell::before{content:""}.rowActions{flex-wrap:wrap}.rowActions .btn{flex:1}
}
@media(max-width:480px){.grid{grid-template-columns:1fr}.rateStrip{grid-template-columns:1fr 1fr 1fr}.quickActions{grid-template-columns:1fr 1fr}.top h1{font-size:24px}}
@media print{aside,.mobileMenu,.overlay,.topActions,.toolbar .btn,.rowActions{display:none!important}.app{display:block}main{padding:0}.card{box-shadow:none}.table{overflow:visible}}