/* Patchbay · Presence Pro Audio. Matches ppa-command-center/mockups. */
@font-face{font-family:Montserrat;src:url('/static/fonts/Montserrat-VariableFont_wght.woff2?v=1') format('woff2'),url('/static/fonts/Montserrat-VariableFont_wght.ttf?v=1') format('truetype');font-weight:100 900;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#F3F2EE;--panel:#FFFFFF;--panel2:#F3F2EE;--line:#ECE9E2;--line2:#DDD9D0;--txt:#151314;--mut:#6B6964;--acc:#FD941D;--acc-d:#A85A00;--ink:#151314;--warn:#B85F00;--bad:#D23C3C;--ok:#2E8B57;--safe-b:env(safe-area-inset-bottom,0px)}
html{-webkit-text-size-adjust:100%}
body{overflow-wrap:break-word;background:var(--bg);color:var(--txt);font:500 13.5px/1.45 Montserrat,"Segoe UI",system-ui,sans-serif;letter-spacing:-.005em;-webkit-font-smoothing:antialiased}
a{color:var(--txt);font-weight:600;text-decoration:none}
a:hover{color:var(--acc-d)}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px}
.dot{color:var(--acc)}
.mut{color:var(--mut)}.sm{font-size:12px}.xs{font-size:11px}.xs12{font-size:12px}.mono{font-family:ui-monospace,Menlo,monospace;font-size:11px}
.plain{font-weight:inherit}
.linklike{background:none;border:none;color:var(--mut);padding:9px 11px;font-weight:500;width:100%;text-align:left;border-radius:8px}
.linklike:hover{color:var(--txt)}

