/* Ahinsa OS screens, built by Claude from design v3.1 (10 Oct 2026). Fonts are served from this app. */
@font-face{font-family:"Fraunces";src:url("/fraunces.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("/fraunces-italic.ttf") format("truetype");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("/inter.ttf") format("truetype");font-weight:100 900;font-style:normal;font-display:swap}

/* Design v3, 10 Oct 2026. The website's own language, as a back office:
   cream ground with soft rose, slate and gold aura and a fine grain, frosted white cards,
   Fraunces headings with an italic accent, gold small-caps labels, pill buttons.
   Cream only by Parv's choice (single look, every colour set explicitly). */
:root{
  --cream:#FAF6EF; --cream-2:#F3EBDD; --sand:#EFE5D4; --ivory:#FFFFFF;
  --ink:#33303A; --ink-soft:#6A6470; --ink-faint:#766F7C; --line:rgba(80,70,60,.12); --line-2:rgba(80,70,60,.07);
  --slate:#5E7E9B; --slate-deep:#46627B; --rose:#D9A2A7; --rose-deep:#C5868D; --gold:#C4A24E; --gold-soft:#E3CE97; --gold-ink:#8A6D1F;
  --wa:#25D366; --wa-deep:#1DA851;
  --c-root:#C0504D; --c-sacral:#DD7E3B; --c-solar:#E6BE4A; --c-heart:#86B173; --c-throat:#5E9FC9; --c-eye:#5E6FB0; --c-crown:#9B72B0;
  --good:#3F6B30; --good-bg:#E6F0DF; --warn:#9A5A12; --warn-bg:#FBEBD5; --bad:#9E3532; --bad-bg:#F6DEDC; --info:#3C5A75; --info-bg:#E3EAF1;
  --s-in:#2E6EAD; --s-out:#C25B78;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --radius:22px; --radius-sm:14px;
  --shadow-sm:0 1px 2px rgba(70,55,40,.05), 0 4px 14px rgba(70,55,40,.06);
  --shadow:0 6px 18px rgba(70,55,40,.07), 0 24px 50px rgba(70,55,40,.09);
  --glass:rgba(255,255,255,.66); --card-border:rgba(255,255,255,.75); --field:rgba(255,255,255,.85); --btn-bg:rgba(255,255,255,.55); --btn-hover:rgba(255,255,255,.85);
  --side-bg:rgba(255,255,255,.38); --top-bg:rgba(250,246,239,.78); --bottom-bg:rgba(250,246,239,.92); --hover:rgba(255,255,255,.55); --hint-bg:#F4EBD3; --tab-bg:rgba(255,255,255,.5);
  --aura-op:.55; --grain-op:.45; --pri-a:#5E7E9B; --pri-b:#46627B;
  --ease:cubic-bezier(.22,.61,.36,1);
  color-scheme:light;
}
/* optional dark look, switched in Settings > Look (cream is the default) */
:root[data-look="dark"]{
  --cream:#1B1820; --cream-2:#26222B; --sand:#2E2933; --ivory:#2A2630;
  --ink:#F3EBDD; --ink-soft:#C9BFB2; --ink-faint:#8F8696; --line:rgba(243,235,221,.12); --line-2:rgba(243,235,221,.07);
  --slate:#7F9DB9; --slate-deep:#A9C2DA; --gold:#D6B65F; --gold-ink:#E3CE97;
  --good:#9CCB86; --good-bg:rgba(134,177,115,.16); --warn:#E8A869; --warn-bg:rgba(221,126,59,.16); --bad:#E58A86; --bad-bg:rgba(192,80,77,.18); --info:#A9C2DA; --info-bg:rgba(94,126,155,.22);
  --s-in:#4A86D9; --s-out:#C9677B;
  --glass:rgba(255,255,255,.05); --card-border:rgba(255,255,255,.08); --field:rgba(255,255,255,.06); --btn-bg:rgba(255,255,255,.06); --btn-hover:rgba(255,255,255,.12);
  --side-bg:rgba(255,255,255,.03); --top-bg:rgba(27,24,32,.82); --bottom-bg:rgba(27,24,32,.94); --hover:rgba(255,255,255,.06); --hint-bg:rgba(196,162,78,.16); --tab-bg:rgba(255,255,255,.05);
  --aura-op:.16; --grain-op:.2;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:400;text-wrap:balance}
.num{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--slate);outline-offset:2px;border-radius:8px}
::selection{background:var(--rose);color:#fff}
svg.i{width:17px;height:17px;flex:none}

/* the website's aura and grain */
.bg-aura{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.aura{position:absolute;border-radius:50%;filter:blur(90px);opacity:var(--aura-op)}
.aura--rose{width:46vw;height:46vw;background:radial-gradient(circle,#f3cdd0,transparent 70%);top:-10vw;right:-8vw}
.aura--slate{width:42vw;height:42vw;background:radial-gradient(circle,#bcd0e2,transparent 70%);top:45%;left:-14vw}
.aura--gold{width:38vw;height:38vw;background:radial-gradient(circle,#f0e0b4,transparent 70%);bottom:-12vw;right:10vw}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain-op);mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E")}

/* preview ribbon (not part of the app) */
.ribbon{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 16px;background:var(--ink);color:var(--cream);font-size:12.5px}
.ribbon .lbl{opacity:.7}
.seg{display:inline-flex;background:rgba(255,255,255,.12);border-radius:100px;padding:2px}
.seg button{border:0;background:transparent;color:inherit;padding:4px 12px;border-radius:100px;cursor:pointer;font-size:12.5px}
.seg button[aria-pressed="true"]{background:var(--cream);color:var(--ink);font-weight:500}

/* shell */
.app{display:grid;grid-template-columns:250px minmax(0,1fr)}
.side{position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:20px 14px;background:var(--side-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;padding:2px 8px 6px}
.brand img{width:40px;height:40px;border-radius:12px;background:#FAF6EF;box-shadow:var(--shadow-sm)}
.brand b{display:block;font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.1}
.brand span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.chakras{display:flex;gap:5px;padding:10px 10px 16px}
.chakras i{width:6px;height:6px;border-radius:50%}
.navgrp{font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:14px 12px 6px}
.nav button{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;padding:9px 12px;border-radius:100px;cursor:pointer;color:var(--ink-soft);text-align:left;font-size:14.5px;transition:background .3s var(--ease),color .3s}
.nav button:hover{background:var(--hover);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--ivory);color:var(--ink);box-shadow:var(--shadow-sm)}
.nav button[aria-current="page"] svg{color:var(--slate-deep)}
.nav .n{margin-left:auto;font-size:11.5px;color:var(--ink-faint)}
.me{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 10px 2px;border-top:1px solid var(--line)}
.av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:linear-gradient(135deg,#F3CDD0,#F0E0B4);color:#33303A;flex:none}
.me .nm{font-size:13.5px;line-height:1.2}.me .rl{font-size:12px;color:var(--ink-faint)}
.main{min-width:0}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:8;display:flex;align-items:center;gap:12px;padding:12px 32px;background:var(--top-bg);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 1px 0 rgba(80,70,60,.07)}
.mlogo{display:none;width:34px;height:34px;border-radius:10px;background:#FAF6EF;box-shadow:var(--shadow-sm);flex:none}
.search{position:relative;flex:1;max-width:560px}
.search input{width:100%;padding:10px 16px 10px 40px;border:1px solid var(--line);border-radius:100px;background:var(--field);font-size:14px;color:var(--ink)}
.search > svg{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:var(--ink-faint)}
.results{position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--ivory);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:8px;max-height:400px;overflow:auto}
.results .g{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding:8px 10px 4px}
.results button{display:flex;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;padding:9px 10px;border-radius:12px;cursor:pointer;text-align:left}
.results button:hover{background:var(--cream)}
.results .w{font-size:12.5px;color:var(--ink-faint)}
.newwrap{position:relative;margin-left:auto}
.menu{position:absolute;right:0;top:calc(100% + 8px);width:230px;background:var(--ivory);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:6px;z-index:20}
.menu button{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:9px 12px;border-radius:12px;cursor:pointer;text-align:left;font-size:14px}
.menu button:hover{background:var(--cream)}
.menu svg{color:var(--slate-deep)}
.page{padding:28px 32px 64px;display:flex;flex-direction:column;gap:20px;max-width:1240px;width:100%}

/* type, labels */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.eyebrow::before{content:"";width:2rem;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.head h1{font-family:var(--serif);font-weight:340;font-size:clamp(28px,2.2vw + 14px,40px);line-height:1.08;letter-spacing:-.01em;margin-top:6px}
.head h1 em{font-style:italic;color:var(--slate-deep)}
.head p{margin:6px 0 0;color:var(--ink-soft)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* pill buttons, as on the website */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:100px;font-weight:500;font-size:14px;line-height:1.1;border:1px solid var(--line);background:var(--btn-bg);color:var(--ink);cursor:pointer;white-space:nowrap;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,border-color .3s}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--slate);background:var(--btn-hover)}
.btn.pri{border:0;color:#fff;background:linear-gradient(135deg,var(--pri-a),var(--pri-b));position:relative;overflow:hidden;box-shadow:var(--shadow-sm)}
.btn.pri::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--rose),var(--gold));opacity:0;transition:opacity .45s}
.btn.pri:hover::after{opacity:.22}
.btn.pri > *{position:relative;z-index:1}
.btn.wa{border:0;background:var(--wa);color:#fff}
.btn.wa:hover{background:var(--wa-deep)}
.btn.sm{padding:6px 12px;font-size:13px}
.btn:disabled{opacity:.6;cursor:default;transform:none}
.link{border:0;background:none;padding:0;cursor:pointer;color:var(--ink);font-weight:500;text-align:left}
.link:hover{color:var(--slate-deep);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:500;background:var(--cream-2);color:var(--ink-soft);white-space:nowrap}
.badge.good{background:var(--good-bg);color:var(--good)}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.bad{background:var(--bad-bg);color:var(--bad)}
.badge.info{background:var(--info-bg);color:var(--info)}
.badge.gold{background:var(--hint-bg);color:var(--gold-ink)}

.tabs{display:flex;gap:4px;padding:4px;border-radius:100px;background:var(--tab-bg);border:1px solid var(--card-border);width:max-content;max-width:100%;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{border:0;background:none;padding:7px 16px;border-radius:100px;cursor:pointer;color:var(--ink-soft);white-space:nowrap;font-size:14px}
.tabs button[aria-selected="true"]{background:var(--ivory);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:500}
.tabs .n{margin-left:6px;font-size:12px;color:var(--ink-faint)}

/* frosted cards */
.card{background:var(--glass);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}
.ch{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;padding:20px 22px 0}
.ch h2{font-family:var(--serif);font-size:21px;font-weight:400}
.ch .s{font-size:13px;color:var(--ink-faint)}
.cb{padding:14px 22px 22px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.g12{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start}
.g12 > .grid{align-content:start}

.hello{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:24px 26px}
.hello .sum{display:flex;flex-wrap:wrap;gap:8px 20px;color:var(--ink-soft);font-size:14px}
.hello .sum b{font-family:var(--serif);font-weight:400;font-size:20px;color:var(--ink);margin-right:4px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.stat{padding:20px 22px;border-right:1px solid var(--line-2)}
.stat:last-child{border-right:0}
.stat .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.stat .v{font-family:var(--serif);font-weight:380;font-size:30px;line-height:1.1;margin-top:8px;color:var(--slate-deep);font-variant-numeric:tabular-nums}
.stat .d{font-size:12.5px;color:var(--ink-faint);margin-top:4px}
.up{color:var(--good)}.dn{color:var(--bad)}

/* charts */
.chart{position:relative;width:100%}
.chart svg{display:block;width:100%;overflow:visible}
.chart text{fill:var(--ink-faint);font-size:11px;font-family:var(--sans)}
.chart .gl{stroke:var(--line-2)}
.chart .bl{stroke:var(--line)}
.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12.5px;color:var(--ink-soft);margin-bottom:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}
.tip{position:fixed;z-index:50;pointer-events:none;background:var(--ink);color:var(--cream);font-size:12.5px;padding:8px 11px;border-radius:10px;box-shadow:var(--shadow);max-width:240px;line-height:1.45}
.bars{display:flex;flex-direction:column;gap:11px}
.bar{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr) 5.8rem;align-items:center;gap:12px;font-size:13.5px}
.bar .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar .tr{height:8px;background:var(--line-2);border-radius:100px;overflow:hidden}
.bar .f{height:100%;border-radius:100px}
.bar .v{text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.bar .off{grid-column:2/4;color:var(--ink-faint);font-size:13px;font-style:italic}

/* tables */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-align:left;color:var(--ink-faint);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tbody tr:last-child td{border-bottom:0}
tr.cl{cursor:pointer}
tr.cl:hover td{background:var(--hover)}
.r{text-align:right}
.who{display:flex;align-items:center;gap:11px;min-width:0}
.p{font-size:12.5px;color:var(--ink-faint);font-variant-numeric:tabular-nums}
.muted{color:var(--ink-faint)}.sm{font-size:13px}

.steps{display:inline-flex;flex-wrap:wrap;gap:5px}
.stp{display:inline-flex;align-items:center;gap:4px;padding:2px 9px 2px 7px;border-radius:100px;font-size:12px;border:1px solid var(--line);color:var(--ink-faint);white-space:nowrap}
.stp svg{width:12px;height:12px}
.stp.done{background:var(--info-bg);border-color:transparent;color:var(--info);font-weight:500}
.stp.off{border-style:dashed}

/* call list */
.grp{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:20px 22px 12px}
.grp h2{font-family:var(--serif);font-size:21px;font-weight:400}
.grp .s{font-size:13px;color:var(--ink-faint)}
.grp .dot{width:9px;height:9px;border-radius:50%;align-self:center}
.callrow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.7fr) auto;gap:16px;align-items:center;padding:14px 22px;border-top:1px solid var(--line-2)}
.callrow .why{font-size:14px;color:var(--ink-soft)}
.callrow .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;align-items:center}
.callrow.done{opacity:.55}
.logbox{grid-column:1/-1;display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius-sm);background:var(--field);border:1px solid var(--line)}
.choice{display:flex;flex-wrap:wrap;gap:6px}
.choice button{border:1px solid var(--line);background:var(--ivory);border-radius:100px;padding:6px 13px;font-size:13.5px;cursor:pointer}
.choice button[aria-pressed="true"]{border-color:var(--slate);background:var(--info-bg);color:var(--info);font-weight:500}

/* forms */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form .full{grid-column:1/-1}
.f{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--ink-soft)}
.f i{font-style:normal;font-weight:400;color:var(--ink-faint);letter-spacing:0}
.inp{width:100%;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);font-size:15px;letter-spacing:0;color:var(--ink);font-weight:400}
.inp:focus{border-color:var(--slate);outline:none;box-shadow:0 0 0 3px rgba(94,126,155,.15)}
textarea.inp{min-height:76px;resize:vertical}
.understood{font-size:13.5px;color:var(--ink-soft);margin-top:2px;letter-spacing:0;font-weight:400}
.understood b{color:var(--slate-deep);font-weight:600}
.understood .bad{color:var(--bad)}
.hint{padding:12px 14px;border-radius:var(--radius-sm);background:var(--hint-bg);color:var(--ink);font-size:14px;display:flex;flex-direction:column;gap:8px}
.ship{padding:16px;border-radius:var(--radius-sm);border:1px dashed rgba(196,162,78,.6);background:var(--hint-bg)}
.checks{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px;color:var(--ink)}
.checks label{display:inline-flex;gap:6px;align-items:center;font-weight:400;letter-spacing:0}
.checks input{width:16px;height:16px;accent-color:var(--slate-deep)}

/* profile */
.dl{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:9px 12px;font-size:14px;margin:0}
.dl dt{color:var(--ink-faint)}.dl dd{margin:0;min-width:0}
.feed{display:flex;flex-direction:column}
.fi{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:start;padding:9px 0}
.fi .ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--cream-2);color:var(--ink-soft)}
.fi .ic.pay{background:var(--info-bg);color:var(--info)}
.fi .ic.call{background:var(--hint-bg);color:var(--gold-ink)}
.fi .ic.del{background:var(--good-bg);color:var(--good)}
.fi .ty{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:10px}
.track span{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--ink-faint)}
.track span::before{content:"";height:5px;border-radius:5px;background:var(--line)}
.track span.on{color:var(--ink)}
.track span.on::before{background:linear-gradient(90deg,var(--rose),var(--gold))}
.track span.now{color:var(--ink);font-weight:600}
.track span.now::before{background:var(--slate)}
.total{display:flex;justify-content:space-between;align-items:baseline;padding-top:12px;border-top:1px solid var(--line)}
.total b{font-family:var(--serif);font-weight:400;font-size:24px;color:var(--slate-deep)}
.addr{white-space:pre-line;font-size:14px}
.note{padding:12px 14px;border-radius:var(--radius-sm);background:var(--field);border:1px solid var(--line-2);font-size:13.5px;color:var(--ink-soft)}
.perm{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,5rem);align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.perm .h{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);text-align:center}
.perm input{justify-self:center;width:17px;height:17px;accent-color:var(--slate-deep)}
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--cream);padding:11px 18px;border-radius:100px;font-size:14px;z-index:60;box-shadow:var(--shadow);max-width:calc(100% - 32px)}

