/* dash.css: the Foreman dashboard design system. Shared by foreman.so (demo) and crm.foreman.so. Source of truth lives in the foreman-site repo, assets/dash.css; the CRM keeps a copy checked by ~/scripts/foreman-ui-sync. Generic .pill .ch .tag .dot are scoped under .dash. */
.dash{--db:#e8e6e3;--dt:#1f1d1b;--dt2:#66625f;--dt3:#9a9693;--dsel:#f6f4f2;--ok:#1f7a3f;--okbg:#e6f4ea;--warn:#9a5b00;--warnbg:#fdf1dc;--info:#1d5fb3;--infobg:#e6eefb;--viol:#6d28d9;--violbg:#efe9fd;--g:#4285f4;--me:#7c5cff;--tt:#1f1d1b;--lsa:#34a853;margin-top:1.5rem;display:grid;grid-template-columns:3.5rem minmax(0,1fr);min-height:42rem;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--db),0 30px 60px -30px rgba(21,20,19,.35);overflow:clip;font-size:13px;line-height:1.4;color:var(--dt);font-family:var(--sans);text-align:left}
.dash.full{min-height:calc(100vh - 14rem);margin-top:2rem}
.dash button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}
.dash .av{flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover;background:var(--dsel);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:510;vertical-align:middle}.dash .av.lg{width:36px;height:36px}.dash .av.f{background:var(--accent);color:#fff}
.dash-rail{background:#1b1917;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 0}.dash-rail button,.dash-rail span{position:relative;width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#a19d9b;transition:background .15s,color .15s}.dash-rail button:hover{color:#fff;background:rgba(255,255,255,.06)}.dash-rail button.on{background:var(--accent);color:#fff}.dash-rail svg{width:16px;height:16px}.dash-rail i{position:absolute;top:3px;right:3px;font-style:normal;font-size:9px;background:#fff;color:var(--accent-ink);border-radius:14px;padding:0 .3rem;line-height:1.4;font-weight:510}.dash-rail button.on i{background:#fff}.dash-logo{margin-bottom:.5rem}.dash-logo svg{width:16px;height:16px;color:#fff}.dash-me{margin-top:auto}.dash-me .av{width:28px;height:28px;box-shadow:0 0 0 2px #3a3633}
.dash-body{min-width:0;display:flex;flex-direction:column}.dash-biz{flex:1;display:flex;min-width:0}.dash-biz[hidden]{display:none}
.dash-switch{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--db);background:#fbfaf9}.dash-switch .dash-h{margin:0 .5rem 0 0}.dash-segc{display:inline-flex;gap:2px;padding:2px;border-radius:10px;background:var(--dsel);box-shadow:inset 0 0 0 1px var(--db)}.dash-switch button{display:flex;flex-direction:column;padding:.25rem .75rem;border-radius:6px;line-height:1.2;transition:background .15s,color .15s}.dash-switch button:hover{background:#fff}.dash-switch button b{font-weight:510;font-size:13px}.dash-switch button small{font-size:12px;color:var(--dt3)}.dash-switch button.on,.dash-switch button.on:hover{background:var(--dt);color:#fff;box-shadow:0 1px 2px rgba(21,20,19,.18)}.dash-switch button.on small{color:#c9c5c1}.dash-switch-note{margin-left:auto;font-size:12px;color:var(--dt3)}.dash-switch.one{padding:.625rem 1rem}.dash-your{font-size:13px;color:var(--dt2)}.dash-segc[hidden],.dash-switch-note[hidden],.dash-switch .dash-h[hidden]{display:none}.dash-view{flex:1;display:grid;min-width:0}.dash-view[hidden]{display:none}.dash-view[data-view=inbox]{grid-template-columns:16rem minmax(0,1fr)}
.dash-thread{display:grid;grid-template-columns:minmax(0,1fr) 17rem;min-width:0}.dash-thread[hidden]{display:none}
.dash-list{border-right:1px solid var(--db);display:flex;flex-direction:column;min-width:0}.dash-lh{padding:1rem 1rem .5rem}.dash-lh b{display:block;font-size:15px;font-weight:510}.dash-lh span{color:var(--dt3);font-size:12px}.dash-search{margin:.5rem .75rem;padding:.5rem .5rem;border-radius:6px;background:var(--dsel);color:var(--dt3);font-size:12px}
.dl-row{cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--db);align-items:start;min-width:0;width:100%}.dl-row:hover{background:#faf9f8}.dl-row.on{background:var(--dsel);box-shadow:inset 3px 0 0 var(--accent)}.dl-row b{display:block;font-weight:510;font-size:13px}.dl-row small{display:block;color:var(--dt2);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dl-row>div{min-width:0}.dl-who{display:inline-flex;border-radius:50%}[data-cust]{cursor:pointer}b[data-cust]:hover,.dash-sched b[data-cust]:hover{text-decoration:underline;text-underline-offset:2px}.dash-table.rows tbody tr{cursor:pointer}.dash-table.rows tbody tr:hover td{background:#faf9f8}.dl-meta{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.dl-meta time{font-size:12px;color:var(--dt3);font-family:var(--mono)}
.dash .ch{font-style:normal;font-size:12px;font-weight:510;border-radius:6px;padding:.08rem .5rem;white-space:nowrap}.dash .ch.text{background:var(--okbg);color:var(--ok)}.dash .ch.voice{background:var(--infobg);color:var(--info)}.dash .ch.chat{background:var(--violbg);color:var(--viol)}.dash .ch.email{background:var(--warnbg);color:var(--warn)}
.dash-main{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--db)}.dash-th{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--db)}.dash-th b{display:block;font-size:15px;font-weight:510}.dash-th small{display:block;color:var(--dt2);font-size:12px}.dash-th>div{flex:1;min-width:0}
.dash .pill{font-size:12px;font-weight:510;padding:.2rem .5rem;border-radius:14px;box-shadow:inset 0 0 0 1px var(--db);color:var(--dt2);white-space:nowrap;background:#fff}.dash .pill.ok{background:var(--okbg);color:var(--ok);box-shadow:none}.dash .pill.warn{background:var(--warnbg);color:var(--warn);box-shadow:none}.dash .pill.info{background:var(--infobg);color:var(--info);box-shadow:none}
.dash-msgs{flex:1;padding:1rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.dash-day{position:relative;text-align:center;z-index:0}.dash-day span{font-size:12px;color:var(--dt3);background:#fff;padding:0 .5rem}.dash-day:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--db);z-index:-1}
/* iMessage bubbles (10/8/2026): one look for the hero card, the 12 sector threads and the demo pane. Outgoing = the business (Foreman writing as it), incoming = the customer. */
.im-th{--im-bg:#fff;--im-out:#0A84FF;--im-in:#E9E9EB;display:flex;flex-direction:column;gap:2px;font-size:15px;line-height:1.3}
.im-th .im-day{text-align:center;font-size:11px;color:#8e8e93;margin:.5rem 0 .25rem;font-weight:510}.im-th .im-day.sys span{font-weight:400}.im-th .im-day span{display:inline-block;padding:0 .5rem}
.m{display:flex;align-items:flex-end;gap:6px;max-width:72%;align-self:flex-start;padding-left:34px;position:relative}
.m p{margin:0;padding:7px 12px;border-radius:18px;background:var(--im-in);color:#1c1c1e;position:relative;z-index:0;overflow-wrap:anywhere;text-align:left;font-size:15px;line-height:1.3}
.m .av{flex:none;width:28px;height:28px;border-radius:50%;object-fit:cover;position:absolute;left:0;bottom:0}
.m.in:not(.last) .av{display:none}
.m.out{align-self:flex-end;padding-left:0;padding-right:0}.m.out p{background:var(--im-out);color:#fff}
.m.last{margin-bottom:6px}
.m.in.last p:before{content:"";position:absolute;z-index:-1;bottom:0;left:-7px;width:20px;height:20px;background:var(--im-in);border-bottom-right-radius:16px 14px}
.m.in.last p:after{content:"";position:absolute;z-index:-1;bottom:0;left:-10px;width:10px;height:20px;background:var(--im-bg);border-bottom-right-radius:10px}
.m.out.last p:before{content:"";position:absolute;z-index:-1;bottom:0;right:-7px;width:20px;height:20px;background:var(--im-out);border-bottom-left-radius:16px 14px}
.m.out.last p:after{content:"";position:absolute;z-index:-1;bottom:0;right:-10px;width:10px;height:20px;background:var(--im-bg);border-bottom-left-radius:10px}
.im-st{align-self:flex-end;font-size:11px;color:#8e8e93;margin:-4px 2px 6px 0;font-weight:510}
/* iPhone frame (iphone_frame() in build.py, brief 8): true-size device (screen 393 x 852, bezel 11, titanium edge 2.5 = 420 x 879). Brief 12: no zoom, no transform (iOS Safari rendered `zoom` at the wrong size and painted fragments of the header elsewhere). The wrapper is an inline-size container and --pt = wrapper width / 420 (cqw; site.js --ip-s * 1px as the fallback); every device dimension is calc(N * var(--pt)), so 1 unit = 1 iPhone point and the layout box is the rendered box on every engine. Phones (under 40rem): 78vw wide, centred. */
.iphone{--ip-s:.85;--pt:calc(var(--ip-s) * 1px);position:relative;width:100%;max-width:357px;margin-inline:auto;overflow:visible;container-type:inline-size}
@supports (width:1cqw){.iphone{--pt:calc(100cqw / 420)}}
@media(max-width:40rem){.iphone{max-width:78vw;max-width:min(78vw,calc(72vh * .4778));max-width:min(78vw,calc(72svh * .4778))}}
.ip-dev{position:relative;width:calc(420*var(--pt));padding:calc(2.5*var(--pt));border-radius:calc(57.5*var(--pt));background:linear-gradient(155deg,#d9d9dd 0%,#8e8e94 28%,#c4c4c9 52%,#7f7f85 76%,#d2d2d6 100%);box-shadow:0 calc(30*var(--pt)) calc(60*var(--pt)) calc(-28*var(--pt)) rgba(21,20,19,.5),0 calc(12*var(--pt)) calc(24*var(--pt)) calc(-16*var(--pt)) rgba(21,20,19,.35);box-sizing:border-box;font-family:-apple-system,"SF Pro Text","SF Pro Display","Geist",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.ip-body{background:#0a0a0c;border-radius:calc(55*var(--pt));padding:calc(11*var(--pt));box-shadow:inset 0 0 0 calc(1*var(--pt)) rgba(255,255,255,.05)}
.ip-btn{position:absolute;width:calc(3*var(--pt));border-radius:calc(2*var(--pt));background:linear-gradient(90deg,#9a9aa0,#c7c7cc);z-index:0}
.ip-btn.b1{left:calc(-3*var(--pt));top:calc(180*var(--pt));height:calc(34*var(--pt))}.ip-btn.b2{left:calc(-3*var(--pt));top:calc(236*var(--pt));height:calc(64*var(--pt))}.ip-btn.b3{left:calc(-3*var(--pt));top:calc(314*var(--pt));height:calc(64*var(--pt))}.ip-btn.b4{right:calc(-3*var(--pt));top:calc(260*var(--pt));height:calc(98*var(--pt));background:linear-gradient(90deg,#c7c7cc,#9a9aa0)}
.ip-scr{position:relative;isolation:isolate;width:calc(393*var(--pt));height:calc((196 + var(--th,656))*var(--pt));border-radius:calc(47*var(--pt));background:#fff;overflow:hidden;clip-path:inset(0 round calc(47*var(--pt)));display:flex;flex-direction:column;color:#1c1c1e;font-size:calc(17*var(--pt));line-height:calc(22*var(--pt))}
.ip-isl{position:absolute;z-index:3;top:calc(11*var(--pt));left:50%;width:calc(126*var(--pt));height:calc(37*var(--pt));margin-left:calc(-63*var(--pt));border-radius:calc(19*var(--pt));background:#000}
.ip-st{position:absolute;z-index:2;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;height:calc(59*var(--pt));padding:calc(14*var(--pt)) calc(32*var(--pt)) 0 calc(38*var(--pt));font-size:calc(17*var(--pt));line-height:1}
.ip-st b{font-weight:600;letter-spacing:-.02em}.ip-st span{display:flex;align-items:center;gap:calc(7*var(--pt))}.ip-st svg{display:block;fill:currentColor}
.iphone .im-bar{flex:none;position:relative;display:flex;flex-direction:column;align-items:center;padding:calc(62*var(--pt)) calc(16*var(--pt)) calc(7*var(--pt));background:#f9f9f9;box-shadow:0 calc(.5*var(--pt)) 0 rgba(0,0,0,.18);z-index:1}
.ip-back{position:absolute;left:calc(14*var(--pt));bottom:calc(30*var(--pt));color:#0A84FF;display:flex}
.ip-av{width:calc(40*var(--pt));height:calc(40*var(--pt));border-radius:50%;background:linear-gradient(#a7acb7,#7f8591);color:#fff;font-size:calc(16*var(--pt));font-weight:600;display:flex;align-items:center;justify-content:center;margin-bottom:calc(3*var(--pt))}
.iphone .im-bar b{font-size:calc(11.5*var(--pt));line-height:calc(14*var(--pt));font-weight:400;display:flex;align-items:center;gap:calc(3*var(--pt));color:#1c1c1e}.iphone .im-bar b svg{color:#8e8e93}
.iphone .im-th{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:calc(10*var(--pt)) calc(16*var(--pt)) calc(14*var(--pt));gap:calc(2*var(--pt));font-size:calc(17*var(--pt));line-height:calc(22*var(--pt));scrollbar-width:none}.iphone .im-th::-webkit-scrollbar{display:none}
.iphone .im-th>:first-child{margin-top:0}.iphone .m{max-width:75%;padding-left:0;gap:0}.iphone .m .av{display:none}
.iphone .m p{font-size:calc(17*var(--pt));line-height:calc(22*var(--pt));padding:calc(7*var(--pt)) calc(12*var(--pt));border-radius:calc(18*var(--pt))}
.iphone .im-day{font-size:calc(11*var(--pt));line-height:calc(14*var(--pt));margin:calc(8*var(--pt)) 0 calc(6*var(--pt))}.iphone .im-st{font-size:calc(11*var(--pt));line-height:calc(14*var(--pt));margin:calc(-2*var(--pt)) calc(4*var(--pt)) calc(8*var(--pt)) 0}
.ip-jump{position:absolute;z-index:2;right:calc(16*var(--pt));bottom:calc(84*var(--pt));width:calc(38*var(--pt));height:calc(38*var(--pt));border-radius:50%;background:#fff;color:#1c1c1e;border:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 calc(1*var(--pt)) calc(2*var(--pt)) rgba(0,0,0,.12),0 calc(4*var(--pt)) calc(14*var(--pt)) rgba(0,0,0,.18),0 0 0 calc(.5*var(--pt)) rgba(0,0,0,.06)}
.ip-jump[hidden]{display:none}.ip-jump:focus-visible{outline:calc(2*var(--pt)) solid #0A84FF;outline-offset:calc(2*var(--pt))}
.ip-in{flex:none;display:flex;align-items:center;gap:calc(10*var(--pt));padding:calc(8*var(--pt)) calc(16*var(--pt)) calc(4*var(--pt));background:#fff}
.ip-plus{flex:none;width:calc(34*var(--pt));height:calc(34*var(--pt));border-radius:50%;background:#e9e9eb;color:#5b5b60;display:flex;align-items:center;justify-content:center;font-size:calc(24*var(--pt));line-height:1;font-weight:300}
.ip-field{flex:1;height:calc(36*var(--pt));border-radius:calc(18*var(--pt));box-shadow:inset 0 0 0 calc(1*var(--pt)) #c7c7cc;color:#a0a0a6;font-size:calc(17*var(--pt));display:flex;align-items:center;justify-content:space-between;padding:0 calc(10*var(--pt)) 0 calc(14*var(--pt))}.ip-field svg{fill:#8e8e93}
.ip-home{flex:none;display:block;width:calc(134*var(--pt));height:calc(5*var(--pt));border-radius:calc(3*var(--pt));background:#1c1c1e;margin:calc(8*var(--pt)) auto calc(8*var(--pt))}
/* brief 12: rules the generic .m / .im-th blocks set in px, restated in device points so nothing inside the phone is unscaled; inline SVG icons sized by CSS (their width/height attributes are points) */
.iphone .m.last{margin-bottom:calc(6*var(--pt))}.iphone .m.in.last p:before,.iphone .m.out.last p:before{width:calc(20*var(--pt));height:calc(20*var(--pt))}.iphone .m.in.last p:before{left:calc(-7*var(--pt));border-bottom-right-radius:calc(16*var(--pt)) calc(14*var(--pt))}.iphone .m.out.last p:before{right:calc(-7*var(--pt));border-bottom-left-radius:calc(16*var(--pt)) calc(14*var(--pt))}
.iphone .m.in.last p:after,.iphone .m.out.last p:after{width:calc(10*var(--pt));height:calc(20*var(--pt))}.iphone .m.in.last p:after{left:calc(-10*var(--pt));border-bottom-right-radius:calc(10*var(--pt))}.iphone .m.out.last p:after{right:calc(-10*var(--pt));border-bottom-left-radius:calc(10*var(--pt))}
.iphone .im-th .im-day span{padding:0 calc(8*var(--pt))}.iphone .im-th .im-day,.iphone .im-th .im-st{font-size:calc(11*var(--pt))}
.ip-st svg{width:auto;height:calc(12*var(--pt))}.ip-st svg:last-child{height:calc(13*var(--pt))}.ip-back svg{width:auto;height:calc(20*var(--pt))}.iphone .im-bar b svg{width:auto;height:calc(11*var(--pt))}.ip-jump svg{width:auto;height:calc(10*var(--pt))}.ip-field svg{width:auto;height:calc(20*var(--pt))}
.im-note{display:flex;align-items:center;gap:.5rem;margin:.9rem auto 0;max-width:calc(var(--ip-w,420px) * .85);font-size:.8125rem;line-height:1.4;color:var(--fg3)}
.im-note i{flex:none;width:14px;height:11px;border-radius:7px 7px 7px 2px;background:#0A84FF}
.dash-msgs.im-th{gap:2px}.dash-msgs.im-th .dash-ev{margin-top:.75rem}.dash-msgs .im-day.sys{margin-top:.75rem}
.m time{display:none}
.dash-ev{display:flex;align-items:center;gap:.5rem;font-size:12px;padding:.5rem .75rem;border-radius:6px;background:var(--dsel);color:var(--dt2)}.dash-ev.ok{background:var(--okbg);color:var(--ok)}.dash-ev.warn{background:var(--warnbg);color:var(--warn)}.dash-ev.info{background:var(--infobg);color:var(--info)}.dash-ev.ad{background:var(--violbg);color:var(--viol)}.dash-ev svg{width:16px;height:16px;flex:none}
.dash-comp{margin:auto 1.5rem 1rem;padding:.5rem 1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--dt2);font-size:13px}.dash-comp b{font-weight:510;color:var(--dt);padding:.3rem .5rem;border-radius:6px;box-shadow:inset 0 0 0 1px var(--db)}
.dash-side{display:flex;flex-direction:column}.dash-side section{padding:1rem 1rem;border-bottom:1px solid var(--db)}.dash-side section:last-child{border-bottom:0}.dash-h{font-size:12px;font-weight:510;letter-spacing:.06em;text-transform:uppercase;color:var(--dt3);display:flex;justify-content:space-between;align-items:center;margin:0 0 .5rem}.dash-h span{background:var(--accent);color:#fff;border-radius:14px;padding:0 .5rem;font-size:12px;letter-spacing:0}.dash-h a{color:var(--accent-ink);text-transform:none;letter-spacing:0;cursor:pointer;font-weight:510}
.dash-cust{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.dash-cust b{display:block;font-weight:510}.dash-cust small{display:block;font-size:12px;color:var(--dt2)}.dash-side dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;font-size:13px;margin:0}.dash-side dt{color:var(--dt3)}.dash-side dd{margin:0}.dash .tag{display:inline-block;font-size:12px;padding:.1rem .5rem;border-radius:6px;background:var(--infobg);color:var(--info);margin:0 .25rem .25rem 0}
.dash-appr{background:#fff7f2}.dash-appr p:not(.dash-h){margin:0;font-size:13px;line-height:1.45}.dash-appr.inline{border-radius:10px;padding:1rem 1rem;box-shadow:inset 0 0 0 1px #f3d9c9}.dash-btns{display:flex;gap:.5rem;margin-top:.75rem}.dash-btns span{flex:1;text-align:center;padding:.5rem;border-radius:6px;box-shadow:inset 0 0 0 1px var(--db);font-size:13px;font-weight:510;background:#fff;cursor:pointer}.dash-btns .go{background:var(--accent);color:#fff;box-shadow:none}
.dash-kpi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.dash-kpi li{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .5rem;border-radius:6px;background:var(--dsel)}.dash-kpi span{font-size:12px;color:var(--dt3);line-height:1.25}.dash-kpi b{font-size:15px;font-weight:510;letter-spacing:-.01em;display:flex;align-items:baseline;gap:.5rem}.dash-kpi i{order:2;font-style:normal;font-size:12px;font-weight:510;color:var(--ok);background:var(--okbg);border-radius:6px;padding:.05rem .3rem}
.dash-bars{display:flex;align-items:flex-end;gap:.5rem;height:6.5rem;cursor:pointer}.dash-bars.tall{height:11rem;cursor:default}.dash-bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.2rem;height:100%}.dash-bars i{display:block;width:100%;flex:none;height:calc(var(--v) * .8px);border-radius:6px .3rem 0 0;background:var(--dt3)}.dash-bars.tall i{height:calc(var(--v) * 1.4px)}.dash-bars .g i{background:var(--g)}.dash-bars .me i{background:var(--me)}.dash-bars .tt i{background:var(--tt)}.dash-bars .lsa i{background:var(--lsa)}.dash-bars span{font-size:12px;color:var(--dt3)}.dash-bars b{font-size:12px;font-weight:510;font-family:var(--mono)}
.dash .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem;vertical-align:middle}.dash .dot.g{background:var(--g)}.dash .dot.me{background:var(--me)}.dash .dot.tt{background:var(--tt)}.dash .dot.lsa{background:var(--lsa)}
/* page views */
.dash-page{padding:1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem;min-width:0}.dash-ph{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--db)}.dash-ph b{display:block;font-size:15px;font-weight:510}.dash-ph small{display:block;color:var(--dt2);font-size:12px}.dash-ph .dash-search{margin:0;min-width:12rem}
.dash-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.dash-stat{padding:1rem 1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);display:flex;flex-direction:column;gap:.1rem}.dash-stat span{font-size:12px;color:var(--dt3);text-transform:uppercase;letter-spacing:.05em;font-weight:510}.dash-stat b{font-size:1.5rem;font-weight:510;line-height:1.1;letter-spacing:-.01em}.dash-stat small{font-size:12px;color:var(--dt2)}.dash-stat.warn{background:var(--warnbg);box-shadow:none}.dash-stat.warn b{color:var(--warn)}.dash-stat.good{background:var(--okbg);box-shadow:none}.dash-stat.good b{color:var(--ok)}
.dash-two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dash-two section{padding:1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);min-width:0}
.dash-sched,.dash-log,.dash-rules,.dash-apprs{list-style:none;margin:0;padding:0}.dash-sched li{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.75rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--db)}.dash-sched li:first-child{border-top:0}.dash-sched time{font-family:var(--mono);font-size:12px;color:var(--dt2)}.dash-sched b{display:block;font-weight:510}.dash-sched small{display:block;font-size:12px;color:var(--dt2)}
.dash-log{display:flex;flex-direction:column;gap:.5rem;font-size:13px;color:var(--dt2)}.dash-log li{padding-left:1rem;position:relative}.dash-log li:before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.dash-chips{display:flex;gap:.5rem;flex-wrap:wrap}.dash-chips span{font-size:12px;padding:.3rem .7rem;border-radius:14px;box-shadow:inset 0 0 0 1px var(--db);color:var(--dt2);cursor:pointer}.dash-chips span.on{background:var(--dt);color:#fff;box-shadow:none}.dash-chips i{font-style:normal;color:var(--dt3);margin-left:.2rem}
.dash-table{width:100%;border-collapse:collapse;font-size:13px}.dash-table th{text-align:left;font-size:12px;color:var(--dt3);font-weight:510;text-transform:uppercase;letter-spacing:.05em;padding:.5rem .5rem;border-bottom:1px solid var(--db)}.dash-table td{padding:.5rem .5rem;border-bottom:1px solid var(--db);vertical-align:middle}.dash-table td .av{margin-right:.5rem}.dash-table td b{font-weight:510}.dash-table small{color:var(--dt3);font-size:12px}.dash-table.tight td,.dash-table.tight th{padding:.5rem .5rem}.dash-table tr.dead td{color:var(--dt3)}
.dash-report ol{margin:0;padding-left:1.5rem;font-family:var(--mono);font-size:13px;line-height:1.9;color:var(--dt)}
.dash-line{width:100%;height:auto;font-family:var(--mono);font-size:12px;fill:var(--dt3)}.dash-line polyline{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.dash-line circle{fill:#fff;stroke:var(--accent);stroke-width:2}.dash-line .hi{fill:var(--accent-ink);font-weight:510}
.dash-hbars{display:flex;flex-direction:column;gap:.5rem}.dash-hbars div{display:grid;grid-template-columns:9rem 1fr 2.5rem;align-items:center;gap:.75rem;font-size:13px}.dash-hbars span{color:var(--dt2)}.dash-hbars i{display:block;height:10px;border-radius:6px;background:var(--accent);width:calc(var(--w) * 1%);opacity:.9}.dash-hbars div:nth-child(n+2) i{background:var(--g)}.dash-hbars div:nth-child(2) i{background:var(--ok)}.dash-hbars div:nth-child(4) i{background:var(--viol)}.dash-hbars div:nth-child(5) i{background:var(--me)}.dash-hbars div:nth-child(6) i{background:var(--dt3)}.dash-hbars b{font-weight:510;font-family:var(--mono);text-align:right}
.dash-apprs{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}
.dash-rules li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-top:1px solid var(--db)}.dash-rules li:first-child{border-top:0}.dash-rules b{display:block;font-weight:510}.dash-rules small{display:block;font-size:12px;color:var(--dt2)}.sw{flex:none;width:34px;height:20px;border-radius:14px;background:#d7d4d1;position:relative;cursor:pointer;transition:background .15s}.sw i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s}.sw.on{background:var(--ok)}.sw.on i{left:16px}
/* intake panel, filled by Foreman from the conversation */
.dash-intake{background:#fff7f2}.dash-h span.f{background:var(--accent)}.dash-intake .in-sub{margin:-.25rem 0 .75rem;font-size:12px;color:var(--dt2);line-height:1.4}
.dash-side .in-dl{display:grid;grid-template-columns:minmax(4.5rem,6rem) minmax(0,1fr);gap:.5rem .75rem;margin:0;font-size:13px}.in-dl dt{color:var(--dt3);overflow-wrap:normal;line-height:1.4}.in-dl dd{margin:0;min-width:0;display:flex;gap:.375rem;align-items:flex-start;font-weight:510;line-height:1.4;overflow-wrap:anywhere}.in-dl dd svg{width:14px;height:14px;flex:none;color:var(--ok);margin-top:2px}.in-dl dd span{min-width:0}
.in-foot{margin:.75rem 0 0;padding-top:.5rem;border-top:1px solid #f3d9c9;font-size:12px;color:var(--dt2);display:flex;gap:.375rem;align-items:center}.in-foot svg{width:14px;height:14px;color:var(--ok);flex:none}
/* customer profile view */
.dash-profile[hidden]{display:none}.dash-profiles{min-width:0;flex:1}.dash .av.xl{width:36px;height:36px}.dash-ph.prof{align-items:center;gap:1rem;justify-content:flex-start;flex-wrap:wrap}.dash-ph.prof>div:nth-of-type(1){flex:1;min-width:12rem}.dash-back{width:30px;height:30px;border-radius:6px;box-shadow:inset 0 0 0 1px var(--db);display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0}.dash-back svg{width:16px;height:16px}.dash-ltv{text-align:right}.dash-ltv span{display:block;font-size:12px;color:var(--dt3);text-transform:uppercase;letter-spacing:.05em}.dash-ltv b{font-size:15px;font-weight:510}.dash-tags{display:flex;flex-wrap:wrap;gap:0;max-width:12rem}
.dash-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--db)}.dash-tabs span{padding:.5rem .75rem;font-size:13px;font-weight:510;color:var(--dt2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.dash-tabs span.on{color:var(--dt);border-bottom-color:var(--dt)}.dash-tab[hidden]{display:none}
.dash-tl,.dash-notes,.dash-next{list-style:none;margin:0;padding:0}.dash-tl li{display:grid;grid-template-columns:5.5rem auto 1fr;gap:.75rem;align-items:start;padding:.5rem 0;border-top:1px solid var(--db);font-size:13px}.dash-tl li:first-child{border-top:0}.dash-tl time{font-family:var(--mono);font-size:12px;color:var(--dt2)}.dash .ch.job{background:var(--dsel);color:var(--dt2)}.dash-notes li{padding:.5rem 0;border-top:1px solid var(--db);font-size:13px}.dash-notes li:first-child{border-top:0}.dash-next li{display:grid;grid-template-columns:9rem 1fr;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--db);font-size:13px}.dash-next li:first-child{border-top:0}.dash-next time{font-family:var(--mono);font-size:12px;color:var(--accent-ink)}.dash-src{display:grid;grid-template-columns:8rem 1fr;gap:.5rem .75rem;font-size:13px;margin:0}.dash-src dt{color:var(--dt3)}.dash-src dd{margin:0}.dash-foot{margin:.5rem 0 0;font-size:12px;color:var(--dt3)}
/* ads view */
.dash-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.dash-card{padding:1rem 1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);display:flex;flex-direction:column;gap:.25rem;min-width:0}.dash-card span{font-size:12px;color:var(--dt3);text-transform:uppercase;letter-spacing:.05em;font-weight:510}.dash-card b{font-weight:510;font-size:13px;line-height:1.35}.dash-card small{font-size:12px;color:var(--dt2);line-height:1.4}
.dash-rec{padding:1rem 1rem;border-radius:10px;background:#fff7f2;box-shadow:inset 0 0 0 1px #f3d9c9;display:grid;grid-template-columns:1fr auto;gap:.25rem 1.5rem;align-items:center}.dash-rec .dash-h{grid-column:1/-1}.dash-rec b{font-size:13px;font-weight:510}.dash-rec p:not(.dash-h){margin:0;font-size:13px;color:var(--dt2);grid-column:1}.dash-rec .dash-btns{grid-column:2;grid-row:2/4;margin:0;min-width:11rem}
.dash-line.multi polyline{stroke:var(--dt3);stroke-width:1.8}.dash-line.multi polyline.g{stroke:var(--g)}.dash-line.multi polyline.me{stroke:var(--me)}.dash-line.multi polyline.tt{stroke:var(--tt)}.dash-line.multi polyline.lsa{stroke:var(--lsa)}.dash-line.multi text.g{fill:var(--g)}.dash-line.multi text.me{fill:var(--me)}.dash-line.multi text.tt{fill:var(--tt)}.dash-line.multi text.lsa{fill:var(--lsa)}.dash-legend{display:flex;gap:1rem;font-size:12px;color:var(--dt2);margin-top:.25rem}.dash-legend .dot{margin-right:.3rem}
/* reports view */
.dash-seg{display:flex;box-shadow:inset 0 0 0 1px var(--db);border-radius:6px;overflow:hidden}.dash-seg span{padding:.25rem .75rem;font-size:12px;font-weight:510;color:var(--dt2);cursor:pointer}.dash-seg span.on{background:var(--dt);color:#fff}.dash-period[hidden]{display:none}.dash-period{display:flex;flex-direction:column;gap:1rem}.dash-report{padding:1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db)}.dash-grid4.kpis .dash-stat b{font-size:1.3rem}.dash-grid4.kpis .dash-stat b small{font-size:12px;color:var(--dt2);font-weight:400}.dash-big b{display:block;font-size:2rem;font-weight:510;line-height:1.1;letter-spacing:-.01em}.dash-big small{font-size:12px;color:var(--dt2)}
@media(max-width:64rem){.dash-view[data-view=inbox]{grid-template-columns:minmax(0,1fr)}.dash-list{display:none}.dash-thread{grid-template-columns:minmax(0,1fr)}.dash-side{display:none}.dash-main{border-right:0}.dash-grid3,.dash-two,.dash-apprs{grid-template-columns:1fr}.dash-grid4{grid-template-columns:1fr 1fr}.dash-rec{grid-template-columns:1fr}.dash-rec .dash-btns{grid-column:1;grid-row:auto}}
@media(max-width:48rem){.dash{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.dash-rail{flex-direction:row;justify-content:space-around;padding:.25rem .25rem;gap:0;overflow-x:auto}.dash-rail .dash-logo,.dash-rail .dash-me{display:none}.dash-rail button{width:40px;height:40px;flex:none}.dash-rail i{font-size:12px}.dash-page{padding:1rem}.dash-ph{flex-wrap:wrap}.dash-grid4{grid-template-columns:1fr}.dash-switch{flex-wrap:wrap}.dash-switch-note{display:none}.dash-tl li{grid-template-columns:5rem 1fr}.dash-tl li span{grid-column:1/-1}}

/* polish pass 10/8/2026: tabular figures, pill heights, hover and focus states, new channel chips, initials avatars */
.dash{font-variant-numeric:tabular-nums}
.dash .pill,.dash .ch{display:inline-flex;align-items:center;line-height:1}.dash .pill{height:22px}.dash .ch{height:20px}.dash .tag{line-height:1.5}
.dash .ch.ig{background:#fce7f3;color:#9d174d}.dash .ch.wa{background:#dcfce7;color:#166534}
.dash-kpi span{hyphens:none;overflow-wrap:normal}.dash-kpi b{font-size:15px}
.dash-btns span:hover{background:var(--dsel)}.dash-btns .go:hover{background:var(--accent-strong)}.dash-seg span:hover,.dash-chips span:hover,.dash-tabs span:hover{background:var(--dsel)}.dash-tabs span:hover{border-radius:6px 6px 0 0}.dash-comp b:hover{background:var(--dsel)}
.dash-sched li:hover,.dash-rules li:hover,.dash-tl li:hover,.dash-next li:hover,.dash-notes li:hover{background:#faf9f8;box-shadow:0 0 0 .5rem #faf9f8;border-radius:1px}.dash-table tbody tr:hover td{background:#faf9f8}
.dash [tabindex]:focus-visible,.dash button:focus-visible,.dash .sw:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}
.dash-table th.num,.dash-table td.num{text-align:right;font-variant-numeric:tabular-nums}.dash-table th{height:32px}.dash-table td{height:40px}
.dash-ph{min-height:40px}.dash-h{height:16px;margin-bottom:.5rem}.dash-h span{height:16px;display:inline-flex;align-items:center}
.dash-list{max-height:48rem;overflow-y:auto}.dl-row{align-items:center}
/* reports: Monday text as a phone card */
.dash-report{display:grid;grid-template-columns:minmax(16rem,20rem) 1fr;gap:1rem;padding:0;box-shadow:none}.dash-report section{padding:1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);min-width:0}
.dash-phone{background:#f6f4f2;border-radius:14px!important;box-shadow:inset 0 0 0 1px var(--db),inset 0 0 0 5px #fff,inset 0 0 0 6px var(--dt)!important;padding:1.5rem 1rem 1rem!important}.ph-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--db)}.ph-top b{display:block;font-weight:510}.ph-top small{display:block;font-size:12px;color:var(--dt3);font-family:var(--mono)}
.ph-bubble{background:#fff;border-radius:14px;border-top-left-radius:6px;padding:.5rem .75rem;font-size:13px;line-height:1.6;box-shadow:inset 0 0 0 1px var(--db);overflow-wrap:anywhere}.ph-reply{margin-top:.5rem;font-size:12px;color:var(--dt2);text-align:center}
.dash-needs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dash-needs li{display:grid;grid-template-columns:7rem 1fr;gap:.75rem;padding:.5rem 0;border-top:1px solid var(--db);font-size:13px}.dash-needs li:first-child{border-top:0}.dash-needs b{font-weight:510}.dash-needs span{color:var(--dt2)}
/* automations: workflow list, node diagram on a dotted grid, compact rules */
.dash-auto{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:1rem;align-items:start}.wf-list{list-style:none;margin:0;padding:0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);overflow:hidden}.wf-list li{padding:.5rem .75rem;border-top:1px solid var(--db);cursor:pointer;transition:background .15s}.wf-list li:first-child{border-top:0}.wf-list li:hover{background:#faf9f8}.wf-list li.on{background:var(--dsel);box-shadow:inset 3px 0 0 var(--accent)}.wf-list b{display:block;font-weight:510}.wf-list small{display:block;font-size:12px;color:var(--dt3)}
.wf-main{display:flex;flex-direction:column;gap:1rem;min-width:0}.wf-canvas{border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);background:#fff radial-gradient(circle,#d7d4d1 1px,transparent 1.2px) 0 0/16px 16px;padding:1rem;overflow-x:auto}.dash-wf[hidden]{display:none}.dash-wf .dash-h{margin-bottom:1rem}
.wf-col{display:flex;flex-direction:column;align-items:center;min-width:0}.wf-col.root{width:100%}.wf-col>em{font-style:normal;font-size:12px;font-weight:510;color:var(--dt2);background:#fff;padding:0 .25rem;margin-bottom:.5rem;position:relative;z-index:1}
.wf-n{display:inline-flex;align-items:center;gap:.5rem;max-width:18rem;padding:.5rem .75rem;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1px var(--db);font-size:13px;line-height:1.35;text-align:left;position:relative;z-index:1}.wf-n svg{width:16px;height:16px;flex:none;color:var(--dt2)}.wf-n span{min-width:0}
.wf-n.t{background:var(--dt);color:#fff;box-shadow:none}.wf-n.t svg{color:#fff}.wf-n.w{background:var(--dsel);color:var(--dt2);border-radius:14px}.wf-n.o{background:#fff7f2;box-shadow:inset 0 0 0 1px #f3d9c9;color:var(--accent-ink)}.wf-n.o svg{color:var(--accent)}.wf-n.e{background:var(--okbg);color:var(--ok);box-shadow:none;border-radius:14px}
.wf-n.d{padding:0;background:none;box-shadow:none;max-width:none}.wf-n.d>span{display:inline-block;padding:.5rem 1.5rem;background:var(--infobg);color:var(--info);font-weight:510;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,14px 100%,0 50%)}
.wf-edge{display:block;width:1px;height:24px;background:var(--dt3);position:relative}.wf-edge:after{content:"";position:absolute;left:-3px;bottom:0;border:3.5px solid transparent;border-top:6px solid var(--dt3);border-bottom:0}
.wf-br{display:grid;grid-template-columns:1fr 1fr;gap:1rem;width:100%;position:relative;padding-top:24px;margin-top:0}.wf-br:before{content:"";position:absolute;top:0;left:25%;right:25%;height:1px;background:var(--dt3)}.wf-br:after{content:"";position:absolute;top:-12px;left:50%;width:1px;height:12px;background:var(--dt3)}.wf-br>.wf-col:before{content:"";position:absolute;top:0;width:1px;height:24px;background:var(--dt3)}.wf-br>.wf-col{position:relative}.wf-br>.wf-col>em{margin-top:6px}
.wf-rules{border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);padding:1rem}.wf-rules .dash-h span.n{background:var(--dsel);color:var(--dt2)}.wf-rules .dash-rules li{padding:.25rem 0}.wf-rules .dash-rules small{font-size:12px}.wf-rules .dash-h:not(:first-child){margin-top:.75rem}
@media(max-width:64rem){.dash-auto,.dash-report{grid-template-columns:1fr}.wf-br{grid-template-columns:1fr}.wf-br:before,.wf-br:after,.wf-br>.wf-col:before{display:none}}
@media(max-width:48rem){.dash-table.rows th:nth-child(2),.dash-table.rows td:nth-child(2),.dash-table.rows th:nth-child(4),.dash-table.rows td:nth-child(4){display:none}.dash-table.tight th:nth-child(2),.dash-table.tight td:nth-child(2){display:none}}

/* dashboard demo, brief 3: day calendar and profile record page */
.dash-ph-r{display:flex;align-items:center;gap:.75rem;flex:none;flex-wrap:wrap;min-width:0}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:16px;margin-bottom:.5rem}.cal-head .dash-h{margin:0;height:auto}
.cal-key{display:flex;gap:1rem;margin-left:auto;align-items:center;flex-wrap:wrap;justify-content:flex-end}.cal-key span{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--dt2);line-height:1}.cal-key i{width:10px;height:10px;border-radius:3px;background:#fff;box-shadow:inset 0 0 0 1px var(--db)}.cal-key i.done{background:var(--okbg);box-shadow:inset 0 0 0 1px var(--ok)}.cal-key i.now{background:var(--infobg);box-shadow:inset 0 0 0 1px var(--info)}.cal-key i.noshow{background:var(--warnbg);box-shadow:inset 0 0 0 1px var(--warn)}.cal-key i.dep{box-shadow:inset 0 0 0 1px var(--dt)}
.dash-cal{--hr:48px;--gut:3.25rem;position:relative;display:grid;grid-template-columns:var(--gut) repeat(3,minmax(0,1fr));border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);overflow:clip;background:#fff}
.cal-col,.cal-axis{position:relative;min-width:0}.cal-col{border-left:1px solid var(--db)}
.cal-ch{position:sticky;top:0;z-index:6;height:36px;display:flex;align-items:baseline;gap:.375rem;padding:0 .625rem;border-bottom:1px solid var(--db);background:#fff;font-size:12px;white-space:nowrap;overflow:hidden}.cal-ch b{font-weight:510;color:var(--dt)}.cal-ch span{font-size:11px;color:var(--dt3)}
.cal-body{position:relative;height:calc(var(--rows) * var(--hr))}
.cal-axis .cal-body span{position:absolute;right:.5rem;top:calc(var(--y) * 1%);transform:translateY(-50%);font-family:var(--mono);font-size:11px;color:var(--dt3);line-height:1;white-space:nowrap}
.cal-grid{position:absolute;left:0;right:0;top:36px;height:calc(var(--rows) * var(--hr));pointer-events:none;z-index:0}
.cal-ln{position:absolute;left:var(--gut);right:0;top:calc(var(--y) * 1%);border-top:1px solid var(--db)}.cal-ln.half{border-top-style:dotted;opacity:.9}
.cal-now{position:absolute;left:var(--gut);right:0;top:calc(var(--y) * 1%);border-top:1px solid var(--accent);z-index:3;pointer-events:none}.cal-now:before{content:"";position:absolute;left:-10px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.cal-now[hidden]{display:none}
.cb{position:absolute;top:calc(var(--t) * 1%);height:calc(var(--h) * 1%);left:calc(var(--l) / var(--n) * 100% + 2px);width:calc(100% / var(--n) - 4px);box-sizing:border-box;display:flex;gap:.375rem;align-items:flex-start;padding:.25rem .375rem .25rem .5rem;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1px var(--db),inset 3px 0 0 var(--dt3);overflow:hidden;cursor:pointer;z-index:2;font-size:12px;line-height:1.3;color:var(--dt);transition:box-shadow .15s}
.cb:hover{box-shadow:inset 0 0 0 1px var(--dt3),inset 3px 0 0 var(--dt3),0 4px 12px -6px rgba(0,0,0,.25);z-index:4}.cb:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cb.done{background:var(--okbg);box-shadow:inset 0 0 0 1px transparent,inset 3px 0 0 var(--ok)}.cb.done:hover{box-shadow:inset 0 0 0 1px var(--ok),inset 3px 0 0 var(--ok),0 4px 12px -6px rgba(0,0,0,.25)}
.cb.now{background:var(--infobg);box-shadow:inset 0 0 0 1px transparent,inset 3px 0 0 var(--info)}.cb.now:hover{box-shadow:inset 0 0 0 1px var(--info),inset 3px 0 0 var(--info),0 4px 12px -6px rgba(0,0,0,.25)}
.cb.noshow{background:var(--warnbg);box-shadow:inset 0 0 0 1px transparent,inset 3px 0 0 var(--warn)}.cb.noshow:hover{box-shadow:inset 0 0 0 1px var(--warn),inset 3px 0 0 var(--warn),0 4px 12px -6px rgba(0,0,0,.25)}
.cb .av{width:20px;height:20px;flex:none;margin-top:1px}.cb>div{min-width:0;flex:1}
.cb b{display:block;font-size:12px;font-weight:510;line-height:1.3}.cb small{display:block;font-size:11px;color:var(--dt2);line-height:1.3}
.cb em{display:block;font-style:normal;font-size:11px;color:var(--dt3);font-family:var(--mono);margin-top:.125rem;line-height:1.3}.cb i{display:inline-block;font-style:normal;font-size:11px;padding:0 .375rem;border-radius:14px;box-shadow:inset 0 0 0 1px var(--dt);color:var(--dt);line-height:1.5;background:#fff;margin-top:.25rem}
.cb.sm{padding:.125rem .375rem .125rem .5rem;align-items:center}.cb.sm .av,.cb.sm small,.cb.sm em,.cb.sm i{display:none}.cb.ln i{display:none}
.pf-head{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:10px;background:var(--dsel);flex-wrap:wrap}
.pf-head .av.xl{width:56px;height:56px}.pf-id{flex:1;min-width:14rem}.pf-id b{display:block;font-size:15px;font-weight:510}.pf-id small{display:block;font-size:12px;color:var(--dt2);margin-bottom:.375rem}.pf-id .dash-tags{max-width:none}
.pf-id .sep{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--dt3);vertical-align:middle;margin:0 .25rem}
.pf-head .dash-ltv{padding-right:.5rem}
.pf-actions{display:flex;gap:.5rem;flex:none}.pf-act{display:inline-flex;align-items:center;gap:.375rem;height:32px;padding:0 .75rem;border-radius:6px;box-shadow:inset 0 0 0 1px var(--db);background:#fff;font-size:13px;font-weight:510;transition:background .15s}.pf-act svg{width:16px;height:16px}.pf-act:hover{background:#faf9f8}.pf-act.go{background:var(--dt);color:#fff;box-shadow:none}.pf-act.go:hover{background:#000}.pf-act:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.pf-body{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:1rem;align-items:start}
.pf-main{min-width:0}.pf-side{position:sticky;top:.5rem;display:flex;flex-direction:column;gap:.75rem;min-width:0}.pf-side section{padding:1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db)}.pf-side section.pf-next{background:#fff7f2;box-shadow:inset 0 0 0 1px #f3d9c9}
.pf-side .dash-next li{grid-template-columns:1fr;gap:.125rem;padding:.5rem 0}.pf-side .dash-next li:hover{background:none;box-shadow:none}
.pf-tl{list-style:none;margin:0;padding:.25rem 0 0 1.5rem;position:relative}.pf-tl:before{content:"";position:absolute;left:5px;top:.75rem;bottom:1rem;border-left:1px solid var(--db)}
.pf-tl li{position:relative;padding:0 0 .75rem}.pf-tl li:last-child{padding-bottom:0}
.pf-tl li i{position:absolute;left:-1.5rem;top:.9rem;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--dt3)}
.pf-tl li.text i{box-shadow:inset 0 0 0 2px var(--ok)}.pf-tl li.voice i{box-shadow:inset 0 0 0 2px var(--info)}.pf-tl li.chat i{box-shadow:inset 0 0 0 2px var(--viol)}.pf-tl li.email i{box-shadow:inset 0 0 0 2px var(--warn)}.pf-tl li.ig i{box-shadow:inset 0 0 0 2px #9d174d}.pf-tl li.wa i{box-shadow:inset 0 0 0 2px #166534}.pf-tl li.job i{background:var(--dt3);box-shadow:inset 0 0 0 2px var(--dt3)}
.pf-card{border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);padding:.75rem 1rem;background:#fff;transition:box-shadow .15s}.pf-card:hover{box-shadow:inset 0 0 0 1px var(--dt3)}
.pf-ch{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.375rem}.pf-ch time{font-family:var(--mono);font-size:12px;color:var(--dt2);font-variant-numeric:tabular-nums}
.pf-card p{margin:0;font-size:13px;line-height:1.45}
.pf-dl{display:grid;grid-template-columns:auto 1fr;gap:.375rem .75rem;font-size:13px;margin:0}.pf-dl dt{color:var(--dt3)}.pf-dl dd{margin:0;min-width:0}
.pf-notes{list-style:none;margin:0;padding:0}.pf-notes li{padding:.375rem .5rem;border-radius:6px;box-shadow:inset 0 0 0 1px var(--db);margin-bottom:.375rem;font-size:13px;background:#fff;cursor:text}.pf-notes li:hover{box-shadow:inset 0 0 0 1px var(--dt3)}.pf-notes li.add{color:var(--dt3);box-shadow:none;border:1px dashed var(--db);margin-bottom:0}
.pf-pref{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.25rem}.pf-pref li{font-size:12px;padding:.1rem .5rem;border-radius:6px;background:var(--dsel);line-height:1.5}
@media(max-width:64rem){.pf-body{grid-template-columns:1fr}.pf-side{position:static}.pf-head .dash-ltv{text-align:left}}
@media(max-width:48rem){.dash-ph-r{width:100%}.dash-cal{--gut:2.5rem}.cal-axis .cal-body span{right:.25rem}.cb{padding:.25rem .25rem .25rem .5rem;gap:.25rem}.cb .av{display:none}.cb em{display:none}.cal-ch{padding:0 .375rem}.cal-head{height:auto;flex-wrap:wrap}.pf-actions{width:100%}.pf-act{flex:1;justify-content:center}}

/* brief 4: fixed-height app on demo.html, each pane scrolls on its own, thread pinned to the bottom, composer stays put */
.dash.full{height:calc(100vh - 58px);height:calc(100dvh - 58px);min-height:640px}
.dash-body{min-height:0;overflow:hidden}.dash-biz{min-height:0}.dash-view{min-height:0;overflow:auto;overscroll-behavior:contain}.dash-view[data-view=inbox]{overflow:hidden}
.dash-list{max-height:none;min-height:0;overflow-y:auto}.dash-thread{min-height:0}.dash-main{min-height:0;overflow:hidden}.dash-msgs{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.dash-comp{flex:none;margin:0 1.5rem 1rem}.dash-side{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.dash-profiles{min-height:0}
/* brief 4: profile record page, stat tiles, in-page tabs, more sections */
.pf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.pf-stat{padding:.75rem 1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);display:flex;flex-direction:column;gap:.125rem;min-width:0}.pf-stat span{font-size:12px;color:var(--dt3);text-transform:uppercase;letter-spacing:.05em;font-weight:510}.pf-stat b{font-size:15px;font-weight:510;white-space:nowrap}
.pf-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--db);position:sticky;top:0;background:#fff;z-index:5;margin:-.25rem 0 0}.pf-tabs span{padding:.5rem .75rem;font-size:13px;font-weight:510;color:var(--dt2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.pf-tabs span.on{color:var(--dt);border-bottom-color:var(--dt)}.pf-tabs span:hover{background:var(--dsel);border-radius:6px 6px 0 0}
.pf-main{display:flex;flex-direction:column;gap:1.25rem}.pf-sec{min-width:0;display:flex;flex-direction:column;gap:.75rem}.pf-sec[hidden]{display:none}.pf-sec>.dash-h{margin:.25rem 0 0}.pf-ov{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.pf-ov>div{padding:1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db);min-width:0}.pf-ov .dash-next li{grid-template-columns:1fr;gap:.125rem;padding:.5rem 0}.pf-ov .dash-next li:hover{background:none;box-shadow:none}.pf-ov .pf-notes li{cursor:default}.pf-sec .dash-tags{max-width:none}
.dash-me .av[hidden]{display:none}.dash-strip{margin-top:-.25rem}.dash-two.cards3{grid-template-columns:repeat(3,1fr)}.dash-two.cards3 .dash-hbars div{grid-template-columns:7rem 1fr 4.5rem}.dash-two.cards3 .dash-hbars b{white-space:nowrap;text-align:right}
@media(max-width:64rem){.dash-two.cards3{grid-template-columns:1fr}}
.pf-jm{display:flex;gap:.75rem;align-items:center;margin-top:.375rem;font-size:12px;color:var(--dt2)}.pf-jm b{font-weight:510;color:var(--dt);font-family:var(--mono)}
.pf-conv{list-style:none;margin:0;padding:0}.pf-conv li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--db);font-size:13px}.pf-conv li:first-child{border-top:0}.pf-conv li[data-thread-go]{cursor:pointer}.pf-conv li[data-thread-go]:hover{background:#faf9f8;box-shadow:0 0 0 .5rem #faf9f8;border-radius:1px}.pf-conv span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-conv time{font-family:var(--mono);font-size:12px;color:var(--dt3)}.pf-conv li.mute span{color:var(--dt3)}
.pf-table td,.pf-table th{padding:.5rem .5rem}.pf-table td:first-child,.pf-table th:first-child{padding-left:0}.pf-link{color:var(--accent-ink);font-weight:510;cursor:pointer;white-space:nowrap}
.pf-rev{list-style:none;margin:0;padding:0}.pf-rev li{padding:.75rem 1rem;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db)}.pf-rev p{margin:0;font-size:13px;line-height:1.45}.pf-rev li.mute p{color:var(--dt2)}.pf-stars{color:#d99a06;font-size:13px;letter-spacing:.08em;line-height:1}
.pf-dl2{display:grid;grid-template-columns:minmax(7rem,9rem) minmax(0,1fr);gap:.5rem .75rem;font-size:13px;margin:0}.pf-dl2 dt{color:var(--dt3)}.pf-dl2 dd{margin:0;min-width:0}
@media(max-width:64rem){.pf-stats{grid-template-columns:1fr 1fr}.pf-ov{grid-template-columns:1fr}}
@media(max-width:48rem){.dash.full{min-height:0;height:calc(100vh - 58px);height:calc(100dvh - 58px)}.pf-tabs{overflow-x:auto}.pf-dl2{grid-template-columns:1fr}}
/* dashboard demo, brief 6: Home as the owner's morning screen */
.dash-money{margin-bottom:1rem}.dash-money .dash-stat small{line-height:1.4}.dash-stat .est{font-style:normal;font-size:10px;letter-spacing:.04em;padding:0 .3rem;border-radius:4px;background:var(--dsel);color:var(--dt2);cursor:help;vertical-align:1px}.dash-stat .est:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dash-worked{list-style:none;margin:0 0 1rem;padding:0;border-radius:10px;box-shadow:inset 0 0 0 1px var(--db)}.dash-worked li{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.75rem;padding:.5rem 1rem;border-top:1px solid var(--db);font-size:13px;align-items:baseline}.dash-worked li:first-child{border-top:0}.dash-worked li:before{content:"";display:none}.dash-worked b{font-weight:510;padding-left:1rem;position:relative}.dash-worked b:before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--accent)}.dash-worked span{color:var(--dt2)}
.dash-watch{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.dash-watch li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem;padding:.5rem 0;border-top:1px solid var(--db);font-size:13px;align-items:start}.dash-watch li:first-child{border-top:0}.dash-watch li>div{min-width:0}.dash-watch li>div:first-child b{display:block;font-size:1.3rem;font-weight:510;line-height:1.1;letter-spacing:-.01em;color:var(--warn)}.dash-watch li>div:first-child small{display:block;font-size:11px;color:var(--warn);line-height:1.3;margin-top:.125rem}.dash-watch li>div:last-child b{display:block;font-weight:510}.dash-watch li>div:last-child span{display:block;color:var(--dt2);margin-top:.125rem}
.dash-view[data-view=today] .dash-two{margin-top:1rem}
@media(max-width:48rem){.dash-worked li{grid-template-columns:1fr}}