/* ---- shell ---- */
.app{display:flex;min-height:100vh;background:linear-gradient(90deg,#fff 0 220px,var(--line) 220px 221px,transparent 221px)}
.side{width:220px;background:#fff;border-right:1px solid var(--line);padding:20px 14px;flex-shrink:0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;letter-spacing:-.02em;margin-bottom:26px;color:var(--txt)}
.logo .mk{width:34px;height:34px;background:url(/static/icons/ppa-mark.png) center/contain no-repeat;flex-shrink:0}
.logo small{display:block;color:var(--mut);font-weight:500;font-size:11px}
.nav a{display:flex;justify-content:space-between;align-items:center;color:var(--mut);padding:9px 11px;border-radius:8px;margin-bottom:2px;font-weight:500}
.nav a:hover{background:var(--panel2);color:var(--txt)}
.nav a.on{background:var(--panel2);color:var(--txt);font-weight:700;box-shadow:inset 4px 0 0 var(--acc);border-radius:0 8px 8px 0}
.nav h6{color:#8A8780;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin:18px 11px 6px}
.side-foot{margin-top:auto;padding:16px 11px 0;font-size:10.5px;color:#8A8780}
.main{flex:1;padding:22px 28px 40px;min-width:0}
.mtop,.tabbar,.sheet{display:none}

/* ---- headers ---- */
.hdr{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.hdr h1{font-size:26px;font-weight:900;letter-spacing:-.04em;line-height:1.1}
.hdr h1 a{font-weight:900}
.crumbs{margin-bottom:2px}.crumbs a{color:var(--mut);font-weight:600}
.hdr-r{display:flex;align-items:center;gap:10px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.who{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:4px 10px 4px 4px;font-size:12.5px;white-space:nowrap}
.av{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;font-size:11px;font-weight:700;color:#151314;flex-shrink:0}
.who .av{width:26px;height:26px;font-size:10.5px}
.rp{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:5px;background:#ECE9E2;color:#55534F;white-space:nowrap}
.rp.own{background:#151314;color:#fff}
.badge{display:inline-flex;align-items:center;gap:6px;background:#151314;color:#fff;border-radius:5px;padding:4px 11px;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.badge:first-letter{color:var(--acc)}

/* ---- tabs, filters ---- */
.tabs{display:flex;gap:6px;margin:-2px 0 14px}
.tabs a{padding:6px 13px;border-radius:8px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--mut);font-weight:500;white-space:nowrap}
.tabs a.on{background:var(--acc);color:#151314;border-color:var(--acc);font-weight:700}
.scrollx{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scrollx::-webkit-scrollbar{display:none}
.fb{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.fl{display:inline-flex;align-items:center;gap:4px;background:#fff;border:1px solid var(--line2);border-radius:8px;padding:0 4px 0 11px;font-size:12.5px;color:var(--mut);white-space:nowrap;height:34px}
.fl.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.fl select,.fl input{border:none;background:transparent;font-weight:700;color:var(--txt);padding:6px 4px;font-size:12.5px;max-width:190px;outline:none;cursor:pointer}
.srch{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line2);border-radius:9px;padding:0 14px;color:var(--mut);width:330px;height:34px}
.srch:focus-within{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.srch input{border:none;outline:none;flex:1;font-size:13px;background:transparent;min-width:0;color:var(--txt)}
.clear{font-size:12px;color:var(--mut);padding:0 6px}

/* ---- cards & tables ---- */
.card{background:var(--panel);border:1px solid transparent;border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(21,19,20,.04)}
.card.hl{border-left:7px solid var(--acc)}
.card h3{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.card.list{padding:8px 16px 12px}.card.list>h3{margin:8px 0 6px}
.grid{display:grid;gap:16px}
.two-1{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}
table{width:100%;border-collapse:collapse}
td,th{text-align:left;padding:9px 6px;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap;vertical-align:middle}
th{color:var(--mut);font-weight:700;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
th a{color:inherit;font-weight:inherit}th a:hover{color:var(--txt)}
td.w{white-space:normal}
tr:last-child td{border-bottom:none}
tr[data-href]{cursor:pointer}
tbody tr[data-href]:hover td{background:#FBFAF8}
.num{text-align:right;font-variant-numeric:tabular-nums}
.foot-note{font-size:11.5px;padding:10px 6px 2px;border-top:1px solid var(--line)}
.empty{padding:36px 10px;text-align:center}
.xscroll{overflow-x:auto}
.pill{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.p-ok{background:rgba(46,139,87,.14);color:var(--ok)}.p-bad{background:rgba(210,60,60,.12);color:var(--bad)}.p-warn{background:rgba(253,148,29,.16);color:var(--warn)}.p-acc{background:rgba(253,148,29,.16);color:var(--acc-d)}.p-mut{background:#ECE9E2;color:var(--mut)}
.st{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.s-act{background:rgba(46,139,87,.15);color:#2E8B57}.s-out{background:rgba(253,148,29,.18);color:#A85A00}.s-hold{background:#ECE9E2;color:#55534F}.s-lost{background:rgba(210,60,60,.12);color:#D23C3C}.s-done{background:#151314;color:#fff}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:8px 14px;font-weight:600;font-size:13px;border:1px solid var(--line2);background:#fff;color:var(--txt);white-space:nowrap;text-decoration:none}
.btn:hover{border-color:#C9C5BC;color:var(--txt)}
.btn.ok{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:700}.btn.ok:hover{background:#F08712}
.btn.no{color:var(--bad);border-color:rgba(210,60,60,.45);background:transparent}
.btn.dis{color:#A9A59D;cursor:not-allowed;background:var(--panel2);border-color:var(--line)}
.sbtn{padding:5px 11px;font-size:12px}
.btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.row-b{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.inl{display:inline}
.lock{background:rgba(21,19,20,.04);border:1px dashed #C9C5BC;border-radius:9px;padding:9px 11px;font-size:11.5px;color:var(--mut);margin-top:10px}
.in{display:block;width:100%;border:1px solid var(--line2);border-radius:9px;padding:11px 13px;font-size:14px;margin:6px 0 12px;background:#fff;color:var(--txt);outline:none}
.in:focus{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.in:disabled{background:var(--panel2);color:var(--mut)}
.in.sm-in{display:inline-block;width:auto;padding:7px 10px;font-size:13px;margin:0}
.lb{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.ta{display:block;width:100%;background:#fff;border:1px solid var(--line2);border-radius:8px;padding:9px 10px;font-size:13px;min-height:56px;margin-bottom:8px;resize:vertical;outline:none;line-height:1.45}
.ta:focus{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}
.chk{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--mut);cursor:pointer}
.chk input{accent-color:var(--acc);width:16px;height:16px}
.checks{display:flex;flex-wrap:wrap;gap:8px 16px;margin:6px 0 12px}
.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}.kv:last-child{border:none}.kv>span{color:var(--mut)}
.kv b{text-align:right}.kv .tx{color:var(--txt)}
.kv.tot{font-size:15px;font-weight:800}.kv.tot>span{color:var(--txt)}
.trunc{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}

/* ---- job page ---- */
.facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}
.facts>div{background:#fff;border-radius:10px;padding:9px 12px;font-size:11px;color:var(--mut)}
.facts b{display:block;color:var(--txt);font-size:13.5px;margin-top:1px}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 340px;gap:16px;align-items:start}
.stack>.card{margin-bottom:16px}
.lbl0{font-size:10.5px;font-weight:700;letter-spacing:.06em;margin-bottom:6px}
.cid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:10px}
.cid a{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:11px;color:var(--mut);background:var(--panel2);font-weight:500}
.cid a b{display:block;color:var(--txt);font-size:11px;white-space:nowrap}
.cid a.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc);background:rgba(253,148,29,.08)}
.big{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}
.big form{display:contents}
.big button{display:flex;justify-content:center;align-items:center;gap:8px;border-radius:10px;padding:12px 6px;font-weight:700;font-size:14px;border:none;min-height:46px}
.big .call{background:var(--acc);color:#151314}.big .txt{background:#151314;color:#fff}
.big button:active{transform:scale(.98)}
.textbox{margin:8px 0 4px;padding:10px;background:var(--panel2);border-radius:10px}
.textbox select{width:100%;margin-bottom:8px}
.ct{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px}.ct:last-child{border:none}
.ct-b{display:flex;gap:6px}.ct-b form{display:inline}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.chips a{border:1px solid var(--line);border-radius:20px;padding:3px 10px;font-size:11.5px;color:var(--mut);font-weight:500;background:#fff}
.chips a.on{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:700}
.noteform{margin-bottom:10px}
.note{background:var(--panel2);border-radius:8px;padding:9px 11px;font-size:12.5px;margin-bottom:7px;border-left:3px solid var(--acc)}
.note .nbody{white-space:pre-line}
.note,.note .nbody{overflow-wrap:anywhere}
.note .m{display:flex;justify-content:space-between;gap:8px;color:var(--mut);font-size:11px;margin-bottom:3px;white-space:normal}.note .m b{color:var(--txt)}
.note.pin{border-left-color:#151314;background:#FFF6EA}
.note .kind{text-transform:uppercase;font-weight:700;font-size:10px;letter-spacing:.05em;color:var(--acc-d)}
.pinbtn{background:none;border:none;color:#A9A59D;font-size:10.5px;font-weight:600;padding:0 0 0 4px;line-height:1;cursor:pointer}.pinbtn:hover{color:var(--txt)}
.pnum{font-size:20px;font-weight:900;letter-spacing:-.03em}
.vers{margin-top:8px;font-size:12px}.vers summary{cursor:pointer;color:var(--mut);font-weight:600;padding:4px 0}
.prog{height:9px;background:var(--panel2);border-radius:9px;overflow:hidden;margin:8px 0 4px}.prog i{display:block;height:100%;background:var(--acc)}
.ev{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:12.5px}.ev:last-child{border:none}
.ev .d{width:46px;flex-shrink:0;text-align:center;background:var(--panel2);border-radius:7px;padding:3px 0;font-size:10.5px;color:var(--mut);font-weight:600}.ev .d b{display:block;font-size:15px;color:var(--txt)}
.card.own,.own{border-left:7px solid #151314}
.own h3 .rp{margin-left:auto}
.bigp{font-size:30px;font-weight:900;letter-spacing:-.03em;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mg{font-size:13px;font-weight:700;color:var(--ok)}.mg.neg{color:var(--bad)}
.bars{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:10px 0 6px;background:var(--panel2)}.bars i{display:block;height:100%}
.leg{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--mut)}.leg span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;background:var(--c);vertical-align:-1px}

/* ---- client ---- */
.stat{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.stat.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.stat .card{padding:12px 16px}
.stat .card b{display:block;font-size:24px;font-weight:900;letter-spacing:-.03em;margin-top:2px}.stat .card span{font-size:11.5px;color:var(--mut)}

/* ---- admin ---- */
.mx td,.mx th{padding:8px 4px;font-size:12px}
.mx th{font-size:9.5px;letter-spacing:.03em;white-space:normal;line-height:1.25;vertical-align:bottom;text-align:center;min-width:70px}
.mx th:first-child,.mx td:first-child{text-align:left;min-width:170px}
.mx th .thd{font-weight:500;text-transform:none;letter-spacing:0;color:#A9A59D;font-size:9.5px;margin-top:2px}
.mx td.c{text-align:center}.mx td.l,.mx th.l{text-align:left;white-space:normal;min-width:130px}
.mx tr.sel td{background:rgba(253,148,29,.07)}
.mx tr.retired td{opacity:.5}
.mx tr.new td{border-bottom:none;padding-top:12px}
.bx{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:4px;border:1.5px solid #CFCBC2;font-size:11px;color:transparent;vertical-align:middle}
.bx.y{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:800}.bx.h{background:rgba(253,148,29,.25);border-color:var(--acc);color:#A85A00;font-weight:800}
.fa{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;white-space:nowrap}.fa.f{background:#151314;color:#fff}.fa.c{background:rgba(253,148,29,.18);color:#A85A00}.fa.n{background:#ECE9E2;color:#6B6964}
.rn b{display:block;font-size:12.5px}.rn span{font-size:10.5px;color:var(--mut)}
.rc{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;background:#ECE9E2;color:#55534F;margin:2px 3px 2px 0;white-space:nowrap}.rc.own{background:#151314;color:#fff}
.pp td{font-size:12.5px;padding:8px 6px;white-space:normal}
.pr{display:flex;align-items:center;gap:9px}
.lg{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--mut);margin-top:10px;align-items:center}
.lg>span{display:inline-flex;align-items:center;gap:6px}
.inlrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.formgrid{display:grid;grid-template-columns:1fr 2fr;gap:0 14px}
.modgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.seg{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.seg[disabled]{opacity:.65}
.seg legend{font-weight:700;font-size:13px;padding:0 4px}
.seg legend small{display:block;font-weight:500;font-size:11px;color:var(--mut)}
.seg label{display:inline-block;margin:6px 4px 0 0}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label span{display:inline-block;padding:5px 11px;border-radius:7px;border:1px solid var(--line2);font-size:12px;color:var(--mut);cursor:pointer}
.seg input:checked+span{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:700}
.seg input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.seg input:disabled+span{cursor:not-allowed}
.tempbox{margin-bottom:16px}
.tmp{display:flex;gap:10px;align-items:center;margin:4px 0 8px}
.tmp code{font:700 20px/1 ui-monospace,Menlo,monospace;letter-spacing:.06em;background:var(--panel2);padding:10px 14px;border-radius:8px}
.pager{display:flex;justify-content:center;gap:12px;align-items:center;padding:10px}
.sets{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start}
.setrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:12.5px}
.setrow:last-of-type{border:none}
.setrow>span:first-child{color:var(--mut)}
.inwrap{position:relative;flex-shrink:0;width:150px}
.inwrap .in{margin:0;padding:7px 10px;font-size:13px;text-align:right}
.inwrap.money:before{content:"$";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--mut);font-size:13px}
.savebar{grid-column:1/-1;position:sticky;bottom:12px;display:flex;justify-content:flex-end}
.savebar .btn{box-shadow:0 6px 18px rgba(21,19,20,.15)}

/* ---- sign in ---- */
body.signin{background:var(--bg)}
.wrap{min-height:100vh;display:grid;grid-template-columns:1fr 560px}
.lft{padding:56px 64px;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.lft-top{display:flex;justify-content:space-between;align-items:center}
.lft h1{font-size:44px;font-weight:900;letter-spacing:-.04em;line-height:1.05;margin:22px 0 6px}
.lft .tag{font-weight:700;color:var(--acc-d);margin-bottom:14px}
.lft p{color:var(--mut);font-size:15px;max-width:520px}
.mk2{width:60px;height:60px;background:url(/static/icons/ppa-mark.png) center/contain no-repeat}
.mk2.small{width:34px;height:34px}
.rt{background:#fff;display:flex;align-items:center;justify-content:center;border-left:1px solid var(--line);padding:30px}
.box{width:400px;max-width:100%}.box h2{font-size:24px;font-weight:900;letter-spacing:-.03em;margin-top:2px}
.lnk{display:flex;width:100%;justify-content:center;border-radius:10px;padding:13px 0;font-weight:700;font-size:15px;background:var(--acc);color:#151314;border:none;margin-top:4px}
.lnk:hover{background:#F08712}
.box .row-b{margin-top:14px;font-size:12px}
.fine{font-size:11.5px;color:var(--mut);margin-top:18px;line-height:1.5}
.err{background:rgba(210,60,60,.08);border:1px solid rgba(210,60,60,.35);color:#A42A2A;border-radius:9px;padding:10px 12px;font-size:13px;margin-top:16px}
.m-brand{display:none}
.lft-brand{display:flex;flex-direction:column;align-items:flex-start}
.lft-brand .mk2{width:84px;height:84px}
.lft-brand h1{font-size:56px;margin:22px 0 8px}
.lft-brand .tag{font-size:17px;margin:0;letter-spacing:.01em}
.box .sub{margin-top:6px}
.box .fields{margin-top:24px}
.box .chk{display:flex;align-items:center;gap:8px;font-size:13px;margin:4px 0 18px;cursor:pointer}
.box .forgot{font-size:12.5px;text-align:center;margin-top:16px}
.m-foot{display:none;font-size:12px;text-align:center;margin-top:40px}
.m-tag{display:block;font-size:12.5px;font-weight:600;color:var(--mut);letter-spacing:0}
.center-pg{min-height:70vh;display:grid;place-items:center;text-align:center}
.center-pg .card{max-width:440px;padding:28px}
.center-pg h1{font-size:44px;font-weight:900;letter-spacing:-.04em}

/* ---- toast ---- */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#151314;color:#fff;padding:11px 18px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.2);z-index:50;max-width:calc(100vw - 32px);transition:opacity .4s,transform .4s;border-left:5px solid var(--acc)}
.toast.bye{opacity:0;transform:translate(-50%,12px)}

/* ---- icons ---- */
.ti{display:block;width:22px;height:22px;background:currentColor;-webkit-mask:center/contain no-repeat;mask:center/contain no-repeat}
.ti-jobs{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%277%27%20width%3D%2718%27%20height%3D%2713%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27M8%207V5a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%277%27%20width%3D%2718%27%20height%3D%2713%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27M8%207V5a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2%27/%3E%3C/svg%3E")}
.ti-clients{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%278%27%20r%3D%273.5%27/%3E%3Cpath%20d%3D%27M2.5%2020c.8-3.6%203.4-5.5%206.5-5.5s5.7%201.9%206.5%205.5%27/%3E%3Cpath%20d%3D%27M16%204.5a3.5%203.5%200%200%201%200%207M18.5%2014.8c1.6.8%202.6%202.5%203%205.2%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%278%27%20r%3D%273.5%27/%3E%3Cpath%20d%3D%27M2.5%2020c.8-3.6%203.4-5.5%206.5-5.5s5.7%201.9%206.5%205.5%27/%3E%3Cpath%20d%3D%27M16%204.5a3.5%203.5%200%200%201%200%207M18.5%2014.8c1.6.8%202.6%202.5%203%205.2%27/%3E%3C/svg%3E")}
.ti-designs{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27/%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4Z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020h9%27/%3E%3Cpath%20d%3D%27M16.5%203.5a2.1%202.1%200%200%201%203%203L7%2019l-4%201%201-4Z%27/%3E%3C/svg%3E")}
.ti-proposals{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H6a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V9z%27/%3E%3Cpath%20d%3D%27M14%203v6h6M8%2013h8M8%2017h5%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%203H6a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V9z%27/%3E%3Cpath%20d%3D%27M14%203v6h6M8%2013h8M8%2017h5%27/%3E%3C/svg%3E")}
.ti-installs{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14.7%206.3a4%204%200%200%200-5.4%205.2L3%2017.8V21h3.2l6.3-6.3a4%204%200%200%200%205.2-5.4l-2.6%202.6-2.4-.6-.6-2.4z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14.7%206.3a4%204%200%200%200-5.4%205.2L3%2017.8V21h3.2l6.3-6.3a4%204%200%200%200%205.2-5.4l-2.6%202.6-2.4-.6-.6-2.4z%27/%3E%3C/svg%3E")}
.ti-billing{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%275%27%20width%3D%2720%27%20height%3D%2714%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27M2%2010h20M6%2015h4%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%275%27%20width%3D%2720%27%20height%3D%2714%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27M2%2010h20M6%2015h4%27/%3E%3C/svg%3E")}
.ti-owner_financials{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27/%3E%3Cpath%20d%3D%27m7%2015%204-4%203%203%205-6%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%203v18h18%27/%3E%3Cpath%20d%3D%27m7%2015%204-4%203%203%205-6%27/%3E%3C/svg%3E")}
.ti-admin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27/%3E%3Cpath%20d%3D%27M19.4%2015a1.7%201.7%200%200%200%20.3%201.8l.1.1a2%202%200%201%201-2.8%202.8l-.1-.1a1.7%201.7%200%200%200-1.8-.3%201.7%201.7%200%200%200-1%201.5V21a2%202%200%201%201-4%200v-.1a1.7%201.7%200%200%200-1.1-1.5%201.7%201.7%200%200%200-1.8.3l-.1.1a2%202%200%201%201-2.8-2.8l.1-.1a1.7%201.7%200%200%200%20.3-1.8%201.7%201.7%200%200%200-1.5-1H3a2%202%200%201%201%200-4h.1a1.7%201.7%200%200%200%201.5-1.1%201.7%201.7%200%200%200-.3-1.8l-.1-.1a2%202%200%201%201%202.8-2.8l.1.1a1.7%201.7%200%200%200%201.8.3H9a1.7%201.7%200%200%200%201-1.5V3a2%202%200%201%201%204%200v.1a1.7%201.7%200%200%200%201%201.5%201.7%201.7%200%200%200%201.8-.3l.1-.1a2%202%200%201%201%202.8%202.8l-.1.1a1.7%201.7%200%200%200-.3%201.8V9a1.7%201.7%200%200%200%201.5%201H21a2%202%200%201%201%200%204h-.1a1.7%201.7%200%200%200-1.5%201z%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27/%3E%3Cpath%20d%3D%27M19.4%2015a1.7%201.7%200%200%200%20.3%201.8l.1.1a2%202%200%201%201-2.8%202.8l-.1-.1a1.7%201.7%200%200%200-1.8-.3%201.7%201.7%200%200%200-1%201.5V21a2%202%200%201%201-4%200v-.1a1.7%201.7%200%200%200-1.1-1.5%201.7%201.7%200%200%200-1.8.3l-.1.1a2%202%200%201%201-2.8-2.8l.1-.1a1.7%201.7%200%200%200%20.3-1.8%201.7%201.7%200%200%200-1.5-1H3a2%202%200%201%201%200-4h.1a1.7%201.7%200%200%200%201.5-1.1%201.7%201.7%200%200%200-.3-1.8l-.1-.1a2%202%200%201%201%202.8-2.8l.1.1a1.7%201.7%200%200%200%201.8.3H9a1.7%201.7%200%200%200%201-1.5V3a2%202%200%201%201%204%200v.1a1.7%201.7%200%200%200%201%201.5%201.7%201.7%200%200%200%201.8-.3l.1-.1a2%202%200%201%201%202.8%202.8l-.1.1a1.7%201.7%200%200%200-.3%201.8V9a1.7%201.7%200%200%200%201.5%201H21a2%202%200%201%201%200%204h-.1a1.7%201.7%200%200%200-1.5%201z%27/%3E%3C/svg%3E")}
.ti-more{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3Ccircle%20cx%3D%2719%27%20cy%3D%2712%27%20r%3D%271.2%27/%3E%3C/svg%3E")}

/* ---- tablet ---- */
@media (max-width:1240px){
  .cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .cols>.stack:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .cols>.stack:last-child>.card{margin:0}
  .facts{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ---- phone ---- */
@media (max-width:860px){
  .app{background:none}
  body{font-size:14px}
  .side{display:none}
  .main{padding:0 14px calc(84px + var(--safe-b))}
  .mtop{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;background:rgba(243,242,238,.92);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);margin:0 -14px 10px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;border-bottom:1px solid var(--line)}
  .mtop .logo{margin:0}.mtop .logo .mk{width:28px;height:28px}
  .mtop .who{padding:3px;border-radius:50%}
  .hdr{margin-top:6px}.hdr h1{font-size:23px}
  .hdr-r{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 4px calc(6px + var(--safe-b))}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:var(--mut);font-weight:600;padding:4px 0}
  .tabbar a.on{color:var(--txt)}.tabbar a.on .ti{background:var(--acc)}
  .sheet:not([hidden]){display:block;position:fixed;inset:0;z-index:40;background:rgba(21,19,20,.35)}
  .sheet-in{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:16px 16px 0 0;padding:14px 14px calc(18px + var(--safe-b));animation:up .2s ease-out}
  .sheet-in:before{content:"";display:block;width:38px;height:4px;border-radius:4px;background:var(--line2);margin:0 auto 12px}
  .sheet-h{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
  .sheet-in a,.sheet-in .linklike{display:block;padding:13px 6px;font-size:15px;font-weight:600;color:var(--txt);border-bottom:1px solid var(--line);border-radius:0}
  .sheet-in .linklike{color:var(--bad);border:none}
  @keyframes up{from{transform:translateY(40px);opacity:.4}}
  .tabs{margin:0 -14px 12px;padding:0 14px}
  .fb{flex-wrap:nowrap;overflow-x:auto;margin:0 -14px 12px;padding:2px 14px;scrollbar-width:none}.fb::-webkit-scrollbar{display:none}
  .srch{width:auto;min-width:230px;flex:1 0 230px;height:40px}
  .fl{height:40px}
  .card{border-radius:14px}
  /* tables become stacked rows */
  table.jobs thead,table.clients thead,table.cjobs thead,table.fin thead,table.aud-t thead,table.pp thead{display:none}
  table.jobs tr,table.clients tr,table.cjobs tr,table.fin tr,table.aud-t tr,table.pp tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
  table.jobs tr:last-child,table.clients tr:last-child,table.cjobs tr:last-child{border:none}
  table.jobs td,table.clients td,table.cjobs td,table.fin td,table.aud-t td,table.pp td{border:none;padding:0;white-space:normal}
  table.jobs .c-cl{grid-column:1;grid-row:1}
  table.jobs .c-st{grid-column:2;grid-row:1;text-align:right}
  table.jobs .c-id{grid-column:2;grid-row:2;text-align:right;font-size:11px}.c-id b{font-weight:600;color:var(--mut)}
  table.jobs .c-stg{grid-column:1;grid-row:2;color:var(--mut)}
  table.jobs .c-dt{grid-column:1;grid-row:3;font-size:12px;color:var(--mut)}table.jobs .c-dt:before{content:"Install · "}
  table.jobs .c-nx{display:none}
  table.jobs .c-m{grid-column:2;grid-row:3;font-weight:700}
  table.clients .c-cl{grid-column:1}table.clients .c-hub{display:none}table.clients .c-ct{display:none}
  table.clients .c-m{grid-column:2;grid-row:1;font-weight:700}
  table.clients .c-js{grid-column:1/-1}table.clients .c-dt{display:none}
  table.cjobs .c-id{grid-column:1;grid-row:1}table.cjobs .c-st{grid-column:2;grid-row:1;text-align:right}
  table.cjobs .c-pr{grid-column:2;grid-row:2;text-align:right;font-size:12px;color:var(--mut)}table.cjobs .c-lt{grid-column:1;grid-row:2;color:var(--mut)}
  table.cjobs .c-m{grid-column:2;font-weight:700}
  table.fin td:nth-child(n+3){font-size:12px}
  table.aud-t td{font-size:12px}
  .foot-note{font-size:11px}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .facts>div:first-child{grid-column:1/-1}
  .cols,.cols>.stack:last-child,.two-1,.formgrid{grid-template-columns:minmax(0,1fr);display:grid;gap:0}
  .cols>.stack:last-child{gap:0}.cols>.stack:last-child>.card{margin-bottom:16px}
  .two-1{gap:16px}
  /* on a phone, money and proposal follow the call card */
  .cols{display:flex;flex-direction:column}
  .cols>*{min-width:0;max-width:100%}
  .stat,.stat.four{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .stat .card{padding:10px 12px}.stat .card b{font-size:20px}
  .big button{min-height:52px;font-size:15px}
  .ct-b .btn{padding:8px 12px}
  .mx th:first-child,.mx td:first-child{position:sticky;left:0;background:#fff;z-index:1}
  .sets{grid-template-columns:1fr}
  .inwrap{width:130px}
  .toast{bottom:calc(84px + var(--safe-b))}
  /* sign in */
  .wrap{grid-template-columns:1fr}
  .lft{display:none}
  .rt{border:none;align-items:flex-start;padding:calc(40px + env(safe-area-inset-top,0px)) 22px 30px;min-height:100vh}
  .m-foot{display:block}
  .m-brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:900;letter-spacing:-.03em;margin-bottom:28px}
  .in{font-size:16px}
}
@media (max-width:420px){.stat,.stat.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.ti-crew_cost{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1%207h13v9H1zM14%2010h4l3%203v3h-7%27%2F%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M1%207h13v9H1zM14%2010h4l3%203v3h-7%27%2F%3E%3Ccircle%20cx%3D%275%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2717%27%20cy%3D%2718%27%20r%3D%272%27%2F%3E%3C%2Fsvg%3E")}

.kv>.pill{align-self:center;flex-shrink:0}
.kv>b,.kv>a{min-width:0;overflow-wrap:anywhere;text-align:right}
.card{min-width:0}
/* crew roster + calculator + calendar */
.crewrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crewrow .cn{flex:1;min-width:140px}
.crewrow select.in,.frow select.in{display:inline-block;width:auto;margin:0;padding:7px 10px;font-size:13px}
.frow>label{display:flex;flex-direction:column;justify-content:flex-end}.frow>label>select.in,.frow>label>.in{display:block;width:100%;margin:4px 0 8px}
.crewrow .inwrap{width:120px}
.frow{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.frow label{flex:1;min-width:130px}
.frow .in{margin:4px 0 8px}
.frow .inwrap{width:100%}
.lb{font-size:12px;color:var(--mut)}
.addcrew{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.addcrew h4{margin:0 0 6px;font-size:13px}
.picks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;margin:6px 0 12px}
.picks label{display:flex;gap:8px;align-items:center;border:1px solid var(--line2);border-radius:9px;padding:7px 10px;font-size:13px}
.calrow{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.calrow:first-child{border-top:0}
.calrow .grow{flex:1;min-width:0}
.dry{background:#FFF6DD;border:1px solid #E8D18A;border-radius:9px;padding:8px 12px;font-size:13px;margin-bottom:12px}
.idsub{font-variant-numeric:tabular-nums}
/* calendar */
.calbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 8px}
.dry.bad{background:#FDECEC;border-color:#E9A9A9}
.sug{padding:8px 0;border-top:1px solid var(--line)}
.sug:first-of-type{border-top:0}
.sug .row-b{padding:3px 0;gap:8px}
.calrow.sm{align-items:center;font-size:13px}
.calrow .d,.ev .d{flex:none}
.calrow .inl select{max-width:180px}
b.pre{white-space:pre-line;font-weight:500;text-align:right}
.btns.sm{margin-top:4px}
.card.danger{border-color:#E9A9A9}
.btn.bad{background:#B3261E;color:#fff;border-color:#B3261E}

/* ---- milestone 3: redo queue, touch points, bell, send-off, approvals ---- */
.pre{white-space:pre-line}
.ta.big-ta{min-height:92px}
.flow{display:flex;list-style:none;gap:0;margin:2px 0 16px;background:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 1px 2px rgba(21,19,20,.04);overflow-x:auto}
.flow li{flex:1;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--mut);font-weight:600;min-width:120px;position:relative}
.flow li i{width:22px;height:22px;border-radius:50%;border:2px solid var(--line2);flex-shrink:0;display:grid;place-items:center;background:#fff}
.flow li:not(:last-child):after{content:"";flex:1;height:2px;background:var(--line2);margin:0 10px}
.flow li.done i{background:var(--txt);border-color:var(--txt)}.flow li.done i:after{content:"✓";color:#fff;font-size:11px;font-style:normal;font-weight:800}
.flow li.done:after{background:var(--txt)}
.flow li.now{color:var(--txt)}.flow li.now i{border-color:var(--acc);background:var(--acc);box-shadow:0 0 0 4px rgba(253,148,29,.18)}
.rq{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-weight:500}
.rq>span:first-child{min-width:0}.rq b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
.rq:last-of-type{border-bottom:none}
.redobox{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.redo-btn{width:100%;margin-top:8px;border-style:dashed}
.stepbtns{display:flex;flex-wrap:wrap;gap:8px}
@media (max-width:860px){
  table.redo thead{display:none}
  table.redo tr{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
  table.redo tr:last-child{border:none}
  table.redo td{border:none;padding:0;white-space:normal}
  table.redo .c-cl{grid-column:1;grid-row:1}table.redo .c-st{grid-column:2;grid-row:1;text-align:right}
  table.redo .c-ww{grid-column:1/-1;font-size:13px}table.redo .c-tg{display:none}table.redo .c-by{grid-column:1/-1}
  .flow{padding:10px}.flow li{min-width:0;flex-direction:column;gap:4px;text-align:center;font-size:10.5px}
  .flow li:not(:last-child):after{display:none}
  .stepbtns .btn{flex:1 1 45%}
}
.cardflag{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border-left:7px solid var(--acc);border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:13px;font-weight:500;box-shadow:0 1px 2px rgba(21,19,20,.04)}
.cardflag.over{border-left-color:var(--bad);background:#FFF7F6}
.cardflag .btn,.cardflag>.mut{margin-left:auto}
.quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:10px}
.quick input{position:absolute;opacity:0;pointer-events:none}
.quick span{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid var(--line2);border-radius:10px;padding:9px 4px;font-size:11.5px;font-weight:600;color:var(--mut);cursor:pointer;text-align:center;line-height:1.2;transition:background .15s,border-color .15s}
.quick span i{font-style:normal;font-size:17px;color:var(--txt)}
.quick input:checked+span{background:#151314;border-color:#151314;color:#fff}.quick input:checked+span i{color:var(--acc)}
.quick input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.tl{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.tl:last-child{border:none}
.tli{width:30px;height:30px;border-radius:50%;background:var(--panel2);display:grid;place-items:center;font-size:14px;flex-shrink:0}
.tl.tp .tli{background:rgba(253,148,29,.16)}
.tl.k-site_visit .tli{background:#151314;color:var(--acc)}
.tl.k-handwritten_card .tli{background:var(--acc);color:#151314}
.tlb{flex:1;min-width:0}.tln{color:#3B3937;margin-top:2px;overflow-wrap:anywhere}
@media (max-width:860px){.quick span{padding:11px 4px;font-size:12px}}

/* ===== milestone-4: bell + notification settings ===== */
.ti-bell{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%208a6%206%200%200%201%2012%200c0%207%203%209%203%209H3s3-2%203-9%27%2F%3E%3Cpath%20d%3D%27M10.3%2021a1.94%201.94%200%200%200%203.4%200%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%208a6%206%200%200%201%2012%200c0%207%203%209%203%209H3s3-2%203-9%27%2F%3E%3Cpath%20d%3D%27M10.3%2021a1.94%201.94%200%200%200%203.4%200%27%2F%3E%3C%2Fsvg%3E")}
.bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:transform .15s}
.bell:hover{transform:translateY(-1px)}
.bell .ti{width:18px;height:18px}
.bell b{position:absolute;top:-5px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--acc,#FD941D);color:#151314;font-size:10.5px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px #F3F2EE}
.mtr{display:inline-flex;align-items:center;gap:8px}
.nb{display:inline-block;min-width:16px;padding:0 5px;border-radius:8px;background:#FD941D;color:#151314;font-size:10px;font-weight:700;line-height:16px;text-align:center}
.nl{list-style:none;margin:0;padding:0}
.nl li{border-top:1px solid var(--line)}
.nl li:first-child{border-top:0}
.nl a{display:flex;gap:12px;padding:12px 4px;color:inherit;text-decoration:none;align-items:flex-start}
.nl a:hover{background:rgba(253,148,29,.06)}
.nl .dot{flex:0 0 8px;height:8px;margin-top:6px;border-radius:50%;background:transparent}
.nl .unread .dot{background:#FD941D}
.nl .unread strong{font-weight:700}
.nl strong{font-weight:500;display:block}
.nl small{color:var(--mut,#6B6964);display:block;margin-top:2px}
.nl .ch{margin-left:auto;white-space:nowrap;font-size:11px;color:var(--mut,#6B6964);text-align:right}
table.prefs{width:100%;border-collapse:collapse}
table.prefs th,table.prefs td{padding:12px 8px;border-top:1px solid var(--line);text-align:center}
table.prefs th:first-child,table.prefs td:first-child{text-align:left}
table.prefs thead th{border-top:0;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut,#6B6964)}
table.prefs td small{display:block;color:var(--mut,#6B6964)}
.tog{position:relative;display:inline-block;width:42px;height:26px}
.tog input{opacity:0;width:0;height:0;position:absolute}
.tog span{position:absolute;inset:0;border-radius:13px;background:#DAD8D2;transition:background .2s;cursor:pointer}
.tog span:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.tog input:checked+span{background:#FD941D}
.tog input:checked+span:after{transform:translateX(16px)}
.tog input:focus-visible+span{outline:2px solid #151314;outline-offset:2px}
.dryrun{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:5px;background:#151314;color:#F3F2EE;vertical-align:middle}
@media (max-width:860px){
  table.prefs thead{display:none}
  table.prefs tr{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:10px 0;border-top:1px solid var(--line)}
  table.prefs td{border:0;padding:4px}
  table.prefs td:first-child{grid-column:1/-1}
  table.prefs td[data-l]:before{content:attr(data-l);display:block;font-size:10.5px;color:var(--mut,#6B6964);margin-bottom:4px}
}

/* ===== milestone-5: manufacturers + send-off ===== */
.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.mcard .mn{font-size:16px}
.mcard.off{opacity:.55}
.mcard.edit{display:flex;flex-direction:column;gap:2px}
.mail .pre{margin-top:10px;max-height:340px;overflow:auto}
.sech{margin:18px 2px 10px;font-size:15px}
.msec{transition:box-shadow .2s,border-color .2s}
.msec.on{border-color:#FD941D;box-shadow:0 0 0 3px rgba(253,148,29,.15)}
.mpick{display:flex;gap:12px;align-items:center;cursor:pointer;font-size:15px}
.mpick input{width:20px;height:20px;accent-color:#FD941D}
.msec .mbody{display:none;margin-top:12px}
.msec.on .mbody{display:block}
.stickybar{position:sticky;bottom:12px;display:flex;gap:10px;justify-content:flex-end;padding:12px;margin-top:12px;background:rgba(243,242,238,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:14px}
@media (max-width:860px){.stickybar{bottom:calc(70px + env(safe-area-inset-bottom,0px))}.mgrid{grid-template-columns:1fr}}
.ti-manufacturers{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021V9l6%204V9l6%204V5h6v16z%27%2F%3E%3Cpath%20d%3D%27M7%2017h2M12%2017h2M17%2017h1%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021V9l6%204V9l6%204V5h6v16z%27%2F%3E%3Cpath%20d%3D%27M7%2017h2M12%2017h2M17%2017h1%27%2F%3E%3C%2Fsvg%3E")}
.ti-requests{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2012a9%209%200%201%200%203-6.7L3%208%27%2F%3E%3Cpath%20d%3D%27M3%203v5h5%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2012a9%209%200%201%200%203-6.7L3%208%27%2F%3E%3Cpath%20d%3D%27M3%203v5h5%27%2F%3E%3C%2Fsvg%3E")}

/* ===== milestone-6: swipe-to-approve ===== */
.swipes{display:flex;flex-direction:column;gap:12px}
.swipe{position:relative;border-radius:16px;overflow:hidden;touch-action:pan-y}
.swipe .sw-card{position:relative;margin:0;will-change:transform;transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:1}
.swipe.drag .sw-card{transition:none}
.sw-bg{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 22px;border-radius:16px;font-weight:700;font-size:15px;background:#E9E7E1}
.sw-bg .sw-ok{color:#1E7A46;opacity:0;transition:opacity .15s}
.sw-bg .sw-no{color:#A85A00;opacity:0;transition:opacity .15s}
.swipe.r .sw-bg{background:#DDF3E5}.swipe.r .sw-ok{opacity:1}
.swipe.l .sw-bg{background:#FFE8CC}.swipe.l .sw-no{opacity:1}
.swipe.gone{max-height:0!important;opacity:0;margin-top:-12px;transition:max-height .3s ease .1s,opacity .2s,margin .3s ease .1s}
.sw-t{font-size:16px}
.sw-amt{font-size:17px;font-variant-numeric:tabular-nums}
.sw-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.sw-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}
.sw-btns form{margin:0}
#sw-toast{display:flex;gap:12px;align-items:center}
#sw-toast button{background:none;border:0;color:#FD941D;font:inherit;font-weight:700;cursor:pointer}
@media (max-width:860px){
  .sw-btns .btn.sbtn{display:none}          /* phone: swipe is the primary gesture */
  .sw-btns .btn.ok{width:100%}
  .sw-btns form{flex:1}
}
#sw-toast[hidden]{display:none}
.toast-sw{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#151314;color:#fff;padding:11px 18px;border-radius:10px;font-size:13px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.2);z-index:50;max-width:calc(100vw - 32px);transition:opacity .4s,transform .4s;border-left:5px solid var(--acc)}
#sw-toast[hidden]{display:none}
.tprow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.tprow .lb{min-width:0}.tprow .in,.frow.tprow select.in{width:100%;min-width:0;display:block}
.frow .tog{flex:0 0 42px;min-width:42px;width:42px}
.calpick{display:flex;flex-direction:column;gap:8px}
.calopt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid #E4E2DC;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.calopt:hover{border-color:#D2CFC7}
.calopt.on{border-color:#FD941D;box-shadow:0 0 0 3px rgba(253,148,29,.14)}
.calopt.off{opacity:.55;cursor:not-allowed;background:#F8F7F4}
.calopt input{accent-color:#FD941D;margin-top:3px}
.calopt>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.calopt small{overflow-wrap:anywhere}
.calopt b+.pill,.calopt .pill{display:inline-block;width:auto;align-self:auto;margin-left:6px;vertical-align:1px}
.na{font-weight:400;font-size:12px;color:var(--mut)}

/* ---- Jobs: deal-card board + preview panel ---- */
.jtop{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.jtop .tabs{flex:1;min-width:0}
.seg{display:inline-flex;background:#fff;border:1px solid var(--line2);border-radius:9px;padding:3px;gap:2px;flex-shrink:0}
.seg a{padding:6px 12px;border-radius:7px;color:var(--mut);font-size:12.5px;font-weight:600}
.seg a.on{background:var(--txt);color:#fff}
@media (max-width:860px){.jtop{gap:0 12px}.jtop .tabs{flex:1 1 100%;margin-bottom:8px}.jtop .seg{margin:0 0 12px}}  /* phone: Board/List on its own row, never over the chips */
.board{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x proximity;align-items:flex-start}
.bcol{flex:0 0 236px;background:#E9E7E1;border-radius:12px;padding:10px;scroll-snap-align:start;max-height:calc(100vh - 230px);display:flex;flex-direction:column}
.bcol header{padding:2px 4px 10px;position:relative}
.bcol header b{display:block;font-size:12.5px;line-height:1.25;padding-right:34px}
.bcol header .cnt{position:absolute;right:4px;top:0;background:#fff;border-radius:20px;font-size:11px;font-weight:700;padding:1px 8px}
.bcol.st-proposal_out header{box-shadow:inset 0 -2px 0 rgba(253,148,29,.5)}
.bcards{overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:1px}
.deal{display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:10px;padding:10px 11px;box-shadow:0 1px 2px rgba(21,19,20,.08);border-left:4px solid #CFCAC0;color:var(--txt);font-weight:500;transition:box-shadow .15s,transform .15s}
.deal:hover{box-shadow:0 4px 14px rgba(21,19,20,.12);color:var(--txt);transform:translateY(-1px)}
.deal.sel{outline:2px solid var(--acc)}
.deal.s-active{border-left-color:var(--ok)}.deal.s-proposal_out{border-left-color:var(--acc)}.deal.s-on_hold{border-left-color:#9A968E}.deal.s-lost{border-left-color:var(--bad)}.deal.s-complete{border-left-color:var(--txt)}
.d-cl{font-size:13px;font-weight:700;line-height:1.25}
.d-t{font-size:12px;color:var(--mut);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.d-amt{font-size:14px;font-weight:800;letter-spacing:-.02em}
.d-meta,.d-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11px}
.d-foot{border-top:1px solid var(--line);padding-top:5px;margin-top:2px}
.bempty{font-size:12px;color:var(--mut);text-align:center;padding:14px 0;border:1px dashed #CFCAC0;border-radius:10px}
.pv-wrap{position:fixed;inset:0;z-index:60}
.pv-bg{position:absolute;inset:0;background:rgba(21,19,20,.18)}
.pv{position:absolute;top:0;right:0;bottom:0;width:440px;max-width:100%;background:#fff;box-shadow:-12px 0 40px rgba(21,19,20,.18);overflow-y:auto;animation:pvin .18s ease-out}
@keyframes pvin{from{transform:translateX(40px);opacity:.4}to{transform:none;opacity:1}}
.pv-in{padding:22px 22px 90px}.pv-load{color:var(--mut);padding:40px 0;text-align:center}
.pv-h{position:relative;padding-right:36px}.pv-h h2{font-size:21px;font-weight:900;letter-spacing:-.03em;margin:2px 0}
.pv-x{position:absolute;right:-6px;top:-8px;border:none;background:var(--panel2);width:34px;height:34px;border-radius:50%;font-size:20px;cursor:pointer}
.pv-tags{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pv-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.pv-facts>div{background:var(--panel2);border-radius:9px;padding:8px 10px}.pv-facts .w{grid-column:1/-1}
.pv-facts span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut);font-weight:600}
.pv-s{border-top:1px solid var(--line);padding:12px 0}.pv-s h4{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin:0 0 8px}
.pv-c{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0}
.pv-n{padding:6px 0;border-bottom:1px solid var(--line)}.pv-n:last-child{border:none}
.pv-foot{position:sticky;bottom:-90px;background:#fff;padding:12px 0 0}
.qa{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin:14px 0 4px}
.qa-b{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;border:1px solid var(--line2);border-radius:10px;padding:10px 6px;font-size:12px;font-weight:600;background:#fff;color:var(--txt)}
.qa-b i{font-style:normal;font-size:17px;line-height:1}
.qa-b:hover{border-color:var(--acc);color:var(--txt)}
.qa-b.pri{background:var(--acc);border-color:var(--acc);color:#151314}
.qa-c{grid-template-columns:repeat(3,1fr)}
body.pv-on{overflow:hidden}
@media (max-width:760px){
  .board{scroll-snap-type:x mandatory;margin:0 -14px;padding:2px 14px 14px}
  .bcol{flex-basis:84vw;max-height:none}
  .pv{width:100%;top:0;border-radius:0}
  .pv-in{padding:18px 16px 90px}
  .qa-c{grid-template-columns:repeat(3,1fr)}
}

/* ---- Calendar (month / week / day / phone agenda) ---- */
.caltool{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 14px}
.cal-nav{display:flex;align-items:center;gap:6px}.cal-nav .btn.ic{width:34px;padding:7px 0;text-align:center;font-size:17px;line-height:1}
.cal-title{font-size:22px;font-weight:900;letter-spacing:-.03em;margin:0 0 0 10px}
.cal-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.legend{display:flex;gap:12px;font-size:11.5px;color:var(--mut);font-weight:600}.legend span{display:inline-flex;align-items:center;gap:5px}
.lgd{display:inline-block;width:11px;height:11px;border-radius:3px}
.lgd-install{background:var(--acc)}.lgd-visit{background:#151314}.lgd-misc{background:#C9C2B4}.lgd-other{background:#fff;border:1.5px dashed #B5AFA4}
.desk .card{padding:0;overflow:hidden}
.mhead{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line)}
.mhead div{padding:8px 10px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.mrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:30px repeat(4,22px) 20px;row-gap:2px;min-height:128px;border-bottom:1px solid var(--line);position:relative}
.mrow:last-child{border-bottom:none}
.mcell{grid-row:1 / -1;border-right:1px solid var(--line);padding:5px 8px;cursor:default;min-width:0}
.mcell:nth-child(7){border-right:none}
#cal[data-can-write="1"] .mcell{cursor:copy}
.mcell.wknd{background:#FBFAF8}.mcell.out{background:#F7F6F3}.mcell.out .dnum{color:#B5AFA4}
.dnum{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;font-size:12.5px;font-weight:700;color:var(--txt)}
.dnum:hover{background:var(--panel2)}
.mcell.today .dnum{background:var(--acc);color:#151314}
.mcell:hover{background:#FDFBF7}
.seg-ev{min-width:0;padding:0 3px;z-index:1;pointer-events:none}.seg-ev .cev{pointer-events:auto}
.cev{display:flex;align-items:center;gap:4px;width:100%;height:20px;border:none;border-radius:5px;padding:0 7px;font:600 11.5px/20px Montserrat,system-ui,sans-serif;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;color:var(--txt);background:transparent}
.cev .nm{overflow:hidden;text-overflow:ellipsis}
.cev.bar.ev-install{background:var(--acc);color:#151314}
.cev.bar.ev-visit{background:#151314;color:#fff}
.cev.bar.ev-misc{background:#E2DCCF}
.cev.bar.ev-other{background:#fff;color:var(--mut);box-shadow:inset 0 0 0 1px #D3CDC2;font-weight:500}
.cev.bar.cl{border-top-left-radius:0;border-bottom-left-radius:0}.cev.bar.cr{border-top-right-radius:0;border-bottom-right-radius:0}
.cev.tm:hover,.cev.bar:hover{filter:brightness(.96);box-shadow:0 1px 4px rgba(21,19,20,.15)}
.cev.tm .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;background:#C9C2B4}
.cev.tm .t{color:var(--mut);font-weight:600;flex-shrink:0}
.cev.tm.ev-install .dot{background:var(--acc)}.cev.tm.ev-visit .dot{background:#151314}
.cev.tm.ev-other{color:var(--mut);font-weight:500}.cev.tm.ev-other .dot{background:#fff;border:1.5px dashed #B5AFA4}
.more{grid-row:6;font-size:11px;color:var(--mut);padding:0 10px;z-index:1;font-weight:700}
.tgrid .thead{display:grid;grid-template-columns:56px repeat(var(--n,7),1fr);border-bottom:1px solid var(--line)}
.tgrid .thead{grid-template-columns:56px repeat(7,1fr)}.tgrid.dayv .thead{grid-template-columns:56px 1fr}
.th{display:flex;flex-direction:column;align-items:center;padding:8px 0;color:var(--mut);font-weight:600;font-size:11px;text-transform:uppercase}
.th b{font-size:20px;color:var(--txt);text-transform:none;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.th.today b{background:var(--acc)}
.tall{display:grid;grid-template-columns:56px 1fr;border-bottom:1px solid var(--line);min-height:30px}
.tall .gut{padding:6px 6px 0;text-align:right}
.tall-g{display:grid;row-gap:2px;padding:3px 0}
.tall-c{border-left:1px solid var(--line)}
.tbody{display:grid;grid-template-columns:56px repeat(7,1fr);max-height:calc(100vh - 330px);overflow-y:auto;position:relative}
.tgrid.dayv .tbody{grid-template-columns:56px 1fr}
.tbody .gut .hr{position:relative;border-top:1px solid transparent}.tbody .gut .hr span{position:absolute;top:-7px;right:8px;font-size:10.5px;color:var(--mut);font-weight:600}
.tbody .gut .hr:first-child span{display:none}
.tcol{position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px var(--hp,44px))}
#cal[data-can-write="1"] .tcol{cursor:copy}
.tcol.today{background-color:#FFFAF2}
.blk{position:absolute;padding:1px 2px}
.cev.tb{height:100%;flex-direction:column;align-items:flex-start;gap:0;padding:3px 7px;white-space:normal;line-height:1.25;border-left:3px solid #C9C2B4;background:#F1EEE8;border-radius:6px}
.cev.tb b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.cev.tb span{font-size:10.5px;color:var(--mut);font-weight:500}
.cev.tb.ev-install{background:#FFE9CF;border-left-color:var(--acc)}.cev.tb.ev-visit{background:#E6E4E1;border-left-color:#151314}.cev.tb.ev-other{background:#fff;border:1px dashed #CFC9BE;border-left:3px dashed #B5AFA4;color:var(--mut)}
.now{position:absolute;left:0;right:0;height:2px;background:var(--bad);z-index:2}.now:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--bad)}
.calfoot{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.card.subtle{box-shadow:none;border:1px solid var(--line);padding:12px 16px}.card.subtle summary{cursor:pointer;font-size:13px}
.calpop-wrap{position:fixed;inset:0;z-index:70}.calpop-wrap .pv-bg{background:transparent}
.calpop{position:absolute;width:340px;max-height:80vh;overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 18px 50px rgba(21,19,20,.22),0 0 0 1px rgba(21,19,20,.05);padding:16px 18px;animation:pvin .14s ease-out}
.calpop.cp-sheet{position:fixed;left:0!important;right:0;bottom:0;top:auto!important;width:auto;border-radius:16px 16px 0 0;max-height:86vh;padding-bottom:calc(18px + var(--safe-b))}
.cp-h{position:relative;padding-right:36px}.cp-h h3{font-size:16px;font-weight:800;margin:4px 0 2px;letter-spacing:-.02em}
.cp-k{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}
.cp-b{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cp-job{background:var(--panel2);border-radius:10px;padding:10px 12px}.cp-jl{font-weight:800}
.cp-links{display:flex;gap:14px;margin-top:6px;font-size:12px}
.cp-row{font-size:12.5px}.cp-prev{font-size:12px;color:var(--mut);max-height:90px;overflow:hidden;border-left:2px solid var(--line);padding-left:8px}
.cp-sugg{border-top:1px solid var(--line);padding-top:8px}.cp-sugg .row-b{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0}
.cp-a{margin-top:12px}.btn.danger{color:var(--bad)}
.cp-form{display:flex;flex-direction:column;gap:10px;margin-top:10px}.cp-form .lbl{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;text-transform:uppercase;color:var(--mut);letter-spacing:.04em}
.mob{display:none}
@media (max-width:760px){
  .desk{display:none}.mob{display:block}
  .legend{display:none}.cal-title{font-size:19px;margin-left:4px}
  .caltool{margin-top:0}.cal-r{width:100%;justify-content:space-between}
  .mstrip{padding:10px 8px}
  .ms-h,.ms-r{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}
  .ms-h span{font-size:10px;color:var(--mut);font-weight:700}
  .ms-r a{position:relative;display:block;margin:1px auto;width:34px;height:34px;line-height:30px;border-radius:50%;font-size:13px;font-weight:600}
  .ms-r a.out{color:#C2BCB1}.ms-r a.today{background:var(--acc)}.ms-r a.sel{background:var(--panel2)}
  .ms-r a .sd{position:absolute;left:50%;bottom:4px;margin-left:-2.5px;width:5px;height:5px;border-radius:50%;background:#C9C2B4}
  .ms-r a .sd.ev-install{background:var(--acc)}.ms-r a .sd.ev-visit{background:#151314}
  .ms-r a.today .sd{background:#151314}
  .agenda{margin-top:12px;display:flex;flex-direction:column;gap:2px}
  .ag-d{display:flex;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;margin-bottom:6px}
  .ag-date{width:38px;flex-shrink:0;text-align:center}.ag-date b{display:block;font-size:20px;font-weight:900;line-height:1.1}.ag-date span{font-size:10.5px;text-transform:uppercase;color:var(--mut);font-weight:700}
  .ag-d.today .ag-date b{color:var(--acc-d)}
  .ag-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
  .ag-i{display:flex;gap:8px;align-items:stretch;text-align:left;border:none;background:none;padding:2px 0;font:inherit;color:inherit;width:100%}
  .ag-i .bar-l{width:4px;border-radius:2px;background:#C9C2B4;flex-shrink:0}.ag-i.ev-install .bar-l{background:var(--acc)}.ag-i.ev-visit .bar-l{background:#151314}.ag-i.ev-other .bar-l{background:#E6E2DA}
  .ag-i.ev-other b{font-weight:500;color:var(--mut)}
  .ag-i b{display:block;font-size:13.5px}
  .swipehint{text-align:center;margin:8px 0 16px}
}
.calwrap.go-l{opacity:.5;transform:translateX(-12px);transition:.15s}.calwrap.go-r{opacity:.5;transform:translateX(12px);transition:.15s}
.calempty{background:#fff;border-radius:10px;padding:10px 14px;margin-bottom:10px;font-size:12.5px;color:var(--mut)}
.mrow{grid-template-rows:30px repeat(4,22px) 22px;min-height:132px}
@media (max-width:760px){.calpop-wrap .pv-bg{background:rgba(21,19,20,.3)}}

/* ---- Design request stepper ---- */
.sostep{display:flex;gap:6px;list-style:none;margin:0 0 16px;padding:0;counter-reset:s}
.sostep li{flex:1;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid rgba(21,19,20,.08);color:rgba(21,19,20,.55);font-weight:600;font-size:13px;cursor:pointer;min-width:0}
.sostep li i{font-style:normal;flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;background:rgba(21,19,20,.07);font-size:12px}
.sostep li span{display:flex;flex-direction:column;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sostep li small{font-weight:500;font-size:11px;opacity:.75;overflow:hidden;text-overflow:ellipsis}
.sostep li.on{border-color:#FD941D;color:#151314;box-shadow:0 0 0 3px rgba(253,148,29,.15)}
.sostep li.on i{background:#FD941D;color:#fff}
.sostep li.ok{color:#151314}
.sostep li.ok i{background:#151314;color:#fff}
.sohead{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0 12px}
.sohead h2{margin:0;font-size:20px}
.mgrp{margin-bottom:16px}
.mgrp>.lbl0{margin:0 0 6px;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}
.mtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.mtile{position:relative;display:flex;gap:10px;align-items:flex-start;background:#fff;border:1.5px solid rgba(21,19,20,.1);border-radius:14px;padding:12px 14px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.mtile:hover{border-color:rgba(253,148,29,.6)}
.mtile input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.mtile .mt-b{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.mtile .mt-b .xs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mtile .mt-p{display:flex;gap:4px;flex-wrap:wrap}
.mtile .mt-ck{font-style:normal;width:22px;height:22px;flex:0 0 22px;border-radius:7px;border:1.5px solid rgba(21,19,20,.2);display:grid;place-items:center;color:transparent;font-size:13px}
.mtile.on{border-color:#FD941D;background:#FFF8EF}
.mtile.on .mt-ck{background:#FD941D;border-color:#FD941D;color:#fff}
.mtile input:focus-visible~.mt-ck{outline:2px solid #FD941D;outline-offset:2px}
.mtile.portal{cursor:default;background:transparent;border-style:dashed;opacity:.8}
.pill.p-warn{background:#FFF1DC;color:#9A5300}
.sotrades{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;margin-top:12px}
.sotrade h3{margin:0 0 8px;font-size:15px}
.stepper:not(.js) [data-step-next],.stepper:not(.js) [data-step-back]{display:none}
.stickybar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:8px;margin:18px -4px 0;padding:12px 14px;background:rgba(243,242,238,.94);backdrop-filter:blur(6px);border-top:1px solid rgba(21,19,20,.08);border-radius:12px 12px 0 0}
.stickybar .grow{flex:1}
.stickybar>.mut{flex:1}
.somails{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px}
.somails .mail .mail-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.somails .mail .mail-h b{flex:1;font-size:15px}
.somails .mail .kv{display:flex;gap:10px;font-size:13px;padding:3px 0}
.somails .mail .kv span{flex:0 0 58px;color:rgba(21,19,20,.55)}
.somails .mail .kv b{font-weight:600;word-break:break-word}
.somails .mail .pre{white-space:pre-wrap;max-height:340px;overflow:auto;font-size:12.5px;margin-top:8px}
.somails .mail textarea,.somails .mail input.in{width:100%;margin-top:6px;font-family:inherit}
.sodone{display:flex;gap:16px;align-items:flex-start;margin-bottom:14px;border-left:4px solid #2E9B5B}
.sodone h2{margin:0 0 4px;font-size:20px}
.sodone-i{flex:0 0 44px;height:44px;border-radius:50%;background:#2E9B5B;color:#fff;display:grid;place-items:center;font-size:22px}
.sodone .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.sopick .in{width:100%;font-size:16px;padding:12px 14px;margin-bottom:10px}
.sojobs{max-height:60vh;overflow:auto}
.sojobs .sogrp{margin:12px 0 4px;text-transform:uppercase;font-size:11px;letter-spacing:.06em;font-weight:700}
.sojob{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;color:inherit;text-decoration:none}
.sojob b{flex:0 0 auto}
.sojob span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sojob em{font-style:normal;color:#FD941D;font-weight:700}
.sojob:hover{background:#FFF8EF}
@media (max-width:760px){
  .sostep li span{display:none}
  .sostep li.on span{display:flex}
  .sostep li{flex:0 0 auto}.sostep li.on{flex:1}
  .somails,.sotrades{grid-template-columns:1fr}
  .stickybar{margin:14px -12px 0;border-radius:0;flex-wrap:wrap}
  .stickybar>.mut{flex-basis:100%}
  .sojob{flex-wrap:wrap}.sojob span{flex-basis:100%;order:3}
}
.sendoff [hidden],.sojobs [hidden],.somails [hidden],.sopick [hidden]{display:none!important}
@media (max-width:760px){.stickybar{bottom:calc(58px + var(--safe-b,0px));z-index:29}}

.ti-today{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2011l9-7%209%207%27%2F%3E%3Cpath%20d%3D%27M5%2010v10h14V10%27%2F%3E%3Cpath%20d%3D%27M10%2020v-5h4v5%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2011l9-7%209%207%27%2F%3E%3Cpath%20d%3D%27M5%2010v10h14V10%27%2F%3E%3Cpath%20d%3D%27M10%2020v-5h4v5%27%2F%3E%3C%2Fsvg%3E")}

/* ---- Today ---- */
.tsearch .in{width:300px;padding:10px 14px}
.tsearch.mobonly{display:none}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.kpi{display:flex;flex-direction:column;gap:4px;background:#fff;border-radius:14px;padding:14px 16px;border-left:4px solid #151314;color:var(--txt);box-shadow:0 1px 2px rgba(21,19,20,.06);transition:transform .12s,box-shadow .12s}
.kpi:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(21,19,20,.08)}
.kpi.t-acc{border-left-color:#FD941D}.kpi.t-bad{border-left-color:#D64545}
.kpi .k-l{font-weight:700;font-size:13px}
.kpi .k-n{font-size:30px;line-height:1.1;font-weight:800}
.kpi .k-s{font-size:12px;color:rgba(21,19,20,.6)}
.kpi .k-f{font-size:12px;color:rgba(21,19,20,.6);border-top:1px solid rgba(21,19,20,.08);padding-top:6px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.t-h h3{margin:0}.t-h a{font-size:13px;font-weight:600;color:var(--txt)}
.tpipe{margin-bottom:14px}
.board.mini .bcol{flex-basis:200px;max-height:none}
.deal.more{align-items:flex-start;border-left-color:transparent;font-weight:700}
.two-eq{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tc-r{display:flex;gap:14px;padding:10px 4px;border-bottom:1px solid rgba(21,19,20,.07);color:var(--txt)}
.tc-r:last-child{border-bottom:0}
.tc-t{flex:0 0 70px;font-size:13px;color:rgba(21,19,20,.6);padding-top:1px}
.tc-b{display:flex;flex-direction:column;gap:2px;border-left:3px solid #151314;padding-left:12px;min-width:0}
.tc-r.ev-install .tc-b{border-left-color:#FD941D}.tc-r.ev-visit .tc-b{border-left-color:#151314}.tc-r.ev-misc .tc-b{border-left-color:#7A6FD0}
.nowrap{white-space:nowrap}
@media (max-width:760px){
  .tsearch.mobonly{display:block;margin:-4px 0 12px}.tsearch.mobonly .in{width:100%}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kpi{padding:12px}.kpi .k-n{font-size:24px}
  .two-eq{grid-template-columns:1fr}
  .board.mini .bcol{flex-basis:72vw}
}
.board.mini .bcol{flex:0 0 178px}
.board.mini .deal{padding:9px 10px;gap:2px}
.board.mini .deal .d-cl,.board.mini .deal .d-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.board.mini .deal.more{flex-direction:column}
@media (max-width:760px){.board.mini .bcol{flex-basis:64vw}}
.board.mini{align-items:flex-start}
@media (max-width:760px){.kpis .kpi:last-child:nth-child(odd){grid-column:span 2}.t-h{gap:10px}.t-h a{white-space:nowrap}}

/* ---- nav: badges, not-built items, global search ---- */
.nav a.soon{color:rgba(21,19,20,.38)}
.nsoon{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(21,19,20,.4);border:1px solid rgba(21,19,20,.15);border-radius:6px;padding:0 5px;line-height:15px}
.side-q{position:relative;margin:4px 0 14px}
.side-q input{width:100%;box-sizing:border-box;border:1px solid rgba(21,19,20,.12);background:#fff;border-radius:10px;padding:8px 44px 8px 11px;font:inherit;font-size:13px}
.side-q input:focus{outline:2px solid #FD941D;outline-offset:0;border-color:transparent}
.side-q kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font:600 10px/1 inherit;font-family:inherit;color:rgba(21,19,20,.45);border:1px solid rgba(21,19,20,.15);border-radius:5px;padding:3px 5px;background:#F3F2EE}
.tbi{position:relative;display:block}
.tb-n{position:absolute;top:-6px;right:-10px;min-width:15px;height:15px;border-radius:8px;background:#FD941D;color:#151314;font-size:9px;line-height:15px;text-align:center;font-style:normal;padding:0 3px}

/* ---- Approvals: list left, preview right (desktop) ---- */
.chips button{border:1px solid var(--line);border-radius:20px;padding:3px 10px;font:inherit;font-size:11.5px;color:var(--mut);font-weight:500;background:#fff;cursor:pointer}
.chips button.on{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:700}
.appane{display:none}
@media (min-width:1100px){
  .apsplit{display:grid;grid-template-columns:minmax(340px,420px) 1fr;gap:16px;align-items:start}
  .appane{display:block;position:sticky;top:16px;background:#fff;border-radius:14px;max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 1px 2px rgba(21,19,20,.06)}
  .appane-bar{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px;display:flex;gap:8px;justify-content:flex-end}
  .appane-bar:empty{display:none}
  .appane-bar form{margin:0}
  .appane .pv-x{display:none}
  .aplist .sw-card{cursor:pointer;padding:12px 14px}
  .aplist .sw-card.sel{box-shadow:inset 0 0 0 2px var(--acc)}
  .aplist .sw-btns{margin-top:8px}
  .aplist .sw-btns .btn.sbtn:first-child{display:none}
}
.swipes [hidden]{display:none!important}
/* Open in Jetbuilt / HubSpot (approvals rows, phone card, preview panels, job page) */
.xl{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.sw-btns .xl{margin-right:auto}
.sw-btns .xl .btn.sbtn,.aplist .sw-btns .xl .btn.sbtn:first-child,.appane-bar .xl .btn.sbtn{display:inline-flex;align-items:center}
.xl .xl-jb{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:700}
.xl-hdr,.xl-pv{margin-top:8px;display:flex}
.appane-bar .xl{margin-right:auto}
@media (max-width:860px){.sw-btns .xl{width:100%}.sw-btns .xl .btn{flex:1;justify-content:center}}
.sw-card.own{box-shadow:inset 3px 0 0 var(--acc)}

/* ---- client: summary line instead of five zero tiles ---- */
.csum{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.csum-s{display:flex;gap:6px;flex-wrap:wrap}.csum-a{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:760px){.csum-a .btn{flex:1;text-align:center}}

/* ---- clients section tabs + touch points grid ---- */
.ctabs{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 14px}
.ctabs a{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--ink,#151314)}
.ctabs a.on{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:800}
.kpis.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid.tp-2{grid-template-columns:minmax(0,1fr) 280px;align-items:start}
.cl-a{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.cl-a .btn{white-space:nowrap}
.tp-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}.tp-h h3{margin:0}
.tpg-wrap{overflow-x:auto}
.tpg{width:100%;border-collapse:collapse;font-size:12.5px}
.tpg th{font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);text-align:left;font-weight:700;padding:8px 4px;border-bottom:1px solid var(--line);white-space:normal;max-width:76px;vertical-align:bottom}
.tpg td{padding:9px 4px;border-bottom:1px solid var(--line);vertical-align:middle}
.tpg tr:last-child td{border-bottom:0}
.tpc{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px}
.tpc i{font-style:normal;width:18px;height:18px;border-radius:5px;display:inline-grid;place-items:center;font-size:11px;font-weight:800;border:1.5px solid var(--line);background:#fff}
.tp-done i{background:#E6F3EA;border-color:#BFE0C8;color:#1E7A3C}
.tp-due i{background:#FFF1DE;border-color:#FFCF94;color:#B65F00}.tp-due span{color:#B65F00;font-weight:600}
.tp-overdue i{background:#FDE4E4;border-color:#F4B4B4;color:#C42B2B}.tp-overdue span{color:#C42B2B;font-weight:600}
.tp-sched i{border-color:#bbb}
.tp-na i{background:#F3F2EE;color:#aaa;border-color:#e6e4de}
.tp-legend{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px;line-height:1.6}
.bad-t{color:#C42B2B;font-weight:600}
.nowrap{white-space:nowrap}
@media (max-width:1180px){.grid.tp-2{grid-template-columns:1fr}}
@media (max-width:760px){.kpis.k4{grid-template-columns:repeat(2,minmax(0,1fr))}.tpg.calls td:nth-child(2){display:none}.tpg.calls th:nth-child(2){display:none}}

/* job page: compact quick-action row + who changed what */
.qa.qa-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 2px}
.qa-row .qa-b{flex-direction:row;gap:7px;padding:7px 13px;font-size:12.5px;border-radius:9px}
.qa-row .qa-b i{font-size:14px}
.act{display:grid;grid-template-columns:96px 1fr;gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12.5px;line-height:1.35}
.act:first-of-type{border-top:0}
#activity h3 a{margin-left:auto;font-weight:600}

/* Today: integration status strip */
.hstrip{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:-4px 0 12px;font-size:12px;color:var(--mut)}
.hs{display:inline-flex;align-items:center;gap:6px}.hs b{color:var(--txt);font-weight:600}
.hs i{width:8px;height:8px;border-radius:50%;background:#B8B4AA}
.hs-ok i{background:#2E9E5B}.hs-warn i{background:#E0A100}.hs-bad i{background:#D6453D}
.hstrip a{margin-left:auto}
/* design tracker */
.tpg.dtr td{padding:9px 8px}.tpg.dtr th{padding:8px;max-width:none}
.tpg tr.row-bad td{background:#FDF1EF}
.so-r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);color:var(--txt)}
.so-r:first-of-type{border-top:0}.so-r>span:first-child{display:flex;flex-direction:column;min-width:0}
.k-n small{font-size:14px;font-weight:600;color:var(--mut)}

.grid.redo3{grid-template-columns:minmax(220px,.8fr) minmax(0,1.3fr) minmax(240px,.9fr);align-items:start}
@media (max-width:1180px){.grid.redo3{grid-template-columns:1fr 1fr}.grid.redo3>.card:first-child{grid-column:1/-1}}
@media (max-width:760px){.grid.redo3{grid-template-columns:1fr}}

/* crew cost hero */
.crew-hero{background:#151314;color:#fff;border:0}
.crew-hero .k-l{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#B8B4AA}
.crew-hero>b{display:block;font-size:34px;font-weight:800;letter-spacing:-.02em;margin:4px 0 8px}
.crew-hero .ch-row{display:flex;gap:28px}.crew-hero .ch-row span{display:flex;flex-direction:column}
.crew-hero small{font-size:11.5px;color:#DDD9D0}.crew-hero em{font-style:normal;font-weight:800;font-size:18px;color:var(--acc)}.crew-hero em.w{color:#fff}
.picks>.mut{grid-column:1/-1}

/* client KPI row */
.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi.k-zero .k-n{color:rgba(21,19,20,.35)}
@media(max-width:900px){.kpis.k5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.kpis.k5{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* manufacturers directory: table + edit panel */
.hdr-a{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.grid.mdir{grid-template-columns:minmax(0,1fr) 340px;align-items:start}
@media(max-width:1180px){.grid.mdir{grid-template-columns:1fr}}
.mtbl{width:100%;border-collapse:collapse}
.mtbl th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:rgba(21,19,20,.6);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.mtbl td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.mtbl tr.off td{opacity:.55}.mtbl tr.sel td{background:#FFF6EA}
.mtbl .mt-n{margin-top:2px}
.mpanel{position:sticky;top:14px}.mpanel .lb{display:block;margin-bottom:8px}
@media(max-width:760px){.mtbl thead{display:none}.mtbl tr{display:block;border-bottom:1px solid var(--line);padding:8px 0}.mtbl td{display:block;border:0;padding:3px 4px;text-align:left}.mtbl td.num{display:inline-block}}

/* crew cost grouped sections */
.crewf{align-content:start}.crewf .card h3{margin-bottom:8px}
.fx{font-size:12px;color:rgba(21,19,20,.62);background:#F7F5F0;border-radius:8px;padding:7px 10px;margin-top:8px}
.fx b{color:var(--txt)}
.crewf .btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mtbl th{white-space:normal}.mtab{overflow-x:auto}.mtbl td:first-child{min-width:180px}.mtbl td:nth-child(2){word-break:break-word}
@media(min-width:1181px){.grid.mdir{grid-template-columns:minmax(0,1fr) 320px}}
@media(max-width:1180px){.mpanel.mph{display:none}.mpanel{position:static}}
.pc-a{display:flex;gap:6px;align-items:center;flex-shrink:0}
.synct td{white-space:normal!important;vertical-align:top}.synct td:nth-child(5){max-width:560px;line-height:1.5}
.synct td:nth-child(6){max-width:260px;word-break:break-word}.synct td:first-child{white-space:nowrap!important}
@media(max-width:700px){table.mtbl tr{grid-template-columns:1fr!important}table.mtbl td{text-align:left!important}table.mtbl td:nth-child(4),table.mtbl td:nth-child(5){display:none}}
.tbar{display:grid;grid-template-columns:1fr 70px auto;gap:8px;align-items:center;margin:6px 0}.tbar i{display:block;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--acc) var(--w),var(--line) var(--w))}

/* sidebar groups (collapsible) */
.ng{margin-bottom:2px}
.ngh{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--txt);padding:9px 11px;border-radius:8px;font-weight:600;font-size:inherit}
.ngh:hover{background:var(--panel2)}
.ngh:focus-visible{outline:2px solid #FD941D}
.ngh>span:first-child{flex:1}
.ngh .chev{width:7px;height:7px;border-right:1.6px solid #8A8780;border-bottom:1.6px solid #8A8780;transform:rotate(-45deg);transition:transform .15s;margin-right:3px}
.ng.open .ngh .chev{transform:rotate(45deg)}
.ng.open .ngb{display:none}
.ngi{display:none;margin:0 0 4px 10px;padding-left:6px;border-left:1px solid var(--line)}
.ng.open .ngi{display:block}
.ngi a{padding:7px 10px;font-size:13px}
.ng.here>.ngh{color:var(--txt)}
.sheet-g{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8A8780;margin:14px 6px 2px;font-weight:700}
/* contractor pool + schedule crew */
.poolbar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.chips .sep{width:8px}
.pn{display:flex;align-items:center;gap:9px}.pn .av{width:32px;height:32px;font-size:11.5px}
.sk{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;margin:0 4px 3px 0;background:#ECE9E2;color:#4A4743}
.sk-audio{background:rgba(253,148,29,.16);color:#9A5300}.sk-video{background:#E6EEFB;color:#2D5BA8}.sk-lighting{background:#FFF6CC;color:#7A6200}.sk-rigging{background:#E9E4F5;color:#5B3FA0}.sk-network{background:#E2F2EA;color:#2E7550}
.strip{display:flex;gap:2px;margin-bottom:3px}.strip i{width:9px;height:14px;border-radius:2px;background:#E5F2EA}.strip i.wk{background:#F1EFEA}.strip i.bk{background:#FD941D}.strip i.tv{background:#BDB8AF}
tr[data-href]{cursor:pointer}.nw{white-space:nowrap}
.skpick{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}.skc input{position:absolute;opacity:0}.skc span{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:4px 11px;font-size:12px;cursor:pointer;background:#fff}.skc input:checked+span{background:var(--acc);border-color:var(--acc);font-weight:700}.skc input:focus-visible+span{outline:2px solid #151314}
.schtop{display:grid;grid-template-columns:1.6fr 1.3fr 1fr 1fr;gap:12px;margin-bottom:14px}
.fcard{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 1px 2px rgba(21,19,20,.06);display:flex;flex-direction:column;gap:4px;min-width:0}.fcard b{font-size:15px;overflow:hidden;text-overflow:ellipsis}
.fcard select.in.bare{border:0;padding:0;font-weight:700;font-size:15px;background-color:transparent;margin:0;width:100%}
.row-b{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--mut)}.legend span{display:inline-flex;align-items:center;gap:5px}
.lgd{width:12px;height:12px;border-radius:3px;display:inline-block}.lgd-install{background:#FD941D}.lgd-trav{background:#BDB8AF}
.winctl{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.winctl select.in,.winctl input.in{display:inline-block;width:auto;margin:0 0 0 4px;padding:5px 8px}
.chk{display:inline-flex;align-items:center;gap:6px}
.days{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.dcard{min-width:92px;border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;background:#FFF1DC;border:1px solid #FD941D}.dcard span{font-size:11px;color:var(--mut)}.dcard b{font-size:15px}.dcard em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.06em;color:#9A5300}
.dcard.travel{background:#F1EFEA;border-color:#D6D2CA}.dcard.travel em{color:var(--mut)}
.grid.schg{grid-template-columns:minmax(0,1fr) 320px;align-items:start;margin-top:14px}
@media(max-width:1180px){.grid.schg{grid-template-columns:1fr}.schtop{grid-template-columns:1fr 1fr}}
.tscroll{overflow-x:auto}
.avt th.dc{text-align:center;font-size:10px;line-height:1.1}.avt th.dc span{display:block;font-size:14px;color:var(--txt)}.avt th.dc.travel{color:#9A958C}.avt th.dc.travel span{color:#9A958C}
.avt td.dc{text-align:center;padding:6px 3px}
.ac{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;font-weight:800;font-size:13px;cursor:pointer;border:1.5px solid transparent;font-style:normal;user-select:none}
.ac input{position:absolute;opacity:0;pointer-events:none}
.ac.free{background:#E5F2EA;color:#2E8B57}.ac.conflict{background:#FBE5E5;color:#C23B3B}.ac.maybe{background:#FFF1DC;color:#9A5300}
.ac.on{border-color:#151314;background:#FD941D;color:#151314}.ac.conflict.on{background:#D64545;color:#fff}
.ac:focus-within{outline:2px solid #151314;outline-offset:1px}
.legend .ac{width:18px;height:18px;font-size:10px;border-radius:5px;cursor:default}
.schfoot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.evprev .evbox{border:1px solid var(--line);border-left:4px solid #FD941D;border-radius:10px;padding:10px 12px;margin-bottom:10px;display:flex;flex-direction:column;gap:4px}
.evprev .evs{font-size:14px}.evprev .invite{margin:4px 0}
@media(max-width:760px){.schtop{grid-template-columns:1fr}.pool th:nth-child(3),.pool td:nth-child(3),.pool th:nth-child(4),.pool td:nth-child(4),.pool th:nth-child(5),.pool td:nth-child(5){display:none}.dcard{min-width:74px;padding:6px 9px}}
.cev.crewday,.ag-i.crewday{border-style:dashed;opacity:.9}.cp-mine{color:var(--ok);font-weight:700}

/* design returns */
.dfiles{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:3px}
.sugg{margin-top:3px;color:var(--ink-2,#555)}
#mark-received.flash{box-shadow:0 0 0 3px var(--acc,#3b6)}
.pv-dr{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line,#e5e3dc)}
.pv-dr:first-of-type{border-top:0}
.tpg.dtr td:nth-child(5){min-width:190px;max-width:290px}
.tpg.dtr td:nth-child(5) .xs{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.mr-l{background:none;border:0;padding:2px 0;margin-top:2px;color:var(--acc-d,#A85A00);font-weight:700;cursor:pointer;text-decoration:underline}

/* ---- client texts & calls thread ---- */
#comms .row-b{display:flex;justify-content:space-between;align-items:center;gap:8px}
#comms .cm-ref,#call .cm-ref{margin:0}
.cmth{display:flex;flex-direction:column;gap:6px;max-height:460px;overflow-y:auto;padding:6px 2px;margin-top:6px}
.cm{max-width:78%;display:flex;flex-direction:column}
.cm.cm-in{align-self:flex-start}.cm.cm-out{align-self:flex-end;align-items:flex-end}
.cm-b{padding:8px 12px;border-radius:16px;white-space:pre-wrap;font-size:13px;line-height:1.4}
.cm.cm-in .cm-b{background:#ECE9E2;color:var(--txt);border-bottom-left-radius:4px}
.cm.cm-out .cm-b{background:var(--acc);color:#151314;border-bottom-right-radius:4px}
.cm-m{font-size:10.5px;color:var(--mut);margin:3px 6px 0}
.cm-m .bad{color:var(--bad)}
.cm-day{text-align:center;font-size:10.5px;color:#8A8780;text-transform:uppercase;letter-spacing:.06em;margin:8px 0 2px}
.cm-call{align-self:center;font-size:11.5px;color:var(--mut);background:var(--panel2);border-radius:20px;padding:4px 12px}

.cm-calls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 8px}
.cm-calls form{margin:0}
.cm-calls button[disabled]{opacity:.55;cursor:not-allowed}
.cm-cstate{margin-left:4px}

/* shared Texts & calls panel (_comms.html) */
.cm-h h3{margin-bottom:6px}
.cm-who{margin:2px 0 8px}
.cm.cm-test .cm-b{opacity:.75;border:1px dashed rgba(0,0,0,.25)}
.cm-compose{margin-top:10px;border-top:1px solid var(--line2);padding-top:8px}
.cm-compose .ta{margin:6px 0}
.cm-compose button[disabled]{opacity:.55;cursor:not-allowed}
.cm-foot{margin-top:6px}
#call .cmth{max-height:380px}

/* ---- phone: split Call buttons + floating dial pad (staff only, phone.js) ---- */
.csplit{position:relative;display:inline-flex;vertical-align:middle}
.csplit .cs-main{border-radius:8px 0 0 8px;flex-direction:column;align-items:flex-start;gap:0;line-height:1.2}
.csplit .cs-main small{font-size:10.5px;font-weight:600;opacity:.75}
.csplit .cs-caret{border-radius:0 8px 8px 0;border-left:1px solid rgba(0,0,0,.18);padding:8px 9px}
.csplit button:disabled{background:var(--panel2);border-color:var(--line);color:#8A8780;cursor:not-allowed}
.csplit-s .cs-main{padding:5px 10px;font-size:12px}.csplit-s .cs-caret{padding:5px 7px}
.cs-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:260px;background:#fff;border:1px solid var(--line2);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:5px;display:flex;flex-direction:column;gap:2px}
.cs-menu[hidden]{display:none}
.cs-menu button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:1px;background:none;border:0;border-radius:7px;padding:8px 10px;white-space:normal}
.cs-menu button:hover:not(:disabled){background:var(--panel2)}
.cs-menu button.pref b::after{content:" ✓";color:var(--acc-d)}
.cs-menu button small{font-size:11px;color:var(--mut);font-weight:500}
.cs-menu button:disabled{cursor:not-allowed}.cs-menu button:disabled b{color:#A9A59D}
.cs-menu button:disabled small{color:var(--warn)}
.cm-calls .csplit{margin:0 6px 6px 0}
.ph-fab{position:fixed;right:20px;bottom:20px;z-index:55;display:flex;align-items:center;gap:6px;background:var(--ink);color:#fff;border:0;border-radius:24px;padding:10px 16px 10px 14px;font-weight:700;font-size:14px;box-shadow:0 6px 18px rgba(0,0,0,.22)}
.ph-fab span{font-size:13px}
.ph-open .ph-fab{display:none}
.ph{position:fixed;right:20px;bottom:20px;z-index:56;width:300px;max-height:calc(100vh - 40px);overflow:auto;background:#fff;border:1px solid var(--line2);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.2);padding:12px 14px 12px}
.ph[hidden]{display:none}
.ph-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}.ph-h b{font-size:15px}
.ph-mode{background:#FFF1DC;color:#9A5300}.ph-mode.ok{background:#E3F3E9;color:#1F6B41}
.ph-x{margin-left:auto;background:none;border:0;font-size:20px;line-height:1;color:var(--mut);padding:2px 6px}
.ph-numl{display:flex;align-items:center;border:1px solid var(--line2);border-radius:9px;padding:0 4px 0 10px}
.ph-num{flex:1;border:0;outline:0;font-size:19px;font-weight:600;padding:8px 0;min-width:0;background:none}
.ph-bs{background:none;border:0;font-size:17px;color:var(--mut);padding:4px 8px}
.ph-who{min-height:17px;font-size:12px;color:var(--acc-d);font-weight:600;margin:4px 2px 4px}
.lbl0{font-size:10.5px;letter-spacing:.08em;font-weight:700;margin:2px 0 4px}
.ph-hubs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}
.ph-hubs button{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line2);background:#fff;border-radius:8px;padding:5px 8px;font-weight:600;font-size:12px;line-height:1.25}
.ph-hubs button small{font-size:10px;color:var(--mut);font-weight:500}
.ph-hubs button.on{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc);background:#FFF7EC}
.ph-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.ph-pad button{display:flex;flex-direction:column;align-items:center;justify-content:center;height:46px;border:1px solid var(--line);background:var(--panel2);border-radius:10px;font-size:19px;font-weight:600;line-height:1}
.ph-pad button small{font-size:9px;letter-spacing:.1em;color:var(--mut);font-weight:600;margin-top:2px;min-height:9px}
.ph-pad button:active{background:#E8E5DD}
.ph-go .csplit{display:flex}.ph-go .cs-main{flex:1;align-items:center}.ph-go .cs-menu{left:auto;right:0;top:auto;bottom:calc(100% + 4px)}
.ph-cwho{font-size:17px;font-weight:700;text-align:center;margin-top:6px}
.ph-cst{text-align:center;color:var(--mut);font-size:12px;margin:2px 0 12px}
.ph-ctl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.ph-ctl button{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--panel2);border-radius:10px;padding:8px 0;font-size:17px}
.ph-ctl button small{font-size:11px;font-weight:600}
.ph-ctl button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ph-hang{width:100%;background:var(--bad);border-color:var(--bad);color:#fff;font-weight:700}.ph-hang:hover{background:#B83232;color:#fff}
.ph-inb{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ph-msg{margin-top:8px;min-height:15px}
@media (max-width:760px){.ph-fab{bottom:calc(74px + var(--safe-b));right:14px}.ph{right:8px;left:8px;width:auto;bottom:calc(70px + var(--safe-b))}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ph-hubs [hidden]{display:none!important}

/* ---- client logos (app/logos.py): initials underneath, cached logo on top ---- */
.clogo{--lg:#6b6f76;position:relative;display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;background:var(--lg);color:#fff;font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1;overflow:hidden;vertical-align:middle;user-select:none}
.clogo>b{font-weight:700}
.clogo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:2px;box-sizing:border-box}
.clogo.has-img{box-shadow:inset 0 0 0 1px rgba(21,19,20,.12)}
.clogo-xs{width:18px;height:18px;border-radius:5px;font-size:8px}
.clogo-xs>img{padding:1px}
.clogo-md{width:32px;height:32px;border-radius:8px;font-size:12px}
.clogo-lg{width:44px;height:44px;border-radius:10px;font-size:16px}
.clogo-lg>img{padding:3px}
.d-hd{display:flex;align-items:center;gap:8px;min-width:0}
.d-hd .d-cl{min-width:0;flex:1}
.board.mini .d-hd .clogo{width:28px;height:28px;font-size:11px}
.cl-row{display:flex;align-items:center;gap:9px;min-width:0}
.cl-row>div,.cl-row>span{min-width:0}
.h-logo{display:flex;align-items:center;gap:12px;min-width:0}
h2.h-logo{gap:9px}
.tc-b .clogo{margin-right:5px}
.ag-i .clogo{margin-right:6px}
.logo-card summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:8px}
.logo-card summary::-webkit-details-marker{display:none}
.logo-card[open] summary{margin-bottom:10px}
.lg-now{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.lg-f{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.lg-f input[type=url]{flex:1;min-width:0}
.lg-f input[type=file]{flex:1;min-width:0;font-size:12px}
/* shared hub inbox threads (client page Texts & calls) */
.hthr{display:flex;flex-direction:column;gap:6px;margin:8px 0}
.hth{border:1px solid var(--line,#e3e3e3);border-radius:10px;padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;justify-content:space-between}
.hth-open{border-left:3px solid var(--ok,#2e9d5b)}
.hth-done{opacity:.75}
.hth-t{font-size:13px;min-width:0}
.hth-a{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hth-a form{display:inline-flex;gap:4px;margin:0}
.hth-as select{max-width:150px}
/* hub inbox */
.hi-filter{gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.hi-card{padding:0;overflow:hidden;margin-bottom:14px}
.hi-h{padding:10px 14px;border-bottom:1px solid var(--line)}
.hi-row{display:grid;grid-template-columns:minmax(200px,1.1fr) minmax(220px,2fr) auto;gap:14px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--line)}
.hi-row:last-child{border-bottom:0}
.hi-unk{background:rgba(210,60,60,.035)}
.hi-who{display:flex;gap:10px;align-items:flex-start;min-width:0}
.hi-id{min-width:0}.hi-id b{overflow-wrap:anywhere}
.hi-q{width:34px;height:34px;border-radius:9px;background:#ECE9E2;color:var(--mut);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.hi-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.hi-prev{margin-top:2px;overflow-wrap:anywhere}
.hi-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;max-width:360px}
.hi-f{display:inline-flex;gap:6px;margin:0}.hi-f select{max-width:150px}
.hi-d{position:relative}.hi-d>summary{list-style:none;cursor:pointer}.hi-d>summary::-webkit-details-marker{display:none}
.hi-form{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:10px;border:1px solid var(--line2);border-radius:10px;background:#fff;min-width:260px}
.hi-form label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600}
.hi-form label.ck{flex-direction:row;align-items:center;gap:5px;font-weight:500}
@media (max-width:860px){.hi-row{grid-template-columns:1fr}.hi-act{justify-content:flex-start;max-width:none}}
.hi-f select.in,.hi-form .in{margin:0;padding:6px 9px;font-size:13px}
.hi-f select.in{width:auto}
/* client page jobs table: long titles wrap so Latest / Total never spill past the card */
table.cjobs td.c-id,table.cjobs td.c-pr,table.cjobs td.c-lt{white-space:normal}
table.cjobs td.c-id b{overflow-wrap:anywhere}
table.cjobs th:last-child,table.cjobs td.c-m,table.cjobs td.c-st{white-space:nowrap}
@media (min-width:861px) and (max-width:1240px){
  table.cjobs thead{display:none}
  table.cjobs tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
  table.cjobs tr:last-child{border:none}
  table.cjobs td{border:none;padding:0;white-space:normal}
  table.cjobs .c-id{grid-column:1;grid-row:1}table.cjobs .c-st{grid-column:2;grid-row:1;text-align:right}
  table.cjobs .c-pr{grid-column:2;grid-row:2;text-align:right;font-size:12px;color:var(--mut)}table.cjobs .c-lt{grid-column:1;grid-row:2;color:var(--mut)}
  table.cjobs .c-m{grid-column:2;font-weight:700;text-align:right}
}
/* ---- Touch point rules: to-dos, rule cards, rule form, undo bar ---- */
.acc-t{color:var(--acc-d)}
.todo{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.todo:last-child{border:none}
.todo .tli{background:rgba(253,148,29,.16)}.todo.over .tli{background:rgba(210,60,60,.14);color:var(--bad)}
.todo.closed{opacity:.62}.todo-b{flex:1;min-width:0}.todo .row-b{margin-bottom:2px}
.todo-a{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start;margin-top:6px}.todo-a form.btns{margin:0;gap:6px}
details.skip>summary{list-style:none;cursor:pointer}details.skip>summary::-webkit-details-marker{display:none}
details.skip[open]>summary{background:var(--panel2)}
.skip-f{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.skip-f .in{flex:1;min-width:180px;padding:6px 9px;font-size:12.5px}
details.why{margin-top:2px}details.why>summary{cursor:pointer;color:var(--acc-d);font-weight:600;width:max-content}
details.why>div,.why{color:#3B3937;margin-top:3px;line-height:1.45}
.undobar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#151314;color:#F3F2EE;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-weight:600}
.undobar .btn{background:var(--acc);border-color:var(--acc);color:#151314;font-weight:700}
.tl-ed{margin-left:8px;color:var(--acc-d)}
a.tpc{text-decoration:none}a.tpc:hover i{outline:2px solid var(--acc);outline-offset:1px}
.trule{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.trule:last-child{border:none}
.trule-t{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.trule-t b{font-size:14px}.trule-m{color:var(--mut);font-size:12px;margin-top:3px}
.trule-c{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.trule.off{opacity:.55}
.trform h4{margin:16px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.trform h4:first-of-type{margin-top:4px}
.trform .frow{display:flex;gap:10px;flex-wrap:wrap}.trform .frow>.lb{flex:1;min-width:140px}
.trform .chips label{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--line2);border-radius:999px;font-size:12px;cursor:pointer;margin:0 4px 4px 0}
.trform .chips input{accent-color:var(--acc)}
.trform label.chk{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:7px;flex:1;min-width:220px;font-size:12.5px;font-weight:600;color:var(--txt);cursor:pointer}
.trform label.chk input{width:auto;margin:0;flex:none;accent-color:var(--acc)}
.trform .chips label.chk{display:inline-flex;flex:none;min-width:0}
.stagep{margin:10px 0 4px}.stagep .lb{margin-bottom:4px}
.stagep-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stagep-r select.in{flex:1;min-width:0;width:auto;margin:0}
.stagep-c{padding:0 18px}
.stagecf{max-width:620px}.stagecf-ft{margin:10px 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
/* e2e pass: grid cards never push the page wider than the screen */
.two-eq{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.two-eq>*{min-width:0}
@media(max-width:760px){.two-eq{grid-template-columns:minmax(0,1fr)}}
.kv>span:first-child{min-width:0;overflow-wrap:anywhere}.pc-a{flex-wrap:wrap;justify-content:flex-end}
.kv .pill{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.winctl label{max-width:100%;min-width:0}.winctl select.in{max-width:100%;min-width:0}
@media(max-width:760px){.card>.btn{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center;height:auto}
  .winctl label{display:flex;flex-wrap:wrap;align-items:center}.winctl select.in{flex:1 1 200px;margin:4px 0 0}}
.tscroll{overflow-x:auto;margin:8px 0}.sortt{width:100%;font-size:13px}.sortt th[data-dir=asc]::after{content:" ▲"}.sortt th[data-dir=desc]::after{content:" ▼"}
.tdrill{margin:4px 0}.tdrill summary{cursor:pointer}.trow{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:6px;padding:3px 0;border-bottom:1px solid var(--line)}.trow>span:last-child{grid-column:2/4}.trow a,.trow span{overflow-wrap:anywhere}
.tedit{grid-column:1/-1}.tedit summary{cursor:pointer;color:var(--acc)}.tedit form{display:flex;flex-wrap:wrap;gap:6px;align-items:end;margin:4px 0}.tedit .in{max-width:160px}
