
:root{
  --teal:#2f5d62;--teal-d:#22474b;--mustard:#c9a227;--burg:#7b2d3b;--card:#efe6d2;
  --bg:#f3ecdc;--panel:#fbf7ee;--ink:#2b2622;--muted:#6d6457;--line:#ddd1b9;--chip:#e9dfc8;--focus:#c9a227;
  --onteal:#f3ecdc;--bad:#a3312f;--ok:#2f6b4a;
  color-scheme:light;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  --serif:"Young Serif",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#1b1916;--panel:#24211d;--ink:#efe6d2;--muted:#a69c8b;--line:#3a342c;--chip:#2f2a24;--card:#2a2621;--bad:#e07a74;--ok:#7cc29a;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#1b1916;--panel:#24211d;--ink:#efe6d2;--muted:#a69c8b;--line:#3a342c;--chip:#2f2a24;--card:#2a2621;--bad:#e07a74;--ok:#7cc29a;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:.9375rem;line-height:1.5;min-height:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.app{display:grid;grid-template-columns:16.5rem minmax(0,1fr);min-height:100%;max-width:100vw}
html,body{overflow-x:clip}
.side{min-width:0}
main > *{max-width:76rem;margin-left:auto;margin-right:auto}

/* profile menu */
.side{background:var(--teal);color:var(--onteal);padding:1.4rem 1rem 2rem;position:sticky;top:0;align-self:start;min-height:100vh;display:flex;flex-direction:column;gap:.4rem}
.brand{font-family:var(--serif);font-size:1.35rem;line-height:1.15;margin:0 .4rem 1.2rem}
.brand small{display:block;font-family:var(--sans);font-size:.8rem;opacity:.75;margin-top:.25rem}
.menu-h{font-size:.78rem;opacity:.7;margin:1rem .5rem .3rem}
.tag{position:relative;display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:.6rem .7rem .6rem 1.4rem;color:var(--onteal);cursor:pointer}
.tag::before{content:"";position:absolute;left:.55rem;top:50%;width:.45rem;height:.45rem;margin-top:-.225rem;border-radius:50%;background:var(--pin,var(--mustard));box-shadow:inset -1px -1px 0 rgba(0,0,0,.35)}
.tag:hover{background:rgba(255,255,255,.08)}
.tag[aria-current="page"]{background:var(--card);color:#2b2622;box-shadow:3px 3px 0 var(--burg)}
.tag .t{font-weight:500;line-height:1.25}
.tag .s{display:block;font-size:.78rem;opacity:.75}
.side .add{margin-top:.6rem;border:1px dashed rgba(243,236,220,.5);border-radius:6px;background:none;color:var(--onteal);padding:.55rem;cursor:pointer}
.side .add:hover{background:rgba(255,255,255,.08)}

main{padding:1.6rem clamp(1rem,3vw,2.6rem) 4rem;min-width:0}
.hidden{display:none !important}

/* stage (AI front) */
.stage{position:relative;background:var(--teal-d);color:var(--onteal);border-radius:10px;padding:1.6rem clamp(1rem,3vw,2rem) 5.5rem;overflow:hidden;margin-bottom:1.4rem}
.stage::before{content:"";position:absolute;right:-3rem;top:-3rem;width:11rem;height:11rem;border-radius:50%;background:var(--mustard);opacity:.92}
.stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4.6rem;background:var(--teal);clip-path:polygon(0 55%,9% 22%,19% 50%,31% 12%,44% 48%,57% 18%,70% 52%,83% 20%,93% 46%,100% 30%,100% 100%,0 100%)}
.stage .hill2{position:absolute;left:0;right:0;bottom:0;height:2rem;background:#1a1714;clip-path:polygon(0 60%,14% 25%,30% 65%,48% 30%,64% 62%,80% 28%,100% 55%,100% 100%,0 100%);z-index:1}
.stage > *{position:relative;z-index:2}
.stage h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.1;margin:0 0 .4rem;max-width:22ch}
.stage p{margin:0;max-width:56ch;opacity:.9}
.today{font-size:.85rem;opacity:.8;margin-bottom:.8rem}

.snap{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:1rem;margin-bottom:1.6rem}
.pcard{position:relative;background:var(--card);color:var(--ink);border-radius:6px;padding:1rem 1rem .9rem;box-shadow:3px 3px 0 var(--c,var(--teal));cursor:pointer;border:0;text-align:left;width:100%}
.pcard:nth-child(odd){transform:rotate(-.4deg)}.pcard:nth-child(even){transform:rotate(.35deg)}
.pcard::before,.pcard::after{content:"";position:absolute;top:.45rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--mustard);box-shadow:inset -1px -1px 0 rgba(0,0,0,.35)}
.pcard::before{left:.45rem}.pcard::after{right:.45rem}
.pcard h3{font-family:var(--serif);font-weight:400;font-size:1.1rem;margin:.2rem 0 .2rem}
.pcard .meta{font-size:.82rem;color:var(--muted)}
.pcard .next{margin-top:.6rem;font-size:.88rem}
.pcard .next b{font-weight:600}

