
:root{--bg:#0d1117;--panel:#141a22;--panel2:#1a222d;--text:#eef2f7;--muted:#98a2b3;--orange:#ff6a00;--orange2:#ff8a2a;--green:#22c55e;--yellow:#f59e0b;--red:#ef4444;--blue:#3b82f6;--line:#263241;--white:#fff;--shadow:0 12px 30px rgba(0,0,0,.18);--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:#eef2f6;color:#111827}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.loading-screen,.error-page{min-height:100vh;background:var(--bg);color:white;display:grid;place-content:center;justify-items:center;gap:20px;text-align:center;padding:30px}.loading-screen img,.error-page img{width:min(330px,70vw)}
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}
.login-brand{padding:64px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 70% 20%,#222f3f 0,transparent 36%),linear-gradient(160deg,#0d1117 0%,#101821 65%,#091015 100%);color:white}
.login-logo{width:min(420px,72%);height:auto}.login-logo-mobile{display:none;width:220px;margin:0 auto 28px}.tagline{max-width:600px;font-size:46px;line-height:1.08;font-weight:800}.tagline em{font-style:normal;color:var(--orange)}.brand-foot{color:#c5ced8}.brand-foot b{color:var(--orange)}
.login-card-wrap{display:grid;place-items:center;background:white;padding:32px}.login-card{width:min(460px,100%)}.eyebrow{color:var(--orange);font-weight:800;letter-spacing:.12em;font-size:12px}.login-card h1{font-size:36px;margin:8px 0 4px}.login-card p{color:#667085;margin:0 0 28px}
.field{margin:15px 0}.field label{display:block;font-weight:700;font-size:14px;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:14px 15px;border:1px solid #d7dde5;border-radius:12px;background:#fff;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,106,0,.11)}
.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.primary{border:0;background:linear-gradient(90deg,var(--orange),var(--orange2));color:white;font-weight:800;padding:14px 18px;border-radius:12px;cursor:pointer;box-shadow:0 8px 18px rgba(255,106,0,.25)}.primary:disabled{opacity:.65}.secondary{border:1px solid #d6dce4;background:white;color:#111827;font-weight:750;padding:10px 13px;border-radius:12px;cursor:pointer}.text-btn{border:0;background:none;color:#e75f00;font-weight:700;width:100%;padding:16px 4px;cursor:pointer}.auth-msg{font-size:13px;text-align:center;min-height:20px}.auth-msg.err{color:#c62828}.auth-msg.ok{color:#17803d}
.shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:linear-gradient(180deg,#0a0e13,#101821);color:#dce3eb;padding:22px 15px;display:flex;flex-direction:column;gap:22px}.sidebar-brand{padding:4px 10px 12px}.sidebar-logo{width:185px;max-height:90px;object-fit:contain}.side-nav{display:grid;gap:7px}.nav-item{padding:12px 14px;border-radius:12px;color:#c8d1dc;text-decoration:none;display:flex;gap:11px;align-items:center;cursor:pointer}.nav-item.active,.nav-item:hover{background:linear-gradient(90deg,rgba(255,106,0,.95),rgba(255,106,0,.22));color:white}.side-note{margin-top:auto;padding:16px;border:1px solid #263241;border-radius:16px;background:#111923;color:#c7d0db}.side-note b{color:var(--orange)}
.main{padding:26px 28px 40px;overflow:auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.topbar h1{font-size:30px;margin:0}.topbar p{margin:3px 0 0;color:#667085}.top-actions{display:flex;gap:9px;align-items:center}.user-pill{background:white;border:1px solid #dfe4ea;padding:9px 12px;border-radius:12px;font-weight:700}
.section{display:none}.section.active{display:block}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px}.card{background:white;border:1px solid #e1e7ee;border-radius:var(--radius);box-shadow:0 3px 12px rgba(16,24,40,.03)}.kpi{padding:20px}.kpi .value{font-size:32px;font-weight:850}.kpi .label{font-size:13px;color:#667085;margin-top:5px}.kpi.red{border-top:3px solid var(--red)}.kpi.blue{border-top:3px solid var(--blue)}.kpi.orange{border-top:3px solid var(--orange)}.kpi.green{border-top:3px solid var(--green)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{padding:18px}.quick-panel{margin-top:18px}.panel-head,.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.panel-head h2,.toolbar h2{margin:0;font-size:21px}.toolbar h2{font-size:26px}.link-btn{border:0;background:none;color:#e75f00;font-weight:750;cursor:pointer}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px;min-width:620px}.table th{text-align:left;color:#667085;padding:11px 10px;border-bottom:1px solid #e4e9ef}.table td{padding:12px 10px;border-bottom:1px solid #eef1f4;vertical-align:top}.row-sub{display:block;color:#98a2b3;margin-top:3px}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-weight:750;font-size:11px;white-space:nowrap}.s-green{background:#dcfce7;color:#15803d}.s-orange{background:#fff1df;color:#c65300}.s-red{background:#fee2e2;color:#b91c1c}.s-blue{background:#dbeafe;color:#1d4ed8}.empty-cell,.empty{color:#667085;text-align:center;padding:28px!important}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick{padding:16px;border:1px solid #e1e7ee;border-radius:14px;background:white;cursor:pointer;text-align:left}.quick:hover{border-color:#ffb177}.quick b{display:block;margin-bottom:5px}.quick span{color:#667085;font-size:13px}
.list-simple{display:grid}.list-simple>div,.list-simple>a{padding:14px 4px;border-bottom:1px solid #edf0f3;text-decoration:none;color:#111827;display:flex;justify-content:space-between;gap:20px}.list-simple span{color:#667085;font-size:13px}
.modal{position:fixed;inset:0;background:rgba(8,13,20,.64);display:none;place-items:center;padding:18px;z-index:50}.modal.open{display:grid}.modal-card{width:min(600px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:22px;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.close{border:0;background:#f1f3f5;border-radius:10px;width:36px;height:36px;cursor:pointer;font-size:20px}
.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:white;padding:13px 16px;border-radius:12px;z-index:100;box-shadow:var(--shadow);font-weight:700}.toast.err{background:#991b1b}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.shell{grid-template-columns:90px 1fr}.sidebar-logo{width:62px}.nav-item span,.side-note{display:none}.nav-item{justify-content:center;font-size:20px}.sidebar-brand{padding:4px}}
@media(max-width:760px){
 .login-wrap{grid-template-columns:1fr}.login-brand{display:none}.login-logo-mobile{display:block}.login-card-wrap{min-height:100vh;padding:28px 22px}
 .shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:30;flex-direction:row;padding:8px 10px;overflow-x:auto;gap:8px;box-shadow:0 4px 14px rgba(0,0,0,.18)}.sidebar-brand,.side-note{display:none}.side-nav{display:flex;gap:6px}.nav-item{min-width:54px;padding:10px}
 .main{padding:18px 13px 34px}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:25px}.top-actions{width:100%}.user-pill{margin-right:auto}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:15px}.kpi .value{font-size:27px}.mini-grid{grid-template-columns:1fr}.grid-form{grid-template-columns:1fr}.toolbar{align-items:flex-start}.toolbar h2{font-size:23px}
}

/* Keep wide tables inside their cards, including nested grid layouts. */
.main,.section,.grid-2,.grid-2>*,.panel,.table-wrap{min-width:0;max-width:100%}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:760px){
 .sidebar{padding-top:calc(8px + env(safe-area-inset-top,0px));padding-left:calc(10px + env(safe-area-inset-left,0px));padding-right:calc(10px + env(safe-area-inset-right,0px))}
 .shell{grid-template-rows:auto 1fr;align-content:start}
 .main{padding-bottom:calc(34px + env(safe-area-inset-bottom,0px))}
}