select.inp{appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239A93A0' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.picklist{display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:14px;background:var(--ivory);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.picklist button{display:flex;justify-content:space-between;gap:10px;border:0;background:none;padding:9px 10px;border-radius:10px;cursor:pointer;text-align:left;font-size:14px;color:var(--ink)}
.picklist button:hover{background:var(--hover)}
.picklist .w{color:var(--ink-faint);font-size:12.5px;font-variant-numeric:tabular-nums}
.sugchips{display:flex;flex-wrap:wrap;gap:6px}
.sugchips:empty{display:none}
.sugchips button{border:1px dashed var(--gold);background:var(--hint-bg);color:var(--gold-ink);border-radius:100px;padding:5px 12px;font-size:13px;cursor:pointer}
.morelist{display:flex;flex-direction:column}
.morelist button{display:flex;align-items:center;gap:12px;border:0;background:none;padding:15px 4px;border-bottom:1px solid var(--line-2);cursor:pointer;font-size:16px;color:var(--ink);text-align:left}
.morelist button:last-child{border-bottom:0}
.morelist svg{color:var(--slate-deep)}
.bottom{display:none}
/* Phones: Settings sits in Home buttons and More, so the top bar keeps room for search (Claude, 17 Oct). */
@media (max-width: 960px){#gearbtn{display:none!important}}
@media (max-width: 960px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  .mlogo{display:block}
  .top{padding:10px 16px}
  .newwrap .tx{display:none}
  .page{padding:20px 16px 116px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
  .g2,.g21,.g12{grid-template-columns:minmax(0,1fr)}
  .hello{grid-template-columns:minmax(0,1fr)}
  .bottom{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--bottom-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .bottom button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--ink-faint);padding:3px 0;cursor:pointer}
  .bottom button svg{width:22px;height:22px}
  .bottom button[aria-current="page"]{color:var(--slate-deep);font-weight:600}
}
@media (max-width: 640px){
  .callrow{grid-template-columns:minmax(0,1fr)}
  .form{grid-template-columns:minmax(0,1fr)}
  .hs{display:none}
  .bar{grid-template-columns:minmax(0,6.6rem) minmax(0,1fr) 4.9rem}
  .perm{grid-template-columns:minmax(0,1fr) repeat(3,3.4rem)}
  .stat .v{font-size:24px}
  .ch,.grp{padding-left:16px;padding-right:16px}.cb{padding-left:16px;padding-right:16px}.callrow{padding-left:16px;padding-right:16px}
}

/* app-only pieces */
[hidden]{display:none!important}
a.btn{text-decoration:none}
.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.login .card{width:min(420px,100%);padding:30px 28px;display:flex;flex-direction:column;gap:14px}
.login .lg{display:flex;align-items:center;gap:12px}
.login .lg img{width:46px;height:46px;border-radius:13px;background:#FAF6EF;box-shadow:var(--shadow-sm)}
.login h1{font-family:var(--serif);font-weight:340;font-size:32px;line-height:1.1}
.login h1 em{font-style:italic;color:var(--slate-deep)}
.login .err{color:var(--bad);font-size:14px;min-height:20px}
.modebar{display:flex;gap:10px;align-items:center;padding:8px 32px;font-size:13px;background:var(--hint-bg);color:var(--gold-ink);border-bottom:1px solid var(--line)}
.modebar b{font-weight:600}
.modebar.bad{background:var(--bad-bg);color:var(--bad)}
.range{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.range .choice button{padding:5px 12px;font-size:13px}
.range .dates{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-soft)}
.range .dates input{width:auto;padding:5px 10px;font-size:13.5px;border-radius:100px}
.pager{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:12px 22px;border-top:1px solid var(--line-2);font-size:13.5px;color:var(--ink-soft)}
.loading{padding:48px 22px;color:var(--ink-faint);text-align:center}
.moreline{display:flex;justify-content:center;padding:12px;border-top:1px solid var(--line-2)}
.empty{padding:18px 22px;color:var(--ink-faint);font-size:14px}
.sync{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft);white-space:nowrap}
.sync .dot{width:7px;height:7px;border-radius:50%;background:var(--good)}
.stp.tap{cursor:pointer}
.stp.manual{box-shadow:inset 0 0 0 1.5px var(--gold)}
.kv{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--ink-soft)}
.danger{color:var(--bad)}
@media (max-width: 767px){ .modebar{padding:8px 16px} .range .dates{flex-wrap:wrap} .pager{padding:12px 16px} }

/* phones: compact headers, tables as cards, folded filters (Claude, 11 Oct) */
.mob{display:none}
.ftop{display:none}
.range .choice{max-width:100%}
@media (max-width: 640px){
  .mob{display:inline}
  div.mob{display:block}
  .modebar{font-size:12px;padding:6px 16px;display:block}
  .modebar .long{display:none}
  .page{gap:14px;padding-top:16px}
  .head{gap:8px}
  .head h1{font-size:26px;margin-top:2px}
  .head p{font-size:13.5px;margin-top:4px}
  .head > .row{width:100%}
  .ch h2,.grp h2{font-size:19px}
  .hello{padding:18px 16px;gap:14px}
  .hello .sum{gap:4px 14px;font-size:13.5px}
  .hello .sum b{font-size:18px}
  .hello .row .btn{flex:1 1 auto}
  .stat{padding:14px 16px}
  .stat .l{font-size:10.5px}
  .range{flex-wrap:nowrap}
  .range .choice{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .range .choice::-webkit-scrollbar{display:none}
  .range .choice button{white-space:nowrap}
  .range .dates{flex-wrap:wrap}
  .callrow{gap:10px;padding:14px 16px}
  .callrow > .row .btn{flex:1 1 0;justify-content:center}
  .stp{font-size:11.5px;padding:1px 8px 1px 6px}
  .ftop{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .filterbody:not(.open){display:none!important}
  .filterbody{margin-top:14px}
  .filterbody .row > .f{flex:1 1 100%;min-width:0!important}
  .filterbody > .row > .muted{display:none}
  table.rt thead{display:none}
  table.rt,table.rt tbody{display:block}
  table.rt tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 16px;border-bottom:1px solid var(--line-2)}
  table.rt tbody tr:last-child{border-bottom:0}
  table.rt td{display:block;padding:0;border:0}
  table.rt td:first-child{flex:1 1 55%;min-width:0}
  table.rt td.r{margin-left:auto}
  table.rt td:not(:first-child):not(.r):not(.act){flex:1 1 100%;order:2;font-size:13.5px}
  table.rt td.act{flex:1 1 100%;order:3;margin-left:0;text-align:left}
  table.rt td.act .row{justify-content:flex-start!important}
  table.rt td.hs{display:none}
  table.rt td:empty{display:none}
  table.rt tr td.hs:first-child + td:not(.r){flex:1 1 55%;order:0;font-size:inherit}
  tr.cl:hover td{background:none}
  table.pl tr{gap:4px 10px}
  table.pl td:first-child{flex:1 1 100%;font-weight:500}
  table.pl td.r{flex:1 1 0;margin-left:0;text-align:left;order:1;font-size:14px}
  table.pl td.r::before{content:attr(data-l);display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:500}
  .perm{grid-template-columns:minmax(0,1fr) repeat(2,3.6rem)!important}
  .bottom button{font-size:10.5px}
}

#refreshbtn{margin-left:auto;padding:8px 10px}
table.pl tr.sum td{font-weight:600}

/* Phase 1 safety, existing design v3.1 tokens and fonts retained. */
#refreshbtn{width:40px;height:40px;min-width:40px;flex:0 0 40px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--line);background:var(--field)}
@media (max-width:767px){input,select,textarea,[contenteditable],.inp,.search input,.dates .inp{font-size:16px!important}}

.steps-panel{padding:12px 16px}.steps-panel summary{cursor:pointer;font-size:14px}
/* Phase 2 uses the existing design v3.1 tokens. */
.p2-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.p2-actions .btn{min-height:48px;justify-content:center}
.p2-today{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.p2-today .btn{white-space:normal;display:flex;flex-direction:column;align-items:center}
.p2-today b{font-size:24px}
.p2-warm{background:var(--gold-soft);border-color:var(--gold)}
.p2-table{max-width:100%;overflow:auto}
.p2-table table{background:var(--ivory)}
.p2-table th:first-child,.p2-table td:first-child{position:sticky;left:0;background:var(--ivory);z-index:1}
.p2-table th,.p2-table td{white-space:nowrap}
.p2-number{display:block;text-align:right}
.p2-quantity{max-width:80px}
.p2-dialog{border:1px solid var(--line);border-radius:var(--radius,18px);background:var(--ivory);color:var(--ink);width:min(620px,calc(100vw - 24px));max-height:85dvh;overflow:auto;padding:0}
.p2-dialog::backdrop{background:var(--ink);opacity:.35}
.p2-dialog .inp{font-size:16px}
@media(max-width:600px){.p2-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:100%;max-height:90dvh;border-radius:18px 18px 0 0}.p2-table .btn{white-space:nowrap}}

/* Phase 4 public forms use the existing design v3.1 tokens. */
.capture-page { max-width: 680px; margin: 24px auto; padding: 0 16px 32px; }
.capture-page .card { margin-bottom: 16px; }
.capture-page fieldset { min-width: 0; }
.capture-page legend { max-width: 100%; padding: 8px; }
.capture-page .inp { font-size: 16px; width: 100%; }
.capture-page .btn { min-height: 48px; margin-bottom: 16px; }
.capture-page .capture-logo { width: 56px; height: 56px; }
.capture-trap { position: absolute; left: -10000px; }
#form-rows dd { margin: 0 0 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
#form-rows summary { cursor: pointer; }
#form-rows p { overflow-wrap: anywhere; }

/* Claude refine, 15 Oct 2026: tick boxes and choice rows, amount totals, public form choices. */
.permission-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 0;font-size:14px;font-weight:500;letter-spacing:0;color:var(--ink);cursor:pointer}
.permission-row input{width:20px;height:20px;margin:0;flex:none;accent-color:var(--slate-deep)}
label:has(> input[type="checkbox"]):not(.permission-row):not(.f){display:inline-flex;align-items:center;gap:10px;min-height:40px;margin-right:16px;font-size:14px;color:var(--ink);cursor:pointer}
label:not(.permission-row) > input[type="checkbox"]{width:18px;height:18px;margin:0;flex:none;accent-color:var(--slate-deep)}
.amt-total{display:block;margin-top:6px;font-size:18px;font-weight:600;color:var(--ink);letter-spacing:0}
.amt-total:empty{display:none}
.capture-page fieldset{border:0;margin:0 0 16px;padding:18px;display:grid;gap:10px}
.capture-page legend{float:left;width:100%;padding:0 0 4px;font-size:16px;font-weight:600;line-height:1.45;color:var(--ink)}
.capture-page .permission-row{min-height:52px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--field);font-size:16px;font-weight:400}
.capture-page .permission-row:has(input:checked){border-color:var(--slate);background:var(--info-bg);font-weight:600}
.capture-page .permission-row input{width:22px;height:22px}
.capture-page form > .btn{width:100%}
.capture-page #capture-result:empty{display:none}
input[type="file"]{font:14px var(--sans);color:var(--ink-soft)}
input[type="file"]::file-selector-button{margin-right:10px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--btn-bg);font:500 14px var(--sans);color:var(--ink);cursor:pointer}
/* Phone tap targets (Claude refine, 15 Oct): tabs, date chips and small buttons at least about 40px tall. */
@media (max-width: 767px){
 .tabs button{min-height:40px}
 .range .choice button{min-height:44px;padding:8px 14px}
 .btn.sm{min-height:44px;padding:8px 14px}
}

