:root{--navy: #005179;--navy-deep: #003b5c;--navy-tint: #eef3f7;--red: #e31e25;--red-tint: #fdeced;--grey: #828282;--ink: #262626;--ink-soft: #4d5560;--line: #d9e0e6;--line-soft: #e9eef2;--bg: #f1f4f7;--paper: #ffffff;--green: #1e7f4f;--green-tint: #e6f4ec;--amber: #b26a00;--amber-tint: #fff4e0;--radius: 8px;--radius-sm: 6px;--shadow-sm: 0 1px 2px rgba(16,32,48,.06), 0 1px 3px rgba(16,32,48,.04);--shadow-md: 0 6px 18px rgba(16,32,48,.1);--navy-soft: #e8f0f6;--sidebar: 228px;--font: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:14px;color:var(--ink);background:var(--bg);line-height:1.45}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:22px;letter-spacing:-.02em}h2{font-size:15px}h3{font-size:14px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--navy);outline-offset:1px}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);background:linear-gradient(180deg,#045a86 0%,var(--navy) 40%,var(--navy-deep) 100%);color:#fff;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;box-shadow:4px 0 20px #0028461f}.brand{display:flex;align-items:center;gap:10px;padding:16px 18px 14px;border-bottom:1px solid rgba(255,255,255,.14)}.brand img{height:38px;background:#fff;padding:4px 8px;border-radius:6px}.brand b{font-size:13px;letter-spacing:.08em}.brand small{display:block;font-size:11px;opacity:.75;letter-spacing:0}.nav{flex:1;overflow-y:auto;padding:8px 0 16px}.nav-group{padding:14px 26px 4px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.55}.nav a{display:block;margin:1px 10px;padding:8px 12px 8px 16px;color:#ffffffdb;font-size:13.5px;border-radius:6px;transition:background .12s,color .12s}.nav a:hover{background:#ffffff1a;color:#fff;text-decoration:none}.nav a.active{background:#ffffff29;color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--red)}.sidebar-foot{padding:12px 18px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px}.sidebar-foot .role{opacity:.7}.sidebar-foot button{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;padding:4px 10px;border-radius:var(--radius);cursor:pointer;margin-top:8px;font-size:12px}.main{flex:1;min-width:0;padding:22px 28px 40px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;padding-left:14px;position:relative}.page-head:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:4px;border-radius:2px;background:var(--red)}.page-head .sub{color:var(--ink-soft);font-size:13px;margin-top:2px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel-body{padding:16px 18px}.panel-head{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(180deg,#fbfcfd,#fff);border-radius:var(--radius) var(--radius) 0 0}.grid{display:grid;gap:14px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--ink-soft)}.small{font-size:12.5px}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-variant-numeric:tabular-nums}.mt{margin-top:14px}.error{background:var(--red-tint);color:#8a1216;border:1px solid #f3b9bb;padding:8px 12px;border-radius:var(--radius);font-size:13px}.note{background:var(--navy-tint);border:1px solid #cddbe6;padding:8px 12px;border-radius:var(--radius);font-size:13px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:1px solid var(--navy);background:#fff;color:var(--navy);font-weight:600;cursor:pointer;font-size:13.5px;white-space:nowrap;transition:background .12s,box-shadow .12s,transform .06s}.btn:hover{background:var(--navy-tint);text-decoration:none}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 2px 6px #e31e2547}.btn.primary:hover{background:#c8171d;box-shadow:0 4px 10px #e31e2552}.btn.navy{background:var(--navy);color:#fff}.btn.navy:hover{background:var(--navy-deep)}.btn.ghost{border-color:var(--line);color:var(--ink-soft)}.btn.ghost:hover{background:var(--bg)}.btn.danger{border-color:#f3b9bb;color:var(--red)}.btn.danger:hover{background:var(--red-tint)}.btn.sm{padding:4px 10px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{background:none;border:none;color:var(--navy);cursor:pointer;padding:0;font-size:13px}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:var(--red)}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;color:var(--ink-soft);font-weight:600;letter-spacing:.01em}.field label .req{color:var(--red)}.input,select.input,textarea.input{width:100%;padding:8px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font-size:13.5px;transition:border-color .12s,box-shadow .12s}.input:hover{border-color:#bcc7d1}.input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px #00517924}.input:disabled,.input[readonly]{background:var(--bg);color:var(--ink-soft)}textarea.input{min-height:64px;resize:vertical}.input.num{text-align:right}.checkbox{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer}.form-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:14px;border-top:1px solid var(--line-soft);margin-top:16px}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:11.5px;color:var(--navy);font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:10px 12px;background:var(--navy-soft);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.table tbody tr:nth-child(2n){background:#fafbfd}.table tbody tr:hover{background:var(--navy-tint)}.table tr.clickable{cursor:pointer}.table th.num,.table td.num{text-align:right}.table tfoot td{font-weight:600;background:#fafbfc;border-top:1px solid var(--line)}.table .empty{text-align:center;color:var(--ink-soft);padding:28px}.table-wrap{overflow-x:auto;overflow-y:visible}.toolbar{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap;background:#fbfcfd;border-radius:var(--radius) var(--radius) 0 0}.toolbar .input{width:260px}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pill.grey{background:#eceff2;color:#4d5560}.pill.blue{background:#e3eef6;color:var(--navy)}.pill.navy{background:var(--navy);color:#fff}.pill.green{background:var(--green-tint);color:var(--green)}.pill.amber{background:var(--amber-tint);color:var(--amber)}.pill.red{background:var(--red-tint);color:var(--red)}.doc-head{display:grid;grid-template-columns:1.4fr 1fr;gap:0;border-bottom:1px solid var(--line)}.doc-head>div{padding:14px 18px}.doc-head>div+div{border-left:1px solid var(--line)}.doc-party{font-size:15px;font-weight:600}.kv{display:grid;grid-template-columns:140px 1fr;gap:3px 12px;font-size:13px}.kv .k{color:var(--ink-soft)}.totals{margin-left:auto;width:320px;font-size:13.5px}.totals div{display:flex;justify-content:space-between;padding:4px 0}.totals .grand{border-top:2px solid var(--navy);margin-top:4px;padding-top:8px;font-weight:700;font-size:16px;color:var(--navy)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);padding:0 18px}.tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:10px 12px;cursor:pointer;color:var(--ink-soft);font-weight:500}.tabs button.active{color:var(--navy);border-bottom-color:var(--red);font-weight:600}.progress{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden;min-width:80px}.progress span{display:block;height:100%;background:var(--navy)}.lines th{background:var(--navy-soft)}.lines td{padding:8px 6px;vertical-align:top}.lines tbody tr:nth-child(2n){background:transparent}.lines tbody tr:hover{background:transparent}.lines textarea.input{min-height:56px;font-size:13px}.lines .input{padding:5px 8px;font-size:13px}.lines .desc{min-width:260px}.lines .del{color:var(--red);background:none;border:none;cursor:pointer;font-size:16px;line-height:1;padding:4px}.picker-list{position:fixed;z-index:1000;background:#fff;border:1px solid var(--line);border-radius:8px;overflow-y:auto;box-shadow:0 12px 32px #001e3229;padding:4px}.picker-list button{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:none;cursor:pointer;border-radius:6px;font-size:13.5px;line-height:1.35}.picker-list button:hover,.picker-list button.hl{background:var(--navy-tint);color:var(--navy)}.picker-list small{display:block;color:var(--ink-soft);font-size:12px;margin-top:1px}.picker-empty{padding:10px 12px;color:var(--ink-soft);font-size:13px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2873;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:#fff;border-radius:12px;width:min(560px,94vw);max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #00142847}.modal .panel-head h2{font-size:15px}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:var(--ink);color:#fff;padding:10px 14px;border-radius:var(--radius);font-size:13.5px;box-shadow:0 6px 20px #0003;border-left:4px solid var(--green)}.toast.error{border-left-color:var(--red)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm);border-top:3px solid var(--navy)}.stat.alert{border-top-color:var(--red)}.stat .label{font-size:12.5px;color:var(--ink-soft)}.stat .value{font-size:22px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}.stat.alert .value{color:var(--red)}.stat.navy{background:linear-gradient(135deg,#04618f,var(--navy-deep));border-color:var(--navy);color:#fff}.stat.navy .label{color:#ffffffbf}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-art{background:var(--navy);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}.login-art .shaft{flex:1;display:flex;align-items:center;justify-content:center}.login-art p{max-width:380px;opacity:.85;line-height:1.6}.login-form{display:flex;align-items:center;justify-content:center;padding:32px}.login-form form{width:340px}.login-form img{height:52px;margin-bottom:20px}@media (max-width: 900px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.nav{display:flex;flex-wrap:wrap;padding:4px 8px}.nav-group{display:none}.nav a{padding:6px 10px;border-left:none;border-bottom:2px solid transparent}.nav a.active{border-bottom-color:var(--red)}.main{padding:14px}.grid-2,.grid-3,.grid-4,.stats{grid-template-columns:1fr 1fr}.doc-head{grid-template-columns:1fr}.doc-head>div+div{border-left:none;border-top:1px solid var(--line)}.login{grid-template-columns:1fr}.login-art{display:none}}.ledger-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 16px;border-top:1px solid var(--line);background:#fbfcfd}.ledger-sum>div{display:flex;flex-direction:column;gap:2px}.ledger-sum .k{font-size:12px;color:var(--ink-soft)}.ledger-sum .v{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.ledger-sum .v.red{color:var(--red)}.table tr.opening td{background:var(--navy-tint);font-weight:600}.print-only{display:none}@media print{.sidebar,.no-print,.toolbar,.page-head .actions{display:none!important}.shell{display:block}.main{padding:0}.panel{box-shadow:none}.print-only{display:block}.table{font-size:11px}a{color:inherit;text-decoration:none}}.months{display:inline-flex;flex-wrap:wrap;gap:4px}.months button{border:1px solid var(--line);background:#fff;color:var(--ink-soft);border-radius:6px;padding:3px 7px;font-size:12px;font-weight:600;cursor:pointer;min-width:38px}.months button.on{background:var(--navy);border-color:var(--navy);color:#fff}.months button:disabled{cursor:default;opacity:.6}.amc-group td{background:var(--navy-tint)}.amc-group.done td{background:#f4f6f8}@keyframes flashRed{0%,to{background:#fdecec}50%{background:#f8caca}}.flash-red{animation:flashRed 1.6s ease-in-out infinite;border-left:4px solid var(--red);background:#fdecec}@media (prefers-reduced-motion: reduce){.flash-red{animation:none}}.steps{display:flex;gap:4px;flex-wrap:wrap}.steps .step{flex:1 1 0;min-width:92px;border-radius:6px;padding:4px 6px;font-size:11px;line-height:1.25;border:1px solid var(--line);background:#fff;color:var(--muted, #6b7785)}.steps .step b{display:block;font-size:11px}.steps .step.done{background:#e6f4ea;border-color:#b9dfc4;color:#1d6b39}.steps .step.now{background:#fff3d6;border-color:#f0cd83;color:#8a5a00}.steps .step.skip{opacity:.55}.rfq-compare td.rfq-low{background:var(--green-tint)}.rfq-compare td.rfq-pick{box-shadow:inset 0 0 0 2px var(--navy);font-weight:600}.steps a.step.now{text-decoration:none;cursor:pointer}.steps a.step.now:hover{border-color:#d9a43a;box-shadow:var(--shadow-sm)}.steps .step .step-go{display:block;margin-top:2px;font-weight:700;color:var(--navy)}.flow{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:10px}.flow-step{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper)}.flow-step.busy{border-color:#f0cd83;background:#fffaf0}.flow-step .flow-head{display:flex;align-items:center;gap:8px}.flow-step .flow-n{flex:none;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.flow-step h3{margin:0;font-size:13.5px;color:var(--ink)}.flow-step p{margin:0;flex:1;font-size:12px;line-height:1.4;color:var(--ink-soft)}.flow-step .flow-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.flow-step .flow-foot a{font-size:12px;font-weight:600}.flow-count{border:1px solid transparent;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700;background:var(--navy-tint);color:var(--navy);cursor:pointer;font-family:inherit}.flow-count.zero{background:transparent;color:var(--grey);cursor:default}.flow-count.active{background:var(--navy);color:#fff}.flow-count:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.steps.compact .step{min-width:0;padding:4px 5px;font-size:10.5px}.steps.compact .step b{font-size:10.5px}@media (max-width: 560px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.panel-head{flex-wrap:wrap;gap:6px}.page-head{flex-wrap:wrap;gap:8px}}