/* chat */
.chat{background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:22rem}
.chat-h{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1rem 1.2rem .6rem;border-bottom:1px solid var(--line)}
.chat-h h2{font-family:var(--serif);font-weight:400;font-size:1.25rem;margin:0}
.chat-h span{font-size:.82rem;color:var(--muted)}
.msgs{padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.8rem;max-height:30rem;overflow-y:auto;flex:1}
.msg{max-width:min(46rem,92%);white-space:pre-wrap;word-wrap:break-word;padding:.65rem .85rem;border-radius:8px;line-height:1.55}
.msg.user{align-self:flex-end;background:var(--teal);color:var(--onteal);border-bottom-right-radius:2px}
.msg.ai{align-self:flex-start;background:var(--chip);border-bottom-left-radius:2px}
.msg.act{align-self:flex-start;font-size:.82rem;color:var(--ok);background:none;padding:0 .2rem}
.msg.err{align-self:flex-start;font-size:.85rem;color:var(--bad);background:none;padding:0 .2rem}
.empty-chat{color:var(--muted);font-size:.92rem}
.chips{display:flex;flex-wrap:wrap;gap:.45rem;padding:0 1.2rem .8rem}
.chip{background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:.3rem .75rem;font-size:.84rem;cursor:pointer}
.chip:hover{border-color:var(--mustard)}
.composer{display:flex;gap:.6rem;padding:.8rem 1.2rem 1.1rem;border-top:1px solid var(--line)}
.composer textarea{flex:1;resize:vertical;min-height:2.8rem;max-height:10rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.btn{border:0;border-radius:8px;padding:.6rem 1rem;background:var(--teal);color:var(--onteal);cursor:pointer;font-weight:500;white-space:nowrap}
.btn:hover{background:var(--teal-d)}
.btn[disabled]{opacity:.5;cursor:default}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--mustard)}
.btn.burg{background:var(--burg)}

