*{box-sizing:border-box}body{margin:0;font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f2f3f7;color:#1b1e2b}
.top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 18px;background:#0f1630;color:#fff}
.top b{font-size:18px;margin-right:10px;color:#f5b82e}.top span{opacity:.8}
nav button{background:none;border:1px solid #ffffff40;color:#fff;padding:6px 12px;border-radius:20px;margin-left:4px;cursor:pointer}nav button.on{background:#f5b82e;color:#0f1630;border-color:#f5b82e}
main{max-width:1250px;margin:auto;padding:16px}
.grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}.col{display:flex;flex-direction:column;gap:16px}.sticky{position:sticky;top:10px;align-self:start}
@media(max-width:900px){.grid{grid-template-columns:1fr}.sticky{position:static}}
.card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 3px #0001}.card h3{margin:0 0 10px;font-size:15px}.card h3 small{font-weight:400;color:#778;font-size:12px}
label{display:block;font-size:12px;color:#556;margin-bottom:8px}input,select,textarea{width:100%;padding:8px;border:1px solid #d5d8e2;border-radius:8px;font:inherit;margin-top:3px;background:#fff}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.f3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media(max-width:560px){.f2,.f3{grid-template-columns:1fr}}
.chk{display:flex;gap:8px;align-items:center}.chk input{width:auto;margin:0}
button{background:#f5b82e;border:0;padding:9px 14px;border-radius:8px;font-weight:600;cursor:pointer}.ghost{background:#eef0f6}.ghost2{background:#ffffff1a;color:#fff;border:1px solid #ffffff40}
.item{border:1px solid #e3e6ef;border-radius:10px;padding:10px;margin-bottom:10px;background:#fafbfd}.item .row{display:grid;grid-template-columns:2fr 1fr 1fr .8fr;gap:8px}
@media(max-width:560px){.item .row{grid-template-columns:1fr 1fr}}
.item .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-weight:600}.item .x{background:#fde8e8;color:#b00;padding:3px 9px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 8px}.chips button{background:#eef0f6;padding:4px 9px;font-size:12px;font-weight:500}
.calc{font-size:12px;color:#334;background:#eef6ee;padding:6px 8px;border-radius:6px}.flag{font-size:12px;color:#8a5a00;background:#fff4d6;padding:6px 8px;border-radius:6px;margin-top:6px}
.dark{background:#0f1630;color:#fff}.lbl{font-size:11px;letter-spacing:2px;opacity:.7}.big{font-size:32px;font-weight:800;margin:4px 0 10px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats div{background:#ffffff12;padding:8px;border-radius:8px}.stats span{display:block;font-size:11px;opacity:.7}
.btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.btns select{width:auto;flex:1;margin:0}.lite{color:#cfd3e6;margin-top:10px}
#warns div{background:#5a3b00;color:#ffd77a;padding:6px 8px;border-radius:6px;margin-top:8px;font-size:12px}
.internal{border:2px dashed #c33}.internal table{width:100%;border-collapse:collapse;font-size:12px}.internal td,.internal th{padding:4px;border-bottom:1px solid #eee;text-align:right}.internal td:first-child,.internal th:first-child{text-align:left}
.rt{width:100%;border-collapse:collapse;font-size:13px}.rt td,.rt th{padding:5px;border-bottom:1px solid #eee;text-align:left}.rt input{margin:0;padding:5px}.tblwrap{overflow:auto}
.pvh{margin:26px 0 8px}#doc{overflow:auto}
/* ===== client document (A4) ===== */
.sheet{width:210mm;min-height:297mm;background:#fff;margin:0 auto 18px;padding:14mm 14mm 10mm;position:relative;display:flex;flex-direction:column;color:#111;font-size:10pt;box-shadow:0 2px 10px #0002;font-family:Helvetica,Arial,sans-serif}
.sheet .co{letter-spacing:.35em;font-weight:700;font-size:13pt}.sheet .tag{font-size:9pt;color:#666;margin-top:2px}
.sheet .hdr{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2.5px solid #111;padding-bottom:8px}
.sheet .qt{text-align:right}.sheet .qt h1{margin:0;letter-spacing:.3em;font-size:20pt}.sheet .qt table{margin-left:auto;font-size:9pt}.sheet .qt td{padding:1px 0 1px 10px}
.sheet .parties{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin:14px 0}.sheet .parties h4,.sheet .side h4,.sheet .tb h4{margin:0 0 4px;font-size:8pt;letter-spacing:.3em;color:#777}
.sheet .parties p{margin:0;font-size:9.5pt}.sheet .parties p b{font-size:10pt}
.sheet table.it{width:100%;border-collapse:collapse;font-size:9.5pt}.sheet table.it th{background:#111;color:#fff;text-align:left;padding:6px;font-weight:600}.sheet table.it td{padding:6px;border-bottom:1px solid #ddd;vertical-align:top}
.sheet .r{text-align:right}.sheet table.it tr.sum td{border:0;padding:3px 6px}.sheet table.it tr.tot td{background:#111;color:#fff;font-weight:700;font-size:11pt;padding:8px 6px}
.sheet .intro{font-size:9.5pt;margin:0 0 6px}
.sheet .terms{margin:12px 0;font-size:9pt}.sheet .terms p{margin:3px 0}
.sheet table.sig{width:100%;border-collapse:collapse;margin-top:auto;font-size:9pt}.sheet table.sig td,.sheet table.sig th{border:1px solid #999;padding:6px;text-align:left}.sheet table.sig th{background:#f0f0f0}.sheet table.sig td.l{width:22%;color:#555}.sheet table.sig tr.s td{height:42px}
.sheet .ft{display:flex;justify-content:space-between;font-size:7.5pt;color:#555;border-top:1px solid #999;padding-top:5px;margin-top:10px}.sheet .conf{text-align:center;letter-spacing:.4em;font-size:7.5pt;color:#999;margin-top:3px}
.sheet .ih{display:flex;justify-content:space-between;border-bottom:2.5px solid #111;padding-bottom:6px;font-weight:700;font-size:12pt}.sheet .ih span{font-size:8.5pt;letter-spacing:.3em;color:#777;margin-right:8px}
.sheet .dbody{display:grid;grid-template-columns:1fr 52mm;gap:10px;flex:1;margin-top:10px}
.sheet .draw{border:1px solid #bbb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px}.sheet .draw .cap{font-size:8pt;letter-spacing:.25em;color:#666;margin-bottom:8px;text-align:center}
.sheet .side{border:1px solid #bbb;padding:8px;font-size:8.5pt}.sheet .side div{margin-bottom:10px}.sheet .side ul{margin:0;padding-left:14px}
.sheet .tb{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr 1fr;border:1px solid #bbb;border-top:0}.sheet .tb>div{padding:6px;border-right:1px solid #bbb;font-size:9pt}.sheet .tb>div:last-child{border:0}
.sheet .tb b{font-size:10pt}
@media print{@page{size:A4;margin:0}body{background:#fff}.top,#tab-quote>.grid,.pvh,#tab-rates,#tab-settings{display:none!important}main{padding:0;max-width:none}.sheet{margin:0;box-shadow:none;page-break-after:always;break-after:page;height:297mm;overflow:hidden}.sheet:last-child{page-break-after:auto;break-after:auto}}
.sheet table.it td.r,.sheet table.it th.r{white-space:nowrap}
.tier{display:flex;align-items:center;gap:4px;margin:3px 0;font-size:12px;white-space:nowrap}.tier input{width:70px}.tier.ph{background:#fff4d6;border-radius:6px;padding:2px}.phl{color:#8a5a00;font-weight:700;font-size:11px}.tb2{font-size:12px;margin-bottom:4px}.tb2 select{width:auto;padding:3px}.addt{padding:3px 9px;font-size:12px}td.tiers{min-width:330px}
.rt td:nth-child(2){min-width:230px}

/* photo editor */
.phl2{font-size:12px;font-weight:600;margin:6px 0 4px}.pz{border:2px dashed #c9cede;border-radius:10px;padding:8px;margin-bottom:8px;background:#fff}.pz.hov{border-color:#f5b82e;background:#fffbea}
.drop{font-size:13px;color:#556}.pick{display:inline;color:#1f3a93;font-weight:600;text-decoration:underline;cursor:pointer;font-size:13px}
.phs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:8px}.ph{border:1px solid #e3e6ef;border-radius:8px;padding:6px;position:relative;font-size:12px}
.ph input,.ph select{padding:4px;font-size:12px;margin-top:4px}.phb{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.phb button{padding:3px 7px;font-size:11px;background:#eef0f6}.phb .x{background:#fde8e8;color:#b00}
.phimg{background:#eee;text-align:center;border-radius:6px;overflow:hidden}.pw{position:relative;display:inline-block;max-width:100%;vertical-align:top}.pw img{display:block;max-width:100%}.phimg .pw img{max-height:150px}
.mainlbl{position:absolute;top:8px;left:8px;background:#f5b82e;font-size:10px;padding:1px 5px;border-radius:4px}
.ov{position:absolute;border:2px dashed #e03131;background:rgba(224,49,49,.12);cursor:move;touch-action:none}.ov .rz{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;background:#e03131;border-radius:2px;cursor:nwse-resize}
.ov span{position:absolute;font:bold 10px Arial;color:#fff;background:#e03131;padding:0 3px;white-space:nowrap}.ovw{left:50%;top:-14px;transform:translateX(-50%)}.ovh{left:-4px;top:50%;transform:translate(-100%,-50%)}
.shopt{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin-top:8px}.shopt label{color:#cfd3e6;margin:0}.shopt select{padding:4px}
/* engineering sheets */
.sheet.eng{height:297mm;overflow:hidden}.ebody{display:grid;grid-template-columns:1fr 50mm;gap:8px;flex:1;margin-top:8px;min-height:0}
.emain{display:flex;flex-direction:column;gap:8px;min-height:0}.dpanel,.ppanel{border:1px solid #888;padding:6px;position:relative}.dpanel{flex:1;display:flex;flex-direction:column;justify-content:center}
.emain.two .dpanel{flex:0 0 auto}.cap{font-size:7.5pt;letter-spacing:.2em;color:#555;margin-bottom:4px}
.pmain{text-align:center}.pmain .pw img{max-height:78mm;max-width:100%}.emain:not(.two) .pmain .pw img{max-height:150mm}
.pth{display:flex;gap:6px;margin-top:6px}.pth figure{margin:0;flex:1;text-align:center;font-size:7pt;color:#444}.pth .pw img{max-height:24mm}
.big0{font-size:40pt;color:#ccc;text-align:center}
.ov.st{cursor:default;border-style:solid}
.tb8{display:grid;grid-template-columns:1.6fr 1.4fr .8fr .9fr 1fr 1.1fr .7fr 1.2fr;border:1.5px solid #111;margin-top:8px}.tb8>div{padding:5px;border-right:1px solid #111;font-size:8pt}.tb8>div:last-child{border:0}.tb8 h4{margin:0 0 3px;font-size:6.5pt;letter-spacing:.2em;color:#666}
.sheet.bp .dpanel{background:var(--acc,#12305e);border-color:var(--acc,#12305e);color:#fff}.sheet.bp .dpanel .cap{color:#bcd4f5}.sheet.bp .tb8{background:var(--acc,#12305e);color:#fff;border-color:var(--acc,#12305e)}.sheet.bp .tb8>div{border-color:#ffffff55}.sheet.bp .tb8 h4{color:#bcd4f5}.sheet.bp .ih{border-color:var(--acc,#12305e);color:var(--acc,#12305e)}
.gal{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;flex:1;margin-top:8px;min-height:0}.gal figure{margin:0;border:1px solid #888;padding:6px;display:flex;flex-direction:column;min-height:0}.gimg{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}.gimg img{max-width:100%;max-height:95mm}.gal figcaption{font-size:8pt;margin-top:4px}
.exporting .sheet{box-shadow:none;margin:0 auto;height:296.6mm;overflow:hidden}
.dimg{width:100%;height:auto;display:block}
.emain.pos-left,.emain.pos-right{flex-direction:row;align-items:flex-start}.emain.pos-left>*,.emain.pos-right>*{flex:1 1 50%;min-width:0}.emain.pos-left .ppanel,.emain.pos-above .ppanel{order:-1}
.emain.pos-left .ds-large,.emain.pos-right .ds-large{flex-basis:60%}.emain.pos-left .ps-large,.emain.pos-right .ps-large{flex-basis:60%}
.ppanel.ps-small .pmain .pw img{max-height:55mm}.ppanel.ps-large .pmain .pw img{max-height:115mm}.emain.pos-left .pmain .pw img,.emain.pos-right .pmain .pw img{max-height:120mm}
.dpanel.ds-small .dimg{width:60%;margin:0 auto}.dpanel.ds-medium .dimg{width:80%;margin:0 auto}
.sheet.eng:not(.bp)[style*="--acc"] .ih{border-color:var(--acc);color:var(--acc)}.sheet.eng:not(.bp)[style*="--acc"] .tb8{border-color:var(--acc)}

#modeBanner{background:#fff4d6;border:1px solid #e9b949;color:#6b4b00;padding:8px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}#modeBanner.ok{background:#e6f6ec;border-color:#7cc59a;color:#1d5e3a}
#savedSel{display:none}
.aibox{border:1px dashed #8a6cff;background:#f6f3ff;border-radius:8px;padding:8px;margin:8px 0;font-size:12px}.aibox.dk{background:#ffffff12;border-color:#b9a8ff}
.air{display:flex;gap:6px;margin-top:5px}.air input{flex:1}.air button{background:#6d4cff;color:#fff;border:0;border-radius:6px;padding:6px 12px;cursor:pointer}
.aires{margin-top:6px}.aires .chg{background:#fff;color:#222;border:1px solid #d6ccff;border-radius:6px;padding:6px 8px}.aires .chg code{background:#eee;padding:0 4px;border-radius:3px}.aires .err{color:#b00}.aires button{margin-left:6px;padding:2px 8px}
.pfilt{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:10px}.pfilt input#pfQ{flex:1;min-width:220px}
.pgrid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px}@media(max-width:1000px){.pgrid{grid-template-columns:1fr}}
.plist{width:100%;border-collapse:collapse;font-size:12.5px}.plist th,.plist td{padding:6px;border-bottom:1px solid #e5e5e5;text-align:left;vertical-align:top}.plist .r{text-align:right}.plist tr.sel{background:#fff7e0}
.plist button{padding:2px 7px;font-size:11.5px;margin:1px}.st{font-size:11.5px}.st-sent{background:#e7f0ff}.st-accepted{background:#e6f6ec}.st-lost{background:#fde8e8}
.pdet h4{margin:4px 0}.tl{list-style:none;padding:0;margin:6px 0 12px;font-size:12px;max-height:190px;overflow:auto;border-left:2px solid #f5b82e}.tl li{padding:3px 10px}.tl time{color:#777;margin-right:6px}.tl b{text-transform:uppercase;font-size:10.5px;letter-spacing:.05em}
.ppv{background:#555;padding:8px;border-radius:6px;max-height:640px;overflow:auto}.ppv .sheet{zoom:.5;margin:0 auto 12px}.muted{color:#777}
#pinGate{position:fixed;inset:0;background:#0f1630ee;display:flex;align-items:center;justify-content:center;z-index:99}#pinGate form{background:#fff;padding:22px;border-radius:12px;width:300px;text-align:center}#pinGate input{width:100%;font-size:20px;text-align:center;letter-spacing:.3em;margin:10px 0}
.plist select{min-width:92px}

/* ---- round 5: sales + projects ---- */
.paid{display:inline-block;margin-left:4px;font-size:10px;padding:1px 6px;border-radius:9px;font-weight:600}.paid-partial{background:#fff1cc;color:#8a5a00}.paid-full{background:#d8f3df;color:#17663a}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0}.kpi{background:#f4f6fb;border-radius:10px;padding:10px 12px;border-left:4px solid #9fb3d9}.kpi small{display:block;color:#667;font-size:11px}.kpi b{font-size:20px;display:block;margin:2px 0}.kpi span{font-size:11px;color:#778}.kpi.g{border-color:#2f9e5b}.kpi.o{border-color:#e08a00}
.sgrid{display:grid;grid-template-columns:1fr 2fr;gap:12px}.sbox{border:1px solid #e5e8f0;border-radius:10px;padding:10px 12px;min-width:0}.sbox h4{margin:0 0 8px;font-size:13px}
@media(max-width:800px){.sgrid{grid-template-columns:1fr}}
.fun{margin:6px 0}.fbar{background:linear-gradient(90deg,#12305e,#3c64a8);color:#fff;border-radius:6px;padding:4px 8px;min-width:28px;box-sizing:border-box}.fun:nth-child(3) .fbar{background:linear-gradient(90deg,#c98d00,#f5b82e)}.fun:nth-child(4) .fbar{background:linear-gradient(90deg,#17663a,#2f9e5b)}.fun span{font-size:12px;color:#556}
.small{font-size:11px}.chart{width:100%;height:auto;font-size:10px;fill:#667}.legend{font-size:11px;display:flex;gap:14px}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.hb{display:grid;grid-template-columns:90px 1fr 24px;gap:6px;align-items:center;font-size:12px;margin:4px 0}.hb div{background:#f0f1f5;border-radius:4px;height:12px}.hb i{display:block;height:100%;background:#d0453a;border-radius:4px}.lnotes{font-size:11px;padding-left:16px;color:#556}
.sbox table{width:100%;font-size:12px;border-collapse:collapse}.sbox td{padding:4px;border-bottom:1px solid #f0f1f5}
.spipe .acts button{margin:2px;white-space:nowrap}.spipe tr.dim td{opacity:.65}.due{color:#c0392b;font-weight:600}.warn{color:#8a5a00}
dialog{border:none;border-radius:12px;padding:18px;max-width:560px;width:calc(100% - 32px);box-shadow:0 10px 40px #0004}dialog::backdrop{background:#0f163088}dialog h3{margin:0 0 6px}dialog label{display:block;font-size:12px;margin:6px 0}dialog input,dialog textarea,dialog select{width:100%;box-sizing:border-box}
.radios{display:flex;flex-wrap:wrap;gap:6px}.radios label{display:flex;align-items:center;gap:4px;border:1px solid #d5d9e4;border-radius:18px;padding:5px 10px;margin:0;cursor:pointer}.radios input{width:auto}.radios label:has(input:checked){background:#12305e;color:#fff;border-color:#12305e}
.prow{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.btns{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}button.pri{background:#12305e;color:#fff;border-color:#12305e}
.plist2 table{width:100%;font-size:12px;border-collapse:collapse}.plist2 td,.plist2 th{padding:4px;border-bottom:1px solid #eee;text-align:left}.plist2 .r{text-align:right}.paysum{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0;font-size:13px}
.err{color:#c0392b;font-size:12px;min-height:1em;margin:4px 0}
.board{display:grid;grid-template-columns:repeat(6,minmax(178px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}
@media(max-width:700px){.board{grid-template-columns:repeat(6,82vw);scroll-snap-type:x mandatory}.kcol{scroll-snap-align:start}}
.kcol{background:#eef1f7;border-radius:10px;padding:8px;min-height:200px;transition:background .15s}.kcol.hot{background:#dfe8fb;outline:2px dashed #3c64a8}.kcol h4{margin:2px 4px 8px;font-size:13px;display:flex;justify-content:space-between}.kcol h4 span{background:#fff;border-radius:9px;padding:0 7px;font-size:11px}
.kcol[data-col="concerns"]{background:#fbeeee}.kcol[data-col="completed"]{background:#eaf6ee}.kempty{color:#99a;font-size:12px;text-align:center;padding:20px 0}
.kc{background:#fff;border-radius:8px;padding:8px 10px;margin-bottom:8px;box-shadow:0 1px 2px #0002;border-left:4px solid #3c64a8;font-size:12px}.kc.over{border-left-color:#d0453a;background:#fff5f4}.kc.over .due{color:#c0392b}
.kc h5{margin:2px 0 4px;font-size:13px}.kh{display:flex;gap:6px;align-items:center;color:#667}.drag{cursor:grab;touch-action:none;font-size:18px;line-height:1;padding:4px 6px;margin:-4px 0 -4px -6px;user-select:none;color:#99a}
.ki{margin:0 0 4px;padding-left:16px;color:#445}.kmeta{display:flex;flex-wrap:wrap;gap:8px;color:#556;margin:4px 0}.kmeta .due{color:#556;font-weight:400}.kc.over .kmeta .due{color:#c0392b;font-weight:700}
.kbal{font-weight:600;margin:4px 0}.kbal.due{color:#b45309}.kbal.ok{color:#17663a}.kn{color:#667;margin:4px 0;font-style:italic}.kact{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.kact select{flex:1 1 100%;min-width:0;font-size:12px;padding:5px}.kact button{flex:1;font-size:11px;padding:4px 6px}
.kc.ghost{position:fixed;z-index:1000;pointer-events:none;opacity:.92;transform:rotate(2deg);box-shadow:0 8px 24px #0003}.kc.lifting{opacity:.35}.kc.flash{animation:fl 1.2s 2}@keyframes fl{50%{box-shadow:0 0 0 3px #f5b82e}}
.clr{display:flex;gap:6px;align-items:center;margin:3px 0}.clr input[type=checkbox]{width:auto}.clr .clt,#kClNew{flex:1}.khist{margin-top:10px;max-height:180px;overflow:auto}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:#0f1630;color:#fff;padding:10px 16px;border-radius:20px;font-size:13px;transition:transform .25s;z-index:2000}#toast.on{transform:translateX(-50%) translateY(0)}

.prb{font-size:10px;font-weight:700;padding:1px 7px;border-radius:9px;margin-left:auto;color:#fff;text-transform:uppercase;letter-spacing:.3px}.prb-urgent{background:#d0312d}.prb-high{background:#ee7d11}.prb-normal{background:#2f6fd6}.prb-low{background:#8b93a3}
.kc.pr-urgent{border-left-color:#d0312d}.kc.pr-high{border-left-color:#ee7d11}.kc.pr-normal{border-left-color:#2f6fd6}.kc.pr-low{border-left-color:#8b93a3}.kc.over{background:#fff}
.kc .kmeta .due{padding:1px 6px;border-radius:6px;background:#f0f1f5;color:#445;font-weight:600}.kc.d-over .kmeta .due{background:#d0312d;color:#fff}.kc.d-2 .kmeta .due{background:#ee7d11;color:#fff}.kc.d-7 .kmeta .due{background:#ffe27a;color:#5a4500}.kc .kmeta .due.none{background:#fde2e1;color:#b42318}
.klegend{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;margin:4px 0 10px}.klegend .prb{margin:0}.klegend b{margin-left:8px}.dl{padding:1px 7px;border-radius:6px;background:#f0f1f5;color:#445;font-weight:600}.dl.d-over{background:#d0312d;color:#fff}.dl.d-2{background:#ee7d11;color:#fff}.dl.d-7{background:#ffe27a;color:#5a4500}

.kcol[data-col=ready]{background:#eef3ff}.kprep{margin:6px 0;padding:6px;border:1px solid #dfe5f2;border-radius:8px;background:#fafcff;font-size:11px}.kph{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-bottom:4px}
.kpbar{height:4px;background:#e3e7ef;border-radius:3px;margin-bottom:4px}.kpbar i{display:block;height:100%;background:#1f9d55;border-radius:3px}.kpi{display:flex;gap:5px;align-items:flex-start;padding:1px 0;color:#556}.kpi.ok{color:#1f6b3a}.kpi input{margin:1px 0 0}
.rdy{background:#1f9d55;color:#fff;font-weight:700;font-size:10px;padding:1px 7px;border-radius:9px}
.kpi{display:flex!important;flex-direction:row;font-size:11px;margin:0;line-height:1.3}.kpi input{width:auto;flex:none;margin:1px 0 0}

/* ===================== Design system (UI redesign) — app chrome only, client .sheet docs untouched ===================== */
:root{--ink:#0f172a;--ink2:#334155;--mut:#64748b;--line:#e2e8f0;--line2:#cbd5e1;--bg:#f5f7fb;--surf:#fff;--navy:#0f1630;--navy2:#1a2348;--gold:#f5b82e;--gold2:#e0a516;--blue:#12305e;--red:#d0312d;
 --r:10px;--rl:14px;--sh:0 1px 2px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.06);--sh2:0 4px 16px rgba(15,23,42,.08);--ring:0 0 0 3px rgba(245,184,46,.35);--h:38px;--font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{font:14px/1.5 var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}
/* header + tabs */
.top{position:sticky;top:0;z-index:50;padding:0 24px;min-height:60px;background:linear-gradient(180deg,var(--navy),#121a3a);box-shadow:0 1px 0 #ffffff10,0 4px 14px rgba(15,22,48,.25);gap:12px}
.top>div{display:flex;align-items:baseline;gap:10px}.top b{font-size:18px;font-weight:800;letter-spacing:-.01em;margin:0}.top span{font-size:13px;opacity:.7;font-weight:500}
nav{display:flex;gap:4px;flex-wrap:wrap;background:#ffffff0d;padding:4px;border-radius:12px}
nav button{margin:0;border:0;border-radius:8px;padding:0 14px;height:34px;font-size:13px;font-weight:600;color:#cbd2e6;background:transparent;transition:background .15s,color .15s}
nav button:hover{background:#ffffff14;color:#fff}nav button.on{background:var(--gold);color:var(--navy);box-shadow:0 1px 3px rgba(0,0,0,.25)}
main{max-width:1280px;padding:24px}
#modeBanner{border-radius:var(--r);padding:10px 14px;margin-bottom:20px;font-weight:500}
/* surfaces */
section>.card+.card,section>.card+div,section>div+.card{margin-top:20px}
.grid{gap:20px}.col{gap:20px}.sticky{top:84px}
.card{border-radius:var(--rl);padding:20px 22px;box-shadow:var(--sh);border:1px solid var(--line)}
.card h3{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-size:16px;font-weight:700;letter-spacing:-.01em;margin:0 0 16px;color:var(--ink)}
.card h3 small,.card h3 small.muted{font-size:12.5px;font-weight:500;color:var(--mut)}
.card.dark{background:linear-gradient(160deg,var(--navy),var(--navy2));border-color:var(--navy);color:#fff;box-shadow:var(--sh2)}
.card.dark .lbl{font-weight:600;font-size:11px;letter-spacing:.14em}.big{font-size:34px;letter-spacing:-.02em;line-height:1.15;margin:6px 0 14px}
.stats div{border-radius:10px;padding:10px 12px;border:1px solid #ffffff14}.stats b{font-size:15px}
/* forms */
label{font-size:12.5px;font-weight:500;color:var(--ink2);margin-bottom:12px;line-height:1.3}
input,select,textarea{min-height:var(--h);padding:8px 11px;margin-top:6px;border:1px solid var(--line2);border-radius:8px;color:var(--ink);font:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}
textarea{min-height:64px;resize:vertical;line-height:1.45}
input[type=checkbox],input[type=radio]{min-height:0;width:16px;height:16px;accent-color:var(--blue);padding:0;margin:0;flex:none}
input::placeholder,textarea::placeholder{color:#94a3b8}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold2);box-shadow:var(--ring)}
select{appearance:none;-webkit-appearance:none;padding-right:32px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center}
.f2,.f3{gap:14px;align-items:end}
.chk{gap:10px;font-size:13px;color:var(--ink2);min-height:var(--h);margin-bottom:12px;cursor:pointer}
.f3>label.chk{align-self:end;margin-bottom:12px}
/* buttons */
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--h);padding:0 16px;border:1px solid transparent;border-radius:8px;font:600 13.5px/1 var(--font);color:var(--navy);background:var(--gold);white-space:nowrap;transition:background .15s,box-shadow .15s,transform .05s,border-color .15s}
button:hover{background:var(--gold2)}button:active{transform:translateY(1px)}
button:focus-visible{outline:none;box-shadow:var(--ring)}
button:disabled{opacity:.5;cursor:not-allowed}
.ghost{background:#fff;border-color:var(--line2);color:var(--ink2)}.ghost:hover{background:#f1f5f9;border-color:#94a3b8}
.ghost2{background:#ffffff12;border-color:#ffffff33;color:#fff}.ghost2:hover{background:#ffffff22}
button.pri{background:var(--blue);border-color:var(--blue);color:#fff}button.pri:hover{background:#0b2348}
.x,.item .x,.phb .x{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.x:hover{background:#fee2e2}
.btns{gap:10px;margin-top:14px;align-items:center}.btns select{min-height:var(--h);margin:0}
.btns>*{flex:0 0 auto}
.card.dark .btns{justify-content:flex-start}
#addItem{margin-top:4px;margin-bottom:14px}
/* items */
.item{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:14px;background:#f8fafc}
.item .row{gap:12px;align-items:end}.item .hd{font-size:14px;margin-bottom:10px}.item .x{min-height:30px;padding:0 10px}
.chips{gap:6px;margin:2px 0 12px}.chips button{min-height:28px;padding:0 10px;font-size:12px;font-weight:500;background:#fff;border-color:var(--line2);color:var(--ink2);border-radius:999px}.chips button:hover{border-color:var(--gold2);background:#fffbeb}
.calc,.flag{font-size:12.5px;padding:8px 10px;border-radius:8px;line-height:1.45}
/* AI box */
.aibox{border-radius:10px;padding:12px;font-size:12.5px}.air{gap:8px;align-items:stretch;margin-top:8px}.air input{margin:0}.air button{min-height:var(--h);border-radius:8px;padding:0 16px}
.shopt{gap:8px 14px;align-items:center}.shopt label{display:flex;flex-direction:column;font-size:12px}.shopt label.chk{flex-direction:row;min-height:0;margin:0}
.lite{color:#cbd2e6}
/* internal panel */
.internal{border:1.5px dashed #ef4444;background:#fffafa}
.internal table td,.internal table th{padding:7px 6px;border-bottom:1px solid #f1e2e2}.internal table th{font-weight:600;color:var(--mut);font-size:11.5px}
/* tables */
.tblwrap{overflow:auto;border:1px solid var(--line);border-radius:12px}
.plist,.rt,.sbox table,.plist2 table{font-size:13px}
.plist th,.rt th,.plist2 th{position:sticky;top:0;background:#f8fafc;color:var(--mut);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.plist td,.rt td,.plist2 td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}
.plist tbody tr:hover,.rt tbody tr:hover{background:#fafbff}.plist tr.sel{background:#fff8e6}
.plist button{min-height:28px;padding:0 10px;font-size:12px;margin:2px}.plist select{min-height:30px;padding:4px 28px 4px 8px;margin:0;font-size:12.5px}
.rt input,.rt select{min-height:32px;margin:0;padding:5px 8px;font-size:13px}
.tier{gap:6px;margin:4px 0}.tier input{min-height:30px}.addt{min-height:28px;padding:0 10px}.tb2 select{min-height:30px}
/* filter bars */
.pfilt{gap:12px;align-items:flex-end;margin-bottom:16px}
.pfilt>label{margin:0}.pfilt>input,.pfilt>select{width:auto;margin:0}.pfilt>select{min-width:170px}
.pfilt>button{align-self:flex-end}
.pfilt>small{flex-basis:100%;margin-top:-2px}
#sCustom{display:flex;gap:12px;align-items:flex-end}#sCustom[hidden]{display:none}
/* sales */
.kpis{gap:12px;margin:4px 0 18px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.kpis .kpi{display:block!important;flex-direction:column;background:#fff;border:1px solid var(--line);border-left:4px solid #9fb3d9;border-radius:12px;padding:14px 16px;box-shadow:var(--sh);font-size:inherit;line-height:1.35;margin:0}
.kpis .kpi small{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}.kpis .kpi b{font-size:22px;letter-spacing:-.01em;margin:4px 0 2px}.kpis .kpi span{font-size:12px;color:var(--mut)}
.kpis .kpi.g{border-left-color:#2f9e5b}.kpis .kpi.o{border-left-color:#e08a00}
.sgrid{gap:16px}.sbox{border-color:var(--line);border-radius:12px;padding:16px 18px;background:#fff}.sbox h4{font-size:13.5px;font-weight:700;margin:0 0 12px}
.fun{margin:8px 0}.fbar{display:inline-block;border-radius:6px;padding:4px 10px;font-weight:700}
/* kanban */
.klegend{gap:6px 8px;font-size:11.5px;margin:4px 0 16px;padding:10px 12px;background:#f8fafc;border:1px solid var(--line);border-radius:10px}.klegend b{margin-left:10px;color:var(--ink2)}.klegend b:first-child{margin-left:0}
.board{gap:12px}
.kcol{border-radius:12px;padding:10px;min-height:260px;border:1px solid var(--line);background:#f1f4f9}
.kcol h4{align-items:flex-start;gap:8px;margin:2px 4px 10px;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink2);line-height:1.3}
.kcol h4 span{flex:none;align-self:flex-start;min-width:22px;height:20px;line-height:20px;text-align:center;padding:0 7px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:11px;color:var(--ink2)}
.kc{border-radius:10px;padding:10px 12px;margin-bottom:10px;box-shadow:var(--sh);border:1px solid var(--line);border-left:4px solid #3c64a8;transition:box-shadow .15s}.kc:hover{box-shadow:var(--sh2)}
.kc h5{font-size:13.5px;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.kact button{min-height:30px;padding:0 8px;font-size:12px}.kact select{min-height:32px;margin:0}
.kempty{padding:28px 0;color:#94a3b8}
.prb,.rdy,.dl,.paid{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:10.5px;line-height:1}
.dl{border-radius:999px}
/* dialogs */
dialog{border-radius:16px;padding:24px;box-shadow:0 20px 50px rgba(15,23,42,.3)}dialog::backdrop{background:rgba(15,22,48,.55);backdrop-filter:blur(2px)}
dialog h3{font-size:18px;font-weight:700;margin:0 0 12px}dialog label{font-size:12.5px;font-weight:500;margin:0 0 12px}
dialog .btns{justify-content:flex-end;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.radios{gap:8px}.radios label{padding:0 12px;height:34px;font-size:13px;border-radius:999px;margin:0}
.prow{gap:12px}
/* misc */
.pvh{margin:32px 0 12px;font-size:16px;font-weight:700}
.ppv{background:#475569;border-radius:12px;padding:12px}
.pz{border-radius:12px;padding:12px}
#toast{border-radius:10px;padding:12px 18px;font-weight:500;box-shadow:var(--sh2)}
.muted{color:var(--mut)}
a{color:var(--blue)}
/* phone */
@media(max-width:700px){
 .top{padding:10px 14px;position:static}.top>div{width:100%}
 nav{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav button{flex:none;padding:0 12px}
 main{padding:14px}.card{padding:16px}.big{font-size:28px}
 .btns>button{flex:1 1 auto}.pfilt>input,.pfilt>select,.pfilt>label{flex:1 1 100%;width:100%}
 .stats{grid-template-columns:1fr 1fr 1fr}.kpis{grid-template-columns:1fr 1fr}
}
.kpis{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}.kpis .kpi{padding:12px 14px}.kpis .kpi b{font-size:20px}
.fun{display:flex;align-items:center;gap:10px}
.pfilt>input{flex:1 1 260px}
.kcol h4{min-height:34px}
@media(max-width:700px){.kpis{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.f2,.f3{align-items:start;gap:0 14px}}
/* ---- fix1 + QA ---- */
.pgrid:not(.open){grid-template-columns:1fr}.pgrid:not(.open) #pDetail{display:none}
#pDetail{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0;align-self:start;position:sticky;top:84px}
.pdhd{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:4px}.pdhd h4{margin:0;font-size:15px;overflow-wrap:anywhere}
.xbtn{flex:none;width:34px;min-height:34px;padding:0;font-size:15px;border-radius:999px}
#pDetail h4{font-size:13.5px;margin:14px 0 6px}#pDetail .btns{justify-content:flex-start}
.plist td.pacts{white-space:normal;min-width:96px}.plist .acts{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.plist .acts button{margin:0;min-height:28px;padding:0 9px;font-size:12px}
.pgrid.open .plist th:nth-child(3),.pgrid.open .plist td:nth-child(3),.pgrid.open .plist th:nth-child(4),.pgrid.open .plist td:nth-child(4){display:none}
.pgrid.open .plist .acts{flex-direction:column;align-items:stretch}
.tl li{overflow-wrap:anywhere;line-height:1.45;padding:4px 10px}
/* numeric inputs: never clip values */
input[type=number]{min-width:96px;text-align:right;font-variant-numeric:tabular-nums}
.rt input[type=number]{width:110px}.tier input[type=number]{width:96px;min-width:96px}td.tiers{min-width:470px}
.f2 input[type=number],.f3 input[type=number],.item input[type=number]{min-width:0}
.rt td:nth-child(4),.rt td:nth-child(5),.rt td:nth-child(6),.rt td:nth-child(7){white-space:nowrap}
@media(max-width:700px){.pgrid.open .tblwrap{display:none}#pDetail{position:static}}
.kprep .kpi{border:0!important;background:none!important;padding:2px 0!important;border-radius:0}
.kprep .kpi input{width:14px;height:14px}
.board{grid-template-columns:repeat(6,minmax(205px,1fr))}
.kc .kh{font-size:11.5px;line-height:1.3}.kc .kh>span:not(.prb):not(.drag){flex:1;min-width:0;overflow-wrap:anywhere}
.kact select{padding:4px 26px 4px 8px;background-position:right 8px center;text-overflow:ellipsis}
.rt td:nth-child(2) input{min-width:230px}.rt td:last-child{min-width:140px}
.spipe .acts{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.spipe .acts button{margin:0;min-height:28px;padding:0 9px;font-size:12px;background:#fff;border-color:var(--line2);color:var(--ink2)}.spipe .acts button:hover{background:#f1f5f9}
@media(max-width:700px){.ppv{padding:8px}.ppv .sheet{zoom:.38}}
dialog .btns button:not(.pri){background:#fff;border-color:var(--line2);color:var(--ink2)}dialog .btns button:not(.pri):hover{background:#f1f5f9}
.prow{align-items:end}.prow label{margin-bottom:12px}
.plist td:first-child b{white-space:nowrap}.plist .acts{min-width:150px}.pgrid.open .plist .acts{min-width:0}
/* ---- brand logo ---- */
:root{--sky:#0ea5e9}
.top>div{align-items:center}.top img.brand{height:32px;width:auto;display:block}.top .sub{font-size:12.5px;font-weight:500;color:#cbd2e6;opacity:1;padding-left:10px;border-left:1px solid #ffffff2a;line-height:18px}
.top{border-bottom:2px solid transparent;border-image:linear-gradient(90deg,var(--sky),var(--gold)) 1}
.sheet .dlogo{height:9mm;width:auto;display:block;margin-bottom:2px}.sheet .tag{margin-top:3px}
@media(max-width:700px){.top img.brand{height:28px}.top .sub{font-size:11.5px}}
/* ---- tier editor v2 ---- */
td.tiers{min-width:400px}
.tb2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 6px}.tb2 select{width:auto;min-width:150px;padding-right:32px!important;background-position:right 10px center}
.rt .tier{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;white-space:normal;padding:4px 6px;border:1px solid #eef1f6;border-radius:8px;background:#fbfcfe}
.rt .tier>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.rt .tier i{font-style:normal;color:var(--mut);font-size:12px}
.rt .tier input[type=number]{width:92px;min-width:0;box-sizing:border-box;padding:4px 8px;text-align:right}
.rt .tier .tc input[type=number]{width:84px}.rt .tier .x{margin-left:auto}
select{text-overflow:ellipsis}
select{padding-right:30px!important}
/* ---- competitors ---- */
.cfilt select{width:auto;min-width:180px}.cleg{margin:6px 0 12px;line-height:2}
.cflag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;background:#f1f5f9;color:#475569}
.cflag.cheaper{background:#dcfce7;color:#166534}.cflag.par{background:#fef3c7;color:#92400e}.cflag.higher{background:#fee2e2;color:#991b1b}
.csums{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:14px}
.csum{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;border-left:3px solid #0ea5e9}
.cs1{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;font-size:13px}.cs2{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--mut);margin:6px 0}.cs3{font-size:12.5px;font-weight:600;color:var(--navy)}
.ctbl td.r,.ctbl th.r{text-align:right}.ctbl .nw{white-space:nowrap}.ctbl small{color:var(--mut);margin-left:2px}.ctbl .small{font-size:11.5px}.csrc{max-width:260px;font-size:12.5px}.csrc .small{word-break:break-word}
.unv{display:inline-block;margin-left:6px;font-size:10.5px;color:#92400e;background:#fff4d6;border-radius:4px;padding:0 5px}
dialog .chk{display:flex;align-items:center;gap:8px}dialog .chk input{width:auto}
/* ---- QA2 responsive fixes ---- */
.grid>.col,.grid>*{min-width:0}
@media(max-width:900px){.grid{grid-template-columns:minmax(0,1fr)}}
.item .row label:has(select[data-k=rateId]){grid-column:1/-1}
.item input[data-k=rate]{min-width:96px}
.plist select{min-width:108px}
.rt td:nth-child(2) input{min-width:360px}
.card.internal{overflow-x:auto}
@media(max-width:420px){.card.internal table{font-size:11.5px}.card.internal td,.card.internal th{padding:4px 3px!important}#cName::placeholder,.aibox input::placeholder{font-size:12px}}
/* Competitors v2 */
.cflag.low{background:#e0e7ff;color:#3730a3}
.rtag{display:inline-block;padding:1px 7px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;background:#e0f2fe;color:#075985}
.rtag.mind{background:#ede9fe;color:#5b21b6}.rtag.bench{background:#f1f5f9;color:#475569;border:1px dashed #94a3b8}
.cbench{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px}
.csvc td{vertical-align:top}.csvc .r{text-align:right}.csvc .nw{white-space:nowrap}.csvc .small{font-size:11.5px;margin-top:3px}
.csvc .sg{display:flex;align-items:center;gap:4px}.csvc .sg input{width:96px;min-width:0}
.csvc .cnote{min-width:240px}.csvc textarea{width:100%;min-width:0;font-size:12.5px;resize:vertical;box-sizing:border-box}
.cdeth{margin-top:22px}
@media(max-width:760px){
 .csvcw{overflow:visible}.csvc,.csvc tbody,.csvc tr,.csvc td{display:block;width:100%;box-sizing:border-box}.csvc thead{display:none}
 .csvc tr{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:10px;background:#fff}
 .csvc td{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:5px 0!important;border:0!important;text-align:right}
 .csvc td::before{content:attr(data-l);font-size:12px;color:var(--mut);text-align:left;flex:0 0 auto}
 .csvc td[data-l=""]::before{content:none}.csvc td.r{text-align:right}
 .csvc td.cnote{display:block;text-align:left;min-width:0}.csvc td.cnote::before{display:block;margin-bottom:4px}
 .csvc td:first-child{font-size:14px;text-align:left}
}
@media(max-width:760px){.csvc td>*{min-width:0;max-width:72%}.csvc td:first-child{display:block}.csvc td:first-child>*{max-width:none}.csvc td.cnote>*{max-width:none}.csvc td .muted.small{white-space:normal;display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.csvc td.r .nw{white-space:nowrap}}
@media(max-width:760px){.csvc td b{white-space:normal!important;overflow-wrap:anywhere}.csvc td:first-child{white-space:normal!important}}
.csvc th{white-space:normal!important;vertical-align:bottom}.csvc td:first-child{min-width:170px}.csvc td.cnote{min-width:220px;width:30%}@media(max-width:760px){.csvc td:first-child,.csvc td.cnote{min-width:0;width:100%}}
@media(min-width:761px){.csvc td:first-child{width:220px;max-width:240px;white-space:normal}.csvc td:first-child b{white-space:normal}}
@media(max-width:760px){.csvc td:first-child::before{content:none}.csvc td b{overflow-wrap:normal}.csvc td>.cv{max-width:75%;text-align:right}.csvc .cv .sg{justify-content:flex-end}.csvc .cv .muted.small{justify-content:flex-end}}
/* ---- Rate card fit v3 ---- */
.rt th{white-space:normal!important;vertical-align:bottom}
.rt td,.rt th{padding:8px 7px!important}
.rt td:nth-child(2){min-width:0!important}.rt td:nth-child(2) input{min-width:0!important;width:100%}
.rt td:last-child{min-width:0!important;width:110px;word-break:break-word}
.rt input[type=number]{width:76px}
td.tiers{min-width:0!important;width:250px}
.rt .tier{gap:4px 6px}.rt .tier input[type=number],.rt .tier .tc input[type=number]{width:70px}
.rt .tb2 select{min-width:0}
@media(min-width:1024px){.rt{table-layout:fixed}.rt th:nth-child(1){width:8%}.rt th:nth-child(2){width:17%}.rt th:nth-child(3){width:6%}.rt th:nth-child(4),.rt th:nth-child(5){width:9%}.rt th:nth-child(6),.rt th:nth-child(7){width:6.5%}.rt th:nth-child(8){width:27%}.rt th:nth-child(9){width:11%}.rt td{overflow-wrap:anywhere}.rt td:nth-child(n+4):nth-child(-n+7){white-space:normal}}
@media(max-width:1023px){#tab-rates .tblwrap{overflow-x:scroll;scrollbar-width:auto}.rt{min-width:960px}}
/* ---- Competitors v3 ---- */
.cfilt{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.csearch{display:flex;gap:6px;flex:1 1 320px;min-width:0}.csearch input{flex:1;min-width:0;margin:0}.csearch button{flex:0 0 auto}
.cviews{display:inline-flex;gap:4px;padding:4px;background:#f1f5f9;border-radius:999px;margin:12px 0 4px}
.cviews button{border:0;background:transparent;border-radius:999px;padding:7px 16px;font-weight:600;color:var(--mut);min-height:0}
.cviews button.on{background:#fff;color:var(--navy);box-shadow:var(--sh)}
.cchips{display:flex;flex-wrap:wrap;gap:5px}
.cchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:0;padding:3px 4px 3px 9px;border-radius:999px;border:1px solid #bae6fd;background:#f0f9ff;color:#075985;font-size:11.5px;font-weight:500;cursor:pointer;line-height:1.3;text-align:left}
.cchip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cchip b{background:#fff;border-radius:999px;padding:1px 7px;font-weight:700;white-space:nowrap}
.cchip.mind{border-color:#ddd6fe;background:#f5f3ff;color:#5b21b6}.cchip.bench{border:1px dashed #94a3b8;background:#f8fafc;color:#475569}
.cchip.best{box-shadow:0 0 0 2px #22c55e;}.cchip.best b{background:#dcfce7;color:#166534}.cchip.best b::before{content:"★ ";font-size:10px}
.cchip.unv2{opacity:.75}.cchip:hover{filter:brightness(.96)}
.csvc td.ccomp{min-width:180px;width:20%}
@media(min-width:761px){.csvc td.cnote{min-width:160px!important;width:18%!important}.csvc td:first-child{width:150px!important;min-width:130px!important}.csvc td:nth-child(3){white-space:normal}}
@media(max-width:760px){.csvc td.ccomp{display:block;text-align:left;min-width:0;width:100%}.csvc td.ccomp::before{display:block;margin-bottom:5px}.csvc td.ccomp>*{max-width:none}.csvc .cchips{justify-content:flex-start}}
.linkb{background:none;border:0;padding:0;min-height:0;color:inherit;cursor:pointer;text-align:left;font:inherit}.cemp .linkb{color:#0369a1;text-decoration:underline}
.cemp{display:flex;gap:12px;align-items:center;padding:18px 6px}.cemp-i{font-size:24px;width:44px;height:44px;border-radius:50%;background:#f1f5f9;display:grid;place-items:center;flex:0 0 auto}
.cempty td{display:block!important;border:0!important}.cempty{background:#fff!important}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.cempw{grid-column:1/-1}
.ccard{display:flex;flex-direction:column;gap:10px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;min-height:0;min-width:0;box-shadow:var(--sh);border-top:4px solid var(--sky);transition:transform .12s,box-shadow .12s;color:var(--ink);font:inherit}
.ccard:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,23,42,.1)}.ccard.mind{border-top-color:#8b5cf6}.ccard.bench{border-top-color:#94a3b8}
.ccard.sel{outline:2px solid var(--gold);outline-offset:1px}
.cc1{display:flex;gap:10px;align-items:center;min-width:0}.cc1t{min-width:0}.cc1t b{display:block;font-size:14px;overflow-wrap:anywhere}
.cav{flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--blue),var(--sky));color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}.cav.lg{width:52px;height:52px;font-size:17px;border-radius:14px}
.cc2{display:flex;flex-wrap:wrap;gap:4px}
.cc3{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:6px;background:#f8fafc;border-radius:10px;padding:8px}.cc3 div,.cpstats div{display:flex;flex-direction:column;min-width:0}.cc3 b{font-size:14px;color:var(--navy);overflow-wrap:anywhere}.cc3 span,.cpstats span{font-size:11px;color:var(--mut)}
.cc4{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cprof{margin:12px 0 16px;border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(180deg,#f8fbff,#fff);box-shadow:var(--sh);min-width:0}
.cph{display:flex;gap:12px;align-items:center}.cpht{flex:1;min-width:0}.cpht h3{margin:0 0 2px;overflow-wrap:anywhere}.cph .ghost{flex:0 0 auto}
.cpstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.cpstats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.cpstats b{font-size:16px;color:var(--navy);overflow-wrap:anywhere}
.cptbl td.r,.cptbl th.r{text-align:right}.cptbl .nw{white-space:nowrap}.cptbl small{color:var(--mut);margin-left:2px}.cptbl .small{font-size:11.5px}
@media(max-width:760px){.cpstats{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cprof .tblwrap{overflow:visible;border:0}.cptbl,.cptbl tbody,.cptbl tr,.cptbl td{display:block;width:100%;box-sizing:border-box}.cptbl thead{display:none}
 .cptbl tr{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:#fff}
 .cptbl td{display:flex;justify-content:space-between;gap:10px;padding:4px 0!important;border:0!important;text-align:right}.cptbl td::before{content:attr(data-l);font-size:12px;color:var(--mut);text-align:left}
 .cptbl td:first-child{display:block;text-align:left}.cptbl td:first-child::before{content:none}.cptbl td>*{min-width:0}.cptbl td.csrc{max-width:none}
 .csearch{flex-basis:100%}.cfilt select{flex:1 1 140px;min-width:0}}
.csvc td.ccomp{width:auto;max-width:250px;min-width:200px}.cchip span{max-width:140px}
.ctbl td:first-child{max-width:170px}.ctbl .linkb{white-space:normal;overflow-wrap:anywhere}.ctbl .acts{flex-wrap:wrap}
@media(min-width:1024px){.ctbl td,.ctbl th{padding:10px 8px}.ctbl td:last-child .acts{flex-direction:column;align-items:stretch}}
@media(min-width:761px){.csvc td.ccomp{min-width:170px}.csvc td.cnote{min-width:140px!important}.csvc td,.csvc th{padding-left:9px;padding-right:9px}}
.cviews button:not(.on){background:transparent!important;box-shadow:none!important;color:var(--mut)!important}.cviews button.on{background:#fff!important;color:var(--navy)!important;box-shadow:0 1px 3px rgba(15,23,42,.15)!important}
.ccard{align-items:stretch!important;justify-content:flex-start!important}.ccard>*{width:100%;box-sizing:border-box}.cc1,.cc2{justify-content:flex-start}.cc4{text-align:left}
/* ===== Equipment & maintenance ===== */
#tab-equipment{--ok:#15803d;--okb:#dcfce7;--warn:#c2410c;--warnb:#ffedd5;--bad:#d0312d;--badb:#fee2e2}
#tab-equipment h3 small{font-weight:500}
.ehead{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:start}.ehead-t h3{margin-bottom:2px}.ehead-t p{margin:0}.ehead .estats{grid-column:1/-1;margin-top:12px}
.estats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.estat-tile{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:#f8fafc;border-left:4px solid var(--blue);min-width:0}
.estat-tile.ok{border-left-color:var(--ok)}.estat-tile.soon{border-left-color:#f59e0b}.estat-tile.overdue{border-left-color:var(--bad)}
.estat-tile .k{font-size:12px;font-weight:600;color:var(--mut);text-transform:uppercase;letter-spacing:.03em}.estat-tile .v{font-size:28px;font-weight:800;color:var(--navy);line-height:1.15;margin:4px 0 2px}.estat-tile.overdue .v{color:var(--bad)}.estat-tile .s{font-size:12.5px;color:var(--mut)}
.egrid2{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}
.egrid2>.card{margin:0!important;min-width:0}
.esec-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 10px;margin-bottom:10px}.esec-h h3,.esec-h h4{margin:0}.esec-h .cviews{margin:0}
.edg+.edg{margin-top:14px}.edg h4{margin:0 0 6px;font-size:13.5px;display:flex;align-items:center;gap:7px}.edg h4 small{background:#f1f5f9;border-radius:999px;padding:1px 8px;font-size:11.5px;color:var(--mut)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--ok)}.dot.overdue{background:var(--bad)}.dot.today,.dot.soon{background:#f59e0b}
.edl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.edl li{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:7px 10px;background:#fff}
.edl li.overdue{border-left-color:var(--bad);background:#fff7f7}.edl li.today,.edl li.soon{border-left-color:#f59e0b;background:#fffbf3}
.edl-b{all:unset;cursor:pointer;display:flex;flex-direction:column;min-width:0;flex:1}.edl-b:focus-visible{outline:2px solid var(--sky);border-radius:4px}
.edl-t{font-weight:600;font-size:13px;color:var(--navy);overflow-wrap:anywhere}.edl-m{font-size:11.5px;color:var(--mut);overflow-wrap:anywhere}
.edl-d{display:flex;flex-direction:column;align-items:flex-end;font-size:12.5px;font-weight:600;white-space:nowrap}.edl-d small{font-weight:500;color:var(--mut)}.edl li.overdue .edl-d small{color:var(--bad)}
.edl-e{margin:0;font-size:12.5px}
.eweek{display:flex;flex-direction:column;gap:6px}
.ewk{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;border-top:1px solid var(--line);padding-top:6px}.ewk:first-child{border-top:0;padding-top:0}
.ewd{display:flex;flex-direction:column;font-size:12px;color:var(--mut)}.ewd b{color:var(--navy);font-size:13px}.ewk.now .ewd b{color:var(--blue)}
.ewi{display:flex;flex-wrap:wrap;gap:5px;min-width:0;align-items:center}.ewi .muted{font-size:12px}
.ewt{all:unset;cursor:pointer;box-sizing:border-box;max-width:100%;display:flex;flex-direction:column;border-radius:7px;padding:4px 8px;font-size:12px;background:var(--okb);border-left:3px solid var(--ok)}
.ewt span{font-weight:600;color:var(--navy);overflow-wrap:anywhere}.ewt small{color:var(--mut);font-size:11px;overflow-wrap:anywhere}
.ewt.overdue{background:var(--badb);border-left-color:var(--bad)}.ewt.today,.ewt.soon{background:var(--warnb);border-left-color:#f59e0b}
.emgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.emc{border:1px solid var(--line);border-radius:var(--rl);padding:14px;display:flex;flex-direction:column;gap:10px;cursor:pointer;background:#fff;transition:box-shadow .15s,border-color .15s;min-width:0}
.emc:hover{box-shadow:var(--sh);border-color:#cbd5e1}.emc.sel{border-color:var(--blue);box-shadow:0 0 0 2px #12305e33}
.emc-h{display:flex;gap:10px;align-items:center;min-width:0}.emc-n{display:flex;flex-direction:column;min-width:0}.emc-n b{color:var(--navy);overflow-wrap:anywhere}.emc-n span{font-size:12px;color:var(--mut);overflow-wrap:anywhere}
.eico{flex:none;width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;letter-spacing:.03em;color:#fff;background:var(--blue);object-fit:cover}
.eico.t-uv{background:linear-gradient(135deg,#6d28d9,#0ea5e9)}.eico.t-eco{background:linear-gradient(135deg,#12305e,#0ea5e9)}.eico.t-cutter{background:linear-gradient(135deg,#b45309,#f5b82e)}.eico.t-trimmer{background:linear-gradient(135deg,#334155,#64748b)}
h4 .eico{width:26px;height:26px;font-size:8.5px;border-radius:7px;vertical-align:middle;margin-right:4px}
.emc-s{display:flex;flex-wrap:wrap;gap:6px}
.estat,.edue,.ehpill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap}
.estat::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.estat.ok,.edue.ok,.ehpill.ok{background:var(--okb);color:var(--ok)}.estat.warn,.edue.soon,.edue.today,.ehpill.soon{background:var(--warnb);color:var(--warn)}.estat.rep{background:#e0f2fe;color:#0369a1}.estat.bad,.edue.overdue,.ehpill.overdue{background:var(--badb);color:var(--bad)}
.ehb-l{display:flex;justify-content:space-between;font-size:12px;color:var(--mut);margin-bottom:4px}.ehb-l b.ok{color:var(--ok)}.ehb-l b.soon{color:var(--warn)}.ehb-l b.overdue{color:var(--bad)}
.ehb-t{height:7px;border-radius:99px;background:#eef2f7;overflow:hidden}.ehb-t i{display:block;height:100%;border-radius:99px;background:var(--ok)}.ehb-t i.soon{background:#f59e0b}.ehb-t i.overdue{background:var(--bad)}
.emc-x{font-size:12.5px;color:var(--ink2,#334155);overflow-wrap:anywhere}.emc-x .overdue{color:var(--bad);font-weight:600}.emc-x .today,.emc-x .soon{color:var(--warn);font-weight:600}.emc-x .ok{color:var(--ok)}
.emc-b{display:flex;gap:8px;margin-top:auto}.emc-b button{flex:1}
.eempty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:28px;color:var(--mut);border:1px dashed var(--line);border-radius:var(--rl)}
#eqDetail{margin-top:20px}
.edet-h{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.edet-h .eico{width:56px;height:56px;font-size:13px}
.edet-n{flex:1;min-width:180px}.edet-n h3{margin:0 0 4px;overflow-wrap:anywhere}.edet-s{display:flex;gap:6px;flex-wrap:wrap}
.edet-b{display:flex;flex-wrap:wrap;gap:8px}
.einfo{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px 16px;margin:16px 0 0;padding:12px 14px;background:#f8fafc;border-radius:var(--r)}
.einfo div{min-width:0}.einfo dt{font-size:11.5px;color:var(--mut);font-weight:600}.einfo dd{margin:2px 0 0;font-weight:600;color:var(--navy);overflow-wrap:anywhere}
.enotes{margin:10px 0 0;font-size:13px;color:var(--mut);overflow-wrap:anywhere}
.edet-g{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;margin-top:18px}
.etl{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.etl li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 14px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:8px 10px}
.etl li.overdue{border-left-color:var(--bad);background:#fff7f7}.etl li.today,.etl li.soon{border-left-color:#f59e0b;background:#fffbf3}
.etl-a{display:flex;flex-direction:column;min-width:0}.etl-a b{font-size:13px;color:var(--navy);overflow-wrap:anywhere}.etl-a span{font-size:11.5px;color:var(--mut);overflow-wrap:anywhere}
.etl-c{display:flex;flex-direction:column;font-size:12px;white-space:nowrap;text-align:right}
.etl-d{display:flex;gap:6px;align-items:center;justify-content:flex-end}
button.sm{padding:5px 10px;font-size:12px;min-height:0}
.etime{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:12px}
.etime li{position:relative;font-size:12.5px;min-width:0}.etime li::before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
.etime-h{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:3px}.etime-h b{color:var(--navy)}
.etime-r{overflow-wrap:anywhere;margin-top:2px}.etime-r span{display:inline-block;min-width:44px;font-weight:700;color:var(--mut);font-size:11px;text-transform:uppercase;margin-right:4px}.etime-r.iss{color:var(--bad)}
.etime-f{color:var(--mut);font-size:11.5px;margin-top:2px}
.lnk{all:unset;cursor:pointer;color:var(--mut);font-size:11.5px;text-decoration:underline;margin-left:auto}.lnk:hover{color:var(--bad)}
.eguide{margin-top:20px}.eguide summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}.eguide summary::before{content:"▸";color:var(--blue);transition:transform .15s}.eguide[open] summary::before{transform:rotate(90deg)}.eguide summary h3{margin:0}.eguide summary::-webkit-details-marker{display:none}
#eqGuideB{margin-top:12px;font-size:13px}#eqGuideB h4{margin:16px 0 6px}
.egrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.egs{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;min-width:0}.egs h4{margin:0 0 6px!important;display:flex;align-items:center}.egs p{margin:0 0 6px;color:var(--mut)}.egs ul{margin:0;padding-left:18px}.egs li{margin:2px 0;overflow-wrap:anywhere}
.esrc{padding-left:20px;margin:0}.esrc li{margin:3px 0;overflow-wrap:anywhere}.esrc a{color:var(--blue)}
.edlg{max-width:620px}.edlg form{display:block}.edlg .btns{align-items:center}.edlg .sp{flex:1}
.ghost.danger{color:var(--bad);border-color:#fecaca}.ghost.danger:hover{background:#fef2f2}
.eph{display:flex;align-items:center;gap:10px;margin:4px 0}.eph img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.eph .lnk{margin-left:0}
.echk{display:flex!important;align-items:center;gap:8px;font-size:13px!important}.echk input{width:auto!important;margin:0}
.elist{display:flex;flex-direction:column;gap:6px;margin:8px 0 10px;max-height:min(40vh,320px);overflow:auto;padding-right:2px}
.eck{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:7px 10px!important;margin:0!important;cursor:pointer;font-size:13px!important}
.eck.overdue{border-left-color:var(--bad)}.eck.today,.eck.soon{border-left-color:#f59e0b}
.eck input{width:18px!important;height:18px;margin:0}.eck span{display:flex;flex-direction:column;min-width:0}.eck b{overflow-wrap:anywhere}.eck small{color:var(--mut);font-size:11.5px}
.emore summary{cursor:pointer;font-size:12.5px;color:var(--mut);margin:4px 0}.emore .eck{margin-top:6px!important}
@media(max-width:1100px){.egrid2{grid-template-columns:minmax(0,1fr)}.edet-g{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.estats{grid-template-columns:repeat(2,minmax(0,1fr))}.ehead{grid-template-columns:1fr}.ehead-b button{width:100%}.estat-tile .v{font-size:24px}
 .etl li{grid-template-columns:minmax(0,1fr) auto}.etl-c{grid-column:1;flex-direction:row;gap:10px;text-align:left;flex-wrap:wrap}.etl-d{grid-row:1/span 2;grid-column:2;flex-direction:column;align-items:flex-end}
 .edet-b{width:100%}.edet-b button{flex:1}.edet-b #eqDClose{flex:0 0 auto}.emgrid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.estat-tile{padding:10px}.estat-tile .k{font-size:10.5px}.edl li{flex-direction:column;align-items:stretch}.edl-d{flex-direction:row;justify-content:space-between}}
#eqDetail{scroll-margin-top:84px}.emorebtn{margin-top:8px;width:100%}
