@import url(https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap);:root{--paper:#F3F4F7;--surface:#FFFFFF;--surface-2:#EBEDF2;--ink:#161A24;--slate:#5C6478;--slate-soft:#8A91A3;--line:#DEE1E8;--accent:#005828;--accent-ink:#00401D;--accent-soft:#DCEEE1;--good:#2F8F5B;--good-soft:#E1F1E8;--warn:#B4790F;--warn-soft:#FAF0DA;--critical:#B23C29;--critical-soft:#FBE6E1;--focus:#2F6FA6;--shadow:0 1px 2px rgba(22,26,36,.05),0 6px 20px rgba(22,26,36,.06);--brand-navy:#003258;--brand-green:#005828}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#12141B;--surface:#1A1D27;--surface-2:#20232F;--ink:#ECEEF3;--slate:#A0A7B8;--slate-soft:#767E90;--line:#2B2F3D;--accent:#4FAE7B;--accent-ink:#8FD9AE;--accent-soft:#1B3323;--good:#5FBE8B;--good-soft:#1B3227;--warn:#E0AC50;--warn-soft:#3A2E17;--critical:#E28874;--critical-soft:#3A2019;--focus:#6FA8D8;--shadow:0 1px 2px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.4)}}:root[data-theme=dark]{--paper:#12141B;--surface:#1A1D27;--surface-2:#20232F;--ink:#ECEEF3;--slate:#A0A7B8;--slate-soft:#767E90;--line:#2B2F3D;--accent:#4FAE7B;--accent-ink:#8FD9AE;--accent-soft:#1B3323;--good:#5FBE8B;--good-soft:#1B3227;--warn:#E0AC50;--warn-soft:#3A2E17;--critical:#E28874;--critical-soft:#3A2019;--focus:#6FA8D8;--shadow:0 1px 2px rgba(0,0,0,.35),0 6px 20px rgba(0,0,0,.4)}*{box-sizing:border-box}html{color-scheme:light dark}body,html{background:var(--paper);margin:0;padding:0}body{color:var(--ink);font-family:Sora,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}img{max-width:100%}.mono{font-family:"IBM Plex Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}h1,h2,h3{font-family:Sora,sans-serif;margin:0;text-wrap:balance}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:14px}a{color:var(--accent-ink)}::selection{background:var(--accent-soft)}#app-shell{min-height:100vh;display:flex;flex-direction:column}#topbar{background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;margin-right:8px}.brand-logo{display:block;height:40px;width:auto}nav.tabs{display:flex;gap:2px;overflow-x:auto;flex:1}nav.tabs button{background:0 0;border:none;padding:9px 13px;border-radius:7px;cursor:pointer;font-size:13px;font-weight:600;color:var(--slate);white-space:nowrap}nav.tabs button:hover{background:var(--surface-2);color:var(--ink)}nav.tabs button.active{background:var(--accent-soft);color:var(--accent-ink)}#savebadge{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--slate-soft);white-space:nowrap}#savebadge.busy{color:var(--warn)}#savebadge.err{color:var(--critical)}#savebadge.ok{color:var(--good)}main{flex:1;padding:10px 8px 40px;max-width:2200px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:16px}.row{display:flex;gap:14px;flex-wrap:wrap}.col{flex:1;min-width:180px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field label{font-size:11.5px;font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:7px;padding:8px 10px;background:var(--paper);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--focus);outline-offset:1px}.field textarea{resize:vertical;min-height:70px}.field input[readonly],.field textarea[readonly]{background:var(--surface-2);color:var(--slate);cursor:default}.hint{font-size:12px;color:var(--slate-soft)}h2.section-title{font-size:18px;font-weight:700;margin-bottom:4px}p.section-sub{color:var(--slate);font-size:13px;margin:0 0 16px}.btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 14px;border-radius:8px;font-weight:600;font-size:13px;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{border-color:transparent;background:0 0}.btn.danger{color:var(--critical)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:5px 9px;font-size:12px;border-radius:6px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{text-align:left;font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate-soft);background:var(--surface-2);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;position:relative}tbody td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.rowactions{white-space:nowrap;text-align:right}.note-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.note-toolbar select{width:auto;padding:4px 8px}.note-toolbar .nt-colorlbl{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted,#667085)}.note-toolbar input[type=color]{width:30px;height:26px;padding:0;border:1px solid var(--line);border-radius:6px;background:0 0}.it-note[contenteditable]{min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2,#f2f4f7);font-size:13px;line-height:1.4;outline:0}.it-note[contenteditable]:focus{border-color:var(--brand,#00552a)}.it-note[contenteditable]:empty:before{content:attr(data-placeholder);color:#98a2b3}.qtable thead th{background:var(--brand-navy);color:#eaf1f7;border-bottom-color:var(--brand-navy);position:relative;white-space:normal}.qtable thead th.sortable{cursor:pointer;user-select:none}.qtable thead th.sortable:hover{filter:brightness(1.25)}.qtable tbody td{overflow-wrap:break-word;white-space:normal}.qtable tbody td.mono,.qtable tbody td.num,.qtable tbody td:last-child{white-space:nowrap}.qtable tbody td:nth-child(5){white-space:nowrap}.qtable thead th{white-space:nowrap}.qtable tbody td:nth-child(2),.qtable tbody td:nth-child(3){min-width:170px}.qtable td.num{font-weight:600}.col-resizer{position:absolute;top:0;right:-6px;width:12px;height:100%;cursor:col-resize;z-index:1;touch-action:none}.col-resizer.active,.col-resizer:hover{background:rgba(22,26,36,.12)}.qtable .col-resizer.active,.qtable .col-resizer:hover{background:rgba(234,241,247,.35)}:root[data-theme=dark] .col-resizer.active,:root[data-theme=dark] .col-resizer:hover{background:rgba(236,238,243,.18)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .col-resizer.active,:root:not([data-theme=light]) .col-resizer:hover{background:rgba(236,238,243,.18)}}.pill{display:inline-flex;align-items:center;gap:5px;font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;white-space:nowrap}.pill.draft,.pill.pending{background:var(--warn-soft);color:var(--warn)}.pill.won{background:var(--good-soft);color:var(--good)}.pill.lost{background:var(--critical-soft);color:var(--critical)}.num{text-align:right;font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums}.typeahead{position:relative}.typeahead input{width:100%}.typeahead .ta-list{position:fixed;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:260px;overflow-y:auto;z-index:9999;display:none}.typeahead .ta-list.open{display:block}.ta-item{padding:8px 10px;cursor:pointer;border-bottom:1px solid var(--line)}.ta-item:last-child{border-bottom:none}.ta-item.hi,.ta-item:hover{background:var(--accent-soft)}.ta-item .main{font-weight:600;font-size:13px}.ta-item .sub{font-size:11.5px;color:var(--slate)}.itemsgrid{width:100%;border-collapse:collapse}.itemsgrid th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-soft);padding:9px 10px}.itemsgrid td{padding:11px 10px;border-top:1px solid var(--line);vertical-align:top}.itemsgrid input{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--paper);color:var(--ink);font-size:13px}.itemsgrid input.num{text-align:right}.totals{margin-left:auto;width:320px;max-width:100%}.totals .tr{display:flex;justify-content:space-between;padding:6px 0;font-size:13.5px}.totals .tr.grand{border-top:2px solid var(--ink);margin-top:6px;padding-top:10px;font-weight:700;font-size:16px}.words{font-size:12px;color:var(--slate);font-style:italic;margin-top:4px}.banner{padding:12px 14px;border-radius:9px;font-size:13px;margin-bottom:16px;display:flex;gap:10px;align-items:flex-start}.banner.warn{background:var(--warn-soft);color:var(--warn-ink,var(--warn));border:1px solid var(--warn)}.banner.err{background:var(--critical-soft);color:var(--critical);border:1px solid var(--critical)}.banner.ok{background:var(--good-soft);color:var(--good);border:1px solid var(--good)}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.toolbar input[type=search],.toolbar select{border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:var(--surface)}.spacer{flex:1}.empty{padding:40px 20px;text-align:center;color:var(--slate-soft)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.kpi .k{font-family:"IBM Plex Mono",monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-soft);margin-bottom:6px}.kpi .v{font-size:20px;font-weight:700}@media (max-width:760px){.kpis{grid-template-columns:repeat(2,1fr)}}.menu-hero{text-align:center;padding:52px 20px 20px}.menu-hero .hero-logo{display:block;width:min(300px,78%);height:auto;margin:0 auto 14px}.menu-hero p{color:var(--slate);margin:0 0 28px}.breadcrumb{font-family:"IBM Plex Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-soft);margin-bottom:16px;display:flex;align-items:center;gap:6px}.breadcrumb button{background:0 0;border:none;padding:0;margin:0;color:var(--accent-ink);font-family:inherit;font-size:inherit;font-weight:700;letter-spacing:inherit;cursor:pointer}.breadcrumb button:hover{text-decoration:underline}.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.menu-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:26px 18px;text-align:center;cursor:pointer;font-family:Sora,sans-serif;display:flex;flex-direction:column;align-items:center;gap:6px;transition:transform .12s ease,border-color .12s ease}.menu-tile:hover{border-color:var(--accent);transform:translateY(-2px)}.menu-tile .label{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.02em}.menu-tile .sub{font-size:12px;color:var(--slate)}.menu-tile.soon{opacity:.72}.menu-tile .soon-badge{font-family:"IBM Plex Mono",monospace;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-soft);background:var(--surface-2);border-radius:99px;padding:2px 8px;margin-top:2px}.tabs-sep{width:1px;align-self:stretch;background:var(--line);margin:4px 4px}dialog{border:none;border-radius:12px;padding:0;box-shadow:var(--shadow);max-width:480px;width:92vw}dialog::backdrop{background:rgba(0,0,0,.4)}dialog .dialog-body{padding:20px}dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}.modal-hidden{display:none!important}.mg-tabbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.mg-summary{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--slate);margin:4px 0 10px}.mg-summary strong{color:var(--ink)}.mg-table td.wrap{white-space:normal;min-width:160px;max-width:360px;overflow-wrap:anywhere}.mg-table td{white-space:nowrap}.mg-table tr.clickable{cursor:pointer}.mg-table tr.muted td,.vz-table tr.muted td{color:var(--slate-soft)}.mg-table tfoot td{border-top:2px solid var(--line);padding:8px 10px}.toolbar label.hint{display:flex;align-items:center;gap:6px}.toolbar input[type=date],.toolbar input[type=month],.toolbar input[type=number]{border:1px solid var(--line);border-radius:7px;padding:6px 8px;background:var(--surface);color:var(--ink)}.req{color:var(--critical)}dialog.mg-dialog{max-width:none;width:min(760px,96vw);background:var(--surface);color:var(--ink);max-height:94vh}dialog.mg-dialog.wide{width:min(880px,96vw)}dialog.mg-dialog.xwide{width:min(1180px,97vw)}dialog.mg-dialog .dialog-body{max-height:calc(94vh - 120px);overflow:auto}.mg-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.mg-dialog-head h3{font-size:16px}.mg-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.mg-form.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.mg-form .span2{grid-column:span 2}.mg-form .field{margin-bottom:10px}.mg-form .field input,.mg-form .field select,.mg-form .field textarea{width:100%}@media (max-width:640px){.mg-form,.mg-form.cols4{grid-template-columns:1fr}.mg-form .span2{grid-column:auto}}.mg-h3{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);margin:14px 0 8px}.mg-po-head{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:16px}@media (max-width:860px){.mg-po-head{grid-template-columns:1fr}}.mg-vendor-card{background:var(--surface-2);border-radius:10px;padding:12px 14px;font-size:12.5px;line-height:1.6;align-self:start}.mg-vc-title{font-weight:700;margin-bottom:4px}.mg-lines input{width:100%;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--paper);color:var(--ink);font-size:13px}.mg-lines input.num{text-align:right}.mg-lines td{padding:5px 6px}.mg-po-money{margin-top:14px}.mg-numbox{border-top:1px solid var(--line);padding-top:6px;margin-top:10px}.mg-progress{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin:10px 0 4px}.mg-progress div{height:100%;background:var(--accent);transition:width .2s}.mg-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:10000;padding:11px 18px;border-radius:9px;font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.2);color:#fff;background:#2f8f5b;max-width:90vw}.mg-toast.err{background:#b23c29}.mg-toast.warn{background:#8a5a00}:root{--viz-budget:#C9CDD6;--viz-actual:#2a78d6;--viz-over:#d03b3b;--viz-under:#2a78d6;--viz-other:#9AA0AC;--viz-1:#2a78d6;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-4:#eda100;--viz-5:#e87ba4;--viz-6:#008300;--viz-7:#4a3aa7;--viz-over-soft:#FBE6E1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--viz-budget:#4A4F5E;--viz-actual:#3987e5;--viz-over:#e66767;--viz-under:#3987e5;--viz-other:#6D7382;--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70;--viz-4:#c98500;--viz-5:#d55181;--viz-6:#008300;--viz-7:#9085e9;--viz-over-soft:#3A2019}}:root[data-theme=dark]{--viz-budget:#4A4F5E;--viz-actual:#3987e5;--viz-over:#e66767;--viz-under:#3987e5;--viz-other:#6D7382;--viz-1:#3987e5;--viz-2:#d95926;--viz-3:#199e70;--viz-4:#c98500;--viz-5:#d55181;--viz-6:#008300;--viz-7:#9085e9;--viz-over-soft:#3A2019}.vz-head{margin-bottom:16px}.vz-head .seg{display:inline-flex;gap:2px;background:var(--surface-2);border-radius:8px;padding:2px}.vz-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 12px}.vz-title h2{font-size:22px}.vz-kpis{grid-template-columns:repeat(6,1fr)}@media (max-width:1100px){.vz-kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.vz-kpis{grid-template-columns:repeat(2,1fr)}}.vz-kpis .v{font-size:19px;font-family:Sora,system-ui,sans-serif}.vz-kpis .v.over{color:var(--critical)}.vz-kpis .v.under{color:var(--good)}.vz-kpi-sub{font-size:11.5px;color:var(--slate-soft);margin-top:3px}.kpis+.row,.row+.card,.row+.row{margin-top:16px}.vz-card{min-width:300px}.vz-card+.vz-card{margin-top:0}.vz-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--slate);margin-bottom:6px}.vz-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}svg .vz-lbl{font-size:11.5px;font-weight:600;fill:var(--ink)}svg .vz-val{font-size:11px;font-family:"IBM Plex Mono",monospace;fill:var(--slate)}svg .vz-val .over,svg tspan.over{fill:var(--critical);font-weight:700}svg tspan.under{fill:var(--good);font-weight:700}svg .vz-axis{font-size:10.5px;fill:var(--slate-soft)}svg .vz-center{font-size:17px;font-weight:700;fill:var(--ink)}svg .vz-grid{stroke:var(--line);stroke-width:1}svg .vz-base{stroke:var(--slate-soft);stroke-width:1}.vz-tip{position:fixed;z-index:10001;display:none;pointer-events:none;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:8px 10px;font-size:12px;line-height:1.5;max-width:320px}.vz-flag{font-size:11px;font-weight:700;font-family:"IBM Plex Mono",monospace;white-space:nowrap}.num.over,.vz-flag.over,td.over{color:var(--critical)}.num.under,.vz-flag.under,td.under{color:var(--good)}.vz-divlegend{display:flex;justify-content:space-between;font-size:11.5px;font-weight:700;margin:0 0 4px 170px}.vz-divlegend .over{color:var(--critical)}.vz-divlegend .under{color:var(--accent-ink)}.vz-donut{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.vz-legend-table{font-size:12px;flex:1;min-width:200px}.vz-legend-table td{padding:4px 6px;border-bottom:1px solid var(--line)}.vz-legend-table i{display:inline-block;width:10px;height:10px;border-radius:3px}.vz-srcbars{display:flex;flex-direction:column;gap:8px}.vz-src{display:grid;grid-template-columns:110px 1fr 64px;align-items:center;gap:8px;font-size:12.5px}.vz-src div{background:var(--surface-2);border-radius:4px;height:12px}.vz-src i{display:block;height:12px;border-radius:0 4px 4px 0;background:var(--viz-actual)}.vz-src b{text-align:right;font-size:12px}.vz-mini{width:100%;font-size:12.5px}.vz-mini td{padding:6px 4px;border-bottom:1px solid var(--line)}.vz-mini tr.clickable{cursor:pointer}.vz-sheet-wrap{max-height:72vh;overflow:auto}.vz-sheet{font-size:12px;border-collapse:separate;border-spacing:0}.vz-sheet thead th{position:sticky;top:0;z-index:2;background:var(--surface-2)}.vz-sheet.full thead tr.sub th{top:29px}.vz-sheet td,.vz-sheet th{padding:5px 8px;white-space:nowrap;border-bottom:1px solid var(--line)}.vz-sheet .sticky{position:sticky;left:0;z-index:1;background:var(--surface);min-width:230px;max-width:280px;overflow:hidden;text-overflow:ellipsis}.vz-sheet thead .sticky{z-index:3;background:var(--surface-2)}.vz-sheet th.mcol{text-align:center;border-left:1px solid var(--line)}.vz-sheet .fut{opacity:.45}.vz-sheet td.ytd,.vz-sheet th.ytd{background:var(--accent-soft)}.vz-sheet tr.grp td{background:var(--surface-2);font-weight:700}.vz-sheet tr.grp td.sticky{background:var(--surface-2);cursor:pointer}.vz-sheet tr.grp.unb td{font-style:italic}.vz-sheet tr.tot td{font-weight:700;border-top:2px solid var(--ink);background:var(--surface)}.vz-sheet td.clickcell{cursor:pointer}.vz-sheet td.clickcell:hover{outline:2px solid var(--focus);outline-offset:-2px}.vz-sheet td.overcell{background:var(--viz-over-soft);color:var(--critical);font-weight:600}.vz-sheet td.b{color:var(--slate)}.vz-sheet td.cmt{white-space:normal;min-width:160px;max-width:240px;font-size:11.5px;color:var(--slate)}.vz-sheet td.cmt.editable{cursor:text}.vz-sheet td.cmt.editable:hover{background:var(--accent-soft)}.vz-sheet .caret{display:inline-block;width:12px;color:var(--slate-soft)}.vp-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.vp-vessel{font-size:20px;font-weight:700;letter-spacing:.02em}.vp-head .spacer{flex:1}.vp-sync{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:99px;font:600 12px/1.3 Sora,"Segoe UI",Arial,sans-serif;background:var(--good-soft);color:var(--good);border:1px solid transparent;cursor:pointer}.vp-sync .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.vp-sync.waiting{background:var(--warn-soft);color:var(--warn)}.vp-sync.offline{background:var(--surface-2);color:var(--slate);border-color:var(--line)}.vp-sync.err{background:var(--critical-soft);color:var(--critical)}.vp-actions{display:flex;flex-wrap:wrap;gap:8px}.vp-kpis{grid-template-columns:repeat(6,1fr)}@media (max-width:1100px){.vp-kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.vp-kpis{grid-template-columns:repeat(2,1fr)}}.vp-form .vp-sec{grid-column:1/-1;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);border-bottom:1px solid var(--line);padding-bottom:4px;margin:10px 0 8px}.vp-form .vp-sec:first-child{margin-top:0}.mg-form .vp-span2{grid-column:span 2}.mg-form .vp-span3{grid-column:span 3}.mg-form .vp-span4{grid-column:1/-1}@media (max-width:640px){.mg-form .vp-span2,.mg-form .vp-span3{grid-column:auto}}.qtable tr.superseded td{color:var(--slate)}.pill.superseded-pill{background:var(--line);color:var(--slate)}.itemsgrid textarea{width:100%;min-width:280px;min-height:36px;resize:vertical;font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}.itemsgrid textarea:focus{outline:2px solid var(--focus);outline-offset:0}.ow-cards{display:flex;flex-direction:column;gap:14px}.ow-card .section-title{font-size:18px}.ow-kpis{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));margin-bottom:0}.ow-tile{cursor:pointer;transition:border-color .15s,box-shadow .15s}.ow-tile:focus-visible,.ow-tile:hover{border-color:var(--accent);box-shadow:var(--shadow);outline:0}.ow-tile .v{font-size:18px}.ow-tile .v.over{color:var(--critical)}.ow-tile .v.under{color:var(--good)}.ow-val{padding:7px 0;font-size:13.5px;font-weight:600}.mg-table tr.ow-grp td{background:var(--surface-2)}.mg-table tr.ow-tot td{font-weight:700;border-top:2px solid var(--ink)}.mg-table tr.clickable,.mg-table tr.ow-grp{cursor:pointer}.mg-tabbar input[type=month],.mg-tabbar select{border:1px solid var(--line);border-radius:6px;padding:5px 8px;background:var(--surface);color:var(--ink);font:inherit;font-size:12.5px}.ow-setup td.sw{text-align:center}.ow-setup td.sw input{width:18px;height:18px;cursor:pointer}.ow-setup th.sw{text-align:center;font-size:11px;line-height:1.25;white-space:normal;min-width:72px}.field label.ow-check{display:inline-flex;align-items:center;gap:7px;margin:0 18px 8px 0;white-space:nowrap;text-transform:none;letter-spacing:0;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer}.mg-form .field label.ow-check input{width:16px;height:16px;margin:0;flex:none}.mg-form .field label.ow-check .hint{font-size:11.5px}