/* profile */
.phead{position:relative;background:var(--card);border-radius:8px;padding:1.3rem 1.4rem;box-shadow:4px 4px 0 var(--c,var(--teal));margin-bottom:1.4rem}
.phead::before,.phead::after{content:"";position:absolute;top:.6rem;width:.5rem;height:.5rem;border-radius:50%;background:var(--mustard);box-shadow:inset -1px -1px 0 rgba(0,0,0,.35)}
.phead::before{left:.6rem}.phead::after{right:.6rem}
.phead h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .3rem;line-height:1.15}
.facts{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.88rem;color:var(--muted);margin:.3rem 0 .8rem}
.facts b{color:var(--ink);font-weight:500}
.phead p{margin:0 0 .9rem;max-width:62ch}
.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.8rem;margin-bottom:1.4rem}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem}
.stat .n{font-family:var(--serif);font-size:1.7rem;line-height:1.1}
.stat .l{font-size:.82rem;color:var(--muted)}
.sec{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.1rem 1.2rem;margin-bottom:1.2rem}
.sec h2{font-family:var(--serif);font-weight:400;font-size:1.2rem;margin:0 0 .2rem}
.sec .note{font-size:.85rem;color:var(--muted);margin:0 0 .9rem;max-width:68ch}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr));gap:.6rem}
.pillar{border:1px solid var(--line);border-left:4px solid var(--pc);border-radius:6px;padding:.55rem .7rem;font-size:.85rem}
.pillar b{display:block;font-weight:600}
.pillar span{color:var(--muted)}
.wk{font-size:.82rem;color:var(--muted);margin:1rem 0 .4rem}
.wk:first-child{margin-top:0}
.item{display:grid;grid-template-columns:6.4rem minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.55rem .2rem;border-top:1px solid var(--line)}
.item .d{font-size:.84rem;color:var(--muted);font-variant-numeric:tabular-nums}
.item .d.late{color:var(--bad)}
.item .ttl{min-width:0}
.item .ttl b{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis}
.item .ttl small{color:var(--muted);font-size:.8rem}
.item .pl{display:inline-block;width:.55rem;height:.55rem;border-radius:2px;margin-right:.35rem;vertical-align:middle;background:var(--pc)}
.item select{border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:.25rem .4rem;font-size:.82rem;max-width:9.5rem}
.item-btn{background:none;border:0;padding:0;text-align:left;cursor:pointer;width:100%;min-width:0}
.item-btn:hover b{text-decoration:underline;text-decoration-color:var(--mustard)}
textarea.headlines{width:100%;min-height:6rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);resize:vertical}
.status-line{font-size:.85rem;color:var(--muted);margin-top:.5rem;min-height:1.2em}
.notice{background:var(--chip);border-radius:8px;padding:.8rem 1rem;font-size:.9rem;margin-bottom:1rem}

/* editor */
.overlay{position:fixed;inset:0;background:rgba(20,18,15,.55);display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 2rem) 1rem 2rem;z-index:20;overflow-y:auto}
.sheet{background:var(--panel);border-radius:10px;width:min(40rem,100%);padding:1.3rem 1.4rem;box-shadow:5px 5px 0 var(--burg)}
.sheet h2{font-family:var(--serif);font-weight:400;font-size:1.3rem;margin:0 0 1rem}
.f{display:grid;gap:.3rem;margin-bottom:.8rem}
.f label{font-size:.82rem;color:var(--muted)}
.f input,.f select,.f textarea{border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:.5rem .6rem;width:100%}
.f textarea{min-height:5rem;resize:vertical}
.f2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.8rem}
.wc{font-size:.8rem;color:var(--muted)}
.sheet .row{justify-content:space-between;margin-top:.6rem}

