:root{--navy:#1A3862;--navy-700:#13294a;--navy-600:#274a7d;--navy-50:#eef2f8;--gold:#F9B101;--gold-dark:#d99700;--gold-50:#fff6dd;--gold-100:#ffefc2;--gray:#E5E6E4;--card:#ffffff;--ink:#16233a;--muted:#71798a;--line:#e4e8ef;--danger:#d6453a;--danger-bg:#fdecea;--radius:18px;--shadow:0 1px 2px rgba(16,30,54,.04),0 8px 24px -8px rgba(16,30,54,.14);--shadow-lg:0 18px 50px -12px rgba(16,30,54,.3);--glass:rgba(255,255,255,.72);--glass-brd:rgba(255,255,255,.65);--sidebar-w:262px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Montserrat,-apple-system,Segoe UI,sans-serif;color:var(--ink);font-size:14px;line-height:1.55;background:radial-gradient(1100px 600px at -5% -10%,rgba(26,56,98,.14),transparent 60%),radial-gradient(900px 600px at 105% 110%,rgba(249,177,1,.12),transparent 55%),linear-gradient(180deg,#eef1f6,#e8ecf3);background-attachment:fixed;min-height:100vh}h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.02em}.muted{color:var(--muted)}.hint{font-size:12px;color:var(--muted)}.app-shell{display:flex;min-height:100vh}fieldset.nofs{border:0;margin:0;padding:0;min-width:0}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1100px 600px at -5% -10%,rgba(26,56,98,.16),transparent 60%),radial-gradient(900px 600px at 105% 110%,rgba(249,177,1,.14),transparent 55%),linear-gradient(180deg,#eef1f6,#e8ecf3)}.login-card{width:360px;max-width:92vw;background:var(--glass,#fff);border:1px solid var(--glass-brd,#e4e8ef);border-radius:18px;box-shadow:var(--shadow-lg);padding:30px 28px;display:flex;flex-direction:column;gap:12px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-logo{display:flex;justify-content:center;margin-bottom:2px}.login-logo .mark{color:var(--navy);font-weight:800;font-size:34px;letter-spacing:2px;position:relative;padding-bottom:8px}.login-logo .mark:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:0;width:44px;height:4px;background:var(--gold);border-radius:2px}.login-card h2{text-align:center;color:var(--navy);font-size:17px;margin-top:6px}.login-card .muted{text-align:center}.login-err{background:var(--danger-bg);color:var(--danger);border:1px solid #f3c7c2;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600}.userchip{display:flex;flex-direction:column;align-items:flex-end;margin-right:6px;line-height:1.15}.userchip .uname{font-size:12.5px;font-weight:700;color:var(--navy)}.userchip .urole{font-size:10.5px;font-weight:700;color:var(--gold-dark);text-transform:uppercase;letter-spacing:.4px}.btn-navy{background:var(--navy);color:#fff;border:0}.btn-navy:hover{background:var(--navy-600)}.users-tbl{width:100%;border-collapse:collapse}.users-tbl th{background:#fff;border-bottom:1px solid var(--line);text-transform:uppercase;font-size:11px;letter-spacing:.5px;color:var(--muted);text-align:left;padding:12px 14px;font-weight:700}.users-tbl td{border-bottom:1px solid var(--line);padding:14px;font-size:13px;vertical-align:middle}.pill-status{display:inline-block;font-size:11px;font-weight:700;padding:3px 12px;border-radius:20px}.pill-status.on{background:#e6f0ff;color:#1d4ed8}.pill-status.off{background:#f1f3f5;color:#6b7480}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#101e3673;z-index:300;padding:16px;overflow:auto;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:#fff;border-radius:18px;box-shadow:var(--shadow-lg);width:560px;max-width:94vw;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;margin:auto}.modal-head{flex:none;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.modal-head h3{color:var(--navy);font-size:17px}.modal-x{border:1px solid var(--line);background:#fff;border-radius:10px;width:32px;height:32px;font-size:18px;cursor:pointer;color:var(--muted)}.modal-x:hover{background:var(--navy-50)}.modal-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.modal-body .field{gap:5px}.modal-foot{flex:none;display:flex;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--line)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pw-row{display:flex;gap:8px;align-items:center}.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;font-size:14px;line-height:1;padding:0}@media (max-width:560px){.row2{grid-template-columns:1fr}}.sidebar{width:var(--sidebar-w);flex:none;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;color:#fff;background:radial-gradient(420px 200px at 30% 6%,rgba(249,177,1,.16),transparent 60%),linear-gradient(165deg,#22467a,#1a3862 42%,#122742);box-shadow:14px 0 40px -20px #101e368c}.sidebar .logo{display:flex;align-items:flex-end;gap:13px;padding:30px 24px 26px}.sidebar .logo .mark{color:#fff;font-weight:800;font-size:30px;letter-spacing:2px;line-height:1;position:relative;padding-bottom:8px;text-shadow:0 2px 10px rgba(0,0,0,.2)}.sidebar .logo .mark:after{content:"";position:absolute;left:0;bottom:0;width:38px;height:4px;background:linear-gradient(90deg,var(--gold),#ffd061);border-radius:3px}.sidebar .logo .tag{font-size:11px;opacity:.78;font-weight:600;line-height:1.25;padding-bottom:3px}.sidebar nav{padding:10px 14px;display:flex;flex-direction:column;gap:6px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:14px;color:#c4d0e2;font-weight:600;font-size:13.5px;cursor:pointer;border:1px solid transparent;transition:.18s;background:none;text-align:left;font-family:inherit;width:100%;position:relative}.nav-item svg{width:19px;height:19px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9}.nav-item .step{margin-left:auto;font-size:10.5px;opacity:.5;font-weight:700;background:#ffffff14;width:20px;height:20px;border-radius:7px;display:grid;place-items:center}.nav-item:hover{background:#ffffff0f;color:#fff}.nav-item.active{color:#fff;background:#ffffff1f;border-color:#ffffff29;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 22px -10px #00000080,inset 0 1px #ffffff24}.nav-item.active:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:4px;border-radius:3px;background:linear-gradient(180deg,#ffd061,var(--gold))}.nav-item.active svg{color:var(--gold)}.nav-item.active .step{background:#f9b10133;color:#ffe39b;opacity:1}.sidebar .foot{margin-top:auto;padding:20px 24px;font-size:11px;color:#ffffff6b;border-top:1px solid rgba(255,255,255,.08)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:16px 30px;background:#ffffff9e;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.5);box-shadow:0 6px 20px -16px #101e3666}.appbar h1{font-size:20px;color:var(--navy)}.appbar .crumb{font-size:12px;color:var(--muted);font-weight:500}.appbar .actions{display:flex;gap:10px;flex-wrap:wrap}.content{padding:30px;max-width:1200px;width:100%;margin:0 auto}.btn{border:0;border-radius:12px;padding:11px 17px;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.18s;display:inline-flex;align-items:center;gap:8px}.btn:active{transform:translateY(1px)}.btn-outline{background:#ffffffb3;color:var(--navy);border:1.5px solid rgba(26,56,98,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn-outline:hover{border-color:var(--navy);background:#fff;box-shadow:0 6px 16px -10px #101e3680}.btn-generate{background:linear-gradient(135deg,#ffce4f,#f9b101);color:#3a2a00;font-size:14px;padding:12px 22px;box-shadow:0 10px 24px -8px #f9b101b3}.btn-generate:hover{filter:brightness(1.04);box-shadow:0 14px 30px -8px #f9b101cc}.btn-sm{padding:8px 13px;font-size:12px}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-add{background:linear-gradient(135deg,var(--navy-600),var(--navy));color:#fff;box-shadow:0 8px 20px -10px #1a3862b3}.btn-add:hover{filter:brightness(1.08)}.hero{border-radius:24px;padding:38px;color:#fff;position:relative;overflow:hidden;background:radial-gradient(600px 240px at 88% -20%,rgba(249,177,1,.3),transparent 60%),linear-gradient(135deg,#274a7d,#1a3862 55%,#122742);box-shadow:var(--shadow-lg)}.hero:after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(249,177,1,.22),transparent 70%)}.hero h2{font-size:24px;margin-bottom:8px;position:relative}.hero p{font-size:13.5px;opacity:.9;margin:0 0 24px;max-width:700px;position:relative}.dropzone{position:relative;border:2px dashed rgba(255,255,255,.38);border-radius:16px;padding:54px 24px;text-align:center;cursor:pointer;transition:.18s;background:#ffffff0f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dropzone:hover,.dropzone.drag{border-color:var(--gold);background:#f9b10124;transform:translateY(-1px)}.dropzone .ic{font-size:42px;margin-bottom:12px;line-height:1}.dropzone .big{font-size:17px;font-weight:800;margin-bottom:6px}.dropzone .small{font-size:12.5px;opacity:.82;font-weight:500}.filechips{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px;position:relative}.filechip{background:#ffffff24;border:1px solid rgba(255,255,255,.22);border-radius:30px;padding:6px 14px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:7px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.filechip .ok{color:var(--gold)}.card{background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--glass-brd);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:24px}.card-head{padding:20px 24px;border-bottom:1px solid rgba(228,232,239,.7);display:flex;align-items:center;gap:15px}.card-head .num{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--navy-600),var(--navy));color:#fff;display:grid;place-items:center;font-weight:800;font-size:16px;flex:none;box-shadow:0 8px 18px -8px #1a3862b3}.card-head h2{font-size:17px;color:var(--navy)}.card-head .sub{font-size:12px;color:var(--muted);font-weight:500}.card-body{padding:24px}.grid{display:grid;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr)}@media (max-width:780px){.grid-3{grid-template-columns:1fr}}label.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:var(--navy)}input,select{border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;font-size:13px;font-family:inherit;font-weight:500;color:var(--ink);width:100%;background:#ffffffd9;transition:.16s}input:hover,select:hover{border-color:#c4ccd8}input:focus,select:focus{outline:none;border-color:var(--navy);background:#fff;box-shadow:0 0 0 4px #1a38621f}table{width:100%;border-collapse:collapse}th,td{padding:12px 13px;text-align:left;border-bottom:1px solid rgba(228,232,239,.8);font-size:13px;vertical-align:middle}th{background:#eef2f8b3;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--navy);font-weight:700}.num-cell{text-align:right;font-variant-numeric:tabular-nums}.item-tbl input{padding:9px 10px}.row-x{background:none;border:0;color:var(--danger);font-size:20px;cursor:pointer;line-height:1}.sup-card{border:1px solid var(--line);border-radius:16px;margin-bottom:18px;overflow:hidden;background:#fff9}.sup-head{display:flex;align-items:center;gap:12px;padding:15px 18px;background:#eef2f8b3;border-bottom:1px solid var(--line)}.sup-head .tag{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--navy-600),var(--navy));color:#fff;display:grid;place-items:center;font-weight:800;flex:none;box-shadow:0 6px 14px -8px #1a3862b3}.sup-head input.sup-name{font-weight:700;font-size:15px;border:1.5px solid transparent;background:transparent;flex:1;min-width:120px;color:var(--navy)}.sup-head input.sup-name:hover{border-color:var(--line);background:#fff}.sup-body{padding:18px}.upload-zone{border:2px dashed #c4ccd8;border-radius:12px;padding:16px;text-align:center;color:var(--muted);cursor:pointer;transition:.16s;background:#fafbfdb3;font-weight:600;font-size:12.5px}.upload-zone:hover{border-color:var(--navy);color:var(--navy);background:var(--navy-50)}.upload-zone.has-file{border-style:solid;border-color:var(--gold-dark);background:var(--gold-50);color:var(--navy)}.extracted{margin-top:10px;font-size:12px;background:var(--navy-700);color:#cbd5e1;border-radius:10px;padding:14px;max-height:170px;overflow:auto;white-space:pre-wrap;font-family:ui-monospace,Consolas,monospace}.matrix-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line);background:#ffffff80}.matrix th.sup-col{text-align:right;min-width:144px}.matrix td.price-cell{text-align:right}.matrix td.price-cell input{text-align:right;font-variant-numeric:tabular-nums}.matrix td.price-cell .amt{font-size:11px;color:var(--muted);margin-top:4px;font-weight:600}.matrix td.lowest{background:var(--gold-50)}.matrix td.lowest input{color:var(--navy);font-weight:800;border-color:var(--gold-dark)}.matrix td.lowest .amt{color:var(--gold-dark)}.matrix tfoot tr.totrow td{font-weight:800;background:#eef2f8d9;color:var(--navy);border-top:2px solid var(--navy)}.matrix tfoot tr.totrow td.awarded{background:var(--gold-50);box-shadow:inset 0 0 0 2px var(--gold-dark)}.matrix tfoot tr.attrrow td{background:#fff;border-top:none;border-bottom:1px solid var(--line);font-size:12px}.matrix tfoot tr.attrrow td:first-child{font-weight:700;color:var(--navy);background:var(--navy-50);text-align:left}.matrix tfoot tr.attrrow input{border:1px solid var(--line);border-radius:6px;padding:5px 7px;font-size:12px;width:100%;text-align:right;font-weight:500;font-family:inherit;background:#fff}.matrix tfoot tr.awardrow td{background:#fff;border-top:1px solid var(--line)}.matrix tfoot tr.awardrow td:first-child{font-weight:700;color:var(--navy);background:var(--navy-50);text-align:left}.award-badge{display:inline-block;font-size:11px;font-weight:800;color:#3a2a00;background:linear-gradient(135deg,#ffce4f,var(--gold));padding:4px 12px;border-radius:30px;letter-spacing:.4px;box-shadow:0 6px 16px -8px #f9b101cc}.reco-box{background:linear-gradient(135deg,var(--gold-50),#fffaf0);border:1.5px solid var(--gold);border-radius:14px;padding:18px 20px;margin-top:18px;box-shadow:0 10px 26px -14px #f9b10199}.empty{padding:38px;text-align:center;color:var(--muted);border:2px dashed var(--line);border-radius:14px;font-weight:600}.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:#13294af5;color:#fff;padding:13px 22px;border-radius:14px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);z-index:200;opacity:0;transition:.25s;pointer-events:none;max-width:90vw;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast.show{opacity:1}.banner{font-size:12.5px;font-weight:600;padding:11px 16px;border-radius:12px;margin-bottom:18px}.banner.warn{background:var(--gold-50);color:var(--gold-dark);border:1px solid var(--gold-100)}details.adv{margin-top:10px;border:1px solid var(--line);border-radius:14px;background:#ffffff8c}details.adv>summary{cursor:pointer;padding:15px 20px;font-weight:700;color:var(--navy);font-size:13.5px;list-style:none}details.adv>summary::-webkit-details-marker{display:none}details.adv>summary:before{content:"▸ "}details.adv[open]>summary:before{content:"▾ "}@media (max-width:900px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;overflow-x:auto}.sidebar .logo{padding:14px 18px}.sidebar nav{flex-direction:row;flex:1;gap:6px}.nav-item{border-bottom:none;white-space:nowrap}.nav-item.active:before{display:none}.nav-item .step,.sidebar .foot{display:none}}#printArea{display:none}@media print{@page{size:A4 landscape;margin:12mm}body{background:#fff;font-family:Montserrat,sans-serif}#root,.modal-overlay{display:none!important}#printArea{display:block;color:#000;font-size:11px}#printArea .doc-head{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #1A3862;padding-bottom:10px;margin-bottom:12px}#printArea .doc-head .mark{display:inline-block;color:#1a3862;font-weight:800;font-size:24px;letter-spacing:1.5px;line-height:1;padding-bottom:3px;border-bottom:3px solid #F9B101;-webkit-print-color-adjust:exact;print-color-adjust:exact}#printArea .doc-head .co{font-size:11px;color:#1a3862;font-weight:700;margin-top:6px}#printArea h1.doc-title{font-size:16px;text-align:center;margin:6px 0 14px;text-transform:uppercase;letter-spacing:3px;color:#1a3862}#printArea .meta-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px 18px;font-size:10.5px;margin-bottom:14px}#printArea .meta-grid div span{color:#666;display:inline-block;min-width:95px;font-weight:600}#printArea table{width:100%;border-collapse:collapse;margin-bottom:10px}#printArea th,#printArea td{border:1px solid #9aa3b0;padding:5px 7px;font-size:10px}#printArea th{background:#1a3862!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:700}#printArea td.r{text-align:right;font-variant-numeric:tabular-nums}#printArea td.c{text-align:center}#printArea td.win{background:#fff0c2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:700}#printArea tfoot td{font-weight:700;background:#e8edf4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#1a3862}#printArea .reco{border:1.5px solid #F9B101;background:#fff6dd!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:9px 14px;margin:10px 0;font-size:11px;border-radius:4px}#printArea .sign-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:90px;margin:56px auto 0;width:100%}#printArea .sign-box{margin:0 auto;width:80%;text-align:center;font-size:10px}#printArea .sign-box b{display:block;text-transform:uppercase;color:#1a3862;border-bottom:1px solid #000;padding-bottom:4px;margin-bottom:5px;min-height:16px}}
