:root{--green:#1e633b;--green2:#2a7c4c;--ink:#202421;--muted:#68736e;--line:#d7dfdc;--bg:#eef2f2;--white:#fff;--pale:#f5f8f6;--amber:#946300;--amberbg:#fff8e8;--blue:#315b92;--bluebg:#eef4ff;--red:#a33d35;--redbg:#fff0ee;--shadow:0 10px 30px rgba(30,99,59,.09)}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}.topbar{height:64px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px}.mark{width:34px;height:34px;border-radius:9px;background:#fff;color:var(--green);display:grid;place-items:center;font-weight:1000}.brand b{font-size:14px;letter-spacing:.08em}.brand small{display:block;font-size:10px;color:#e4f0e8}.session{display:flex;gap:7px;font-size:9px}.session span{border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:6px 8px;background:rgba(255,255,255,.08)}.shell{max-width:1540px;margin:auto;padding:12px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px;align-items:start}.main-panel,.side-panel{background:#fff;border:1px solid #dfe6e3;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.heading{padding:13px 15px;border-bottom:1px solid #e6ebe8;display:flex;justify-content:space-between;gap:10px;align-items:center}.heading h1{font-size:18px;color:var(--green);margin:0}.heading p{font-size:11px;color:var(--muted);margin:3px 0 0}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:#fafcfb;border-bottom:1px solid #e7ece9}.control{border:1px solid #cfd8d4;border-radius:8px;padding:9px 10px;background:#fff;font-size:12px;min-width:165px}.grow{flex:1;min-width:230px}.btn{border:none;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:900;cursor:pointer}.primary{background:var(--green);color:#fff}.dark{background:#2f6f47;color:#fff}.ghost{background:#fff;border:1px solid #ccd7d2;color:var(--green)}.light{background:#f0f4f2;color:#34433c}.btn:disabled{opacity:.45;cursor:not-allowed}.readonly{margin-left:auto;background:#eff8f2;border:1px solid #cee1d4;color:#2b6040;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:900}.gridwrap{overflow:auto;max-height:665px}table{width:100%;min-width:1290px;border-collapse:collapse}th{position:sticky;top:0;z-index:4;background:#edf3f0;color:#53625a;text-align:left;font-size:8.5px;text-transform:uppercase;letter-spacing:.035em;padding:8px;border-bottom:1px solid #cfd8d4}td{padding:8px;border-bottom:1px solid #e8edeb;font-size:10.5px;vertical-align:top}tbody tr:hover{background:#fbfdfc}tbody tr.selected{background:#edf7f0}.tag{display:inline-block;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}.ready{background:#eaf7ee;color:#24603a}.need{background:var(--bluebg);color:var(--blue)}.confirm{background:var(--amberbg);color:var(--amber)}.blocked{background:var(--redbg);color:var(--red)}.footerbar{position:sticky;bottom:0;background:#245f3b;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;z-index:10}.footerbar b{font-size:12px}.footerbar span{font-size:9.5px;color:#d7e8dd;margin-left:7px}.actions{display:flex;gap:7px;flex-wrap:wrap}.side-panel section{padding:12px;border-bottom:1px solid #e7ece9}.side-panel section:last-child{border-bottom:none}.side-panel h2{font-size:13px;color:var(--green);margin:0 0 8px}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.kpi{border:1px solid var(--line);border-radius:9px;padding:8px}.kpi b{display:block;font-size:20px;color:var(--green)}.kpi span{font-size:7.5px;color:var(--muted);font-weight:900;text-transform:uppercase}.issue{border:1px solid var(--line);border-radius:9px;padding:9px;margin-top:7px}.issue.info{background:#fbfdff;border-color:#cadbf0}.issue.warn{background:#fffdf6;border-color:#ecd69d}.issue.block{background:#fff4f2;border-color:#ebc7c3}.issue h3{font-size:10.5px;margin:0 0 4px}.issue p{font-size:9.5px;color:#5d6762;line-height:1.4;margin:0 0 6px}.issue input{width:100%;border:1px solid #ccd6d2;border-radius:7px;padding:7px;margin-bottom:5px;font-size:10px}.choice{display:block;width:100%;text-align:left;background:#fff;border:1px solid #ccd6d2;border-radius:7px;padding:7px;margin-top:5px;font-size:9.5px;font-weight:800;cursor:pointer}.choice.chosen{border-color:var(--green);background:#edf7f0;color:var(--green)}.prov{font-size:8px;color:#78827d;margin-top:5px}.empty,.muted{font-size:9px;color:#73807a;line-height:1.45}.total{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #edf0ef;font-size:10px}.grand{font-size:11px;font-weight:900;color:var(--green);border-bottom:none;padding-top:8px}.pdf-note{background:#f7f9f8;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:8px;font-size:8.5px;color:#56625c;line-height:1.45}.full{width:100%;margin-top:7px}.overlay{position:fixed;inset:0;background:rgba(22,38,29,.52);display:grid;place-items:center;z-index:100;padding:18px}.notice-card{max-width:620px;background:#fff;border-radius:16px;padding:26px;box-shadow:0 20px 70px rgba(0,0,0,.25)}.notice-card h1{color:var(--green);font-size:24px}.notice-card p{font-size:12px;color:#55615b;line-height:1.55}.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--green)}.toast{position:fixed;right:16px;bottom:16px;background:#243b2d;color:#fff;padding:10px 12px;border-radius:9px;font-size:10px;z-index:120;max-width:330px}.toast.error{background:#8b342e}@media(max-width:920px){.workspace{grid-template-columns:1fr}.session{flex-shrink:0}.session>span,.session #ownerDirectoryButton{display:none}.session #signOut{min-height:44px}.readonly{width:100%;margin-left:0}.gridwrap{max-height:none}}@media(max-width:600px){.topbar{padding:0 10px}.brand small{display:none}.shell{padding:7px}.heading{align-items:flex-start;flex-direction:column}.toolbar>*{width:100%}.footerbar{align-items:flex-start;flex-direction:column}.footerbar .actions{width:100%}.footerbar .btn{flex:1}}
.source-ref{min-width:300px}.readonly{white-space:nowrap}
[hidden]{display:none!important}
.need{background:#eef8f1;color:#27643d}
.brand img{display:block;width:152px;height:42px;object-fit:contain;object-position:left center;background:#fff;border-radius:5px;padding:3px 6px}.brand small{font-size:10px}.feedback-text{min-height:92px;resize:vertical;line-height:1.4}.primary{background:#1e9b50}.primary:hover{background:#147d3d}.applied{background:#e9f5ff;color:#225f8f}.selected-source{background:#e6f6eb;color:#1e633b}.inactive-alternative{opacity:.48;background:#f5f5f5!important}.original-value{display:block;color:#7a837f;font-size:8px;text-decoration:none}.effective-value{display:block;color:#1e633b;font-weight:800;margin-top:2px}
.restore-status{padding:28px 18px;border-radius:12px;background:#fff;color:#315b43;font-weight:700}.shell.restoring .workspace{display:none}.shell:not(.restoring) .restore-status{display:none}
.shell.signed-out .workspace,.shell.signed-out .restore-status{display:none}
.customer-directory-status{font-size:8.5px;line-height:1.4;border:1px solid var(--line);border-radius:8px;padding:7px 8px;background:#f7faf8;color:#56645d;margin-bottom:7px}.customer-directory-status.matched{background:#edf7f0;border-color:#c7dfcf;color:#245f3b}.customer-directory-status.attention{background:var(--amberbg);border-color:#ecd69d;color:#805800}.customer-detail,.customer-address{display:grid;grid-template-columns:86px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid #edf0ef;font-size:9px;align-items:start}.customer-detail span,.customer-address span{color:var(--muted);font-weight:800}.customer-detail b,.customer-address b{font-size:9px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}.customer-address{grid-template-columns:86px 1fr}.customer-address:last-child{border-bottom:none}

.customer-profile{border:1px solid var(--line);border-radius:8px;padding:8px;margin:7px 0;background:#fff}.customer-profile label{display:block;font-size:9px;font-weight:800;margin-bottom:5px;color:#315b43}.customer-profile .muted{font-size:8px;line-height:1.35;margin-top:5px}
.customer-selector,.customer-edit{border:1px solid var(--line);border-radius:8px;padding:8px;margin:7px 0;background:#fff}.customer-selector label,.customer-edit label{display:block;font-size:9px;font-weight:800;margin:5px 0;color:#315b43}.customer-selector-row{display:flex;gap:6px;align-items:center}.customer-selector-row .control{min-width:0;flex:1;margin-top:0}.customer-selector-row .btn{flex:0 0 auto}.customer-edit{background:#f9fbfa}.customer-edit .muted,.customer-selector .muted{margin-top:6px}.locked-customer-note{font-size:8px;color:#68736e}

.session-user{font-size:10px;font-weight:800}.btn.loading{display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn.loading::before{content:"";width:11px;height:11px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:qg-spin .65s linear infinite}@keyframes qg-spin{to{transform:rotate(360deg)}}.discount-box{margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#f9fbfa}.discount-box label{display:block;margin-bottom:5px;font-size:9px;font-weight:900;color:#315b43}.discount-box .control{min-width:0}.final-total{font-size:12px;font-weight:1000;color:var(--green);border-bottom:none;padding-top:8px}.issue.warn h3::before{content:"Warning · ";color:var(--amber)}

/* Tracker quantity-price references are display-only decision support. */
tr.reference-only td{background:#fff6fa;color:#4c3742}
tr.reference-only:hover td{background:#fff6fa}
tr.reference-only input[type=checkbox]{cursor:not-allowed;opacity:.45}
.price-reference-visual{display:block;margin-top:5px;padding:5px 7px;border-left:3px solid #d75a92;background:#fff2f7;color:#71304d;font-size:10px;line-height:1.35;border-radius:4px}
.price-reference-visual small{color:#7d6470}
.tag.reference{background:#fce7f0;color:#8e3158;border-color:#efb7cf}

/* CEO compact Tracker grid and selected quotation review. */
.gridwrap table{border-collapse:collapse;table-layout:auto;width:100%;min-width:1500px;font-size:11px}
.gridwrap th,.gridwrap td{border:1px solid #ccd5cf;padding:3px 5px;vertical-align:top;white-space:normal;line-height:1.25}
.gridwrap th{font-size:10px;letter-spacing:0}
.gridwrap th:nth-child(3),.gridwrap th:nth-child(4){min-width:180px;width:18%}
.gridwrap td:nth-child(3),.gridwrap td:nth-child(4){max-width:270px}
.gridwrap td:nth-child(n+10):nth-child(-n+15){white-space:nowrap;text-align:right}
.gridwrap td:first-child{width:22px}.selected-line{display:grid;gap:3px;padding:8px 0;border-bottom:1px solid #d5dfd7}.selected-line small{font-variant-numeric:tabular-nums}.selected-rfqs{white-space:normal;margin:8px 0}.internal-economics{margin:14px 0;padding:10px;background:#f4f7f5}.internal-economics b{max-width:65%;overflow-wrap:anywhere}.economics-warning{margin:6px 0;padding:7px;border:1px solid #ecd69d;border-radius:7px;background:var(--amberbg);color:var(--amber);font-size:9px;line-height:1.35}.review-note{white-space:pre-wrap;font-size:12px}.kpis{grid-template-columns:repeat(3,1fr)}.issue.technical{border-left:3px solid #637a87;background:#edf2f5}
.gridwrap th,.gridwrap td{position:static;min-width:0;width:auto}.gridwrap th:first-child,.gridwrap td:first-child{width:24px;min-width:24px}.gridwrap th:nth-child(3),.gridwrap th:nth-child(4){min-width:160px;width:16%}.gridwrap table{min-width:1280px}.shell{max-width:1920px}.selected-line{font-size:12px}.internal-economics h3{font-size:12px}

/* Kelvin-only Customer Directory. Data access is enforced server-side. */
.owner-directory-overlay{align-items:center;overflow:auto}.owner-directory-card{width:min(1500px,96vw);max-height:94vh;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.28);overflow:hidden}.owner-directory-heading{flex:0 0 auto}.owner-directory-toolbar{flex:0 0 auto}.owner-directory-kpis{grid-template-columns:repeat(4,minmax(110px,1fr));padding:10px 12px;border-bottom:1px solid #e7ece9}.owner-directory-grid{max-height:62vh;flex:1 1 auto}.owner-directory-grid table{min-width:1180px}.owner-directory-grid th{position:sticky;top:0;z-index:5}.owner-directory-footnote{padding:9px 12px;border-top:1px solid #e7ece9;background:#fafcfb}.owner-vat{display:inline-block;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:900;white-space:nowrap}.owner-vat-exempt{background:#eef4ff;color:#315b92}.owner-vat-standard{background:#edf7f0;color:#24603a}@media(max-width:720px){.owner-directory-card{width:100%;max-height:96vh}.owner-directory-kpis{grid-template-columns:repeat(2,1fr)}.owner-directory-heading{align-items:flex-start}.owner-directory-grid{max-height:58vh}}

/* Keep untrusted addresses readable after rendering them as literal text. */
.owner-directory-grid td:nth-child(4),.owner-directory-grid td:nth-child(5){overflow-wrap:anywhere}

/* Native disclosure stays touch/keyboard accessible at narrow widths. */
#toggleReminders{min-height:44px;white-space:normal;overflow-wrap:anywhere}
#toggleReminders:focus-visible{outline:2px solid var(--green);outline-offset:2px}

/* Kelvin controls preserve touch targets and wrap on narrow screens. */
.kelvin-controls,.kelvin-data{max-width:960px;margin:16px auto;padding:16px;background:#fff;color:#172b3a;border:1px solid #cad5df;border-radius:12px}
.kelvin-controls button{font-size:16px;min-height:44px;margin:6px;white-space:normal}.kelvin-controls label{display:block;margin:12px 0}
.kelvin-controls details{padding:12px;border:1px solid #cad5df;margin:10px 0}.kelvin-controls summary{cursor:pointer;min-height:44px}
.kelvin-diff{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:14px}.kelvin-wrap{overflow-wrap:anywhere}
.kelvin-approver #appShell>*:not(#kelvinControls):not(header){display:none!important}
@media(max-width:600px){.kelvin-controls,.kelvin-data{margin:8px;padding:12px}.kelvin-controls button{width:100%;margin:6px 0}.kelvin-controls input,.kelvin-controls textarea,.kelvin-controls select{font-size:16px;max-width:100%;box-sizing:border-box}}

/* Sheet-only employee workflow; original brand, grid and sidebar stay intact. */
.sheet-workflow{padding:12px;border-bottom:1px solid var(--line)}
.sheet-controls{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-start}
.workflow-group{min-width:0;flex:1 1 180px}.connection-group{flex:2 1 290px}.worksheet-group{flex:1.5 1 260px}.sync-group{flex:1 1 140px}
.workflow-group>label{display:block;color:var(--green);font-size:11px;font-weight:800;margin-bottom:6px}
.workflow-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:38px}
.workflow-actions .control{flex:1 1 150px;min-width:0;max-width:100%}.workflow-actions .btn{flex:0 0 auto;min-height:38px}
.workflow-status{display:block;font-size:10px;line-height:1.4;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.worksheet-name{font-size:12px;color:#315b43;font-weight:700;overflow-wrap:anywhere}
.search-controls{display:flex;gap:7px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #e7ece9;flex-wrap:wrap}
.search-controls .control{flex:1 1 220px;min-width:0}.search-controls .btn{min-height:38px}
@media(max-width:600px){.sheet-controls{gap:14px}.workflow-group{flex-basis:100%}.workflow-actions .control{font-size:16px}.workflow-actions .btn,.search-controls .btn{min-height:44px}.search-controls .control{flex-basis:100%;font-size:16px}.search-controls .btn{flex:1}.sheet-workflow{padding:10px}}