/* tablet */
html.lay-tablet .app,html.lay-phone .app{grid-template-columns:13.5rem minmax(0,1fr)}
html.lay-tablet .side,html.lay-phone .side{padding:1.2rem .7rem 2rem}
html.lay-tablet .brand,html.lay-phone .brand{font-size:1.2rem}
html.lay-tablet main,html.lay-phone main{padding:1.4rem 1.4rem 3rem}
/* phone and small tablet portrait */
html.lay-phone .app{grid-template-columns:minmax(0,1fr)}
html.lay-phone .side{min-width:0;max-width:100vw}
html.lay-phone #menu{min-width:0;max-width:100%;scroll-padding-inline:1rem}
html.lay-phone .side{position:sticky;top:0;min-height:0;display:block;padding:.55rem 0 .5rem;padding-top:calc(env(safe-area-inset-top,0px) + .55rem);z-index:10;box-shadow:0 2px 0 var(--burg)}
html.lay-phone body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:11;background:var(--teal)}
html.lay-phone .brand{font-size:1.05rem;margin:0 1rem .45rem}
html.lay-phone .brand small{display:none}
html.lay-phone #menu{display:flex;gap:.4rem;overflow-x:auto;padding:0 1rem .15rem;scroll-snap-type:x proximity;scrollbar-width:none}
html.lay-phone #menu::-webkit-scrollbar{display:none}
html.lay-phone .menu-h{display:none}
html.lay-phone .tag{flex:none;width:auto;min-height:2.6rem;padding:.4rem .8rem .4rem 1.4rem;white-space:nowrap;scroll-snap-align:start;background:rgba(255,255,255,.08)}
html.lay-phone .tag .s{display:none}
html.lay-phone .side .add{flex:none;margin:0;white-space:nowrap;min-height:2.6rem;padding:.4rem .8rem}
html.lay-phone main{padding:1rem .9rem 3rem}
html.lay-phone .stage{padding:1.2rem 1rem 4.4rem;border-radius:8px}
html.lay-phone .stage::before{width:7rem;height:7rem;right:-2rem;top:-2rem}
html.lay-phone .stage h1{font-size:1.5rem}
html.lay-phone .snap{grid-template-columns:1fr;gap:.8rem}
html.lay-phone .chat{min-height:0}
html.lay-phone .chat-h{padding:.8rem .9rem .5rem;flex-wrap:wrap;gap:.2rem}
html.lay-phone .msgs{padding:.8rem .9rem;max-height:55vh}
html.lay-phone .msg{max-width:100%}
html.lay-phone .chips{padding:0 .9rem .7rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
html.lay-phone .chips::-webkit-scrollbar{display:none}
html.lay-phone .chip{flex:none;min-height:2.4rem}
html.lay-phone .composer{padding:.7rem .9rem .9rem;position:sticky;bottom:0;background:var(--panel);border-radius:0 0 10px 10px}
html.lay-phone .phead{padding:1.1rem 1rem}
html.lay-phone .phead .row .btn{flex:1 1 auto;text-align:center}
html.lay-phone .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
html.lay-phone .sec{padding:.9rem}
html.lay-phone .item{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"d s" "t t";row-gap:.25rem;padding:.7rem .1rem}
html.lay-phone .item .d{grid-area:d}
html.lay-phone .item .item-btn{grid-area:t}
html.lay-phone .item select{grid-area:s;min-height:2.2rem}
html.lay-phone .overlay{padding:0;align-items:stretch}
html.lay-phone .sheet{width:100%;min-height:100%;border-radius:0;box-shadow:none;padding:calc(env(safe-area-inset-top,0px) + 1rem) 1rem calc(env(safe-area-inset-bottom,0px) + 1.2rem)}
html.lay-phone .sheet .row:last-child{position:sticky;bottom:0;background:var(--panel);padding:.6rem 0}
html.lay-phone input,html.lay-phone select,html.lay-phone textarea{font-size:16px}
html.lay-phone .btn{min-height:2.6rem}
@media (prefers-reduced-motion: no-preference){
  .pcard{transition:transform .2s ease}
  .pcard:hover{transform:rotate(0) translateY(-2px)}
}
/* ---- v2 additions ---- */
.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.05rem .45rem;border-radius:999px;background:var(--mustard);color:#2b2622;margin-left:.35rem;vertical-align:middle}
.tag .badge{background:var(--card)}
.tag[aria-current="page"] .badge{background:var(--mustard)}
.hold{background:var(--chip);border-left:4px solid var(--mustard);border-radius:6px;padding:.7rem .9rem;margin-bottom:1.2rem;font-size:.92rem}
.capture textarea,.inline-in{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);resize:vertical}
.capture textarea{min-height:5.5rem}
.prev{display:grid;gap:.5rem;margin-top:.8rem}
.prev-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:var(--bg)}
.prev-row input[type=checkbox]{width:1.15rem;height:1.15rem;margin-top:.2rem}
.prev-row .meta{font-size:.82rem;color:var(--muted)}
.prev-row select{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:.2rem .4rem;font-size:.82rem;margin-top:.3rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:.9rem}
.qcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--c,var(--teal));border-radius:8px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.45rem;min-width:0}
.qcard h3{font-family:var(--serif);font-weight:400;font-size:1.05rem;margin:0}
.qcard .meta{font-size:.82rem;color:var(--muted)}
.qcard .script{font-size:.88rem;white-space:pre-wrap;max-height:8.5rem;overflow:auto;background:var(--bg);border-radius:6px;padding:.5rem .6rem}
.qcard .row{margin-top:auto}
.btn.sm{padding:.4rem .75rem;font-size:.85rem}
.btn.ok{background:var(--ok)}
.pill{display:inline-block;font-size:.75rem;padding:.05rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.pill.warn{border-color:var(--mustard);color:var(--ink);background:color-mix(in srgb,var(--mustard) 25%,transparent)}
.pill.ok{border-color:var(--ok);color:var(--ok)}
.pill.bad{border-color:var(--bad);color:var(--bad)}
.idea{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:start;padding:.7rem 0;border-top:1px solid var(--line)}
.idea:first-child{border-top:0}
.idea p{margin:0 0 .2rem;white-space:pre-wrap;word-break:break-word}
.idea .meta{font-size:.82rem;color:var(--muted)}
.idea a{color:var(--teal);word-break:break-all}
:root[data-theme="dark"] .idea a{color:#8fc1c6}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .idea a{color:#8fc1c6}}
.formrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.6rem;margin:.6rem 0}
.formrow input,.formrow select{border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:.5rem .6rem;width:100%}
/* calendar */
.calbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.8rem}
.calbar b{font-family:var(--serif);font-weight:400;font-size:1.25rem;min-width:10rem;text-align:center}
.calwrap{container-type:inline-size}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.dow{font-size:.78rem;color:var(--muted);text-align:center;padding:.2rem 0}
.day{border:1px solid var(--line);border-radius:6px;min-height:5.6rem;padding:4px;min-width:0;background:var(--panel);text-align:left;cursor:pointer;display:block;width:100%}
.day.out{opacity:.45}
.day.today{border:2px solid var(--mustard)}
.day.sel{box-shadow:inset 0 0 0 2px var(--teal)}
.dn{font-size:.78rem;color:var(--muted)}
.ev{display:block;font-size:.76rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--c);padding-left:3px;margin-top:2px}
.more{font-size:.74rem;color:var(--muted)}
.dots{display:none}
@container (max-width: 34rem){.ev,.more{display:none}.dots{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.dots i{width:.45rem;height:.45rem;border-radius:50%;background:var(--c)}.day{min-height:3.2rem}}
.legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.82rem;color:var(--muted);margin-bottom:.6rem}
.legend i{display:inline-block;width:.65rem;height:.65rem;border-radius:2px;margin-right:.3rem;vertical-align:middle}
/* editor extras */
.ed-sec{border-top:1px solid var(--line);margin-top:1rem;padding-top:.9rem}
.ed-sec h3{font-family:var(--serif);font-weight:400;font-size:1.05rem;margin:0 0 .6rem}
.checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:.4rem;margin:.4rem 0 .6rem}
.checks label{display:flex;gap:.45rem;align-items:center;font-size:.9rem;color:var(--ink)}
.checks input{width:1.1rem;height:1.1rem}
/* teleprompter */
.prompter{position:fixed;inset:0;background:#0d0c0b;color:#f3ecdc;z-index:40;display:flex;flex-direction:column}
.prompter.hidden{display:none}
.pr-view{flex:1;overflow:hidden;position:relative}
.pr-view::before{content:"";position:absolute;left:0;right:0;top:38%;height:2px;background:rgba(201,162,39,.55);z-index:2;pointer-events:none}
.pr-text{padding:45vh clamp(1.2rem,6vw,4rem) 60vh;font-family:var(--sans);font-weight:500;line-height:1.45;max-width:46rem;margin:0 auto;will-change:transform}
.pr-text.mirror{transform:scaleX(-1)}
.pr-text .mk{display:block;font-size:.45em;color:var(--mustard);margin:.8em 0 .2em;font-weight:600}
.pr-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:7rem;color:var(--mustard);z-index:3;pointer-events:none}
.pr-bar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:center;padding:.7rem 1rem calc(env(safe-area-inset-bottom,0px) + .8rem);background:#1b1916;border-top:1px solid #3a342c}
.pr-bar button{background:#2f2a24;color:#f3ecdc;border:1px solid #3a342c;border-radius:8px;padding:.55rem .8rem;min-width:2.8rem;min-height:2.8rem;cursor:pointer}
.pr-bar button.main{background:var(--teal);border-color:var(--teal);min-width:5.5rem;font-weight:600}
.pr-bar span{font-size:.82rem;color:#a69c8b;min-width:4.5rem;text-align:center}
.pr-top{display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top,0px) + .6rem) 1rem .6rem;font-size:.9rem;color:#a69c8b;gap:1rem}
.pr-top b{color:#f3ecdc;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report{white-space:pre-wrap;line-height:1.6}
details.old{border-top:1px solid var(--line);padding:.6rem 0}
details.old summary{cursor:pointer;color:var(--muted);font-size:.9rem}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 1.2rem);transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:.55rem 1rem;border-radius:8px;z-index:50;font-size:.9rem}
.toast.hidden{display:none}
html.lay-phone .day{min-height:3.4rem}
html.lay-phone .qcard .row .btn{flex:1 1 auto}
html.lay-phone .pr-bar span{min-width:3.6rem}