/* Readability (Claude, 15 Oct): small grey hints now 4.5:1 on cream; page labels use the darker gold. */
.eyebrow{color:var(--gold-ink)}

/* Team chat shares the existing cards, controls and spacing. */
.chat-panel{min-width:0;overflow-wrap:anywhere}
.chat-panel .btn,.chat-compose .btn{min-height:44px;white-space:normal}
.chat-panel .inp,.chat-compose .inp{min-width:0;max-width:100%;font-size:16px!important}
.chat-panel .f{min-width:0}
.chat-members{display:flex;flex-wrap:wrap;gap:12px}
.chat-members label{display:flex;align-items:center;gap:8px;min-height:44px}
.chat-messages{margin-top:16px;min-width:0}
.chat-message{border-top:1px solid var(--line);padding:16px 0;overflow-wrap:anywhere}
.chat-message p{margin:0 0 8px}
.chat-text{white-space:pre-wrap}
.chat-photo{display:block;max-width:100%;width:auto;max-height:360px;border-radius:var(--radius-sm);margin:12px 0}
.chat-compose{position:relative;scroll-margin-bottom:100px;padding-bottom:env(safe-area-inset-bottom,0px)}
.chat-compose textarea{resize:vertical;scroll-margin-bottom:24px;min-height:96px}
.chat-mentions{display:flex;flex-wrap:wrap;gap:8px}
.chat-target{outline:2px solid var(--gold);outline-offset:4px}
#reviewbell{min-width:44px;min-height:44px}
@media(max-width:600px){.chat-compose{margin-bottom:16px}.chat-file input{width:100%}.chat-panel .btn{margin-bottom:6px}}

