/* OIS shared visual system. Opaque data surfaces, blue glass chrome, restrained gloss. */
@font-face{font-family:Outfit;src:url('outfit-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Outfit;src:url('outfit-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--ois-navy:#1f3864;--ois-blue:#2e5496;--ois-blue-hi:#386bb3;--ois-ink:#172d4e;--ois-muted:#4f6482;--ois-line:#cddbef;--ois-canvas:#eaf1fb;--ois-paper:#fff;--ois-shadow:0 8px 24px #173b7012,0 2px 5px #173b700a;--ois-gloss:inset 0 1px 0 #ffffffed,inset 0 -1px 0 #d7e3f45c;--ois-radius:14px;--ois-primary:linear-gradient(180deg,#416db0 0%,#3464a9 46%,#2e5496 48%,#25497f 100%)}
body.ois-app{--navy:var(--ois-navy);--blue:var(--ois-blue);--blue-hi:var(--ois-blue-hi);--ink:var(--ois-ink);--muted:var(--ois-muted);--line:var(--ois-line);--card:#fff;--bg:var(--ois-canvas);--r-lg:14px;--r-md:9px;--shadow-1:var(--ois-shadow);margin:0;background:radial-gradient(ellipse at 80% 0,#d9e8ff 0,transparent 48%),linear-gradient(140deg,#f3f7fe,#e8f0fb 65%,#e0ebf9);color:var(--ois-ink);font-family:Outfit,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-variant-numeric:tabular-nums;line-height:1.5;min-height:100vh;-webkit-text-size-adjust:100%}
body.ois-app a{color:#234f92}body.ois-app a:hover{text-decoration:underline;text-underline-offset:3px}body.ois-app h1,body.ois-app h2,body.ois-app h3{font-family:inherit;letter-spacing:-.02em;text-transform:none;color:var(--ois-navy)}body.ois-app h1{font-weight:600;line-height:1.15}body.ois-app h2{font-weight:600}body.ois-app .muted,body.ois-app .sub{color:var(--ois-muted)}
body.ois-app .wrap{overflow-wrap:anywhere;min-width:0;padding-top:26px}body.ois-app .wrap>:first-child{scroll-margin-top:90px}body.ois-app [id]{scroll-margin-top:90px}
body.ois-app :focus-visible{outline:3px solid #2463b9;outline-offset:3px;border-radius:5px}body.ois-app a:focus-visible{text-decoration:underline}body.ois-app .skip-link{position:fixed;left:14px;top:-100px;background:#fff;color:#173963;padding:12px 16px;z-index:1500;border-radius:8px;box-shadow:var(--ois-shadow)}body.ois-app .skip-link:focus{top:12px}
/* One navy shell for every authenticated route. */
body.ois-app .top{min-height:68px;padding:10px 22px;background:linear-gradient(120deg,#294c7b,#1f3864 52%,#152c50);border-bottom:1px solid #87afe54d;box-shadow:inset 0 1px 0 #ffffff30,0 5px 20px #0a234f26;color:#fff}
body.ois-app .top .brand{letter-spacing:.18em;font-weight:800}body.ois-app .top .brand img{height:44px}body.ois-app .top .who{color:#e2edff;opacity:1;line-height:1.7}body.ois-app .top a{color:#e2edff}body.ois-app .top .help-btn{background:linear-gradient(#557cb5,#345e99);border:1px solid #a4c5f05c;box-shadow:inset 0 1px 0 #ffffff40;color:#fff}
body.ois-app .side{top:68px;background:radial-gradient(ellipse at 0 0,#31537e66,transparent 45%),linear-gradient(180deg,#192f50,#12243f);border-right:1px solid #587baa4a;box-shadow:5px 0 24px #122d5512}
body.ois-app .side .shead{color:#aec6e8;letter-spacing:.12em;font-size:10.5px}body.ois-app .side a{color:#e0eafe;border:1px solid transparent;border-radius:9px;font-weight:500;min-height:39px;display:flex;align-items:center;gap:0}
body.ois-app .side a:hover{background:#ffffff0d;text-decoration:none;border-color:#ffffff12}body.ois-app .side a.on{background:linear-gradient(130deg,#5478ae77,#31568788);color:#fff;border-color:#88b0e752;box-shadow:inset 3px 0 0 #a3c9ff,inset 0 1px 0 #ffffff22,0 3px 9px #09172b22}
body.ois-app .side svg.si{color:#a7c4eb;flex-shrink:0}body.ois-app .side a.on svg.si{color:#fff}body.ois-app .side a.sub{color:#b6cce9}body.ois-app .side summary{min-height:44px;cursor:pointer}body.ois-app .side :focus-visible,body.ois-app .top :focus-visible{outline-color:#a4ceff}
body.ois-app .nav{background:linear-gradient(180deg,#294974f7,#182f52fc);color:#fff;border-top:1px solid #9cbce44f;box-shadow:inset 0 1px 0 #ffffff20,0 -6px 24px #16325d29;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
body.ois-app .nav a{color:#c7d8f0;min-height:52px;line-height:1.5}body.ois-app .nav a.on{color:#fff;background:#ffffff0c}body.ois-app .nav a.on:before{background:#9ac7ff;box-shadow:0 0 10px #9bc5f477}body.ois-app .nav :focus-visible{outline-color:#b4d6ff}
/* Shared surfaces retain opaque backgrounds so tables and forms remain legible. */
body.ois-app :is(.card,.tile,.tut-card,.work-card,.work-secondary,.work-empty,.workspace-quotes,.workspace-panels>section,.workspace-account,.product-tile,.box,.sheet){background:linear-gradient(155deg,#fff 0%,#fff 58%,#f1f6ff 100%);color:var(--ois-ink);border:1px solid var(--ois-line);border-radius:var(--ois-radius);box-shadow:var(--ois-gloss),var(--ois-shadow)}
body.ois-app .card :is(h1,h2,h3){color:var(--ois-navy)}body.ois-app .tile:hover{box-shadow:var(--ois-gloss),0 10px 24px #1f38641f;transform:translateY(-1px)}body.ois-app :is(.work-card,.work-empty,.work-secondary){border-radius:12px}body.ois-app .work-card.late{border-left:4px solid #a3352b}
body.ois-app .stat{background:linear-gradient(145deg,#355e98,#234776 55%,#1c385f);border:1px solid #7096c66b;box-shadow:inset 0 1px 0 #ffffff61,0 7px 18px #21446e26;color:#fff;border-radius:13px}body.ois-app .stat b{color:#fff;font-weight:600}body.ois-app .stat :is(span,a,.muted){color:#e1ecfc}
body.ois-app .flash{background:linear-gradient(#fafdff,#e7f0ff);color:#173963;border:1px solid #adc6e9;border-left:4px solid #2e5496;border-radius:10px;box-shadow:inset 0 1px 0 #fff;padding:12px 16px}
/* Clock remains the same workflow and persisted state; only its surface changes. */
body.ois-app .clock-panel{background:linear-gradient(125deg,#315582,#203f6a 66%,#19365d);color:#f2f7ff;border:1px solid #789ccb88;border-radius:13px;box-shadow:inset 0 1px 0 #ffffff55,0 6px 17px #19395f20;padding:14px 18px;margin-bottom:22px}
body.ois-app .clock-panel :is(strong,label,summary){color:#fff}body.ois-app .clock-panel :is(p,.muted){color:#d0e1f9}body.ois-app .clock-state{gap:8px 20px}body.ois-app .clock-panel input{color:var(--ois-ink)}body.ois-app .clock-panel details{margin-top:4px}
/* Gloss uses a fixed highlight, never a moving sheen. */
body.ois-app :is(.btn,button,.workspace-primary){min-height:44px;border:1px solid #1d4780;border-radius:9px;background:var(--ois-primary);color:#fff;font:600 14px/1.4 Outfit,-apple-system,sans-serif;padding:11px 16px;box-shadow:inset 0 1px 0 #ffffff66,0 3px 7px #224b8524;transition:filter .15s,box-shadow .15s,transform .1s;cursor:pointer;text-align:center}
body.ois-app :is(.btn,button,.workspace-primary):hover{filter:brightness(1.05);text-decoration:none;box-shadow:inset 0 1px 0 #ffffff70,0 5px 12px #173d7629}body.ois-app :is(.btn,button,.workspace-primary):active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0e2d5b33}
body.ois-app :is(.btn.ghost,button.ghost){color:#214c88;background:linear-gradient(#fff,#eaf2ff);border-color:#b8cdea;box-shadow:inset 0 1px 0 #fff,0 2px 4px #1739630a}body.ois-app .btn.navy{background:linear-gradient(#355c91,#1f3864);color:#fff;border-color:#15325e}body.ois-app .btn.ghost.navy{background:var(--ois-primary);color:white;border-color:#1d4780}
body.ois-app .btn.danger{color:#93272c;background:linear-gradient(#fff,#fff0f1);border-color:#dbaeb2;box-shadow:inset 0 1px 0 #fff}body.ois-app :is(.btn.sm,button.sm){font-size:12px;padding:8px 12px}body.ois-app button:disabled{opacity:1;color:#536b8e;background:#e1e9f4;border-color:#c2d1e5;box-shadow:none;cursor:not-allowed;filter:none;transform:none}
body.ois-app label{color:#465d7d;font-weight:600}body.ois-app :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){background:linear-gradient(#fff,#fafdff);color:var(--ois-ink);border:1px solid #adc3e2;border-radius:9px;min-height:44px;box-shadow:inset 0 1px 3px #214b8710;font-family:inherit;max-width:100%}
body.ois-app :is(input,select,textarea):focus{border-color:#2e62a9;outline:3px solid #2e62a92b;outline-offset:1px;box-shadow:inset 0 1px 2px #1739630c}body.ois-app input[type=checkbox],body.ois-app input[type=radio]{accent-color:#2e5496;min-height:0}body.ois-app :is(input,textarea)::placeholder{color:#5e7391;opacity:1}
/* Data tables remain matte, with readable separators rather than reflected text. */
body.ois-app table{border-collapse:collapse;max-width:100%;color:var(--ois-ink)}body.ois-app th{color:#274d7e;background:linear-gradient(#f7faff,#e7effb);border-bottom:1px solid #b6cce9;font-weight:600}body.ois-app td{border-bottom-color:#d8e3f2}body.ois-app tbody tr:hover{background-color:#eaf2ff66}body.ois-app .list a{border-bottom-color:#dce6f4}body.ois-app .list a:hover{background:#eaf2ff}
body.ois-app .pill:not(.customer):not(.prospect),body.ois-app .tag{color:#244c82;background:linear-gradient(#eff5ff,#dde9fa);border:1px solid #c1d3ec}body.ois-app .pill.customer,body.ois-app .fulfill-Delivered{background:#e7f4ec;color:#166b3b}body.ois-app .pill.prospect,body.ois-app .fulfill-Submitted{background:#fff1d7;color:#795013}
/* Shared secondary navigation/workspace variants, including their late-loaded styles. */
body.ois-app :is(.work-tabs a,.workspace-nav a,.catalog-tabs a,.account-sections a){color:#244f8f}body.ois-app .work-tabs a{background:linear-gradient(#fff,#edf4ff);border-color:#b9cde9;border-radius:9px;box-shadow:inset 0 1px 0 #fff;min-height:44px}body.ois-app .work-tabs a[aria-current=page]{background:var(--ois-primary);color:#fff;border-color:#244c82;box-shadow:inset 0 1px 0 #ffffff50}
body.ois-app :is(.work-sub,.work-meta,.work-title .source,.catalog-results,.catalog-heading p,.workspace-intro p,.product-supplier,.product-pack,.workspace-note){color:var(--ois-muted)}body.ois-app .work-warning{color:#85411d}
body.ois-app :is(.customer-workspace,.product-workspace){color:var(--ois-ink);font-family:inherit}body.ois-app :is(.customer-workspace,.product-workspace) a{color:#244f8f}body.ois-app :is(.workspace-nav,.catalog-tabs){border-color:#c4d6ed}body.ois-app :is(.workspace-nav .active,.catalog-tabs a.selected){color:#204d8e;border-color:#2e5496}
body.ois-app :is(.catalog-customer,.account-program,.catalog-search,.customer-search){background:linear-gradient(125deg,#fff,#e4effe);border-color:#bacfed;border-radius:11px;color:#254b7c;box-shadow:inset 0 1px 0 #ffffffed}body.ois-app .account-program,body.ois-app .catalog-customer{border-left:4px solid #3969aa}
body.ois-app .customer-workspace a.workspace-primary{color:#fff;background:var(--ois-primary);box-shadow:inset 0 1px 0 #ffffff66,0 3px 7px #224b8524}body.ois-app .workspace-customer-list>a{background:linear-gradient(#fff,#f4f8ff);border-color:#cfddf0;border-radius:10px;margin:6px 0;box-shadow:inset 0 1px 0 white}body.ois-app .product-crossref{color:#244f8f;background:#eaf2ff}body.ois-app .product-photo{background:#fff}body.ois-app .product-copy h2{color:var(--ois-navy)}body.ois-app a.account-quote{color:#244f8f;background:linear-gradient(#fff,#eaf2ff);border-color:#b8cdea}
body.ois-app .card[style*="#396761"]{border-color:#507eb9!important}body.ois-app :is(.customer-workspace,.product-workspace,.account-workspace,.account-index-row) :focus-visible{outline-color:#2463b9}
/* Legacy workspace carries important green buttons and light-on-dark account text. */
body.ois-app .customer-search button,body.ois-app .customer-workspace .workspace-primary{background:var(--ois-primary)!important;color:#fff!important}
body.ois-app .customer-workspace .workspace-account{background:linear-gradient(135deg,#315582,#203f6a 66%,#19365d);border-color:#789ccb88;color:#f2f7ff;box-shadow:inset 0 1px 0 #ffffff55,0 6px 17px #19395f20}
body.ois-app .workspace-account h2{color:#fff}body.ois-app .workspace-account :is(p,span){color:#d5e5fb}body.ois-app .workspace-account a:not(.workspace-primary){color:#d5e5fb}body.ois-app .workspace-row small,body.ois-app .workspace-customer-list span{color:var(--ois-muted)}
/* Dashboard uses the same navy glass family while retaining every original metric. */
body.ois-app.dashboard-theme{--ink:#f0f5ff;--muted:#b4c7e4;--line:#44638c;--card:#1e375a;background:radial-gradient(ellipse at 80% 0,#294c7966,transparent 48%),linear-gradient(145deg,#142640,#0e1d34);color:#eff5ff}
body.ois-app.dashboard-theme :is(.business-dashboard h1,.business-dashboard h2,.db-panel h2){color:#f0f6ff}body.ois-app.dashboard-theme .business-dashboard a{color:#c1dbff}body.ois-app.dashboard-theme :is(.db-panel,.db-kpi,.db-filters){background:linear-gradient(145deg,#2c4b75,#1d3659 48%,#172d4c);border:1px solid #769aca61;box-shadow:inset 0 1px 0 #ffffff2e,0 8px 24px #030d1d29;border-radius:13px;color:#f0f5ff}
body.ois-app.dashboard-theme .db-kpi strong{color:#fff;text-shadow:0 1px 1px #07192d55}body.ois-app.dashboard-theme .db-kpi .db-tag{flex-shrink:0;white-space:nowrap}body.ois-app.dashboard-theme .db-filters label{color:#c8daf3}body.ois-app.dashboard-theme .db-primary{background:var(--ois-primary);color:#fff!important;box-shadow:inset 0 1px 0 #ffffff66,0 3px 7px #071c3b4d;border:1px solid #6e9cd5}
body.ois-app.dashboard-theme .db-button{background:linear-gradient(#365881,#25436b);border:1px solid #779ac35e;box-shadow:inset 0 1px 0 #ffffff33;color:#f2f7ff!important;border-radius:9px}body.ois-app.dashboard-theme .db-primary{background:var(--ois-primary)}body.ois-app.dashboard-theme .db-deal{background:linear-gradient(135deg,#2c466a,#213a5b);border-color:#6f91bc5c;box-shadow:inset 0 1px 0 #ffffff20}
body.ois-app.dashboard-theme :is(.db-note,.db-row-meta,.db-status,.db-source){color:#b4c9e7}body.ois-app.dashboard-theme .db-status b{color:#e1edff}body.ois-app.dashboard-theme .db-record-table th{background:#284567;color:#dbeaff}body.ois-app.dashboard-theme .db-record-table td{color:#e6effe;border-color:#4b678c}body.ois-app.dashboard-theme tbody tr:hover{background:#ffffff06}body.ois-app.dashboard-theme .card{color:var(--ois-ink)}body.ois-app.dashboard-theme .card :is(h1,h2,h3,label){color:var(--ois-ink)}
body.ois-app.dashboard-theme .db-warning{background:#594a2e;color:#ffedc5}body.ois-app.dashboard-theme :focus-visible{outline-color:#9bc8ff}body.ois-app.dashboard-theme input:focus,body.ois-app.dashboard-theme select:focus{outline-color:#91bcf3}
/* Modal/sheet and signed-out/public variants share the same palette. */
body.ois-app .mm-inner,body.ois-app .hm-inner{background:linear-gradient(140deg,#fff,#edf4ff);color:var(--ois-ink);border:1px solid #b3cbea;box-shadow:inset 0 1px 0 #fff,0 -10px 40px #102c5944}body.ois-app .mm-grid a{background:linear-gradient(#fff,#e8f1ff);color:#244b82;border:1px solid #bed1eb;box-shadow:inset 0 1px 0 #fff;min-height:48px}body.ois-app .hm-head{background:linear-gradient(#365984,#1f3864);box-shadow:inset 0 1px 0 #ffffff30}
body.ois-app.is-signed-out,body.ois-app.is-public{background:radial-gradient(ellipse at 18% 0,#416c9f77,transparent 58%),linear-gradient(135deg,#1e3c66,#132a4b 68%,#0d203d);background-attachment:fixed;min-height:100vh}
body.ois-app.is-signed-out .wrap{margin:0 auto;max-width:560px;padding:30px 20px 70px}body.ois-app.is-signed-out .login-logo{height:140px;max-width:85%;object-fit:contain;filter:brightness(0) invert(1);margin:22px auto 14px}body.ois-app.is-signed-out .wrap>div:first-child>p.muted{color:#d8e8ff}body.ois-app.is-signed-out .card{padding:26px;border-color:#b7cfee;box-shadow:inset 0 1px 0 #fff,0 18px 50px #06172e66}body.ois-app.is-signed-out .card h1{font-size:28px;margin-bottom:18px}
body.ois-app.is-public{padding:24px 16px}body.ois-app.is-public .box{margin:24px auto;padding:28px;max-width:500px}body.ois-app.is-public p{color:var(--ois-muted)}body.ois-app.is-public h1{margin-bottom:10px}
body.ois-app.ois-document{padding:24px 18px;background:linear-gradient(#e1ebfa,#f1f5fc);color:var(--ois-ink)}body.ois-app.ois-document .sheet{border-radius:13px;box-shadow:var(--ois-gloss),var(--ois-shadow);background:#fff}body.ois-app.ois-document .head{border-bottom-color:#2e5496}body.ois-app.ois-document .qmeta b{color:#1f3864}
@media(min-width:900px){body.ois-app.is-signed-in .wrap{max-width:none;margin:0 0 0 236px;padding:28px clamp(24px,2.6vw,44px) 70px;min-height:calc(100vh - 68px)}body.ois-app.role-setter .wrap{max-width:1000px;margin-left:auto;margin-right:auto}body.ois-app .side{width:236px}}
@media(max-width:899px){body.ois-app .top{padding:10px 15px;min-height:62px}body.ois-app .top .brand{font-size:12px;letter-spacing:.12em}body.ois-app .top .brand img{height:34px}body.ois-app .top .who{font-size:11px}body.ois-app .wrap{padding:22px 16px 100px}body.ois-app .nav{padding-bottom:max(6px,env(safe-area-inset-bottom))}}
@media(max-width:600px){body.ois-app .top{gap:12px;align-items:center}body.ois-app .top .who{max-width:64%;line-height:1.8}body.ois-app .top .who a{display:inline-block;padding:4px 1px}body.ois-app h1{font-size:28px}body.ois-app :is(.card,.work-card){padding:16px;border-radius:12px}body.ois-app .line{flex-wrap:wrap;gap:12px}body.ois-app .line>span{min-width:0}body.ois-app .clock-panel{padding:13px 15px}body.ois-app .clock-state{font-size:13px}body.ois-app .clock-panel p{font-size:11px}body.ois-app .work-filter label{min-width:min(170px,100%)}body.ois-app.is-public .box{padding:22px}body.ois-app.is-signed-out .wrap{padding-top:14px}body.ois-app.is-signed-out .card{padding:22px}body.ois-app :is(.workspace-nav,.catalog-tabs){gap:15px;overflow-x:auto}body.ois-app .work-tabs a{font-size:12px}body.ois-app :is(.btn.sm,button.sm){min-height:42px}body.ois-app.dashboard-theme .wrap{padding:22px 14px 100px}}
@media(prefers-reduced-motion:reduce){body.ois-app,body.ois-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}body.ois-app :is(.btn,button,.tile):active,body.ois-app .tile:hover{transform:none}}
@media print{body.ois-app{background:#fff!important;color:#172d4e!important;padding:0!important}body.ois-app :is(.top,.side,.nav,.moremenu,.clock-panel,.helpmodal){display:none!important}body.ois-app .wrap{margin:0!important;max-width:none!important;padding:0!important;min-height:0!important}body.ois-app :is(.card,.sheet,.stat,.db-panel,.db-kpi,.db-filters){background:#fff!important;color:#172d4e!important;box-shadow:none!important;border-color:#bbcce2!important;break-inside:avoid}body.ois-app :is(h1,h2,h3,p,span,b,strong,a,td,th,label){color:#172d4e!important;text-shadow:none!important}body.ois-app .db-chart-line{stroke:#2e5496}body.ois-app .sheet{border-radius:0;box-shadow:none!important}}
/* Semantic values on navy stat surfaces keep their meaning and sufficient contrast. */
body.ois-app .stat b[style*="#1a7f43"]{color:#baf5cf!important}body.ois-app .stat b[style*="#b02a2a"],body.ois-app .stat b[style*="#b0342a"]{color:#ffd0d5!important}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
@media print{body.ois-app .stat b[style*="#1a7f43"]{color:#166b3b!important}body.ois-app .stat b[style*="#b02a2a"],body.ois-app .stat b[style*="#b0342a"]{color:#93272c!important}}
@media print{body.ois-app :is(.total-box,.db-deal,.db-tag,.db-delivery,.db-warning,.db-data-notice,.workspace-account,.catalog-customer){background:#fff!important;background-image:none!important;color:#172d4e!important;border:1px solid #a9bdd9!important;box-shadow:none!important}body.ois-app :is(button,.btn,.db-button,.db-reset,.db-topnav,.db-record-pages){display:none!important}}
