/* Roudfit Coach v1. Palette and type from the Roudfit site (styles.css): #121212/#1B1B1B/#242424, #FF0000, Anton + Inter. */
@import url('fonts.css');
:root{
  --bg:#121212; --s1:#1B1B1B; --s2:#242424; --s3:#2E2E2E; --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --w:#fff; --g:#A9A9A9; --d:#6E6E6E; --red:#FF0000; --red2:#CC0000; --redbg:rgba(255,0,0,.12); --amber:#F5A524; --amberbg:rgba(245,165,36,.12); --green:#3DD68C; --greenbg:rgba(61,214,140,.12);
  --disp:'Anton',Impact,'Arial Narrow Bold',sans-serif; --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r1:8px; --r2:12px; --side:232px; --drawer:384px;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--w)}
body{font:400 14px/1.45 var(--sans);-webkit-font-smoothing:antialiased;font-feature-settings:'cv11','ss01'}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.num,td.n,.tnum{font-variant-numeric:tabular-nums}
h1,h2,h3,h4{margin:0;font-weight:400}
.ic{flex:none;display:block}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* layout */
.app{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}
.app.with-drawer{grid-template-columns:var(--side) 1fr var(--drawer)}
.side{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;padding:20px 14px}
.logo{display:flex;align-items:baseline;gap:8px;padding:2px 10px 22px;text-decoration:none}
.logo .wm{font:400 26px/1 var(--disp);letter-spacing:.04em}
.logo .wm b{font-weight:400;color:var(--red)}
.logo .sub{font:700 10px/1 var(--sans);letter-spacing:.22em;color:var(--d)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r1);color:var(--g);text-decoration:none;font-weight:500;position:relative}
.nav a:hover{background:var(--s1);color:var(--w)}
.nav a[aria-current="page"]{background:var(--s1);color:var(--w)}
.nav a[aria-current="page"]::before{content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--red)}
.nav .count{margin-left:auto;font-size:12px;color:var(--d)}
.side .sect{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d);padding:18px 10px 8px}
.coach{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 10px;border-top:1px solid var(--line)}
.av{width:32px;height:32px;border-radius:50%;background:var(--s2);border:1px solid var(--line2);display:grid;place-items:center;font:600 12px/1 var(--sans);color:var(--g);flex:none}
.av.lg{width:52px;height:52px;font-size:17px}
.av.red{background:var(--red);border-color:var(--red);color:#fff}
.coach .nm{font-weight:600;font-size:13px}.coach .rl{font-size:12px;color:var(--d)}
.reset{background:none;border:0;color:var(--d);font-size:12px;cursor:pointer;padding:6px 10px;text-align:left;text-decoration:underline;text-underline-offset:3px}
.reset:hover{color:var(--g)}

.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;height:64px;display:flex;align-items:center;gap:16px;padding:0 32px;background:rgba(18,18,18,.94);border-bottom:1px solid var(--line);backdrop-filter:saturate(1.2) blur(8px)}
.crumbs{display:flex;align-items:center;gap:8px;color:var(--g);font-size:13px;white-space:nowrap}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--w)}.crumbs .cur{color:var(--w);font-weight:600}
.gsearch{position:relative;margin-left:auto;width:340px}
.gsearch input{width:100%;height:36px;border-radius:var(--r1);border:1px solid var(--line);background:var(--s1);padding:0 12px 0 34px;outline:none}
.gsearch input:focus{border-color:var(--line2)}
.gsearch .ic{position:absolute;left:11px;top:10px;color:var(--d)}
.gres{position:absolute;top:42px;left:0;right:0;background:var(--s1);border:1px solid var(--line2);border-radius:var(--r2);padding:6px;max-height:420px;overflow:auto;box-shadow:0 18px 40px rgba(0,0,0,.5)}
.gres .grp{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d);padding:10px 8px 6px}
.gres button{display:flex;width:100%;gap:10px;align-items:center;padding:7px 8px;border:0;background:none;border-radius:6px;cursor:pointer;text-align:left}
.gres button:hover,.gres button:focus-visible{background:var(--s2)}
.gres .meta{margin-left:auto;color:var(--d);font-size:12px}
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font:600 11px/1 var(--sans);letter-spacing:.04em;white-space:nowrap}
.pill.demo{border:1px dashed rgba(255,0,0,.55);color:#ff8a8a}
.tag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font:700 10px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line2);color:var(--d);vertical-align:middle}
.tag.demo{border-color:rgba(255,0,0,.4);color:#ff8a8a}
.seg{display:inline-flex;background:var(--s1);border:1px solid var(--line);border-radius:var(--r1);padding:3px;gap:2px}
.seg button{border:0;background:none;height:28px;padding:0 12px;border-radius:6px;cursor:pointer;color:var(--g);font-weight:500;font-size:13px;display:inline-flex;align-items:center;gap:6px}
.seg button:hover{color:var(--w)}
.seg button[aria-pressed="true"]{background:var(--s3);color:var(--w)}
.seg button[aria-pressed="true"].red{background:var(--redbg);color:#ff6b6b}
.seg .c{color:var(--d);font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--r1);border:1px solid var(--line2);background:var(--s1);cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap;text-decoration:none}
.btn:hover{background:var(--s2);border-color:rgba(255,255,255,.22)}
.btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.btn.primary:hover{background:var(--red2);border-color:var(--red2)}
.btn.ghost{background:none;border-color:transparent;color:var(--g)}.btn.ghost:hover{color:var(--w);background:var(--s1)}
.btn.sm{height:30px;padding:0 10px;font-size:12px}
.btn.icon{width:36px;padding:0}.btn.sm.icon{width:30px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.content{padding:28px 32px 56px;display:flex;flex-direction:column;gap:24px}
.ph{display:flex;align-items:flex-end;gap:16px}
.ph h1{font:400 40px/1 var(--disp);text-transform:uppercase;letter-spacing:.01em}
.ph .sub{color:var(--g);margin-top:8px}
.ph .acts{margin-left:auto;display:flex;gap:8px;align-items:center}
.label{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d)}
.muted{color:var(--g)}.dim{color:var(--d)}.red{color:var(--red)}.small{font-size:12px}
.card{background:var(--s1);border:1px solid var(--line);border-radius:var(--r2)}
.card > .hd{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.card > .hd h3{font:600 14px/1.2 var(--sans)}
.card > .hd .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.card > .bd{padding:16px 18px}
.grid12{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.span3{grid-column:span 3}.span4{grid-column:span 4}.span5{grid-column:span 5}.span6{grid-column:span 6}.span7{grid-column:span 7}.span8{grid-column:span 8}.span9{grid-column:span 9}.span12{grid-column:span 12}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.kpi{padding:16px 18px}
.kpi .v{font:400 40px/1 var(--disp);margin-top:12px;letter-spacing:.01em}
.kpi .v small{font:500 13px var(--sans);color:var(--g);margin-left:6px;letter-spacing:0}
.kpi .d{margin-top:8px;font-size:12px;color:var(--g)}
.kpi .d .up{color:var(--green)}
/* tables */
table.t{width:100%;border-collapse:collapse}
.t th{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d);text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.t td{padding:0 14px;height:48px;border-bottom:1px solid var(--line);vertical-align:middle}
.t tr:last-child td{border-bottom:0}
.t th.n,.t td.n{text-align:right}
.t tbody tr.click{cursor:pointer}
.t tbody tr.click:hover td{background:rgba(255,255,255,.025)}
.who{display:flex;align-items:center;gap:12px}
.who .nm{font-weight:600}.who .em{font-size:12px;color:var(--d)}
.bar{height:4px;border-radius:2px;background:var(--s3);overflow:hidden;position:relative}
.bar > i{position:absolute;inset:0 auto 0 0;background:var(--red);border-radius:2px}
.bar > i.g{background:#5a5a5a}
.bar.amber > i{background:var(--amber)}.bar.ok > i{background:var(--green)}
.status{display:inline-flex;align-items:center;gap:7px;font-size:13px;white-space:nowrap}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--d)}
.status.active::before{background:var(--green)}.status.cancelled::before{background:var(--amber)}.status.closed::before{background:#777}
.status.warn::before{background:var(--amber)}
.status .sm{color:var(--d);font-size:12px}
.planc .ty{font-weight:500}.planc .pr{font-size:12px;color:var(--d)}
.spark{display:block}
.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;background:var(--s2);color:var(--g);font-size:12px;white-space:nowrap}
.chip.red{background:var(--redbg);color:#ff6b6b}
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line)}
.li:last-child{border-bottom:0}
.li .tm{width:64px;font-size:12px;color:var(--g);font-variant-numeric:tabular-nums}
.li .tx{min-width:0}.li .tx b{font-weight:600}.li .tx div{font-size:12px;color:var(--d)}
.li .r{margin-left:auto}

/* client header */
.chead{display:flex;gap:20px;align-items:center}
.chead h1{font:400 40px/1 var(--disp);text-transform:uppercase}
.chead .meta{display:flex;gap:10px;align-items:center;margin-top:10px;color:var(--g);flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r2);background:var(--s1)}
.stat{padding:14px 18px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}
.stat .v{font:400 28px/1 var(--disp);margin-top:10px}.stat .v small{font:500 12px var(--sans);color:var(--g);margin-left:4px}
.stat .d{font-size:12px;color:var(--g);margin-top:6px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}
.tabs button{background:none;border:0;padding:12px 14px;color:var(--g);cursor:pointer;font-weight:600;font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button:hover{color:var(--w)}
.tabs button[aria-selected="true"]{color:var(--w);border-bottom-color:var(--red)}
.banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--r2);border:1px solid var(--line2);background:var(--s1);font-size:13px}
.banner.warn{border-color:rgba(245,165,36,.35);background:var(--amberbg);color:#ffd28a}
.banner.lock{border-color:var(--line2)}
.banner .r{margin-left:auto}
/* week strip */
.week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.wd{border:1px solid var(--line);border-radius:var(--r1);background:var(--s1);padding:10px 12px;text-align:left;cursor:pointer;min-height:76px;display:flex;flex-direction:column;gap:4px}
.wd:hover{border-color:var(--line2)}
.wd[aria-pressed="true"]{border-color:var(--red);background:#1f1515}
.wd .dn{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d)}
.wd .tt{font-weight:600;font-size:13px;line-height:1.25}
.wd .mm{font-size:12px;color:var(--g);margin-top:auto}
.wd.rest .tt{color:var(--d);font-weight:500}
/* builder */
.bld td{height:56px}
.exn{display:flex;align-items:center;gap:12px;min-width:0}
.exn .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.exn .mt{font-size:12px;color:var(--d)}
.thumb{width:48px;height:36px;border-radius:6px;background:#e9e9e9;object-fit:cover;flex:none;border:1px solid var(--line)}
.glyph{width:48px;height:36px;border-radius:6px;background:var(--s2);border:1px solid var(--line);display:grid;place-items:center;font:600 11px/1 var(--sans);letter-spacing:.06em;color:var(--d);flex:none}
.cell-in{width:58px;height:30px;border-radius:6px;border:1px solid transparent;background:transparent;text-align:center;font-variant-numeric:tabular-nums}
.cell-in.w{width:128px}.cell-in.wl{width:100%;text-align:left;padding:0 8px}
.cell-in:hover{border-color:var(--line)}.cell-in:focus{border-color:var(--line2);background:var(--bg);outline:none}
.cell-in[readonly]{pointer-events:none}
.rowacts{display:flex;gap:2px;justify-content:flex-end;opacity:.55}
tr:hover .rowacts{opacity:1}
.ib{width:28px;height:28px;border-radius:6px;border:0;background:none;display:grid;place-items:center;cursor:pointer;color:var(--g)}
.ib:hover{background:var(--s2);color:var(--w)}
.ib[disabled]{opacity:.3;cursor:default}
.dayhd{display:flex;align-items:center;gap:16px}
.dayhd h3{font:400 24px/1 var(--disp);text-transform:uppercase}
.cardio-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);color:var(--g);font-size:13px}
/* nutrition */
.mcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.mc{padding:14px 16px}
.mc .v{font:400 30px/1 var(--disp);margin-top:10px}
.mc .of{font-size:12px;color:var(--g);margin-top:4px}
.mc .bar{margin-top:12px}
.mc .dlt{font-size:12px;margin-top:8px}
.dlt.ok{color:var(--green)}.dlt.over{color:var(--amber)}.dlt.under{color:var(--amber)}
.meals{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:1680px){.app:not(.with-drawer) .meals{grid-template-columns:1fr 1fr}}
.meal .t td.n,.meal .t th.n{width:64px}
.meal .hd .tm{font-size:12px;color:var(--d)}
.meal table td{height:44px}
.meal table td:first-child{padding-left:18px}.meal table td:last-child{padding-right:12px}
.meal table th:first-child{padding-left:18px}
.meal tfoot td{height:40px;font-weight:600;border-top:1px solid var(--line);border-bottom:0;font-size:13px}
.stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;height:30px}
.stepper button{width:26px;height:28px;border:0;background:none;cursor:pointer;color:var(--g);display:grid;place-items:center}
.stepper button:hover{color:var(--w)}
.stepper input{width:44px;border:0;background:none;text-align:center;height:28px;font-variant-numeric:tabular-nums;outline:none}
.usel{height:30px;border-radius:6px;border:1px solid var(--line);background:var(--s1);padding:0 6px;max-width:150px;font-size:12px;color:var(--g)}
.fname{font-weight:500}.fname .q{display:block;font-size:12px;color:var(--d);font-weight:400}
.addrow{display:flex;gap:8px;padding:10px 18px;border-top:1px solid var(--line);position:relative}
.addrow input{flex:1;height:32px;border-radius:6px;border:1px solid var(--line);background:var(--bg);padding:0 10px;outline:none}
.sugg{position:absolute;left:18px;right:18px;top:44px;z-index:5;background:var(--s2);border:1px solid var(--line2);border-radius:var(--r1);padding:4px;box-shadow:0 14px 30px rgba(0,0,0,.5);max-height:260px;overflow:auto}
.sugg button{display:flex;width:100%;border:0;background:none;padding:7px 8px;border-radius:6px;cursor:pointer;text-align:left;gap:8px}
.sugg button:hover,.sugg button:focus-visible{background:var(--s3)}
.sugg .m{margin-left:auto;color:var(--d);font-size:12px;font-variant-numeric:tabular-nums}
.audit td{height:40px;font-size:13px}
.strike{text-decoration:line-through;color:var(--d)}
.flag{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:flex-start}
.flag:last-child{border-bottom:0}
.flag .ic{margin-top:2px;color:var(--d)}.flag.warn .ic{color:var(--amber)}
.flag .src{margin-left:auto;font-size:11px;color:var(--d);white-space:nowrap}
.flag .src a{color:var(--g)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}
.kv dt{color:var(--d)}.kv dd{margin:0;font-variant-numeric:tabular-nums}

