:root{
  --navy:#10243f;
  --navy-2:#173557;
  --slate:#64748b;
  --muted:#94a3b8;
  --bg:#f4f6f9;
  --panel:#ffffff;
  --line:#e6ebf1;
  --soft:#eef3f8;
  --success:#168253;
  --danger:#c2413a;
  --warning:#a66d12;
  --info:#266ca8;
  --radius:16px;
  --shadow:0 12px 30px rgba(15,36,63,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:#1e293b;font-size:14px;line-height:1.45}
a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:254px;background:#f8fafc;border-right:1px solid var(--line);padding:16px 12px;position:fixed;left:0;top:0;height:100vh;z-index:30;transition:.2s ease;overflow:auto}.brand-block{display:flex;align-items:center;gap:10px;padding:10px 10px 18px}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;box-shadow:0 8px 18px rgba(16,36,63,.15)}.brand-text strong{display:block;color:var(--navy);font-size:14px}.brand-text span{display:block;color:var(--slate);font-size:12px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-item{display:flex;align-items:center;gap:10px;color:#475569;border-radius:12px;padding:10px 11px;font-weight:600;font-size:13px;transition:.15s ease}.nav-icon{width:24px;height:24px;border-radius:9px;background:#edf2f7;display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:12px;flex:none}.nav-item:hover{background:#eef3f8;color:var(--navy)}.nav-item.active{background:var(--navy);color:white}.nav-item.active .nav-icon{background:rgba(255,255,255,.16);color:white}.main-area{margin-left:254px;width:calc(100% - 254px);min-height:100vh;transition:.2s ease}.topbar{height:74px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:20}.topbar h1{margin:0;color:var(--navy);font-size:21px;font-weight:750;letter-spacing:-.02em}.topbar p{margin:2px 0 0;color:var(--slate);font-size:12px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.user-pill{background:#eef3f8;border:1px solid #dbe5ee;color:#334155;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:650}.menu-btn,.collapse-btn{border:0;background:#eef3f8;color:var(--navy);border-radius:11px;width:38px;height:38px;cursor:pointer;font-weight:800}.menu-btn{display:none}.content-wrap{padding:22px;max-width:1440px;margin:0 auto}.collapsed .sidebar{width:82px}.collapsed .brand-text,.collapsed .nav-text{display:none}.collapsed .main-area{margin-left:82px;width:calc(100% - 82px)}.collapsed .nav-item{justify-content:center}.collapsed .brand-block{justify-content:center}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:18px}.card + .card{margin-top:16px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-title{margin:0;color:var(--navy);font-size:16px;font-weight:750}.card-subtitle{margin:3px 0 0;color:var(--slate);font-size:12px}.grid{display:grid;gap:14px}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:0 8px 22px rgba(15,36,63,.06);display:flex;align-items:flex-start;gap:12px}.stat-icon{width:38px;height:38px;border-radius:13px;background:#edf2f7;color:var(--navy);display:flex;align-items:center;justify-content:center;font-weight:900}.stat-label{margin:0;color:var(--slate);font-size:12px}.stat-value{margin:4px 0 0;color:var(--navy);font-size:22px;font-weight:800;letter-spacing:-.03em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;border-radius:11px;border:1px solid transparent;padding:8px 13px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--navy);color:white}.btn-primary:hover{background:var(--navy-2)}.btn-soft{background:#eef3f8;color:var(--navy);border-color:#dbe5ee}.btn-danger{background:#fff1f0;color:var(--danger);border-color:#ffd8d4}.btn-small{min-height:30px;padding:6px 10px;font-size:12px;border-radius:9px}.actions{display:flex;gap:7px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-group label{display:block;font-weight:700;color:#334155;margin-bottom:6px;font-size:12px}.input,.select,.textarea{width:100%;border:1px solid #d9e2ec;background:#fff;border-radius:12px;padding:10px 12px;font-size:14px;color:#1e293b;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.16)}.textarea{min-height:88px;resize:vertical}.form-actions{display:flex;gap:10px;align-items:center;margin-top:16px;flex-wrap:wrap}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:white}.table{width:100%;border-collapse:collapse;min-width:860px}.table th{background:#f8fafc;color:#475569;text-align:left;font-size:12px;padding:11px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px;border-bottom:1px solid #edf2f7;vertical-align:middle;color:#334155}.table tr:last-child td{border-bottom:0}.muted{color:var(--slate);font-size:12px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-weight:800;font-size:11px;border:1px solid transparent;white-space:nowrap}.badge-success{background:#eaf8f1;color:var(--success);border-color:#c8ecd9}.badge-danger{background:#fff1f0;color:var(--danger);border-color:#ffd8d4}.badge-warning{background:#fff7e8;color:var(--warning);border-color:#ffe4ad}.badge-info{background:#eaf3fc;color:var(--info);border-color:#cbe1f4}.badge-muted{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.toolbar{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}.search-form{display:flex;gap:8px;flex-wrap:wrap}.search-form .input,.search-form .select{min-width:190px}.alert{border-radius:13px;padding:11px 13px;margin-bottom:14px;font-weight:650;border:1px solid}.alert-success{background:#edfdf5;border-color:#bcebd1;color:#176545}.alert-danger{background:#fff1f0;border-color:#ffd0cc;color:#a33a34}.empty-state{text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:16px;padding:32px 18px;color:#64748b}.empty-state h3{color:var(--navy);margin:6px 0}.empty-icon{width:44px;height:44px;margin:0 auto;background:#eef3f8;border-radius:15px;display:flex;align-items:center;justify-content:center;color:var(--navy);font-size:22px}.guide-float{position:fixed;right:22px;bottom:22px;z-index:24;border:0;border-radius:999px;background:var(--navy);color:#fff;padding:12px 17px;font-weight:800;box-shadow:0 14px 30px rgba(16,36,63,.22);cursor:pointer}.guide-modal{display:none;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:80;align-items:center;justify-content:center;padding:18px}.guide-modal.show{display:flex}.guide-card{background:#fff;border-radius:20px;box-shadow:0 25px 70px rgba(15,23,42,.22);max-width:560px;width:100%;padding:22px;position:relative}.guide-card h3{margin:0 44px 12px 0;color:var(--navy);font-size:19px}.guide-close{position:absolute;right:16px;top:14px;border:0;background:#eef3f8;color:var(--navy);border-radius:10px;width:34px;height:34px;font-size:22px;cursor:pointer}.guide-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.guide-list li{background:#f8fafc;border:1px solid #edf2f7;border-radius:13px;padding:11px}.guide-list strong{display:block;color:#10243f;margin-bottom:3px}.guide-list span{display:block;color:#64748b;font-size:13px}.login-page{min-height:100vh;background:linear-gradient(135deg,#eef3f8 0%,#f8fafc 55%,#e8eef5 100%);display:flex;align-items:center;justify-content:center;padding:18px}.login-card{width:100%;max-width:420px;background:white;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.login-card h1{margin:0;color:var(--navy);font-size:24px}.login-card p{margin:6px 0 20px;color:var(--slate)}.login-logo{width:48px;height:48px;border-radius:16px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;font-weight:900;margin-bottom:14px}.mini-list{display:grid;gap:10px}.mini-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2f7}.mini-row:last-child{border-bottom:0}.text-right{text-align:right}.w-100{width:100%}.span-2{grid-column:span 2}.overlay{display:none}.kpi-note{font-size:12px;color:var(--slate);margin-top:2px}
@media (max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){body{font-size:13px}.sidebar{transform:translateX(-105%);width:254px}.main-area,.collapsed .main-area{margin-left:0;width:100%}.collapsed .sidebar{width:254px}.collapsed .brand-text,.collapsed .nav-text{display:block}.collapsed .nav-item{justify-content:flex-start}.menu-btn{display:inline-flex;align-items:center;justify-content:center}.collapse-btn{display:none}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open .overlay{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:25}.topbar{padding:0 14px;height:66px}.topbar h1{font-size:17px}.topbar p{display:none}.user-pill{display:none}.content-wrap{padding:14px}.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.card{padding:14px;border-radius:15px}.stat-value{font-size:20px}.table{min-width:780px}.search-form{width:100%}.search-form .input,.search-form .select{min-width:100%;}.toolbar .btn{width:100%}.top-actions .btn{min-height:34px;padding:7px 10px}.guide-float{right:15px;bottom:15px;padding:10px 14px}.login-card{padding:22px;border-radius:20px}}
.toolbar{display:flex;gap:10px;margin:12px 0 16px;align-items:center}.toolbar .input{max-width:360px}.w-100{width:100%}.span-2{grid-column:span 2}.actions{display:flex;gap:6px;flex-wrap:wrap}.btn-danger{background:#fff1f2;color:#be123c;border-color:#fecdd3}.btn-danger:hover{background:#ffe4e6}.btn-small{padding:7px 10px;font-size:12px}.empty-state{text-align:center;padding:28px;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc}.empty-state h3{margin:0 0 6px;font-size:18px}.empty-state p{margin:0 0 14px;color:#64748b}.mini-row small{color:#64748b}.form-grid{align-items:start}@media(max-width:760px){.span-2{grid-column:span 1}.toolbar{flex-direction:column;align-items:stretch}.toolbar .input{max-width:none}.top-actions{gap:6px}.user-pill{display:none}}

/* Dashboard UI hotfix: compact KPI grid + professional panels */
.stat-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(180px,1fr));
  gap:14px;
  margin-bottom:16px;
}
.stat-grid .stat-card{
  min-height:96px;
  padding:14px 15px;
  display:block;
  position:relative;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
}
.stat-grid .stat-card::after{
  content:"";
  position:absolute;
  right:-22px;
  top:-24px;
  width:82px;
  height:82px;
  border-radius:999px;
  background:rgba(16,36,63,.045);
}
.stat-grid .stat-card span{
  display:block;
  color:#64748b;
  font-size:12px;
  font-weight:700;
  margin:0 0 8px;
}
.stat-grid .stat-card strong{
  display:block;
  color:#10243f;
  font-size:24px;
  line-height:1.05;
  font-weight:850;
  letter-spacing:-.03em;
  margin:0 0 7px;
}
.stat-grid .stat-card p{
  margin:0;
  color:#334155;
  font-size:13px;
  font-weight:650;
}
.panel{
  background:#ffffff;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  padding:18px;
}
.panel + .panel{margin-top:16px}
.panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.panel-head h2{
  margin:0;
  color:#10243f;
  font-size:16px;
  font-weight:800;
  letter-spacing:-.01em;
}
.panel-head p{
  margin:3px 0 0;
  color:#64748b;
  font-size:12px;
}
.grid-2{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.content-wrap{padding-top:22px}
@media(max-width:1180px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
  .stat-grid{grid-template-columns:1fr;gap:10px;margin-bottom:12px;}
  .stat-grid .stat-card{min-height:auto;padding:13px 14px;border-radius:15px;}
  .stat-grid .stat-card strong{font-size:21px;}
  .grid-2{grid-template-columns:1fr;gap:12px;}
  .panel{padding:14px;border-radius:15px;}
  .panel-head{align-items:flex-start;}
}

/* Phase 2 workflow polish */
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.detail-grid>div{background:#f8fafc;border:1px solid #edf2f7;border-radius:14px;padding:12px}
.detail-grid strong{display:block;color:#10243f;font-size:12px;margin-bottom:5px}
.detail-grid span{display:block;color:#475569;font-size:13px;line-height:1.4}
.table-wrap.compact .table{min-width:620px}
.quick-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.quick-flow span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:7px 10px;color:#475569;font-size:12px;font-weight:700}
.print-page{background:#e8eef5;color:#10243f;padding:22px;font-family:Arial,sans-serif}
.print-doc{max-width:900px;margin:0 auto;background:#fff;border:1px solid #dbe5ee;border-radius:18px;padding:30px;box-shadow:0 18px 40px rgba(15,23,42,.12)}
.print-actions{max-width:900px;margin:0 auto 12px;display:flex;justify-content:flex-end;gap:8px}
.print-top{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid #10243f;padding-bottom:18px;margin-bottom:20px}
.print-top h1{margin:0 0 6px;font-size:24px;color:#10243f}.print-top p{margin:0;color:#64748b;font-size:13px}.doc-badge{text-align:right}.doc-badge span{display:block;color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase}.doc-badge strong{font-size:22px;color:#10243f}
.print-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.print-item{border:1px solid #e2e8f0;border-radius:12px;padding:11px;background:#f8fafc}.print-item span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;font-weight:700;margin-bottom:5px}.print-item strong{display:block;color:#10243f;font-size:13px;line-height:1.4}
.print-table{width:100%;border-collapse:collapse;margin-top:12px}.print-table th,.print-table td{border:1px solid #dbe5ee;padding:11px;text-align:left}.print-table th{background:#f8fafc;color:#10243f}.print-table tfoot th{font-size:15px}.print-note{border:1px solid #e2e8f0;background:#f8fafc;border-radius:12px;padding:12px;margin-top:14px;color:#475569;line-height:1.5}.signature-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}.signature-row div{border-top:1px solid #10243f;padding-top:10px;text-align:center;color:#475569;font-weight:700}
@media(max-width:900px){.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.print-grid{grid-template-columns:1fr 1fr}.print-page{padding:12px}.print-doc{padding:18px}}
@media(max-width:600px){.detail-grid,.print-grid,.signature-row{grid-template-columns:1fr}.print-top{display:block}.doc-badge{text-align:left;margin-top:12px}.actions .btn-small{min-height:29px;padding:6px 8px;font-size:11px}}
@media print{body.print-page{background:#fff;padding:0}.print-actions{display:none}.print-doc{box-shadow:none;border:0;border-radius:0;max-width:none;padding:0}.btn{display:none}.badge{border:1px solid #999;color:#111;background:#fff}}


/* Phase 3 operations and receivables polish */
.workflow-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:11px 12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.workflow-strip span{font-size:12px;font-weight:850;color:#10243f;margin-right:2px}.workflow-strip a{display:inline-flex;align-items:center;min-height:30px;padding:7px 10px;border-radius:999px;background:#f8fafc;border:1px solid #e2e8f0;color:#334155;font-size:12px;font-weight:750;text-decoration:none}.workflow-strip a:hover{background:#eef4fb;color:#10243f}.alert-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}.alert-card{display:flex;align-items:center;gap:12px;text-decoration:none;border-radius:18px;padding:14px 16px;border:1px solid #e2e8f0;background:#fff;box-shadow:var(--shadow)}.alert-card strong{font-size:22px;color:#10243f}.alert-card span{color:#475569;font-size:13px;font-weight:700}.alert-card.danger{border-color:#fecaca;background:#fff7f7}.alert-card.warning{border-color:#fed7aa;background:#fffaf3}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.calendar-list{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.calendar-day{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:12px;min-height:94px}.calendar-day strong{display:block;color:#10243f;font-size:14px}.calendar-day span{display:block;color:#64748b;font-size:12px;margin:4px 0 10px}.calendar-day p{margin:0;color:#334155;font-size:12px;font-weight:750}.aging-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.aging-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px}.aging-grid span{display:block;color:#64748b;font-size:12px;font-weight:750;margin-bottom:8px}.aging-grid strong{display:block;color:#10243f;font-size:22px;letter-spacing:-.03em}.list-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px}.list-summary span,.list-summary a{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:7px 10px;color:#475569;text-decoration:none;font-size:12px;font-weight:700}.list-summary strong{color:#10243f}.compact-select{max-width:180px}
@media(max-width:1180px){.grid-3{grid-template-columns:1fr}.calendar-list{grid-template-columns:repeat(4,minmax(0,1fr))}.aging-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.alert-row{grid-template-columns:1fr}.workflow-strip{border-radius:15px;gap:6px}.workflow-strip a{font-size:11px;padding:6px 8px}.calendar-list,.aging-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.compact-select{max-width:none}.alert-card{padding:12px 13px}}