/* ---- website additions ---- */
.auth{min-height:100%;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top,0px) + 1.5rem) 1rem 2rem}
.auth-card{width:min(26rem,100%);background:var(--panel);border-radius:10px;box-shadow:5px 5px 0 var(--burg);overflow:hidden}
.auth-top{position:relative;background:var(--teal-d);color:var(--onteal);padding:1.4rem 1.4rem 3.4rem;overflow:hidden}
.auth-top::before{content:"";position:absolute;right:-2rem;top:-2rem;width:7rem;height:7rem;border-radius:50%;background:var(--mustard)}
.auth-top::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.6rem;background:var(--teal);clip-path:polygon(0 55%,12% 22%,25% 50%,40% 12%,55% 48%,70% 18%,85% 52%,100% 28%,100% 100%,0 100%)}
.auth-top > *{position:relative;z-index:1}
.auth-top h1{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin:0 0 .2rem}
.auth-top p{margin:0;opacity:.85;font-size:.92rem}
.auth-body{padding:1.2rem 1.4rem 1.4rem}
.auth-body .f input,.auth-body .f select,.auth-body .f textarea{font-size:16px}
.auth-tabs{display:flex;gap:.3rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.auth-tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:.5rem .7rem;cursor:pointer;color:var(--muted)}
.auth-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--mustard)}
.auth-msg{font-size:.88rem;margin:.6rem 0 0;min-height:1.2em}
.auth-msg.bad{color:var(--bad)}.auth-msg.ok{color:var(--ok)}
.linkbtn{background:none;border:0;color:var(--teal);cursor:pointer;padding:0;text-decoration:underline;font-size:.88rem}
.tbl{overflow-x:auto}
table.t{width:100%;border-collapse:collapse;font-size:.88rem}
table.t th{text-align:left;color:var(--muted);font-weight:500;padding:.4rem .5rem;border-bottom:1px solid var(--line);white-space:nowrap}
table.t td{padding:.45rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
table.t td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
td.bad,.bad-t{color:var(--bad)}
.feed{display:grid;gap:0}
.feed div{padding:.5rem 0;border-top:1px solid var(--line);font-size:.9rem}
.feed div:first-child{border-top:0}
.feed small{color:var(--muted);display:block}
.topbar-out{margin-top:auto;padding-top:1rem}
.topbar-out button{background:none;border:1px solid rgba(243,236,220,.4);color:var(--onteal);border-radius:6px;padding:.35rem .7rem;cursor:pointer;font-size:.85rem}
html.lay-phone .topbar-out{display:none}
.portal-hero .cd{font-family:var(--serif);font-size:2.2rem;line-height:1.1;margin:.3rem 0}

/* ---- public front page ---- */
.pub{min-height:100%;background:var(--bg)}
.pub a{color:inherit}
.pub-nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(env(safe-area-inset-top,0px) + .8rem) clamp(1rem,4vw,3rem) .8rem;background:var(--teal);color:var(--onteal);box-shadow:0 2px 0 var(--burg)}
.pub-logo{font-family:var(--serif);font-size:1.25rem;text-decoration:none;white-space:nowrap}
.pub-nav nav{display:flex;gap:1.2rem;align-items:center;font-size:.95rem}
.pub-nav nav a{text-decoration:none;opacity:.9}
.pub-nav nav a:hover{opacity:1;text-decoration:underline;text-decoration-color:var(--mustard)}
.pub-nav .pub-login{border:1px solid rgba(243,236,220,.55);border-radius:6px;padding:.35rem .75rem;opacity:1}
.pub-hero{position:relative;overflow:hidden;background:var(--teal-d);color:var(--onteal);padding:clamp(3rem,9vw,6.5rem) clamp(1rem,4vw,3rem) clamp(7rem,14vw,10rem)}
.pub-moon{position:absolute;right:clamp(-4rem,-2vw,0rem);top:clamp(-4rem,-3vw,-1rem);width:clamp(11rem,28vw,20rem);aspect-ratio:1;border-radius:50%;background:var(--mustard)}
.pub-hills{position:absolute;left:0;right:0;bottom:0;height:clamp(5rem,12vw,8rem);background:var(--teal);clip-path:polygon(0 55%,8% 25%,18% 50%,29% 10%,41% 46%,53% 16%,65% 50%,77% 18%,89% 46%,100% 26%,100% 100%,0 100%)}
.pub-hills2{position:absolute;left:0;right:0;bottom:0;height:clamp(2.4rem,6vw,3.6rem);background:#1a1714;clip-path:polygon(0 60%,12% 25%,26% 64%,42% 28%,58% 62%,74% 26%,88% 58%,100% 36%,100% 100%,0 100%)}
.pub-hero-in{position:relative;z-index:1;max-width:44rem}
.pub-kicker{font-size:.9rem;opacity:.8;margin:0 0 .8rem}
.pub-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.08;margin:0 0 1rem;max-width:18ch}
.pub-hero p{font-size:clamp(1rem,1.6vw,1.15rem);max-width:52ch;margin:0 0 1.6rem;opacity:.92}
.pub-cta{background:var(--mustard);color:#2b2622;font-weight:600;text-decoration:none;display:inline-block}
.pub-cta:hover{background:#d8b23a}
.pub-ghost{border-color:rgba(243,236,220,.55)!important;color:var(--onteal)!important;text-decoration:none;display:inline-block}
.pub-sec{max-width:72rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,4vw,3rem) 0}
.pub-sec h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,3.4vw,2.3rem);margin:0 0 .5rem}
.pub-lead{color:var(--muted);max-width:56ch;margin:0 0 1.6rem;font-size:1.02rem}
.pub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:1.2rem}
.pub-card{position:relative;background:var(--card);color:var(--ink);border-radius:6px;padding:1.3rem 1.2rem 1.1rem;box-shadow:4px 4px 0 var(--c)}
.pub-card:nth-child(odd){transform:rotate(-.35deg)}.pub-card:nth-child(even){transform:rotate(.3deg)}
.pub-card::before,.pub-card::after{content:"";position:absolute;top:.5rem;width:.42rem;height:.42rem;border-radius:50%;background:var(--mustard);box-shadow:inset -1px -1px 0 rgba(0,0,0,.35)}
.pub-card::before{left:.5rem}.pub-card::after{right:.5rem}
.pub-card h3{font-family:var(--serif);font-weight:400;font-size:1.2rem;margin:.3rem 0 .4rem}
.pub-card p{margin:0;font-size:.95rem;line-height:1.55}
.pub-tag{display:inline-block;font-size:.8rem;color:var(--muted);margin-top:.2rem}
.pub-card.work .pill{margin-top:.8rem}
.pub-steps{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.9rem;counter-reset:s}
.pub-steps li{border-top:3px solid var(--teal);padding:.8rem .2rem 0;font-size:.95rem;color:var(--muted);counter-increment:s}
.pub-steps li:nth-child(even){border-top-color:var(--mustard)}
.pub-steps b{display:block;color:var(--ink);font-family:var(--serif);font-weight:400;font-size:1.15rem;margin-bottom:.2rem}
.pub-steps b::before{content:counter(s) ". "}
.pub-enq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:2.5rem;padding-bottom:3rem}
.pub-addr{display:grid;gap:.2rem;font-size:.92rem;color:var(--muted);margin-top:1rem}
.pub-addr b{color:var(--ink);font-weight:600}
.pub-form,.pub-thanks{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.3rem 1.3rem 1rem;box-shadow:4px 4px 0 var(--burg)}
.pub-form .f input,.pub-form .f select,.pub-form .f textarea{border:1px solid var(--line);border-radius:6px;background:var(--bg);padding:.6rem .7rem;width:100%;font-size:16px}
.pub-form .pub-cta{width:100%;margin-top:.4rem}
.pub-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.pub-thanks h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;margin:0 0 .4rem}
.pub-foot{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.5rem clamp(1rem,4vw,3rem) calc(env(safe-area-inset-bottom,0px) + 1.5rem);border-top:1px solid var(--line);color:var(--muted);font-size:.88rem}
.auth-wrap{width:min(26rem,100%)}
.auth-back{display:inline-block;margin-bottom:.8rem;color:var(--muted);text-decoration:none;font-size:.92rem}
.auth-back:hover{color:var(--ink)}
.auth-card .members{display:inline-block;font-size:.78rem;font-weight:600;background:var(--mustard);color:#2b2622;border-radius:999px;padding:.1rem .6rem;margin-bottom:.6rem}
.auth-foot{font-size:.88rem;color:var(--muted);margin-top:1rem;text-align:center}
.auth-foot a{color:var(--teal)}
html.lay-phone .pub-nav nav a:not(.pub-login){display:none}
html.lay-phone .pub-enq{grid-template-columns:1fr;gap:1.4rem}
html.lay-tablet .pub-enq{grid-template-columns:1fr}
@media (prefers-reduced-motion: no-preference){.pub-hero-in{animation:pubIn .6s ease-out both}@keyframes pubIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
/* align hero, nav and footer with the content column */
.pub{--gut:clamp(1rem,4vw,3rem);--edge:max(var(--gut),calc((100% - 72rem) / 2 + var(--gut)))}
.pub-nav,.pub-hero,.pub-foot{padding-left:var(--edge);padding-right:var(--edge)}
.pub-hero-in{max-width:none}
.pub-hero-in > *{max-width:44rem}
.pub-event{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 2rem;background:var(--teal-d);color:var(--onteal);border-radius:10px;padding:1.6rem clamp(1.2rem,3vw,2.2rem);box-shadow:5px 5px 0 var(--mustard)}
.pub-event h2{color:var(--onteal);margin-bottom:.3rem}
.pub-event p{margin:0;max-width:52ch;opacity:.9}
.pub-link{text-decoration:none;display:block}
.pub-link:hover h3{text-decoration:underline;text-decoration-color:var(--mustard)}
.pub-url{display:block;margin-top:.8rem;font-size:.88rem;color:var(--teal);font-weight:500}
.pub-foot-links{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}
