/* SharksAPI client app — the self-serve client's own dashboard (Dashboard::clientApproves()).
   Design: Diana's prototype sharksapi-client-v20 (13.10.2026), ported as is; additions for the
   server-rendered pages are at the end. Used only by resources/views/dashboards/client/*. */
:root{
  --paper:#F7F4ED; --paper-alt:#EDE7D9; --card:#FFFDF8; --ink:#152625; --body:#4A5553; --muted:#6B7472; --faint:#9A937F;
  --hair:#D8D2C4; --hair-2:#E8E2D4; --teal:#0C5B55; --teal-soft:#DDEBE6; --teal-mid:#7FB5AE; --coral:#E4572E; --coral-soft:#FBE3DA;
  --good:#1E7A55; --good-soft:#DCEFE4; --warn:#B26A0E; --warn-soft:#F6E7CF; --neutral-soft:#ECE8DE;
  --c-seo:#0E9384; --c-gads:#3366CC; --c-yt:#D13B3B; --c-local:#D08A1C; --c-meta:#8B5BD6; --c-gpt:#2A9D3A; --c-social:#E05A86; --c-web:#7A8B3A;
  --f-display:"Instrument Serif", Georgia, "Times New Roman", serif;
  --f-body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --r:14px; --r-sm:10px;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--f-body);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:6px}
h1,h2,h3{margin:0;font-weight:400;text-wrap:balance}
p{margin:0}
.num{font-variant-numeric:tabular-nums}
.serif{font-family:var(--f-display)}
.eyebrow{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:500}


/* shell */
.shell{display:block;min-height:100%}
.rail{display:none}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--hair-2)}
.logo-mark{width:30px;height:30px;flex:none;display:block}
.biz{min-width:0}
.biz b{display:block;font-weight:600;font-size:14.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.biz span{font-size:12px;color:var(--muted)}
.team-btn{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:4px 12px 4px 4px;font-size:13px;font-weight:500}
.avatars{display:flex}
.av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;color:#fff;border:2px solid var(--card);margin-left:-7px}
.avatars .av:first-child{margin-left:0}
.main{padding:20px 16px calc(96px + env(safe-area-inset-bottom,0px));max-width:820px;margin:0 auto;display:grid;gap:22px}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--card);border-top:1px solid var(--hair);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
.tab{border:0;background:transparent;display:grid;justify-items:center;gap:2px;padding:6px 2px;border-radius:10px;font-size:11.5px;color:var(--muted);position:relative}
.tab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tab[aria-current="page"]{color:var(--teal);font-weight:600}
.badge{position:absolute;top:2px;left:calc(50% + 6px);min-width:18px;height:18px;border-radius:9px;background:var(--coral);color:#fff;font-size:11px;font-weight:600;display:grid;place-items:center;padding:0 5px}
.badge[hidden]{display:none}

@media (min-width:960px){
  .shell{display:grid;grid-template-columns:248px minmax(0,1fr)}
  .topbar,.tabbar{display:none}
  .rail{display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;padding:20px 14px;border-right:1px solid var(--hair-2);background:var(--paper)}
  .rail .brand{display:flex;align-items:center;gap:10px;padding:2px 8px 18px}
  .rail .brand b{font-weight:600;font-size:15px}
  .rail .biz{padding:10px 10px 14px;margin-bottom:6px;border-bottom:1px solid var(--hair-2)}
  .rail .tab{grid-template-columns:22px 1fr;justify-items:start;align-items:center;gap:12px;padding:10px 12px;font-size:14.5px;color:var(--body)}
  .rail .tab[aria-current="page"]{background:var(--teal-soft);color:var(--teal)}
  .rail .badge{position:static;margin-left:auto}
  .rail .tab{display:flex}
  .rail .tab span.lbl{flex:1;text-align:left}
  .rail .spacer{flex:1}
  .rail .team-btn{margin:0;width:100%;justify-content:flex-start;padding:8px 12px 8px 8px;border-radius:12px}
  .main{padding:32px 32px 48px}
}

/* type */
.hello h1{font-family:var(--f-display);font-size:clamp(30px,6vw,40px);line-height:1.08;letter-spacing:-.01em}
.hello h1 em{color:var(--teal)}
.hello p{margin-top:8px;color:var(--body);max-width:60ch}
.sec-h{display:flex;align-items:baseline;gap:10px;justify-content:space-between;flex-wrap:wrap}
.sec-h h2{font-family:var(--f-display);font-size:25px;line-height:1.15}
.sec-h .note{font-size:12.5px;color:var(--muted)}
.note{font-size:13px;color:var(--muted)}
.lead{color:var(--body);max-width:62ch}

/* surfaces */
.card{background:var(--card);border:1px solid var(--hair-2);border-radius:var(--r);padding:18px}
.stack{display:grid;gap:12px}
.panel{background:var(--paper-alt);border-radius:var(--r);padding:18px}

/* results */
.results{display:grid;gap:16px}
.big3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.big3 > div{min-width:0}
.k{font-size:12px;color:var(--muted)}
.v{font-family:var(--f-display);font-size:clamp(30px,8vw,42px);line-height:1;margin-top:4px}
.d{font-size:12.5px;margin-top:6px;color:var(--body)}
.chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:500;white-space:nowrap}
.chip.good{background:var(--good-soft);color:var(--good)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.neutral{background:var(--neutral-soft);color:var(--body)}
.chip.teal{background:var(--teal-soft);color:var(--teal)}
.chip.coral{background:var(--coral-soft);color:#A8361A}
.split-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;gap:2px;background:var(--hair-2)}
.split-bar i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--body)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.explain{font-size:12.5px;color:var(--muted);border-top:1px solid var(--hair-2);padding-top:12px}
@media (max-width:420px){.big3{grid-template-columns:1fr 1fr}.big3 > div:first-child{grid-column:1/-1}}

/* needs-you preview */
.need{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--hair-2);border-radius:var(--r-sm);background:var(--card)}
.need .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:13px;font-weight:600}
.need b{font-weight:600;display:block;line-height:1.3}
.need span{font-size:12.5px;color:var(--muted)}
.btn{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:9px 16px;font-weight:500;font-size:14px;color:var(--ink);white-space:nowrap}
.btn.primary{background:var(--coral);border-color:var(--coral);color:#fff}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.ghost{background:transparent;border-color:transparent;color:var(--teal);padding-inline:8px}
.btn.sm{padding:6px 12px;font-size:13px}
.btn:hover{filter:brightness(.97)}

/* activity */
.feed{display:grid}
.feed .it{display:grid;grid-template-columns:10px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--hair-2)}
.feed .it:first-child{border-top:0;padding-top:4px}
.dotc{width:10px;height:10px;border-radius:50%;margin-top:6px}
.feed b{font-weight:600}
.feed .meta{font-size:12px;color:var(--muted);margin-bottom:2px}
.feed .eff{font-size:13.5px;color:var(--body);margin-top:3px}