.chat-panel .badge{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.chat-panel .btn{max-width:100%}
.chat-title{overflow-wrap:anywhere}
body:has(.chat-panel) .top button,body:has(.chat-panel) .bottom button{min-width:44px;min-height:44px}

/* Claude, 16 Oct 2026: finger-sized taps and instant press feedback on touch screens. The laptop look is unchanged. */
html{-webkit-tap-highlight-color:transparent}
button,a,summary,label,input[type=checkbox],input[type=radio]{touch-action:manipulation}
.btn:active,.choice button:active,.tabs button:active{transform:scale(.96);transition-duration:.06s}
.link{position:relative}
.link:active{opacity:.6}
@media (pointer:coarse),(max-width:767px){
  .btn,.choice button,.tabs button{min-height:44px}
  .btn.sm{padding-top:9px;padding-bottom:9px}
  .link::after{content:"";position:absolute;inset:-11px -6px}
  .perm label,label.sm{min-height:44px;display:inline-flex;align-items:center;gap:10px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;flex:none}
}
/* Claude, 16 Oct 2026: on phones Log in is the full-width main button, Forgot password sits quietly under it. */
@media (max-width:600px){.login .card .row{flex-direction:column;align-items:stretch;gap:10px}.login .card .row .btn{width:100%;min-height:48px}.login .card .row #forgot{border-color:transparent;background:none;color:var(--ink-soft)}}
/* Claude, 16 Oct 2026: give the phone search box enough room that "Search" is never cut off. */
@media (max-width:600px){.top{gap:8px}.search{min-width:118px}.search input{padding:10px 10px 10px 36px}.search > svg{left:12px}}
/* Claude, 16 Oct 2026: chat looks like a chat. Rows with initials, bubbles (yours on the right), a compact typing bar. */
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.chat-list{display:flex;flex-direction:column}
.chat-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:10px 4px;border:0;border-top:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);font:inherit;border-radius:0;touch-action:manipulation}
.chat-row:first-child{border-top:0}
.chat-row:active{background:color-mix(in srgb,var(--line) 40%,transparent)}
.chat-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:600;font-size:14px;color:var(--slate-deep);background:color-mix(in srgb,var(--rose) 22%,var(--ivory))}
.chat-row-t{flex:1;min-width:0;font-weight:500;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-unread{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:var(--slate-deep);color:#fff;font-size:12px;font-weight:600;display:grid;place-items:center}
.chat-chev{color:var(--ink-faint);font-size:22px;line-height:1}
.chat-new{margin:14px 0 0}
.chat-bar{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}
.chat-panel .chat-bar .btn,.chat-tools .btn{margin-bottom:0}
.chat-messages{display:flex;flex-direction:column;gap:2px}
.chat-message{border-top:0;padding:5px 0;display:flex;flex-direction:column;align-items:flex-start}
.chat-message.mine{align-items:flex-end}
.chat-bubble{max-width:86%;background:var(--ivory);border:1px solid var(--line);border-radius:18px 18px 18px 6px;padding:9px 14px 10px}
.chat-message.mine .chat-bubble{background:linear-gradient(135deg,var(--pri-a),var(--pri-b));color:#fff;border-color:transparent;border-radius:18px 18px 6px 18px}
.chat-message.mine .chat-meta,.chat-message.mine .chat-meta .sm{color:rgba(255,255,255,.78)}
.chat-message.removed .chat-bubble{background:none;border-style:dashed;color:var(--ink-faint);font-style:italic}
.chat-message .chat-meta{margin:0 0 3px;font-size:12.5px;color:var(--ink-soft)}
.chat-message .chat-text{margin:0;font-size:15.5px;line-height:1.42}
.chat-message .badge{margin:6px 6px 0 0}
.chat-del{margin:3px 6px 0;font-size:12.5px;color:var(--ink-faint)}
.chat-empty{color:var(--ink-faint);text-align:center;padding:28px 0;margin:0}
.chat-compose .chat-panel .f{margin:0}
.chat-compose textarea{min-height:52px;resize:none;border-radius:16px}
.chat-tools{display:flex;gap:8px;align-items:center;margin-top:10px}
.chat-tools .chat-mention-sel{flex:1;min-width:0;width:auto}
.chat-file{position:relative;overflow:hidden;flex:none}
.chat-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.chat-send{flex:none;min-width:84px}
.chat-photo-state{margin:8px 0 0}
/* Claude, 16 Oct 2026: profit and loss that reads at a glance. Green profit, red loss, bars per webinar. */
.pl-pos{color:var(--good)}
.pl-neg{color:var(--bad)}
.pl-st{display:flex;flex-direction:column;gap:0;max-width:640px}
.pl-line{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:15px}
.pl-line span{color:var(--ink-soft)}
.pl-line b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-line.sub{border-bottom:1px solid var(--line)}
.pl-line.sub span{color:var(--ink);font-weight:500}
.pl-line.big{padding:14px 0;border-bottom:2px solid var(--line)}
.pl-line.big span{color:var(--ink);font-family:var(--serif);font-size:20px}
.pl-line.big b{font-family:var(--serif);font-size:24px;font-weight:500}
.pl-line.pl-pos b,.pl-line.pl-pos span{color:var(--good)}
.pl-line.pl-neg b,.pl-line.pl-neg span{color:var(--bad)}
.pl-line.muted{border-bottom:0}
.pl-line.muted span,.pl-line.muted b{color:var(--ink-faint);font-weight:400}
.pl-webs{display:flex;flex-direction:column;gap:6px}
.pl-web{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;font:inherit;color:var(--ink);background:none;border:1px solid transparent;border-bottom-color:var(--line-2);border-radius:var(--radius-sm);padding:12px 10px;cursor:pointer;touch-action:manipulation;transition:background .2s,border-color .2s}
.pl-web:hover,.pl-web.on{background:var(--hover);border-color:var(--line)}
.pl-web:active{transform:scale(.99)}
.pl-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pl-date{font-weight:600;font-size:15.5px}
.pl-p{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-bar{display:flex;height:10px;border-radius:6px;background:var(--line-2);overflow:hidden}
.pl-bar i,.pl-key i{display:block;height:100%}
.pl-bar .c,.pl-key .c{background:color-mix(in srgb,var(--ink-faint) 55%,transparent)}
.pl-bar .g,.pl-key .g{background:var(--good)}
.pl-bar .l,.pl-key .l{background:var(--bad)}
.pl-nums{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.pl-key{display:flex;align-items:center;gap:6px;margin:10px 16px 0;font-size:12.5px}
.pl-key i{width:12px;height:10px;border-radius:3px;margin-left:8px}
.pl-key i:first-child{margin-left:0}
.pl-months td.r,.pl-months th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pl-months tr.pl-total td{font-weight:600;border-top:2px solid var(--line)}
.pl-note{margin:12px 16px 4px}

/* ==========================================================================
   Design language, Claude 17 Oct 2026. Taken from ahinsafoundation.com:
   Fraunces (light, 340 to 450) ONLY for page titles and card titles; Inter for
   everything else, in four sizes: 15 body, 13.5 secondary, 11 small caps label,
   and 22 for key numbers (600 weight, even-width digits). Gold small caps eyebrow,
   pill buttons, generous calm spacing, thin lines between items.
   This block is last on purpose: it wins over the older patch layers above.
   ========================================================================== */
:root{
  --fs-body:15px; --fs-sm:13.5px; --fs-label:11px; --fs-num:22px; --fs-card:19px;
  --sel-bg:#E6EDF4; --sel-line:var(--slate-deep);
}
:root[data-look="dark"]{--sel-bg:rgba(94,126,155,.28)}
body{font-size:var(--fs-body);line-height:1.6}
.head h1{font-family:var(--serif);font-weight:340}
.ch{padding:20px 22px 0;row-gap:4px}
.ch h2,.grp h2{font-family:var(--serif);font-weight:420;font-size:var(--fs-card);line-height:1.25;letter-spacing:0}
.ch .s{flex:1 1 100%;font-size:var(--fs-sm);color:var(--ink-faint);line-height:1.45}
.ch > .btn,.ch > .row{margin-left:auto}
.cb{padding:16px 22px 22px}
/* key numbers: one style everywhere, never serif */
.stat .l,th,.perm .h,table.pl td.r::before{font-family:var(--sans);font-size:var(--fs-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.stat .v,.hello .sum b,.total b,.p2-today b,.pl-line.big b{font-family:var(--sans);font-weight:600;font-size:var(--fs-num);letter-spacing:-.01em;line-height:1.2;font-variant-numeric:tabular-nums}
.stat .v{color:var(--ink);margin-top:6px}
.stat .d{font-size:12.5px;color:var(--ink-soft);margin-top:4px;line-height:1.4}
.pl-line.big span{font-family:var(--sans);font-size:16px;font-weight:600}
.pl-line.big b{font-size:20px}
td{font-size:14.5px}
.tabs button{font-size:14px;font-weight:500;padding:8px 16px}
.badge{font-size:12px;padding:4px 11px;line-height:1.3}
.btn{font-size:14px;font-weight:500;letter-spacing:.01em}

/* chips: roomy pills, clear selected state (solid), never cramped circles */
.choice{gap:8px}
.choice button,.range .choice button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;border-radius:100px;font-size:14px;font-weight:500;line-height:1.2;border:1px solid var(--line);background:var(--ivory);color:var(--ink-soft);white-space:nowrap}
.choice button[aria-pressed="true"]{background:var(--slate-deep);border-color:var(--slate-deep);color:#fff;font-weight:600}
.range{display:block;margin:0 0 4px}
.cb > .range + *{margin-top:14px}
/* the chip row scrolls sideways on phones; a soft fade on the right says "more this way" */
@media (max-width:640px){
  .range .choice{flex-wrap:nowrap;overflow-x:auto;padding:2px 28px 4px 0;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
}

/* names in tables are plain tappable text, not pills */
.pname{border:0;background:none;padding:0;font:inherit;font-weight:500;color:var(--ink);text-align:left;cursor:pointer;min-height:0}
.pname:hover{color:var(--slate-deep);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

/* one obvious selected state for rows and cards */
.pl-web.on,.is-sel{background:var(--sel-bg)!important;border-color:var(--sel-line)!important;box-shadow:inset 3px 0 0 var(--sel-line)}
.chat-target,.chat-message.chat-target{outline:0}
.chat-message.chat-target .chat-bubble{box-shadow:0 0 0 2px var(--sel-line);border-color:transparent}

/* Today tiles: rounded rectangles with the number on top, not circles */
.p2-today{gap:10px}
.p2-today .btn{border-radius:18px;padding:14px 12px;min-height:84px;gap:2px;justify-content:center;background:var(--ivory);border:1px solid var(--line);color:var(--ink-soft);font-size:13px;font-weight:500;line-height:1.25;text-align:center}
.p2-today .btn b{color:var(--ink);font-size:26px;display:block}

/* lists: a thin line between separate items so it is clear where one ends */
.item-list{display:flex;flex-direction:column}
.item-list > .item{padding:14px 0;border-top:1px solid var(--line)}
.item-list > .item:first-child{border-top:0;padding-top:4px}
.item .t{font-weight:600;font-size:var(--fs-body);line-height:1.4}
.item .m{font-size:var(--fs-sm);color:var(--ink-soft);margin-top:2px}
.item .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.btn.del{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.btn.del:hover{background:var(--bad-bg);border-color:var(--bad)}

/* big date sheet: full width at the bottom of the phone, covers nothing else */
.date-sheet .cb{display:flex;flex-direction:column;gap:16px}
.date-sheet .f{font-size:13px}
.date-sheet input[type=date]{min-height:56px;font-size:18px!important;padding:12px 16px;border-radius:14px}
.date-sheet .quick{display:flex;flex-wrap:wrap;gap:8px}
.date-sheet .acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.date-sheet .acts .btn{min-height:52px;font-size:16px}
.sheet-grip{width:40px;height:4px;border-radius:4px;background:var(--line);margin:10px auto 0}
@media(min-width:601px){.sheet-grip{display:none}}

/* page header with a back button for sub pages (webinar page, month page) */
.backbar{display:flex;align-items:center;gap:8px;margin-bottom:-6px}
.backbar .btn{padding-left:12px}
.subhead{font-size:var(--fs-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:18px 0 6px}
.subhead:first-child{margin-top:0}

@media (max-width:640px){
  :root{--fs-num:20px;--fs-card:18px}
  .ch{padding:18px 16px 0}
  .cb{padding:14px 16px 18px}
  .head h1{font-size:27px}
  .p2-today .btn b{font-size:24px}
}
/* no initials circles in lists of people (Parv, 16 Oct); the name alone is enough */
.who > .av{display:none}
/* Money: labelled number cells, month cards, webinar and month pages (Claude, 17 Oct) */
.mgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.mcell{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:14px;background:var(--field);border:1px solid var(--line-2);min-width:0}
.mcell span{font-size:var(--fs-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
.mcell b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.mcard{display:flex;flex-direction:column;gap:12px;width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--ivory);border:1px solid var(--line);border-radius:18px;padding:16px;cursor:pointer;touch-action:manipulation;transition:background .2s,border-color .2s}
.mcard:hover{border-color:var(--slate)}
.mcard:active{background:var(--sel-bg);border-color:var(--sel-line)}
.mcard.mtotal{cursor:default;background:var(--cream-2);border-color:transparent}
.mcard .mgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mcard .mcell{padding:10px 12px;background:var(--cream)}
.mcard.mtotal .mcell{background:var(--ivory)}
.mweb{font-size:var(--fs-sm);color:var(--ink-soft)}
.mgo{font-size:13px;font-weight:500;color:var(--slate-deep)}
.pl-webs{gap:12px}
.pl-web{background:var(--ivory);border:1px solid var(--line);border-radius:18px;padding:16px}
.pl-web:hover{border-color:var(--slate);background:var(--ivory)}
.pl-web:active{background:var(--sel-bg);border-color:var(--sel-line)}
.pl-nums{gap:4px 14px}
.mrow{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.mrow b{font-weight:600;white-space:nowrap}
.webjump{max-width:360px;margin-top:2px}
@media (min-width:900px){.mcard .mgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.mgrid.m3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mgrid.m3 .mcell{padding:10px}
.mgrid.m3 .mcell span{letter-spacing:.06em;line-height:1.3}
.rules-explain{margin:0 0 12px;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);color:var(--ink-soft)}
.rules-explain b{color:var(--ink);font-weight:600}
.p2-actions.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:400px){.p2-actions.three{grid-template-columns:1fr 1fr}.p2-actions.three .btn:first-child{grid-column:1/-1}}
/* top bar: chat, notices and refresh are the same quiet 40px circles (Claude, 17 Oct) */
#chatbtn,#gearbtn,#reviewbell{position:relative;width:40px;height:40px;min-width:40px!important;min-height:40px!important;flex:0 0 40px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:999px;border:1px solid var(--line);background:var(--field)}
#chatbtn[aria-current="page"],#gearbtn[aria-current="page"]{background:var(--sel-bg);border-color:var(--sel-line);color:var(--slate-deep)}
#chatbtn svg,#reviewbell svg,#refreshbtn svg{width:19px;height:19px}
.bell-n{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center}
#refreshbtn{margin-left:0}
.search{margin-right:auto}
@media (max-width:600px){.top{gap:6px}.search{min-width:0;flex:1 1 auto}}
.item.is-sel{margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:14px;border-top-color:transparent}
.item.is-sel + .item{border-top-color:transparent}
.head + .tabs{margin-top:-4px}
.photo-pick{margin-top:10px}.photo-pick .btn{flex:1 1 0;min-height:52px;cursor:pointer;position:relative;overflow:hidden}
.form-link{overflow-wrap:anywhere;font-family:var(--sans);color:var(--slate-deep)}
.note:empty{display:none}
/* Public forms (Claude, 17 Oct): the question sits inside its card, the circle sits next to its answer. */
.capture-page fieldset{display:block;padding:18px 16px}
.capture-page fieldset > legend{float:left;width:100%;margin:0 0 12px;padding:0;font-size:17px;font-weight:600;line-height:1.5}
.capture-page fieldset > legend + *{clear:both}
.capture-page fieldset > *:not(legend) + *{margin-top:10px}
.capture-page .permission-row{flex-direction:row-reverse;justify-content:flex-end;gap:14px}
.capture-page .f{font-size:15px;font-weight:600;letter-spacing:0;color:var(--ink)}
/* tables inside cards line up with the card title (Claude, 17 Oct) */
@media (min-width:641px){.card > .tw > table th:first-child,.card > .tw > table td:first-child{padding-left:22px}.card > .tw > table th:last-child,.card > .tw > table td:last-child{padding-right:22px}}
.chat-row .chat-av{display:none}
#reviewbell[aria-current="page"]{background:var(--sel-bg);border-color:var(--sel-line);color:var(--slate-deep)}
/* Parv, 17 Oct 2026: money and big numbers back in the serif he liked (Fraunces, light, slate), everywhere incl. Today. */
.stat .v,.hello .sum b,.total b,.p2-today b,.pl-line.big b,.mcell b{font-family:var(--serif);font-weight:380;letter-spacing:0;font-variant-numeric:tabular-nums}
.stat .v{font-size:30px;line-height:1.1;margin-top:8px;color:var(--slate-deep)}
.total b,.p2-today b{color:var(--slate-deep)}
@media (max-width:767px){.stat .v{font-size:24px}}

/* Home quick buttons (Claude, 17 Oct R2-2): one big Add payment, then equal smaller pills in one row */
.p2-actions{display:flex;flex-direction:column;gap:10px}
.p2-actions > .btn{min-height:50px;font-size:15px}
.p2-small{display:grid;gap:8px;grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
.p2-small.n1{--n:1}.p2-small.n2{--n:2}.p2-small.n3{--n:3}
.p2-small .btn{min-height:44px;padding:8px 6px;justify-content:center}
/* buttons at the foot of a card: a small gap above, even gaps between */
.card-acts{margin-top:14px;gap:8px}
.item.cl{cursor:pointer}
.item.cl:active{background:var(--sel-bg)}
/* tables inside cards: an inset rounded panel that lines up with the card text (Claude, 17 Oct audit) */
.card > .tw.p2-table{margin:0 22px 22px;border:1px solid var(--line-2);border-radius:14px}
.card > .tw.p2-table + .card-sub{margin-top:4px}
.card-sub{font-size:var(--fs-label);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);margin:2px 22px 8px}
.card > .cb + .card-sub{margin-top:-4px}
@media (max-width:640px){.card > .tw.p2-table{margin:0 16px 18px}.card-sub{margin-left:16px;margin-right:16px}}
.prod-stock{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.prod-stock .mgrid{width:100%}
.mgrid.m2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mcell i{font-style:normal;font-size:var(--fs-sm);color:var(--ink-faint);line-height:1.6}
.prod-stock p{margin:0}
/* R2-5 (Parv, 17 Oct): the date picker is a centred rounded card, never full screen */
.p2-dialog.date-card{position:fixed;inset:0;margin:auto;width:min(400px,calc(100vw - 32px));height:fit-content;max-height:calc(100dvh - 48px);border-radius:26px;box-shadow:var(--shadow);border:1px solid var(--line)}
.p2-dialog.date-card .sheet-grip{display:none}
.p2-dialog.date-card .ch{padding:22px 22px 0}
.p2-dialog.date-card .cb{padding:18px 22px 22px}
.p2-dialog.date-card input[type=date]{min-height:52px;font-size:17px!important}
/* Money (Claude, 17 Oct round 2) */
.jumps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px}
.mgrid.m4{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:640px){.mgrid.m4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mcell em{font-style:normal;font-size:12px;color:var(--ink-faint);line-height:1.35}
.mgrid.m3 .mcell b,.mgrid.m4 .mcell b,.mgrid.m2 .mcell b{font-size:20px}
@media (max-width:400px){.mgrid.m3 .mcell b{font-size:17px}}
.pl-p{font-family:var(--serif);font-weight:420;font-size:17px}
.pl-web.mtotal{cursor:default;background:var(--cream-2);border-color:transparent}
.pl-web.mtotal:hover{background:var(--cream-2);border-color:transparent}
.legend span{display:inline-flex;align-items:center}
.ch h2:focus{outline:none}
@media (max-width:480px){.jumps{grid-template-columns:1fr}}
.cb > .subhead + .chart{margin-top:4px}
.cb > .chart + .subhead{margin-top:18px}
.picklist button{min-height:44px;align-items:center}
.picklist .pk-new{border-top:1px solid var(--line-2);border-radius:0 0 10px 10px;margin-top:2px;color:var(--slate-deep);font-weight:600}
.picklist .pk-new:first-child{border-top:0;margin-top:0;border-radius:10px}
.amt-total:empty,.amt-note:empty{display:none}
.amt-total{font-size:13px;font-weight:500;color:var(--ink-soft)}
.amt-note{display:block;font-size:13px;font-weight:500;line-height:1.4;padding:8px 12px;border-radius:12px;letter-spacing:0}
.amt-note.over{background:var(--warn-bg);color:var(--warn)}
.amt-note.under{background:var(--info-bg);color:var(--info)}
/* Amount-different pop-up (R2-19) */
.split-box{display:flex;flex-direction:column;gap:14px}
.split-box p{margin:0}
.split-choices{display:grid;grid-template-columns:1fr;gap:8px}
.split-choices .btn{min-height:46px}
.split-line{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--cream)}
.split-line h3{margin:0;font-family:var(--serif);font-weight:420;font-size:18px}
.split-pending{font-size:var(--fs-sm);color:var(--ink-soft)}
.split-pending:empty{display:none}
.split-counted{font-size:var(--fs-sm);font-weight:600;color:var(--slate-deep);text-align:center}
.acts2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.acts2 .btn{min-height:50px;font-size:15px}
.permission-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;font-size:var(--fs-body);font-weight:400;letter-spacing:0;color:var(--ink)}
.permission-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--slate-deep);flex:none}
/* Photos (R2-10, R2-11) */
.form.one{grid-template-columns:1fr}
.photo-acts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.photo-acts .btn{min-height:50px;font-size:15px;position:relative;overflow:hidden;cursor:pointer;width:100%}
.photo-acts[hidden]{display:none}
#media-editor{display:flex;flex-direction:column;gap:12px;margin-top:16px}
#media-editor[hidden]{display:none}
.ed-stage{position:relative;overflow:hidden;border-radius:14px;background:var(--cream-2);touch-action:none;user-select:none;-webkit-user-select:none}
.ed-stage canvas{display:block;width:100%;height:auto}
.ed-crop{position:absolute;box-shadow:0 0 0 9999px rgba(30,25,35,.45);border:2px solid #fff;cursor:move;touch-action:none}
.ed-crop i{position:absolute;width:26px;height:26px;border:3px solid #fff;border-radius:3px}
.ed-crop i[data-h=nw]{left:-4px;top:-4px;border-right:0;border-bottom:0;cursor:nwse-resize}
.ed-crop i[data-h=ne]{right:-4px;top:-4px;border-left:0;border-bottom:0;cursor:nesw-resize}
.ed-crop i[data-h=sw]{left:-4px;bottom:-4px;border-right:0;border-top:0;cursor:nesw-resize}
.ed-crop i[data-h=se]{right:-4px;bottom:-4px;border-left:0;border-top:0;cursor:nwse-resize}
.ed-help{margin:0}
.ed-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ed-tools .btn{min-height:44px}
.ed-tilt{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
.ed-tilt input{width:100%;accent-color:var(--slate-deep)}
.ed-tilt span{font-variant-numeric:tabular-nums;color:var(--ink)}
.ed-reset{align-self:center;color:var(--ink-soft)}
#media-editor .photo-acts{margin-top:4px}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.photo-tile{display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink-soft);font-size:12.5px}
.photo-tile img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--cream-2);border:1px solid var(--line-2)}
.photo-view img{display:block;max-width:100%;height:auto;border-radius:12px;margin-bottom:14px}
.photo-view .btn{width:100%;min-height:48px}
.ed-crop{outline:1px solid rgba(30,25,35,.35)}
.ed-crop i{filter:drop-shadow(0 0 1.5px rgba(0,0,0,.55))}
/* Form submissions (R2-13) */
.sub-list{display:flex;flex-direction:column;padding-top:8px}
.sub-row{border-top:1px solid var(--line)}
.sub-row:first-child{border-top:0}
.sub-row summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:13px 0}
.sub-row summary::-webkit-details-marker{display:none}
.sub-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sub-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sub-meta{font-size:var(--fs-sm);color:var(--ink-soft);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.sub-row[open] summary{padding-bottom:6px}
.sub-body{display:flex;flex-direction:column;gap:8px;padding:0 0 14px}
.sub-body p{margin:0}
.pager{justify-content:center;gap:10px}
.pager .btn{min-width:120px}
.form > .row.full,.form > .full{grid-column:1/-1}
/* one quiet empty state (R2-12) */
.empty-card{padding:22px;text-align:center}
.empty-card p{margin:0;color:var(--ink-soft);font-size:var(--fs-body)}
/* People filters: chips for steps and products, the count inside each product chip (R2-14) */
.fgroup{display:flex;flex-direction:column;gap:10px}
.fhead{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--ink-soft)}
.fhead .sm-inp{width:auto;padding:7px 36px 7px 12px;font-size:14px;min-height:38px}
.choice.wrap{flex-wrap:wrap}
.choice button .cnt{font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500;color:var(--ink-faint);margin-left:6px}
.choice button[aria-pressed="true"] .cnt{color:rgba(255,255,255,.8)}
/* Calls (design audit 17 Oct): tidy controls, equal row buttons, a calmer WhatsApp button */
.callctl{display:flex;flex-direction:column;gap:12px;max-width:520px}
.callctl .choice button{flex:1 1 0}
.callrow > .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
.callrow > .row .btn{min-width:0;justify-content:center;min-height:42px;padding-left:8px;padding-right:8px}
.btn.wa{background:var(--ivory);color:#167a43;border:1px solid rgba(37,211,102,.5)}
.btn.wa:hover{background:#eefaf2;border-color:var(--wa)}
@media (min-width:641px){.callrow > .row{grid-template-columns:repeat(3,auto)}}
/* Design audit 17 Oct: empty messages sit on the same line as card text, never double padded */
.empty{padding:16px 22px 22px;color:var(--ink-soft);font-size:var(--fs-body)}
.cb .empty,.cb > .muted:only-child{padding:0;margin:0}
@media (max-width:640px){.empty{padding:14px 16px 18px}}
/* money in lists and statements: the same serif as the big numbers (Parv, 17 Oct) */
td.r.num,td.num.r,.mrow b.num,.mrow > b,.pl-line b,.p2-number{font-family:var(--serif);font-weight:430;font-size:16.5px;letter-spacing:0;font-variant-numeric:tabular-nums}
td.r.num,.mrow b.num,.mrow > b,.p2-number{color:var(--slate-deep)}
.pl-line b{font-size:17px}
.cb > .callrow{padding-left:0;padding-right:0}
.cb > .callrow:first-child{border-top:0;padding-top:4px}
.cb > .callrow + .callrow{border-top:1px solid var(--line)}
/* a card with only a title and a line keeps the same breathing room at the bottom as at the top */
.card > .ch:last-child{padding-bottom:20px}
@media (max-width:640px){.card > .ch:last-child{padding-bottom:18px}}
@media (max-width:640px){.teamacts{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;width:100%}.teamacts .btn{width:100%;min-height:42px}.teamacts .inp{grid-column:1/-1;width:100%!important}}
/* person page actions (design audit 17 Oct) */
.profile-acts{display:flex;flex-direction:column;gap:10px;max-width:520px}
.profile-acts > .btn.pri{min-height:50px;font-size:15px}
.pa-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pa-grid .btn{min-height:44px;width:100%;justify-content:center}
/* laptop (design audit 17 Oct) */
@media (min-width:641px){
  .callrow > .row{grid-template-columns:repeat(3,112px);justify-content:end}
  .callctl{flex-direction:row;align-items:flex-end;max-width:none}
  .callctl .f{width:320px}
  .callctl .choice{flex:0 0 auto}
  .callctl .choice button{flex:0 0 auto;min-height:46px}
}
@media (min-width:900px){
  .p2-actions{flex-direction:row}
  .p2-actions > .btn{flex:1.3 1 0;min-height:46px}
  .p2-small{flex:3 1 0}
  .p2-small .btn{min-height:46px}
}
/* form footers (design audit 17 Oct): Cancel left, Save right, equal widths on a phone, like every pop-up */
.row:has(> .btn[data-save]) > .btn[data-cancel]{order:-1}
@media (max-width:640px){.row:has(> .btn[data-save]){display:grid;grid-template-columns:1fr 1fr;gap:10px}.row:has(> .btn[data-save]) > .btn{min-height:48px;width:100%}}
.row:has(> .btn[data-savecall]) > .btn[data-log],.row:has(> .btn[data-work-save]) > .btn[data-work-close],.row:has(> .btn[data-list-save]) > .btn[data-work-close]{order:-1}
@media (max-width:640px){.row:has(> .btn[data-savecall]),.row:has(> .btn[data-work-save]),.row:has(> .btn[data-list-save]){display:grid;grid-template-columns:1fr 1fr;gap:10px}.row:has(> .btn[data-savecall]) > .btn,.row:has(> .btn[data-work-save]) > .btn,.row:has(> .btn[data-list-save]) > .btn{min-height:48px;width:100%}}