/* library */
.lib{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start}
.filters{position:sticky;top:88px;display:flex;flex-direction:column;gap:18px;max-height:calc(100vh - 110px);overflow:auto;padding-right:4px}
.sbox{position:relative}
.sbox input{width:100%;height:38px;border-radius:var(--r1);border:1px solid var(--line);background:var(--s1);padding:0 12px 0 34px;outline:none}
.sbox input:focus{border-color:var(--line2)}
.sbox .ic{position:absolute;left:11px;top:11px;color:var(--d)}
.fgroup .label{display:flex;justify-content:space-between;margin-bottom:8px}
.fopt{display:flex;align-items:center;gap:10px;padding:5px 2px;cursor:pointer;font-size:13px;color:var(--g);border-radius:6px}
.fopt:hover{color:var(--w)}
.fopt input{appearance:none;width:16px;height:16px;border-radius:4px;border:1px solid var(--line2);background:var(--bg);display:grid;place-items:center;margin:0;flex:none}
.fopt input:checked{background:var(--red);border-color:var(--red)}
.fopt input:checked::after{content:"";width:8px;height:4px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.fopt .c{margin-left:auto;font-size:12px;color:var(--d);font-variant-numeric:tabular-nums}
.fopt.zero{opacity:.4}
.fopt input:checked + span{color:var(--w)}
.toggle{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--g);cursor:pointer}
.toggle input{appearance:none;width:32px;height:18px;border-radius:9px;background:var(--s3);position:relative;margin:0;cursor:pointer;flex:none}
.toggle input::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#bbb;transition:left .15s}
.toggle input:checked{background:var(--red)}.toggle input:checked::after{left:16px;background:#fff}
.reshd{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.reshd .cnt{font:400 22px/1 var(--disp);text-transform:uppercase}
.reshd .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.active-f{display:flex;gap:6px;flex-wrap:wrap}
.active-f button{display:inline-flex;gap:4px;align-items:center;height:24px;padding:0 6px 0 9px;border-radius:6px;border:1px solid var(--line2);background:none;color:var(--g);font-size:12px;cursor:pointer}
.active-f button:hover{color:var(--w)}
.exgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.exc{background:var(--s1);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;display:flex;flex-direction:column;cursor:pointer;text-align:left;padding:0}
.exc:hover{border-color:var(--line2)}
.exc[aria-pressed="true"]{border-color:var(--red)}
.exc .media{aspect-ratio:4/3;background:#ececec;display:grid;place-items:center;position:relative}
.exc .media img{width:100%;height:100%;object-fit:cover;display:block}
.exc .media.none{background:var(--s2)}
.exc .media.none .mono{font:400 34px/1 var(--disp);color:#3a3a3a;letter-spacing:.04em}
.exc .media .badge{position:absolute;left:8px;bottom:8px;background:rgba(18,18,18,.85);color:#ddd;font:600 10px/1 var(--sans);letter-spacing:.04em;padding:4px 6px;border-radius:4px;display:flex;gap:4px;align-items:center}
.exc .body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.exc .nm{font-weight:600;line-height:1.3}
.exc .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.detail{position:fixed;right:0;top:0;bottom:0;width:440px;background:var(--s1);border-left:1px solid var(--line2);z-index:40;display:flex;flex-direction:column;box-shadow:-20px 0 50px rgba(0,0,0,.45)}
.detail .hd{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.detail .bd{padding:20px;overflow:auto;display:flex;flex-direction:column;gap:16px}
.detail video,.detail .nomedia{width:100%;aspect-ratio:4/3;border-radius:var(--r1);background:#ececec;display:block}
.detail .nomedia{background:var(--s2);display:grid;place-items:center;color:var(--d);text-align:center;font-size:13px}
.cap{font-size:12px;color:var(--d)}

/* modal */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:60;display:grid;place-items:center;padding:24px}
.modal{background:var(--s1);border:1px solid var(--line2);border-radius:14px;width:min(560px,100%);box-shadow:0 30px 80px rgba(0,0,0,.6);max-height:calc(100vh - 48px);display:flex;flex-direction:column}
.modal.wide{width:min(1120px,100%)}
.modal .hd{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 0}
.modal .hd h2{font:400 26px/1.05 var(--disp);text-transform:uppercase}
.modal .bd{padding:14px 22px 6px;overflow:auto;color:var(--g)}
.modal .ft{display:flex;justify-content:flex-end;gap:8px;padding:18px 22px 20px}
.tplcards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:6px}
.tplc{border:1px solid var(--line);border-radius:var(--r2);background:var(--bg);padding:14px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:10px;color:var(--w)}
.tplc:hover{border-color:var(--line2)}
.tplc[aria-pressed="true"]{border-color:var(--red);background:#1c1414}
.tplc .nm{font:400 20px/1.05 var(--disp);text-transform:uppercase}
.tplc .sm{font-size:12px;color:var(--g);line-height:1.4}
.tplc dl{display:grid;grid-template-columns:1fr auto;gap:4px 8px;margin:0;font-size:12px}
.tplc dt{color:var(--d)}.tplc dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.wkprev{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:14px}
.wkprev .c{border:1px solid var(--line);border-radius:var(--r1);padding:10px;min-height:120px;background:var(--bg)}
.wkprev .c .dn{font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--d)}
.wkprev .c .tt{font-weight:600;color:var(--w);margin:6px 0 6px;font-size:13px}
.wkprev .c ul{margin:0;padding:0;list-style:none;font-size:12px;color:var(--g);display:flex;flex-direction:column;gap:3px}
.wkprev .c.rest{opacity:.55}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--w);color:#111;padding:10px 16px;border-radius:var(--r1);font-weight:600;font-size:13px;z-index:80;display:flex;gap:8px;align-items:center;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.menu{position:absolute;right:0;top:42px;background:var(--s2);border:1px solid var(--line2);border-radius:var(--r1);padding:4px;min-width:220px;z-index:30;box-shadow:0 16px 40px rgba(0,0,0,.5)}
.menu button{display:flex;width:100%;gap:10px;align-items:center;border:0;background:none;padding:8px 10px;border-radius:6px;cursor:pointer;text-align:left;font-size:13px}
.menu button:hover,.menu button:focus-visible{background:var(--s3)}
.menu button.danger{color:#ff6b6b}
.rel{position:relative}

/* templates */
.tplrow{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.rules td{height:auto;padding:10px 14px;font-size:13px;vertical-align:top}
.rules td:first-child{color:var(--d);width:150px;white-space:nowrap}
.srcs a{display:inline-block;margin-right:6px;color:var(--g);font-size:12px}
.srcs a:hover{color:var(--w)}
.rx{display:flex;flex-direction:column}
.rx .m{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.rx .m:last-child{border-bottom:0}
.rx .m .h{font-weight:600}.rx .m .h small{display:block;font-weight:400;color:var(--d);font-size:12px;margin-top:2px}
.rx .m .f{color:var(--g);line-height:1.6}
.rx .m .f b{color:var(--w);font-weight:500}
.rx .m .nt{font-size:12px;color:var(--d);margin-top:4px;font-style:italic}

/* assistant drawer */
.drawer[hidden]{display:none!important}
.drawer{position:sticky;top:0;height:100vh;border-left:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column}
.drawer .hd{height:64px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--line)}
.drawer .hd h2{font:400 20px/1 var(--disp);text-transform:uppercase}
.drawer .ctx{padding:10px 18px;border-bottom:1px solid var(--line);font-size:12px;color:var(--g);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.msgs{flex:1;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px}
.msg.me{align-self:flex-end;background:var(--s2);border:1px solid var(--line);padding:9px 12px;border-radius:12px 12px 4px 12px;max-width:85%}
.msg.bot{display:flex;flex-direction:column;gap:10px}
.msg.bot .txt{color:var(--g);font-size:13px}
.parsed{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--d)}
.res{background:var(--s1);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden}
.res .r{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:13px}
.res .r:last-of-type{border-bottom:0}
.res .r .x{min-width:0;flex:1}.res .r .x b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.res .r .x span{font-size:12px;color:var(--d)}
.res .r .s{font-size:12px;color:var(--g);white-space:nowrap;font-variant-numeric:tabular-nums}
.res .ft{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);align-items:center;background:var(--bg)}
.res .ft .meta{white-space:nowrap;font-size:12px;color:var(--g);margin-right:auto}
.res .thumb,.res .glyph{width:40px;height:30px}
.cmp td{height:38px;font-size:12px;padding:0 10px}
.cmp th{padding:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 12px}
.chips button{border:1px solid var(--line2);background:none;border-radius:999px;height:28px;padding:0 11px;font-size:12px;color:var(--g);cursor:pointer;white-space:nowrap}
.chips button:hover{color:var(--w);border-color:rgba(255,255,255,.3)}
.ain{padding:12px 18px 10px;border-top:1px solid var(--line);display:flex;gap:8px}
.ain input{flex:1;height:38px;border-radius:var(--r1);border:1px solid var(--line2);background:var(--s1);padding:0 12px;outline:none}
.ain input:focus{border-color:rgba(255,255,255,.3)}
.afoot{padding:0 18px 14px;font-size:11px;color:var(--d);line-height:1.45}
.typing{display:flex;gap:4px;padding:6px 0}
.typing i{width:6px;height:6px;border-radius:50%;background:var(--d);animation:bl 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes bl{0%,80%{opacity:.25}40%{opacity:1}}
.foot{padding:16px 32px 28px;color:var(--d);font-size:12px;border-top:1px solid var(--line);display:flex;gap:16px;flex-wrap:wrap}
.foot a{color:var(--g)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.with-drawer .gsearch{width:200px}
.with-drawer .pill.demo{display:none}

/* ---------- v1 additions ---------- */
.mkban{display:flex;align-items:flex-start;gap:12px;margin:16px 32px 0;padding:12px 16px;border-radius:var(--r2);border:1px solid rgba(255,0,0,.45);background:var(--redbg);color:#ffd0d0;font-size:13px}
.mkban b{display:block;color:#fff;font-weight:700}.mkban span{color:#ffb3b3}.mkban .ic{color:var(--red);margin-top:2px}
.bill{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:9px;font:600 10.5px/1 var(--sans);letter-spacing:.02em;vertical-align:1px}
.bill.paid{background:var(--greenbg);color:var(--green)}.bill.unpaid{background:var(--amberbg);color:var(--amber)}
.newck{color:var(--red);font-weight:600}
.toast.err{background:#2a0b0b;color:#ffd0d0;border:1px solid rgba(255,0,0,.5)}
.btn.busy{opacity:.6;pointer-events:none}
.in,.ta{width:100%;height:38px;border-radius:var(--r1);border:1px solid var(--line2);background:var(--bg);padding:0 12px;color:var(--w)}
.ta{height:auto;padding:10px 12px;resize:vertical;line-height:1.45}
.in:focus,.ta:focus{outline:none;border-color:rgba(255,255,255,.35)}
.form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}
.form .wide{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:6px;min-width:0;border:0;padding:0;margin:0}
.fld>span,.fld legend{font:600 11px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--g);padding:0}
.fld .seg{align-self:flex-start;margin-top:6px}
.offer{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}
.radio{display:flex;align-items:center;gap:8px;cursor:pointer}
.radio input{accent-color:var(--red)}
.ferr{color:#ff8a8a;font-size:13px;min-height:1px}
#pdbox,#pebox{display:contents}#pdbox[hidden],#pebox[hidden]{display:none}
.tgedit{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r2);background:var(--s1)}
.tgedit label{display:flex;align-items:center;gap:6px;color:var(--g);font-size:12px}
.tgedit .cell-in{width:72px;border-color:var(--line2);background:var(--bg)}
.tgedit .label{margin-right:4px}
.invout{margin-top:14px}
.qr{width:220px;height:220px;background:#fff;border-radius:var(--r2);padding:6px;margin:4px auto 14px}
.qr svg{width:100%;height:100%;display:block}
.invlink{display:flex;gap:8px}.invlink .in{font-size:12px}
.phs{display:flex;gap:6px}.phs img{width:44px;height:44px;object-fit:cover;border-radius:6px;display:block;border:1px solid var(--line2)}
.ph0:empty{display:block;width:44px;height:44px;border-radius:6px;background:var(--s2)}
.reply{margin-top:6px;color:var(--g);font-size:12px;display:flex;gap:6px;align-items:center}
tr.unrev td{background:rgba(255,0,0,.04)}
.logs .lg{margin:2px 0;font-size:12.5px}.logs .lg b{font-weight:600;margin-right:6px}
.logs .st{display:inline-block;margin:0 4px 2px 0;padding:1px 6px;border-radius:5px;background:var(--s2);color:var(--g);font-variant-numeric:tabular-nums}
.logs .st.ok{color:var(--w)}
.login{min-height:100vh;display:grid;place-items:center;padding:24px}
.lbox{width:min(400px,100%);display:flex;flex-direction:column;gap:18px;padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--s1)}
.lbox .logo{padding:0}.lbox h1{font:400 30px/1.05 var(--disp);text-transform:uppercase}
.lbox form{display:flex;flex-direction:column;gap:14px}.lbox .btn.primary{height:42px}
.lfoot{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--g)}
.lbox .banner a{color:#fff}
.pill.demo.sample{background:var(--amberbg);border-color:rgba(245,165,36,.45);color:var(--amber);font-weight:700;letter-spacing:.04em}
#demoreset{color:var(--amber)}