/* channel rows */
.chrow{display:grid;grid-template-columns:minmax(0,1fr) 92px auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--hair-2);background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;width:100%}
.chrow:first-of-type{border-top:0}
.chrow .nm{display:flex;align-items:center;gap:8px;font-weight:500}
.chrow .nm i{width:9px;height:9px;border-radius:50%}
.chrow small{display:block;font-size:12px;color:var(--muted);font-weight:400}
.chrow .val{text-align:right;min-width:62px}
.chrow .val b{display:block;font-family:var(--f-display);font-size:24px;line-height:1;font-weight:400}
.spark{width:92px;height:30px;display:block}

/* credits */
.credits .bar{height:10px;border-radius:5px;background:var(--hair-2);overflow:hidden;display:flex}
.credits .bar i{display:block;height:100%}
.cred-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.cred-top .v{font-size:34px}

/* decisions */
.dec{background:var(--card);border:1px solid var(--hair-2);border-radius:var(--r);overflow:hidden}
.dec-h{padding:16px 18px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dec-b{padding:10px 18px 18px;display:grid;gap:14px}
.dec h3{font-family:var(--f-display);font-size:23px;line-height:1.2}
.why{color:var(--body)}
.happens{display:grid;gap:8px;background:var(--paper);border-radius:var(--r-sm);padding:12px 14px;font-size:13.5px}
.happens div{display:grid;grid-template-columns:118px minmax(0,1fr);gap:10px}
.happens dt,.happens .lbl{color:var(--muted)}
@media (max-width:420px){.happens div{grid-template-columns:1fr;gap:0}}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.acts .btn.primary{flex:1 1 160px}
.change{display:grid;gap:8px}
.change textarea{width:100%;min-height:84px;border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 12px;background:var(--paper);resize:vertical}
.qchips{display:flex;flex-wrap:wrap;gap:6px}
.qchips button{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:4px 11px;font-size:12.5px}
.budget-vis{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;text-align:center}
.budget-vis .box{border:1px solid var(--hair);border-radius:var(--r-sm);padding:12px 8px}
.budget-vis .box.new{border-color:var(--teal);background:var(--teal-soft)}
.budget-vis b{display:block;font-family:var(--f-display);font-size:30px;line-height:1.05;font-weight:400}
.budget-vis small{font-size:12px;color:var(--muted)}
.arrow{color:var(--muted);font-size:20px}
.post{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
@media (min-width:600px){.post{grid-template-columns:200px minmax(0,1fr)}}
.photo{aspect-ratio:4/5;max-width:100%;border-radius:var(--r-sm);position:relative;overflow:hidden;background:linear-gradient(180deg,#E9E1D2 0 46%,#CFC3AE 46% 100%)}
.photo .half{position:absolute;inset:0 50% 0 0;background:linear-gradient(180deg,#B9B1A2 0 46%,#8F8574 46% 100%);filter:saturate(.5)}
.photo .cab{position:absolute;left:8%;right:8%;top:18%;height:20%;background:repeating-linear-gradient(90deg,#F5F1E8 0 22%,#DDD4C3 22% 23%);border-radius:3px;box-shadow:0 2px 0 rgba(0,0,0,.06)}
.photo .half + .cab{z-index:1}
.photo .isl{position:absolute;left:20%;right:20%;bottom:16%;height:16%;background:#2F5D57;border-radius:3px;box-shadow:inset 0 6px 0 #F2EEE6}
.photo .tag{position:absolute;top:8px;font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,253,248,.9);color:var(--ink);padding:2px 7px;border-radius:999px}
.photo .t1{left:8px}.photo .t2{right:8px}
.cap-tabs{display:flex;gap:6px}
.cap-tabs button{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:4px 12px;font-size:12.5px}
.cap-tabs button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cap{white-space:pre-line;font-size:14px;color:var(--body);background:var(--paper);border-radius:var(--r-sm);padding:12px 14px;min-height:96px}
.cap .ht{color:var(--teal)}
.diff{display:grid;gap:8px;font-size:13.5px}
.diff .old,.diff .new{border-radius:var(--r-sm);padding:10px 12px}
.diff .old{background:var(--neutral-soft);color:var(--muted)}
.diff .new{background:var(--teal-soft);color:var(--ink)}
.diff .lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;display:block;margin-bottom:4px;color:var(--muted)}
.price{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin-top:6px}
.done-card{display:flex;gap:12px;align-items:center;padding:14px 18px;background:var(--good-soft);border-radius:var(--r);color:var(--good);font-weight:500}
.hist .it{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px 0;border-top:1px solid var(--hair-2)}
.hist .it:first-child{border-top:0}
.hist small{display:block;color:var(--muted);font-size:12.5px}

/* plan */
.goalbar{height:14px;border-radius:7px;background:var(--hair-2);position:relative;overflow:hidden}
.goalbar i{position:absolute;inset:0 auto 0 0;background:var(--teal);border-radius:7px}
.goalnums{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-top:6px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kpi{background:var(--card);border:1px solid var(--hair-2);border-radius:var(--r-sm);padding:14px}
.kpi .v{font-size:30px}
.kpi .mini{height:6px;border-radius:3px;background:var(--hair-2);margin-top:10px;overflow:hidden}
.kpi .mini i{display:block;height:100%;background:var(--teal)}
.kpi.behind .mini i{background:var(--warn)}
.months{display:grid;gap:10px}
.month{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding-top:12px;border-top:1px solid var(--hair-2)}
.month:first-child{border-top:0;padding-top:0}
.month h4{margin:0;font-family:var(--f-display);font-weight:400;font-size:20px}
.month ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14px;color:var(--body)}
.month li{display:flex;gap:8px;align-items:baseline}
.month li i{width:8px;height:8px;border-radius:50%;flex:none;transform:translateY(-1px)}

/* channels */
.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips button{flex:none;border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:7px 14px;font-size:13.5px;display:inline-flex;align-items:center;gap:7px}
.chips button i{width:8px;height:8px;border-radius:50%}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.spec{display:flex;gap:12px;align-items:center}
.spec .av{width:40px;height:40px;font-size:13px;margin:0;border:0;color:#fff;font-weight:600}
.spec b{font-weight:600;display:block}
.spec span{font-size:12.5px;color:var(--muted)}
.m3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.m3 > div{min-width:0}
.m3 .v{font-size:30px}
.chart{width:100%;height:150px;display:block}
.chart text{font:11px var(--f-body);fill:var(--muted)}
.changes .it{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--hair-2)}
.changes .it:first-child{border-top:0}
.measure{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}

/* settings */
.preset{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:16px;border:1px solid var(--hair);border-radius:var(--r);background:var(--card);text-align:left;width:100%}
.preset[aria-checked="true"]{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal);background:color-mix(in srgb,var(--teal-soft) 45%,var(--card))}
.radio{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--hair);margin-top:2px;display:grid;place-items:center}
.preset[aria-checked="true"] .radio{border-color:var(--teal)}
.preset[aria-checked="true"] .radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--teal)}
.preset b{font-weight:600;display:block}
.preset .ex{font-size:13px;color:var(--body);margin-top:6px;padding-left:10px;border-left:2px solid var(--hair)}
.always{display:grid;gap:6px;font-size:13.5px;color:var(--body);margin:0;padding-left:18px}
.limits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.limits label{display:grid;gap:4px;font-size:12.5px;color:var(--muted)}
.limits input{border:1px solid var(--hair);border-radius:var(--r-sm);padding:9px 12px;background:var(--paper);font-size:15px;color:var(--ink);width:100%}
.conn{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--hair-2)}
.conn:first-of-type{border-top:0}
.conn b{font-weight:500}
.conn small{display:block;color:var(--muted);font-size:12.5px}
.raw{margin:6px 0 0;padding:8px 10px;background:var(--paper);border-radius:var(--r-sm);display:grid;gap:4px;font:12.5px/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--body);overflow-wrap:anywhere}
.p2note{font-size:12px;color:var(--muted)}
details summary{cursor:pointer;color:var(--teal);font-weight:500;list-style:none}
details summary::-webkit-details-marker{display:none}

/* onboarding */
.steps{display:grid;gap:0}
.step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--hair-2)}
.step:first-child{border-top:0;padding-top:0}
.step .n{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--hair);display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--muted)}
.step.done .n{background:var(--teal);border-color:var(--teal);color:#fff}
.step.now .n{border-color:var(--coral);color:var(--coral)}
.step b{font-weight:600}
.step p{font-size:13.5px;color:var(--body);margin-top:2px}
.step .acts{margin-top:10px}
.mtbl{display:grid}
.mrow{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,.7fr)) minmax(0,.6fr);gap:10px;align-items:baseline;padding:11px 0;border-top:1px solid var(--hair-2);text-align:right;background:none;border-left:0;border-right:0;border-bottom:0;width:100%;font-size:14px}
.mrow.h{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-top:0;padding-top:0}
.mrow>*:first-child{text-align:left}
.mrow .nm{display:flex;gap:8px;align-items:center;font-weight:500}.mrow .nm i{width:9px;height:9px;border-radius:50%;flex:none}
.mrow .mean{grid-column:1/-1;text-align:left;font-size:12.5px;color:var(--muted);margin-top:-4px}
.mrow.tot{font-weight:600;border-top:1.5px solid var(--hair)}
.mrow .inc{font-size:12px;color:var(--muted)}
@media (max-width:620px){.mrow{grid-template-columns:minmax(0,1fr) auto;row-gap:2px}.mrow.h{display:none}.mrow .c-sp,.mrow .c-ld,.mrow .c-cpl,.mrow .c-ch{display:none}.mrow .mob{display:block}}
.mrow .mob{display:none;text-align:right;font-size:13px}
@media (max-width:620px){.mrow .mob{display:block}}
.l1{display:grid;gap:14px}
.m4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.m4>div{min-width:0}.m4 .v{font-size:clamp(24px,6vw,34px)}
@media (max-width:620px){.m4{grid-template-columns:1fr 1fr}}
.alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;background:var(--warn-soft);color:#7A4A08;border-radius:var(--r-sm);padding:10px 12px;font-size:13.5px}
.alert b{font-weight:600}
.meaning{font-size:15px;color:var(--ink);border-left:3px solid var(--teal-mid);padding-left:12px}
.nextl{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px;background:var(--paper);border-radius:var(--r-sm);padding:10px 12px}
.ploc{display:grid;gap:6px}
.full-h{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.fsec{display:grid;gap:14px}
.fsec>h2{font-family:var(--f-display);font-size:24px}
.fsec>.lead{margin-top:-8px}
.mean-l{font-size:13px;color:var(--body);background:var(--paper);border-radius:8px;padding:8px 10px}
.mean-l b{font-weight:600}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.tiles>div{background:var(--paper);border-radius:var(--r-sm);padding:10px 12px;min-width:0}
.tiles .v{font-size:28px}
.per{display:inline-flex;border:1px solid var(--hair);border-radius:999px;background:var(--card);padding:3px;gap:2px;max-width:100%;overflow-x:auto}
.per button{border:0;background:transparent;border-radius:999px;padding:6px 12px;font-size:13px;color:var(--body);white-space:nowrap}
.per button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.perbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* charts */
.tip{position:fixed;z-index:80;pointer-events:none;background:var(--ink);color:var(--paper);font-size:12.5px;line-height:1.35;padding:6px 9px;border-radius:8px;max-width:240px;box-shadow:0 4px 14px rgba(21,38,37,.18)}
.donut-w{display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center}
@media (max-width:420px){.donut-w{grid-template-columns:120px minmax(0,1fr);gap:12px}}
.donut{width:100%;height:auto;display:block}
.donut text{fill:var(--ink);font-family:var(--f-display)}
.donut .sm{font:12px var(--f-body);fill:var(--muted)}
.dleg{display:grid;gap:7px;font-size:13.5px}
.dleg div{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:8px;align-items:center}
.dleg i{width:10px;height:10px;border-radius:3px}
.dleg span:not(.pc){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dleg .pc{color:var(--muted);font-size:12.5px;min-width:36px;text-align:right}
.hb{display:grid;gap:9px}
.hb .r{display:grid;grid-template-columns:minmax(90px,38%) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.hb .tr{height:12px;background:var(--hair-2);border-radius:4px;overflow:hidden}
.hb .tr i{display:block;height:100%;border-radius:0 4px 4px 0}
.hb .lb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc{display:grid;gap:8px}
.tc-tabs{display:flex;gap:4px;flex-wrap:wrap}
.tc-tabs button{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:5px 11px;font-size:12.5px;color:var(--body)}
.tc-tabs button[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.lc{width:100%;height:180px;display:block}
.lc text{font:11px var(--f-body);fill:var(--muted)}
.stk{width:100%;height:190px;display:block}
.stk text{font:11px var(--f-body);fill:var(--muted)}
.glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.gl{display:grid;gap:4px;text-align:left;background:var(--card);border:1px solid var(--hair-2);border-radius:var(--r-sm);padding:12px;border-top:3px solid var(--cc)}
.gl .nm{font-size:12.5px;color:var(--muted)}
.gl .v{font-size:30px;margin:0}
.gl .spark{width:100%;height:30px}
.two{display:grid;gap:22px}
@media (min-width:760px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}}
.pair{grid-column:1/-1;display:grid;gap:22px}
@media (min-width:1280px){.pair{grid-template-columns:minmax(0,1fr) 340px;align-items:start}}
.pair>section{grid-column:auto!important}
.choice{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:10px}
.choice button{display:grid;gap:2px;text-align:left;border:1px solid var(--hair);background:var(--card);border-radius:var(--r-sm);padding:12px 14px}
.choice button b{font-size:14px}.choice button span{font-size:12.5px;color:var(--muted)}
.choice button[aria-pressed="true"]{border-color:var(--teal);background:var(--teal-soft)}
.brand-top{display:grid;gap:16px}
@media (min-width:700px){.brand-top{grid-template-columns:200px minmax(0,1fr)}}
.blogo{aspect-ratio:3/2;max-width:100%;border-radius:var(--r-sm);background:#F4EEE4;border:1px solid var(--hair-2);display:grid;place-items:center;text-align:center;color:#1F3A4D;font:600 13px/1.2 Georgia,serif;letter-spacing:.18em}
.blogo small{display:block;font:500 9px var(--f-body);letter-spacing:.3em;color:#B5835A;margin-top:4px}
.sw{display:flex;gap:8px;flex-wrap:wrap}
.sw span{display:grid;gap:4px;font-size:11.5px;color:var(--muted);text-align:center}
.sw i{width:44px;height:44px;border-radius:10px;border:1px solid var(--hair-2);display:block}
.src{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.kv{display:grid;gap:10px}
.kv>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;font-size:14px}
.kv dt{color:var(--muted)}.kv dd{margin:0}
@media (max-width:420px){.kv>div{grid-template-columns:1fr;gap:0}}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.ex{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.ex figure{margin:0;display:grid;gap:4px;font-size:12px;color:var(--muted)}
.ex .im{aspect-ratio:1;border-radius:var(--r-sm);background-size:cover;background-position:center;border:1px solid var(--hair-2)}
.ex label.add{aspect-ratio:1;border:1.5px dashed var(--hair);border-radius:var(--r-sm);display:grid;place-items:center;text-align:center;color:var(--teal);font-size:13px;font-weight:500;cursor:pointer;padding:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dates .it{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--hair-2)}
.dates .it:first-child{border-top:0}
.dates .it b{font-weight:600}
.dform{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.dform input{border:1px solid var(--hair);border-radius:10px;padding:9px 12px;background:var(--card);min-width:0}
.empty{border:1.5px dashed var(--hair);border-radius:var(--r);padding:18px;display:grid;gap:6px;color:var(--body)}
.empty b{color:var(--ink);font-weight:600}

/* sheet */
.scrim{position:fixed;inset:0;background:rgba(21,38,37,.28);z-index:50}
.sheet{position:fixed;z-index:60;left:0;right:0;bottom:0;max-height:88vh;background:var(--card);border-radius:20px 20px 0 0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -8px 40px rgba(21,38,37,.18)}
@media (min-width:960px){.sheet{left:auto;right:24px;bottom:24px;top:24px;width:420px;max-height:none;border-radius:20px}}
.sheet-h{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--hair-2)}
.sheet-h h2{font-family:var(--f-display);font-size:24px}
.x{margin-left:auto;border:1px solid var(--hair);background:var(--card);width:34px;height:34px;border-radius:50%;font-size:18px;line-height:1}
.sheet-b{overflow-y:auto;padding:16px 18px;display:grid;gap:16px;align-content:start}
.members{display:grid;gap:10px}
.member{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center}
.member .av{width:36px;height:36px;margin:0;border:0;font-size:12px}
.member b{font-weight:600;font-size:14px;display:block}
.member span{font-size:12px;color:var(--muted)}
.member>.note{max-width:40%;text-align:right;justify-self:end}
.ai-tag{font-size:10px;font-weight:600;letter-spacing:.06em;border:1px solid var(--hair);border-radius:4px;padding:0 4px;color:var(--muted);margin-left:4px;vertical-align:1px}
.thread{display:grid;gap:10px}
.msg{max-width:88%;padding:10px 12px;border-radius:14px;font-size:14px;line-height:1.45}
.msg.me{justify-self:end;background:var(--teal);color:#fff;border-bottom-right-radius:4px}
.msg.them{background:var(--paper);border-bottom-left-radius:4px}
.msg small{display:block;font-size:11px;opacity:.75;margin-top:4px}
.composer{display:grid;gap:8px;padding:12px 18px;border-top:1px solid var(--hair-2)}
.crow{display:flex;gap:8px}
.ctxrow:empty{display:none}
.ctx{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--hair);border-radius:999px;padding:3px 6px 3px 10px;font-size:12.5px;background:var(--paper)}
.ctx i{width:8px;height:8px;border-radius:50%}
.ctx button{border:0;background:transparent;font-size:14px;line-height:1;color:var(--muted);padding:0 4px}
.msg .by{display:flex;gap:6px;align-items:center;font-size:11.5px;font-weight:600;margin-bottom:4px;color:var(--ink)}
.msg .by .av{width:22px;height:22px;font-size:8px;margin:0;border:0}
.msg .about{display:inline-block;font-size:11px;border-radius:999px;padding:0 7px;margin-bottom:5px;background:rgba(255,255,255,.18)}
.msg.them .about{background:var(--neutral-soft);color:var(--body)}
.route{justify-self:center;font-size:11.5px;color:var(--muted);text-align:center}
.who summary{font-size:13.5px}
.composer input{flex:1;min-width:0;border:1px solid var(--hair);border-radius:999px;padding:10px 14px;background:var(--paper)}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:70;background:var(--teal);color:#fff;padding:10px 16px;border-radius:999px;font-size:14px;box-shadow:0 6px 24px rgba(21,38,37,.2);max-width:calc(100% - 32px)}
@media (min-width:960px){.toast{bottom:28px}}
[hidden]{display:none!important}
.view[hidden]{display:none}
.view{display:grid;gap:22px;align-content:start;min-width:0}.view>*{min-width:0}
.main{min-width:0}
@media (min-width:960px){.main{max-width:none;padding-inline:40px}.view.narrow{max-width:960px}}
@media (min-width:1500px){.xgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.cols{grid-template-columns:minmax(0,1fr) 400px}}
.cols{display:grid;gap:22px}
.cols>div{display:grid;gap:22px;align-content:start;min-width:0}
@media (min-width:960px){.cols{grid-template-columns:minmax(0,1fr) 360px;gap:28px}}
.goal{display:grid;gap:10px}
.goal .gt{font-family:var(--f-display);font-size:22px;line-height:1.15}
.xgrid{display:grid;gap:22px;align-items:start}
@media (min-width:960px){.xgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
@media (min-width:960px){.tbl{font-size:13.5px}.tbl td{padding:7px 0 7px 10px}}
.tbl th{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;text-align:right;padding:0 0 8px 10px}
.tbl th:first-child,.tbl td:first-child{text-align:left;padding-left:0}
.tbl td{padding:9px 0 9px 10px;border-top:1px solid var(--hair-2);text-align:right;vertical-align:top}
.tbl td:first-child{overflow-wrap:anywhere}
.tbl td small{display:block;color:var(--muted);font-size:12px}
.tbl tr.more{display:none}.tbl.all tr.more{display:table-row}
.up{color:var(--good)}.down{color:var(--warn)}
.pace{height:8px;border-radius:4px;background:var(--hair-2);overflow:hidden;position:relative}.pace i{display:block;height:100%}
.pace b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}
.stars{color:var(--c-local);letter-spacing:1px}
/* content calendar */
.wk-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}
.stat-legend{display:flex;flex-wrap:wrap;gap:6px}
.days{display:grid;gap:18px}
.day h3{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-family:var(--f-body);font-weight:500;margin-bottom:8px}
.day.today h3{color:var(--teal);font-weight:600}
.day .empty-d{font-size:13px;color:var(--faint);padding:6px 0}
.ci{display:grid;gap:6px;background:var(--card);border:1px solid var(--hair-2);border-left:4px solid var(--cc,var(--teal));border-radius:var(--r-sm);padding:11px 12px;margin-bottom:8px}
.ci .top{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.ci b{font-weight:600;line-height:1.3;font-size:14px}
.ci p{font-size:13px;color:var(--body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ci .acts{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.day,.ci{min-width:0}.ci .chip,.ci .acts .btn{white-space:normal;text-align:left}.ci .acts .btn.primary{text-align:center}
.ci.stopped{opacity:.6}.ci.stopped b{text-decoration:line-through}
@media (min-width:960px){
  .days{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;align-items:start}
  .day{background:var(--paper-alt);border-radius:var(--r-sm);padding:10px 8px;min-height:340px}
  .day.today{background:var(--teal-soft)}
  .ci{padding:9px 10px}.ci b{font-size:13px}.ci p{font-size:12px;-webkit-line-clamp:3}
  .ci .acts .btn{padding:4px 8px;font-size:12px}
}

.declay{display:grid;gap:22px;align-items:start}
@media (min-width:1280px){.declay{grid-template-columns:minmax(0,1fr) 380px}.decside{position:sticky;top:20px}}
@media (min-width:1720px){#dec-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}
.dgl{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.dgl button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;align-items:start;width:100%;padding:8px;border-radius:8px}
.dgl button:hover,.dgl button:focus-visible{background:var(--paper)}
.dgl i{width:10px;height:10px;border-radius:50%;margin-top:5px}
.dgl b{display:block;font-weight:600;font-size:14px;line-height:1.3}.dgl small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.dec.flash{box-shadow:0 0 0 2px var(--teal)}
.setgrid{display:grid;gap:22px}
@media (min-width:1280px){.setgrid{display:block;columns:2;column-gap:22px}.setgrid>*{break-inside:avoid;margin-bottom:22px}}
@media (min-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1720px){.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (min-width:960px){.months{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.month{grid-template-columns:1fr;gap:8px;border-top:0;padding:4px 22px 4px 22px;border-left:1px solid var(--hair-2)}.month:first-child{border-left:0;padding-left:0;padding-top:4px}}
.preset .ex{display:block}
.xgrid{align-items:stretch}.xgrid>*,.pair>*{min-width:0}.xgrid>.card>*,.pair>.card>*{min-width:0;max-width:100%}
.xgrid>.card,.pair>.card{display:flex;flex-direction:column}
.xgrid>.card>.mean-l,.pair>.card>.mean-l{margin-top:auto}
.xgrid>.card>.acts:last-child{margin-top:auto}
@media (min-width:1280px){.pair{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}
.askline .al-h{flex:none}
@media (max-width:620px){.askline .al-h{display:none}}
.sf{border:1px solid transparent;cursor:pointer;font:inherit;font-size:12px}
.sf[aria-pressed="true"]{border-color:currentColor;box-shadow:0 0 0 1px currentColor}
@media (min-width:960px){.mtl{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:10px}.mtl .it{grid-template-columns:1fr;border-top:2px solid var(--hair-2)!important;padding:16px 18px 0 0!important;position:relative}.mtl .dotc{position:absolute;top:-6px;left:0;margin:0}}
.xgrid .dform2{grid-template-columns:repeat(2,minmax(0,1fr))}.xgrid .dform2 label.w{grid-column:1/-1}
.gm{font-size:10.5px}
.setcols{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}.setcols>*{min-width:0}
@media (max-width:560px){.tbl.chat,.tbl.chat tbody,.tbl.chat tr,.tbl.chat td{display:block}.tbl.chat tr{padding:8px 0;border-top:1px solid var(--hair-2)}.tbl.chat tr:first-child{border-top:0}.tbl.chat td{padding:0;border:0}.tbl.chat td+td{margin-top:6px}.tbl.chat .per{display:flex;width:max-content;max-width:100%}}
@media (min-width:1280px){.setcols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tbl.chat td{padding:8px 6px;vertical-align:middle}.tbl.chat td:first-child{text-align:left;white-space:nowrap}
.nmc{display:inline-flex;gap:8px;align-items:center}.nmc i{width:9px;height:9px;border-radius:50%}
.lvl button{padding:5px 10px;font-size:12.5px}
.ppl{display:grid;gap:4px}
.prow{display:grid;grid-template-columns:34px minmax(0,1fr) auto 22px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--hair-2)}.prow:first-child{border-top:0}
.prow .av{width:34px;height:34px;margin:0;border:0;font-size:12px}
.prow b{font-weight:600;display:block;font-size:14px}.prow small{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.invf{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
@media (max-width:560px){.invf{grid-template-columns:1fr}.prow .chip{display:none}.prow{grid-template-columns:34px minmax(0,1fr) 22px}.prow .prole{grid-column:2;grid-row:2;min-width:0}.prow .prm{grid-column:3;grid-row:1}}
.gate.on{border-left:4px solid var(--good,#2f7d4f)}.gate.off{border-left:4px solid var(--coral)}
.bcard .sec-h{align-items:flex-start;flex-wrap:nowrap}
.bcard .sec-h>.chip{flex-shrink:0}
.bcard.editing{box-shadow:0 0 0 2px var(--teal)}
.bcard [contenteditable="true"]{outline:1px dashed var(--teal);outline-offset:3px;border-radius:4px;background:var(--teal-soft)}
.lgs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lg{border-radius:var(--r-sm);display:grid;place-items:center;min-height:110px;border:1px solid var(--hair-2)}
.lg.lt{background:#F4EEE4;color:#1F3A4D}.lg.dk{background:#1F3A4D;color:#F4EEE4}
.wm{font:600 18px/1.2 Georgia,serif;letter-spacing:.22em;text-align:center}.wm small{display:block;font:500 9px/1.6 var(--f-body);letter-spacing:.3em}
.files{display:flex;flex-wrap:wrap;gap:6px}
.sw5{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px}
.sw1{display:grid;gap:2px;font-size:13px;align-content:start}.sw1 i{display:block;height:54px;border-radius:8px;border:1px solid var(--hair-2);margin-bottom:4px}.sw1 b{font-weight:600}.sw1 small{color:var(--muted);font-size:12px}
.fnt{display:grid;gap:12px}.fh{font:500 26px/1.2 'Playfair Display',Georgia,serif;color:var(--ink)}.fb{font:15px/1.5 Lato,var(--f-body);color:var(--body)}
.scl{display:grid;grid-template-columns:70px auto 70px;gap:10px;align-items:center;font-size:12.5px;color:var(--muted)}.scl span:last-child{text-align:left}.scl span:first-child{text-align:right}
.dots{display:flex;gap:6px}.dots i{width:12px;height:12px;border-radius:50%;background:var(--hair-2)}.dots i.on{background:var(--teal)}
.exs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exs>div{border-radius:var(--r-sm);padding:10px 12px;display:grid;gap:4px;font-size:13.5px}.exs .yes{background:var(--teal-soft)}.exs .no{background:var(--coral-soft)}
@media (max-width:560px){.exs,.lgs{grid-template-columns:1fr}}
.ibank{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.ibank figure{margin:0;display:grid;gap:6px}.ibank figcaption{display:grid;gap:4px;font-size:12.5px;color:var(--body)}.ibank figcaption .chip{justify-self:start;white-space:normal}
.ibank .add{display:grid;place-items:center;border:1px dashed var(--hair);border-radius:8px;min-height:110px;color:var(--teal);font-size:13px;cursor:pointer;text-align:center;padding:8px}
.icset{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.icset span{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:var(--paper)}
.icset svg{width:26px;height:26px;fill:none;stroke:#1F3A4D;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icset.filled svg{fill:#1F3A4D;stroke:#1F3A4D}.icset.duotone svg{fill:#B5835A;fill-opacity:.35;stroke:#1F3A4D}
@media (max-width:560px){.icset{grid-template-columns:repeat(4,minmax(0,1fr))}}
.wsd{display:grid;gap:22px}
@media (min-width:1100px){.wsd{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start}}
.vhist th,.vhist td{text-align:left!important;font-size:13px;padding:7px 8px;white-space:normal}
.vhist td:first-child{white-space:nowrap}.vhist td:nth-child(2){white-space:nowrap;color:var(--muted)}.vhist td:nth-child(4){color:var(--teal);font-size:12.5px}
.vhist .lnk{margin:0;white-space:nowrap}
.compg{align-items:start}
@media (min-width:1100px){.compg{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}
.tbl.comp th,.tbl.comp td{text-align:left!important;font-size:13px;padding:8px;vertical-align:top}
.cu{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.fnd{display:grid;gap:10px}
.fr{display:grid;gap:8px;background:var(--paper);border-radius:var(--r-sm);padding:12px}
.fr b{font-weight:600}.fr p{font-size:13.5px;color:var(--body);margin-top:4px}
/* v14 today */
.mrow.w{grid-template-columns:minmax(0,1.25fr) minmax(0,.6fr) minmax(0,.45fr) minmax(0,.55fr) minmax(0,.55fr) minmax(0,1fr) 84px}
.c-sh{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.shb{flex:1;max-width:120px;height:8px;border-radius:4px;background:var(--hair-2);overflow:hidden;display:flex}
.shb i{display:block;height:100%}
.c-sh b{font-weight:500;font-size:13px;min-width:32px;text-align:right}
.c-tr{display:flex;justify-content:flex-end;align-self:center}.c-tr svg{display:block}
@media (max-width:1100px) and (min-width:621px){.mrow.w{grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,.6fr)) minmax(0,.9fr)}.mrow.w .c-tr{display:none}.mrow.w.h span:last-child{display:none}}
@media (max-width:620px){.mrow .c-sh,.mrow .c-tr{display:none}.mrow.w{grid-template-columns:minmax(0,1fr) auto}.nc{grid-template-rows:none}.nv,.nvx{min-height:0;align-self:start}}
.ncs{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
@media (max-width:620px){.ncs{grid-auto-flow:column;grid-auto-columns:82%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px}.nc{scroll-snap-align:start}}
.nc{display:grid;gap:10px;align-content:start;grid-template-rows:auto auto 1fr auto auto;background:var(--card);border:1px solid var(--hair-2);border-top:3px solid var(--cc);border-radius:var(--r);padding:14px;min-width:0}
.nc-h{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.nc-h .note{font-size:12px}
.nc>b{font-family:var(--f-display);font-weight:500;font-size:19px;line-height:1.25}
.nv{display:flex;align-items:baseline;gap:10px;background:var(--paper);border-radius:var(--r-sm);padding:12px 14px;min-height:84px;align-items:center;font-family:var(--f-display)}
.nv span{font-size:26px;color:var(--muted)}.nv b{font-size:32px;font-weight:500;color:var(--teal)}.nv small{font-family:var(--f-body);font-size:12.5px;color:var(--muted);margin-left:2px}
.nvp .th{border-radius:var(--r-sm);aspect-ratio:16/7}
.nvx{display:grid;gap:3px;background:var(--paper);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;min-height:84px;align-content:center}
.nvx span{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.nvx p{color:var(--muted);text-decoration:line-through}.nvx p.nw{color:var(--teal);text-decoration:none;font-weight:600}
.nwhy{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--body)}
.nc .acts .btn{width:100%;justify-content:center}
.dids{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.did{display:grid;gap:8px;align-content:start;background:var(--paper);border-radius:var(--r-sm);padding:14px;border-left:3px solid var(--cc);min-width:0}
.did-h{display:flex;gap:8px;align-items:center}.did-h .av{width:26px;height:26px;margin:0;border:0;font-size:10px;flex:none}
.did>b{font-weight:600;font-size:15px;line-height:1.3}
.dl{display:grid;gap:1px}.dl p{font-size:13.5px;color:var(--body)}.dl .eyebrow{font-size:10.5px}
.did-f{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:2px}
@media (min-width:1200px){.cols{grid-template-columns:minmax(0,1fr) 400px}}

/* v13: thumbnails, calendar, preview, gallery, plan editing */
.th{position:relative;display:block;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--paper-alt);max-width:100%;width:100%}
.th svg,.th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.th .tb{position:absolute;bottom:6px;font-size:9.5px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:4px;background:rgba(255,253,248,.93);color:#152625;line-height:1.4}
.th .tb.l{left:6px}.th .tb.r{right:6px}
.th.wide{aspect-ratio:4/3}.th.mini{aspect-ratio:1;border-radius:6px}.th.big{border-radius:0}
.thb{all:unset;box-sizing:border-box;cursor:pointer;display:block;border-radius:8px;min-width:0}
.thb:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.thb:hover .th{filter:brightness(1.04)}
.ci .thb{margin-bottom:2px}
.ci.live .th{opacity:.92}
.askline{display:flex;gap:8px;align-items:center;background:var(--card);border:1px solid var(--hair);border-radius:999px;padding:6px 6px 6px 8px}
.askline .av{width:32px;height:32px;margin:0;border:0;font-size:11px;flex:none}
.askline input{flex:1;min-width:0;border:0;background:transparent;font-size:14.5px;padding:6px 4px;color:var(--ink)}
.askline input:focus{outline:none}.askline:focus-within{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}
.soon{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.sc{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;background:var(--card);border:1px solid var(--hair-2);border-top:3px solid var(--cc);border-radius:var(--r);padding:10px;align-items:start}
.sc b{font-weight:600;font-size:14px;line-height:1.3}
.sc .acts{display:flex;gap:6px;flex-wrap:wrap}
.calbar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between}
.calbar .chips{flex:1 1 200px;min-width:0;max-width:100%}
.view>*{min-width:0}.stack>*{min-width:0}
.cnav{display:flex;align-items:center;gap:6px}.cnav b{font-weight:600;font-size:14px;min-width:118px;text-align:center}
.btn[disabled]{opacity:.35;cursor:default}
.dh{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:8px}.dh h3{margin:0!important}
.dadd{all:unset;box-sizing:border-box;cursor:pointer;width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:14px;line-height:1;border:1px dashed var(--hair)}
.dadd:hover,.dadd:focus-visible{color:var(--teal);border-color:var(--teal)}
.odate{font-size:12px;font-weight:600;color:#A8361A;background:var(--coral-soft);border-radius:6px;padding:4px 7px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.themes{display:flex;flex-wrap:wrap;gap:8px}
.thm,.mth{font-size:12.5px;border-left:3px solid var(--cc);background:var(--card);border-radius:6px;padding:5px 9px;color:var(--body)}
.thm b{font-weight:600;color:var(--ink);margin-right:6px}
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mwd{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:2px 4px}
.mc{background:var(--card);border:1px solid var(--hair-2);border-radius:8px;min-height:116px;padding:6px;display:grid;gap:4px;align-content:start;min-width:0}
.mc.out{background:transparent;border-style:dashed;opacity:.5}
.mc.past{background:var(--paper)}
.mc.ind{background:color-mix(in srgb,var(--coral-soft) 55%,var(--card))}
.mc.today{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal)}
.mch{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;font-weight:600;min-height:20px}
.mc.today .mch span{color:var(--teal)}
.mc .dadd{opacity:0}.mc:hover .dadd,.mc .dadd:focus-visible{opacity:1}
.mthumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;align-items:center}
.mthumbs .thb{border-radius:6px;box-shadow:0 0 0 2px var(--cc)}
.mthumbs .more{font-size:11px;color:var(--muted);grid-column:1/-1}
.mc .odate,.mc .mth{font-size:10.5px;padding:2px 5px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:640px){.mc{min-height:62px;padding:4px}.mthumbs{display:flex;flex-wrap:wrap;gap:3px}.mthumbs .thb{width:9px;height:9px;border-radius:50%;background:var(--cc);box-shadow:none}.mthumbs .thb .th{display:none}.mc .odate,.mc .mth{font-size:0;height:4px;padding:0;border-left:0;background:var(--cc,var(--coral))}.mc .odate{background:var(--coral)}.mc .dadd{display:none}.mthumbs .more{font-size:9px}}
.lwl{display:grid;gap:20px}.lw{display:grid;gap:8px}.lw h3{font-family:var(--f-body);font-size:15px;font-weight:600}
.dform2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:960px){.dform2{grid-template-columns:160px 160px minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:959px){.dform2 label.w{grid-column:1/-1}}
.dform2 label{display:grid;gap:4px;font-size:12.5px;color:var(--muted);min-width:0}
.dform2 input,.inp{border:1px solid var(--hair);border-radius:var(--r-sm);padding:8px 10px;background:var(--paper);font-size:14px;color:var(--ink);width:100%;min-width:0}
.dform2 .acts{display:flex;gap:6px;flex-wrap:wrap}
.gal{display:grid;gap:16px 14px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.gcard .tb{font-size:8.5px}
@media (max-width:560px){.gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.gm{grid-template-columns:1fr 1fr}.gm span:last-child{display:none}}
.gcard{display:grid;gap:6px;align-content:start;min-width:0}
.gcard>b{font-size:13.5px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;font-size:11px;color:var(--muted)}
.gm b{display:block;font-size:14px;color:var(--ink);font-weight:600}
.why-l{font-size:12px;color:var(--body);background:var(--teal-soft);border-radius:6px;padding:6px 8px}.why-l b{font-weight:600;color:var(--teal)}
.chl{list-style:none;margin:0;padding:0;display:grid}
.chl li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--hair-2)}
.chl li:first-child{border-top:0;padding-top:0}
.chl li>div{display:grid;gap:2px}
.chl b{font-weight:600;font-size:14px;line-height:1.35}
.chl li>div>span{font-size:13.5px;color:var(--body)}
.tlog summary{font-size:13px;color:var(--muted);cursor:pointer}
.nxl{display:grid;gap:8px}
.nxr{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 8px 6px 6px;border-radius:8px;border:1px solid var(--hair-2);background:var(--card)}
.nxr:hover{border-color:var(--hair)}.nxr:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.nxt{min-width:0;display:grid;gap:1px}
.nxt small{font-size:11.5px;color:var(--muted)}.nxt b{font-weight:600;font-size:13.5px;line-height:1.3}
.nxr .chip{white-space:normal;max-width:130px;text-align:center;line-height:1.3}
@media (max-width:560px){.nxr{grid-template-columns:44px minmax(0,1fr)}.nxr .chip{grid-column:2;justify-self:start;max-width:none}}
.sheet.pv{z-index:61}
@media (min-width:960px){.sheet.pv{width:480px}}
.pv-f{padding:12px 18px;border-top:1px solid var(--hair-2);display:flex;flex-wrap:wrap;gap:6px;background:var(--card)}
.pv-f:empty{display:none}
.pvt{font-family:var(--f-display);font-size:21px;font-weight:500;line-height:1.25;display:block;margin-top:2px}
.pvmove{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px}
.pvmove button{border:1px solid var(--hair);background:var(--paper);border-radius:999px;padding:5px 11px;font-size:12.5px}
.mock{border:1px solid var(--hair-2);border-radius:12px;background:var(--card);overflow:hidden;display:grid}
.mock .mh{display:flex;gap:8px;align-items:center;padding:10px 12px}
.mock .mh b{font-size:13px;font-weight:600;display:block}.mock .mh small{font-size:11.5px;color:var(--muted)}
.mav{width:30px;height:30px;border-radius:50%;background:#1F3A4D;color:#F4EEE4;display:grid;place-items:center;font:600 13px Georgia,serif;flex:none}
.mcap{padding:10px 12px;font-size:13.5px;white-space:pre-line;color:var(--body)}
.mcap .ht{color:#3366CC}
.mcap textarea{width:100%;min-height:170px;border:1px solid var(--teal);border-radius:8px;padding:8px;font:inherit;background:var(--paper);color:var(--ink);white-space:pre-wrap}
.mock.gad{padding:14px;gap:4px}.mock.gad small{font-weight:700;font-size:12px}.gu{font-size:12px;color:var(--body)}
.mock.gad b{color:#1a4fb8;font-weight:500;font-size:16.5px;line-height:1.3}.mock.gad p{font-size:13px;color:var(--body)}
.mock.web .wbar{display:flex;gap:5px;align-items:center;padding:8px 10px;background:var(--paper-alt)}
.mock.web .wbar i{width:8px;height:8px;border-radius:50%;background:var(--hair)}.mock.web .wbar span{margin-left:8px;font-size:11.5px;color:var(--muted)}
.mock.web .wbody{padding:16px;display:grid;gap:8px}.mock.web .wbody b{font-size:20px;font-family:var(--f-display);font-weight:500;line-height:1.25}
.mock.web .wbody p{font-size:14px;color:var(--body)}
.fcard{display:flex;gap:12px;align-items:center;background:var(--paper);border-radius:var(--r-sm);padding:10px 12px}
.fic{width:34px;height:42px;flex:none;border-radius:4px;background:var(--card);border:1px solid var(--hair);display:grid;place-items:center;font-size:9px;font-weight:700;color:var(--coral)}
.pages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pg{aspect-ratio:3/4;background:#FFFFFF;border:1px solid var(--hair);border-radius:4px;padding:8px;display:grid;gap:5px;align-content:start;box-shadow:0 1px 3px rgba(21,38,37,.06)}
.pg b{font-family:var(--f-display);font-size:11px;font-weight:600;color:#1F3A4D;min-height:12px}
.pg i{display:block;height:3px;background:var(--hair-2);border-radius:2px}
.pgsw{display:flex;gap:3px}.pgsw i{width:12px;height:12px!important;border-radius:2px!important}
.map{list-style:none;margin:0;padding:0;display:grid}
.map li{display:grid;gap:3px;padding:10px 0;border-top:1px solid var(--hair-2);font-size:13.5px;color:var(--body)}
.map li:first-child{border-top:0}
.map li small{color:var(--muted);font-size:12px}
.howch{display:grid;gap:14px}@media (min-width:960px){.howch{grid-template-columns:1fr 1fr}}
.howch>div{display:grid;gap:8px;align-content:start;background:var(--paper);border-radius:var(--r-sm);padding:14px}
.rules{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.rules li{display:flex;gap:8px;align-items:flex-start;justify-content:space-between;font-size:14px;color:var(--body);background:var(--paper);border-radius:8px;padding:7px 8px 7px 12px}
.rx{all:unset;cursor:pointer;color:var(--muted);font-size:17px;line-height:1;padding:0 4px;border-radius:4px}
.rx:hover,.rx:focus-visible{color:var(--coral)}
tr.paused td{color:var(--muted)}
tr.tot td{font-weight:600;border-top:2px solid var(--hair)}
.bed{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}.bed input{width:84px;border:1px solid var(--teal);border-radius:6px;padding:4px 6px;font-size:14px;background:var(--card);color:var(--ink)}
.lnk{all:unset;cursor:pointer;color:var(--teal);font-size:12.5px;text-decoration:underline;margin-left:4px}
.src-l{color:var(--teal)!important}
.vact{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;align-self:start}
.impact td:first-child{color:var(--muted)}

@media (prefers-reduced-motion:no-preference){.view{animation:fade .18s ease-out}@keyframes fade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}}

/* ── Server-rendered additions (not in the prototype) ─────────────────────── */
a{color:var(--teal)}
a.tab,a.btn,a.team-btn,a.lnk,a.nxr,a.mrow,a.chrow,a.dgl-a{text-decoration:none}
a.tab{color:var(--muted)}
.rail a.tab{color:var(--body)}
.rail a.tab[aria-current="page"],a.tab[aria-current="page"]{color:var(--teal)}
a.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
a.btn.primary,a.btn.teal{color:#fff}
a.mrow{color:inherit}
.btn:disabled{opacity:.45;cursor:default}
form.inline{display:inline}
.wrapbtns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.fgrid label,.fcol label{display:grid;gap:4px;font-size:12.5px;color:var(--muted);min-width:0}
.fgrid label.w{grid-column:1/-1}
.fcol{display:grid;gap:12px}
.fgrid input,.fgrid select,.fgrid textarea,.fcol input,.fcol select,.fcol textarea{border:1px solid var(--hair);border-radius:var(--r-sm);padding:9px 12px;background:var(--paper);font-size:14.5px;color:var(--ink);width:100%;min-width:0}
.fgrid textarea,.fcol textarea{min-height:84px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--body)}
.check input{margin-top:3px}
.flash{border-radius:var(--r-sm);padding:10px 14px;font-size:14px}
.flash.ok{background:var(--good-soft);color:var(--good)}
.flash.err{background:var(--coral-soft);color:#A8361A}
.signin{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:var(--warn-soft);color:#7A4A08;border-radius:var(--r-sm);padding:10px 14px;font-size:13.5px}
.signin a{color:#7A4A08;font-weight:600}
.pill-n{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:var(--coral);color:#fff;font-size:11.5px;font-weight:600;padding:0 6px;vertical-align:2px}
.subnav{display:flex;gap:6px;flex-wrap:wrap}
.subnav a{border:1px solid var(--hair);background:var(--card);border-radius:999px;padding:6px 13px;font-size:13px;color:var(--body);text-decoration:none}
.subnav a[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.raw-text{white-space:pre-line}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.thumbimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.th .ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:10px;font:600 11px/1.3 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:linear-gradient(160deg,var(--paper-alt),var(--hair-2))}
.th .ph b{display:block;font:400 19px/1.15 var(--f-display);letter-spacing:0;text-transform:none;color:var(--ink);margin-top:4px}
.sheet .msg a{color:inherit}
.loading{opacity:.6;pointer-events:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tbl td .chip{white-space:normal}
.hb .r.na .tr i{opacity:.35}
.kpi a{color:inherit;text-decoration:none}
.empty .acts{margin-top:6px}
.mtbl a.mrow:hover,.mtbl button.mrow:hover{background:color-mix(in srgb,var(--paper) 60%,transparent)}
@media print{.rail,.topbar,.tabbar,.team-btn,.askline{display:none!important}}
.d-only{display:none!important}
@media (min-width:960px){.d-only{display:grid!important}.m-only{display:none!important}}
.per a{display:inline-block;border-radius:999px;padding:6px 12px;font-size:13px;text-decoration:none;color:var(--body)}
.per a[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
/* "Ask your team": "@" picks who answers */
.composer{position:relative}
.mention{position:absolute;left:18px;right:18px;bottom:calc(100% - 4px);max-height:260px;overflow:auto;background:var(--card);border:1px solid var(--hair);border-radius:var(--r-sm);box-shadow:0 8px 24px rgba(21,38,37,.12);padding:6px;display:grid;gap:2px;z-index:5}
.mention[hidden]{display:none}
.mention-opt{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;text-align:left;border:0;background:transparent;border-radius:8px;padding:8px;color:var(--ink);cursor:pointer}
.mention-opt[aria-selected="true"],.mention-opt:hover{background:var(--teal-soft)}
.mention-opt .av{width:24px;height:24px;margin:0;border:0}
.mention-opt b{display:block;font-size:13.5px;font-weight:600}
.mention-opt small{display:block;font-size:12px;color:var(--muted)}
.mention-empty{font-size:12.5px;color:var(--muted);padding:8px}
.ctx .av{width:18px;height:18px;margin:0;border:0}
ol.guide{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:13px;color:var(--body)}
/* The credit balance under the "Ask your team" composer: every answer costs credits. */
.cfoot{font-size:12px;color:var(--muted);text-align:right}
.cfoot a{color:var(--teal);font-weight:600}
.cfoot.low{color:var(--coral);font-weight:600}
/* Settings › Dashboard password: one field and the button. */
.pwf{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
@media (max-width:560px){.pwf{grid-template-columns:1fr}}
