/* Modules after Ops core: toggles, solo (auth/token) layout, caregiver + admin shells. Tokens from app.css. */
.tog{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer}.tog input{position:absolute;opacity:0}.tog .tg{flex:none;width:34px;height:20px;border-radius:99px;background:var(--rule2);position:relative;transition:background 150ms var(--out)}
.tog .tg::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--card);box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform 150ms var(--out)}
.tog input:checked+.tg{background:var(--teal)}.tog input:checked+.tg::after{transform:translateX(14px)}.tog input:focus-visible+.tg{outline:2px solid var(--ink);outline-offset:2px}
.tog b{display:block;font:600 13px/20px var(--f-ui)}.tog small{display:block;font:var(--t-meta);color:var(--mut)}
.chips-in{display:flex;gap:6px;flex-wrap:wrap}.chip.on{background:var(--ink);color:var(--stock)}
.err{color:var(--red-ink)}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid2c{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tile{display:grid;gap:6px;padding:16px;border-radius:12px;background:var(--card);box-shadow:0 0 0 1px var(--rule)}.tile b{font:700 17px/22px var(--f-disp);font-variation-settings:'SOFT' 100}.tile small{font:var(--t-meta);color:var(--mut)}
.bigcta{display:flex;align-items:center;gap:12px;padding:16px;border-radius:12px;background:var(--pink);color:var(--ink);font:700 17px/22px var(--f-disp);font-variation-settings:'SOFT' 100;text-decoration:none}
.bigcta small{display:block;font:var(--t-meta)}
.code{font:500 12px/18px var(--f-mono);background:var(--hover);border-radius:8px;padding:10px 12px;white-space:pre-wrap;word-break:break-all}
.bar{height:8px;border-radius:99px;background:var(--rule);overflow:hidden}.bar i{display:block;height:100%;background:var(--teal);transform-origin:left}.bar.w i{background:var(--yel)}.bar.r i{background:var(--red-ink)}
.steps{list-style:none;display:grid;gap:2px}.steps a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px;border-radius:8px;color:inherit;text-decoration:none;font:var(--t-body)}
.steps a.on{background:var(--card);box-shadow:0 0 0 1px var(--rule2)}.steps .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--f-mono);box-shadow:inset 0 0 0 1.5px var(--rule2)}.steps .done .n{background:var(--teal);color:#fff;box-shadow:none}.steps a small{font:var(--t-meta);color:var(--mut)}
.chart{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:8px}.chart i{flex:1;background:var(--teal);border-radius:4px 4px 0 0;min-height:2px;position:relative}.chart i.hi{background:var(--ink)}.chart i.w{background:var(--yel)}
.chartx{display:flex;gap:6px;font:var(--t-caps);color:var(--mut)}.chartx span{flex:1;text-align:center}
.solobody{background:var(--stock)}.solo{display:grid;grid-template-columns:minmax(320px,440px) minmax(0,1fr);min-height:100vh}
.solo-brand{background:var(--bg2);display:flex;flex-direction:column;gap:24px;padding:32px;border-right:1px solid var(--rule)}.solo-logo{display:block;width:112px}.solo-logo .wm,.solo-logo svg{display:block;width:112px;height:auto}
.solo-art{flex:1;display:grid;place-content:center;justify-items:center;gap:16px;text-align:center}.solo-art .bell,.solo-art picture,.solo-art img{width:160px;height:auto}.solo-q{font:700 20px/26px var(--f-disp);font-variation-settings:'SOFT' 100;max-width:300px;text-wrap:balance}
.solo-foot{font:var(--t-meta);color:var(--mut)}.solo-main{position:relative;display:grid;place-content:center;padding:48px 24px}.solo-theme{position:absolute;top:16px;right:16px}
.solo-card{width:min(440px,100%);background:var(--card);border-radius:16px;padding:32px;box-shadow:0 0 0 1px var(--rule),0 8px 24px rgba(20,18,28,.06)}
.solo-card h1{font:800 28px/32px var(--f-disp);font-variation-settings:'SOFT' 100;letter-spacing:-.015em;text-wrap:balance}.solo-card .lede{color:var(--mut);margin:8px 0 20px;text-wrap:pretty}
.solo-card .btn.w{width:100%;justify-content:center}.solo-card .or{display:flex;align-items:center;gap:12px;color:var(--mut);font:var(--t-meta);margin:16px 0}.solo-card .or::before,.solo-card .or::after{content:"";flex:1;height:1px;background:var(--rule)}
.solo-card .fine{font:var(--t-meta);color:var(--mut);margin-top:16px;text-wrap:pretty}.otp{display:flex;gap:8px}.otp input{width:44px;height:52px;text-align:center;font:600 22px var(--f-mono);border-radius:10px;border:1px solid var(--rule2);background:var(--card)}
.html-dark .solo-brand{background:var(--bg2)}
@media (max-width:860px){.solo{grid-template-columns:1fr}.solo-brand{flex-direction:row;align-items:center;padding:16px 20px;border-right:0;border-bottom:1px solid var(--rule)}.solo-art,.solo-foot{display:none}.solo-main{place-content:start center;padding:24px 16px 48px}.solo-card{padding:24px}}
/* caregiver shell: same 6 parts, warmer + bigger tap targets */
.app.cg .rail .ri.on{background:var(--teal);color:#fff}.app.cg .btn{min-height:40px}
/* admin shell: visibly different (ink rail + yellow accent + ADMIN ribbon) */
.app.admin{--accent:var(--yel)}.app.admin .rail{background:#14121b}.app.admin .rail .ri{color:#cfc9bd}.app.admin .rail .ri.on{background:var(--yel);color:#14121b}
.app.admin .side{background:#ece6d8}.dark .app.admin .side{background:#1b1924}.app.admin .side .org .av{background:var(--yel);color:#14121b}
.app.admin header.top::before{content:"ADMIN · admin.usevetly.com · every view is audited";display:block;font:var(--t-caps);letter-spacing:.06em;color:#14121b;background:var(--yel);padding:4px 8px;border-radius:6px;width:max-content;margin-bottom:8px}
.app.admin .sbar{background:#14121b;color:#cfc9bd}
@media (max-width:1000px){.grid3,.grid2c{grid-template-columns:1fr}}
main .card+.card,main .card+[data-state-view]+.card,main .banner+.card,main .card+.banner{margin-top:16px}
.solo-card .bell,.solo-card picture{display:block;width:112px;height:auto;margin:0 0 12px}.solo-card picture img{width:112px;height:auto}
html .app.cg .rail .ri.on{background:var(--teal);color:#fff}
.okline>div{min-width:0;flex:1 1 0}.okline>span{flex:none}
.solo-card .card{margin-top:16px}
/* card key/value: label column sizes to longest label (no clipped dt) */
.card .kv{grid-template-columns:minmax(96px,max-content) minmax(0,1fr)}
.card .kv dt{white-space:normal}
@media(max-width:700px){.tbl .hm{display:none}}
.tbl tr[data-href]{cursor:pointer}
.avail{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));gap:4px;font:var(--t-meta)}
.avail>span{display:flex;align-items:center;justify-content:center;min-height:28px;border-radius:6px}
.avail .h{color:var(--mut);font-family:var(--f-mono)}
.avail .y{background:var(--teal-wash);color:var(--teal-ink)}
.avail .n{background:var(--hover);color:var(--mut)}
.avail .p{background:var(--yel-wash);color:var(--yel-ink)}
.rhead{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.rhead .av{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font:600 16px var(--f-mono);background:var(--hover)}
.tile.on{box-shadow:0 0 0 2px var(--teal)}
/* SMS preview phone (templates) */
.tphone{max-width:340px;border-radius:18px;background:var(--bg);box-shadow:0 0 0 1px var(--rule);padding:0 12px 14px}
.tph-h{text-align:center;padding:10px 0 8px;border-bottom:1px solid var(--rule);margin-bottom:10px}.tph-h b{display:block;font:600 13px/18px var(--f-sans)}.tph-h small{font:var(--t-meta);color:var(--mut)}
.tbub{background:var(--hover);border-radius:16px 16px 16px 4px;padding:9px 12px;font:400 14px/20px var(--f-sans);max-width:92%;text-wrap:pretty}
.tline{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:baseline;margin-bottom:8px}.tline .chip{justify-self:start}
.card .bd>p+.btn,.card .bd>p+a.btn,.card .bd>p+button{margin-top:10px}
.mo{display:none}@media(max-width:700px){.mo{display:block}}
.readable{font:400 16px/26px var(--f-sans);text-wrap:pretty}.readable b{font-weight:600}.readable mark{background:var(--yel-wash);color:inherit;border-radius:4px;padding:0 3px}
.solo-bell{position:relative;display:inline-block;padding-right:14px}
.solo-prop{position:absolute;right:0;bottom:10px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--card);color:var(--ink);box-shadow:0 0 0 2px var(--ink),0 6px 14px rgba(20,18,28,.14);transform:rotate(-8deg)}
/* onboarding: two-up (content + phone), coach, iPhone preview */
.onb2{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start;margin-bottom:16px}.onb2>div>.card:last-child{margin-bottom:0}
@media(max-width:1360px){.onb2{grid-template-columns:1fr}.onb2-b{justify-self:center}}
.phones{display:flex;gap:36px;flex-wrap:wrap;justify-content:center}
.coach-b{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center}.coach-b .bell,.coach-b picture,.coach-b img,.coach-b .stk-slot{width:64px;height:auto}
.iph{margin:0;width:256px;display:grid;gap:8px;justify-items:center}
.iph .scr{width:256px;border-radius:38px;background:#fff;color:#111;box-shadow:0 0 0 8px #15131c,0 0 0 9px #3a3646,0 18px 40px rgba(20,18,28,.22);padding:12px 0 10px;display:flex;flex-direction:column;min-height:440px;overflow:hidden}
.iph .isl{width:76px;height:20px;border-radius:12px;background:#15131c;margin:0 auto 8px}
.iph .ihd{display:grid;justify-items:center;gap:2px;padding:0 12px 8px;border-bottom:1px solid #e6e6ea}.iph .ihd b{font:600 12px/16px var(--f-sans)}.iph .ihd small{font:400 10px/14px var(--f-sans);color:#8a8a8e}
.iph .iav{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(#b5b5bb,#8e8e93);color:#fff;font:600 12px var(--f-sans)}
.iph .ith{flex:1;display:flex;flex-direction:column;gap:6px;padding:10px 10px}
.iph .ts{font:500 10px/14px var(--f-sans);color:#8a8a8e;text-align:center;margin-top:2px}
.iph .m{max-width:84%;padding:7px 10px;border-radius:16px;font:400 12.5px/17px var(--f-sans);text-wrap:pretty;overflow-wrap:anywhere}
.iph .m.in{background:#e9e9eb;align-self:flex-start;border-bottom-left-radius:4px}.iph .m.out{background:#34c759;color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.iph .iin{margin:0 10px;border:1px solid #d9d9de;border-radius:16px;padding:5px 12px;font:400 11px/15px var(--f-sans);color:#a0a0a6}
.iph figcaption{font:var(--t-meta);color:var(--mut)}
.iph.call .scr{background:linear-gradient(#3a3f4d,#1d2029);color:#fff}
.iph .ccall{display:grid;justify-items:center;gap:2px;padding:10px 0 12px}.iph .ccall small{font:400 11px var(--f-sans);opacity:.7}.iph .ccall b{font:600 18px/24px var(--f-sans)}.iph .ccall .mono{font-size:11px;opacity:.7}
.iph .ctx{flex:1;padding:4px 14px;display:grid;gap:8px;align-content:start}.iph .cl{font:400 12px/17px var(--f-sans);margin:0;opacity:.92}.iph .cl b{font-weight:600;color:#7fe0d8}
.iph .cbtns{display:flex;justify-content:center;gap:18px;padding:10px 0 4px}.iph .cbtns i{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18)}.iph .cbtns i.end{background:#ff3b30}
html.dark .iph .scr:not(.x){background:#000;color:#f2f2f7}html.dark .iph .ihd{border-color:#2c2c2e}html.dark .iph .m.in{background:#26252a;color:#f2f2f7}html.dark .iph .iin{border-color:#3a3a3c}
html.dark .iph.call .scr{background:linear-gradient(#3a3f4d,#1d2029)}
.tlogo{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:36px;padding:0 10px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px var(--rule)}.tlogo img{display:block;width:auto;max-width:120px}
.tlogo.dk{background:#14213d}.tlogo.vm{color:var(--ink);background:var(--card)}.tlogo.vm svg{height:20px;width:auto}
.itile{display:grid;gap:8px;padding:14px;border-radius:12px;background:var(--card);box-shadow:0 0 0 1px var(--rule);align-content:start}.itile .tlogo{justify-self:start}.itile b{font:600 14px/20px var(--f-sans)}.itile small{font:var(--t-meta);color:var(--mut);text-wrap:pretty}
.cons{display:grid;gap:8px}.cons>div{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;font:var(--t-table)}.cons svg{color:var(--teal-ink);margin-top:2px}
.card+.onb2,.banner+.onb2,.sumstrip+.onb2{margin-top:16px}
.app.admin header.top::before{max-width:100%;white-space:normal}
@media(max-width:700px){.app.admin header.top::before{content:"ADMIN · every view is audited"}}
.solo-prop{right:4px}
.lgline{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;margin-bottom:8px}
.chart i.pk{background:var(--ink)}
.grid2c>.card,.grid3>.card{margin:0}
.grid3+.card,.grid2c+.card,.card+.grid2c,.card+.grid3{margin-top:16px}
/* ---- editorial charts (REP) ---- */
.tn,.vz{font-variant-numeric:tabular-nums}
.vz{margin:0;min-width:0}.vz-c{position:relative;margin:0 0 22px 34px}
.vz-g{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--rule)}.vz-g em{position:absolute;right:calc(100% + 6px);top:-7px;font:500 10px/14px var(--f-mono);font-style:normal;color:var(--mut);white-space:nowrap}
.vz-p{position:absolute;inset:0}.vz-p svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.vz .ln{fill:none;stroke:var(--teal);stroke-width:1.75;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.vz .pv{fill:none;stroke:var(--mut);stroke-width:1.25;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;opacity:.7}
.vz .ar{fill:var(--teal);opacity:.07}
.vz-pt{position:absolute;width:14px;height:14px;margin:0 0 -7px -7px;border-radius:50%;z-index:2;cursor:default}
.vz-pt::before{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--card);box-shadow:0 0 0 1.75px var(--teal);opacity:0;transition:opacity .12s}
.vz-pt:hover::before,.vz-pt.on::before{opacity:1}.vz-pt.on::before{background:var(--teal)}
.vz-b{position:absolute;bottom:0;transform:translateX(-50%);max-width:12px;min-width:2px;background:var(--teal);border-radius:2px 2px 0 0;z-index:1}
.vz-b:hover{background:var(--teal-ink)}.vz-b.on{background:var(--ink)}
.vz-pb{position:absolute;transform:translateX(-50%);max-width:16px;height:0;border-top:1.5px solid var(--mut);opacity:.55;margin-left:0}
.vz [data-tip]:hover::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--card);font:500 11px/16px var(--f-mono);padding:3px 7px;border-radius:5px;white-space:nowrap;z-index:5;pointer-events:none}
.vz-b[data-tip]:hover::after{bottom:calc(100% + 4px)}
.vz-band{position:absolute;top:0;bottom:0;background:var(--hover);border-left:1px dashed var(--rule2)}.vz-band em{position:absolute;top:2px;left:6px;font:var(--t-caps);font-style:normal;color:var(--mut);white-space:nowrap}
.vz-t{position:absolute;left:0;right:0;border-top:1px dashed var(--mut);opacity:.8}.vz-t em{position:absolute;right:0;top:-16px;font:500 10px var(--f-mono);font-style:normal;color:var(--mut)}
.vz-m{position:absolute;top:0;bottom:0;border-left:1.5px solid var(--ink);z-index:3}.vz-m em{position:absolute;top:-2px;left:5px;font:600 11px/14px var(--f-sans);font-style:normal;white-space:nowrap;background:var(--card);padding:0 3px}
.vz-m.ghost{border-left:1px dashed var(--mut)}.vz-m.ghost em{color:var(--mut);font-weight:500;top:16px}
.vz-a{position:absolute;z-index:4;display:flex;align-items:flex-end;pointer-events:none;margin-bottom:10px}
.vz-a.right{flex-direction:row-reverse}.vz-a i{width:1px;height:18px;background:var(--ink)}
.vz-a span{font:600 11px/14px var(--f-sans);background:var(--card);border:1px solid var(--rule2);border-radius:6px;padding:3px 7px;margin-bottom:12px;white-space:nowrap;max-width:200px}
.vz-a.pk i{background:var(--pink)}.vz-a.pk span{border-color:var(--pink);color:var(--pink-ink);background:var(--pink-wash)}
.vz-a.left span{margin-left:-1px;border-bottom-left-radius:0}.vz-a.right span{margin-right:-1px;border-bottom-right-radius:0}
.vz-pt.pk::before,.vz-b.pk{background:var(--pink)!important;box-shadow:0 0 0 1.75px var(--pink);opacity:1}
.vz-x{position:absolute;left:0;right:0;top:calc(100% + 6px);height:14px}.vz-x span{position:absolute;transform:translateX(-50%);font:500 10px/14px var(--f-mono);color:var(--mut);white-space:nowrap}
.vz-x span:first-child{transform:none}.vz-x span:last-child{transform:translateX(-100%)}
.vz-l{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;font:500 11px/14px var(--f-sans);color:var(--mut)}.vz-l span{display:inline-flex;align-items:center;gap:6px}
.vz-l i{width:14px;height:0;border-top:2px solid var(--teal)}.vz-l .pv i{border-top:1.5px dashed var(--mut)}.vz-l .pk i{width:8px;height:8px;border:0;border-radius:50%;background:var(--pink)}.vz-l .ink i{width:8px;height:8px;border:0;background:var(--ink);border-radius:2px}.vz-l .bk i{width:6px;height:10px;border:0;background:var(--teal);border-radius:1px}
.vzrow{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:24px;align-items:start}.vzrow aside{border-left:1px solid var(--rule);padding-left:20px;min-width:0}
.vz-st{display:grid;gap:2px;padding:10px 0;border-bottom:1px solid var(--rule)}.vz-st:first-child{padding-top:0}.vz-st:last-child{border:0}
.vz-st small{font:var(--t-caps);color:var(--mut)}.vz-st b{font:600 20px/24px var(--f-sans);letter-spacing:-.02em}.vz-st span{font:var(--t-meta);color:var(--mut)}.vz-st .up{color:var(--teal-ink)}.vz-st .dn{color:var(--red-ink)}
.vz-sm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.vz-smi .vz-c{margin:0 0 4px}.vz-smh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;gap:8px}.vz-smh span{font:600 15px var(--f-sans)}
.vz-smx{display:flex;justify-content:space-between;font:500 10px var(--f-mono);color:var(--mut);margin-bottom:6px}
.hb{display:inline-block;width:100%;max-width:120px;height:6px;border-radius:3px;background:var(--hover);vertical-align:middle}.hb i{display:block;height:100%;border-radius:3px;background:var(--teal)}.hb.ink i{background:var(--ink)}
.tbl td .hb{margin-top:4px}
@media (max-width:900px){.vzrow{grid-template-columns:1fr}.vzrow aside{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:12px}.vz-sm{grid-template-columns:1fr;gap:14px}}
@media (max-width:560px){.vz-a span{white-space:normal;max-width:140px}}
.vz-band.nar em{left:auto;right:calc(100% + 4px)}
.vz-sm{display:grid}
.vz-band em{top:auto;bottom:4px}
.vz-t em{right:auto;left:4px}
.vz-m.ghost em{left:auto;right:5px}
.vz-band.nar em{bottom:auto;top:2px}
.vz-a.tall i{height:58px}
.vz-a.dn{align-items:flex-start;margin:10px 0 0}.vz-a.dn span{margin:16px 0 0}.vz-a.dn.left span{border-radius:0 6px 6px 6px}.vz-a.dn.right span{border-radius:6px 0 6px 6px}
.vz-m.low em{top:auto;bottom:24%}
.vz-a.tall span{margin-bottom:52px}
.vz-m.low em{left:5px;right:auto;white-space:normal;width:52px;bottom:30%}
.vz-c{margin-right:8px}.vz-smi .vz-c{margin:0 8px 4px 0}
.vz-a span{max-width:none}
@media (max-width:560px){.vz-a span{white-space:normal;max-width:150px}}
.vz-m.low em{width:42px;font-size:10px;line-height:12px}
