/* The operator console, on the identity of brand/README.md and the console mock:
   a white sidebar on paper, cards of 1 px mist, section titles in small mono capitals,
   IBM Plex Sans for the person and IBM Plex Mono for what the system knows exactly.
   Light by design; the dark scheme derives from the same tokens (ink as paper). */
:root{--paper:#F6F3EE;--white:#fff;--mist:#E4DED4;--stone:#A39C91;--graphite:#5C554B;--ink:#1F1D1A;--copper:#B5673B;--blue:#4B6FB0;--tint:#FBF4EF;
  --bg:var(--paper);--card:var(--white);--card-2:#EFEBE4;--fg:var(--ink);--fg-2:#3D3830;--muted:var(--graphite);--faint:var(--stone);--line:var(--mist);--line-2:#D3CCC0;--accent:var(--copper);
  --ok:#4F7A46;--bad:#A5453A;--warn:#B5673B;--code-bg:#1F1D1A;--code-fg:#F6F3EE;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
@media (prefers-color-scheme:dark){:root{--bg:#1F1D1A;--card:#2A2724;--card-2:#332F2B;--fg:#F6F3EE;--fg-2:#E4DED4;--muted:#B8B0A4;--faint:#7E776D;--line:#3A352F;--line-2:#4A443D;--accent:#D8895C;--tint:#332A25;
  --ok:#8FB585;--bad:#D98B80;--warn:#D8895C;--code-bg:#141311;--code-fg:#E4DED4}}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{font:14px/1.5 var(--sans);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-weight:500;letter-spacing:-.02em;margin:0}
h1{font-size:28px;letter-spacing:-.03em}
code,.mono{font-family:var(--mono);font-size:.92em}code{background:var(--card-2);padding:.05em .3em;border-radius:3px}
pre{background:var(--code-bg);color:var(--code-fg);padding:14px 16px;border-radius:8px;overflow:auto;max-height:70vh;font:12.5px/1.5 var(--mono)}
table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font:500 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.muted{color:var(--muted)}.faint{color:var(--faint)}.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.small{font-size:12.5px}.tiny{font:11px var(--mono);color:var(--muted)}

/* shell */
.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;min-width:1080px}
.side{background:var(--card);border-right:1px solid var(--line);padding:20px 16px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px;color:var(--fg)}.brand:hover{text-decoration:none}
.brand svg{width:24px;height:24px}.brand b{font-size:17px;font-weight:500;letter-spacing:-.03em}.brand .ver{margin-left:auto;font:11px var(--mono);color:var(--muted)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--fg);font-size:14px;font-weight:500}
.nav a:hover{background:var(--bg);text-decoration:none}.nav a.active{background:var(--bg)}
.nav a svg{width:18px;height:18px;flex:none}.nav a span{flex:1}
.badge{font:11px var(--mono);padding:1px 7px;border-radius:999px;background:var(--line);color:var(--fg)}.badge.alert{background:var(--accent);color:var(--paper)}
.side-card{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:14px 12px;border:1px solid var(--line);border-radius:10px;font-size:12px;color:var(--muted);line-height:1.5}
.side-card .row{display:flex;align-items:center;gap:8px;color:var(--fg);font-weight:500}.side-card .row svg{width:16px;height:16px}.side-card .row .r{margin-left:auto;font-weight:400;color:var(--muted);white-space:nowrap}
.side-card .path{font:11px var(--mono);overflow-wrap:anywhere}
main{padding:32px 40px 64px;display:flex;flex-direction:column;gap:28px;max-width:1360px;width:100%}

/* page header and cards */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.page-head .lede{margin:0;color:var(--muted);max-width:80ch;line-height:1.5}
.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px;min-width:0}
.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.card h2,.section-title{font:500 13px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.card-head .meta,.meta{font-size:12px;color:var(--muted)}a.quiet{color:inherit}a.quiet:hover{color:var(--accent)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.stat{display:flex;flex-direction:column;gap:2px}.stat b{font-size:26px;font-weight:500;letter-spacing:-.02em}.stat span{font-size:12px;color:var(--muted)}
.stat.alert b{color:var(--accent)}
.rows>*{padding:10px 0;border-bottom:1px solid var(--bg)}.rows>*:last-child{border-bottom:0;padding-bottom:0}.rows>*:first-child{padding-top:0}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--fg);flex:none}.dot.on,.dot.ok{background:var(--ok)}.dot.off,.dot.idle,.dot.faint{background:var(--faint)}.dot.bad,.dot.alert{background:var(--accent)}.dot.warn{background:var(--stone)}
.tag{display:inline-block;font:11px/1.4 var(--mono);padding:2px 7px;border-radius:4px;background:var(--bg);color:var(--muted);border:1px solid transparent}.tag.ink{background:var(--fg);color:var(--bg)}.tag.copper{background:var(--accent);color:var(--paper)}.tag.line{background:var(--card);border-color:var(--line)}

/* buttons and inputs */
button,.btn{font:inherit;font-size:13px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);cursor:pointer;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
button:hover,.btn:hover{border-color:var(--fg);text-decoration:none}
button.primary,.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}button.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
button.danger{color:var(--bad);border-color:var(--bad)}button.small,.btn.small{padding:5px 9px;font-size:12px}
button.chip,.chip{padding:6px 12px;border-radius:999px;font-size:13px;color:var(--fg)}button.chip.active,.chip.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}
input,select,textarea{font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--fg);width:100%}
input:focus{outline:2px solid var(--line-2);outline-offset:0}
.switch{width:32px;height:18px;border-radius:999px;border:0;padding:0;position:relative;background:var(--faint);cursor:pointer;flex:none}.switch.on{background:var(--fg)}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--card);transition:left .12s}.switch.on::after{left:16px}
.seg{display:inline-flex;justify-self:start;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg label{padding:7px 12px;cursor:pointer;font-size:13px}.seg input{display:none}.seg input:checked+span{background:var(--fg);color:var(--bg)}.seg span{display:block;padding:7px 12px;margin:-7px -12px}

/* today */
.ask{position:relative;width:320px;flex:none}.ask input{border-radius:10px;padding:10px 14px;font-size:14px}.ask .htmx-indicator{position:absolute;right:12px;top:11px}
.htmx-indicator{display:none}.htmx-request .htmx-indicator,.htmx-request.htmx-indicator{display:inline}
.spin{display:inline-block;width:.8em;height:.8em;border:2px solid var(--line);border-top-color:var(--accent,#B5673B);border-radius:50%;vertical-align:-.1em;margin-right:.35em;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.meeting{display:grid;grid-template-columns:56px 3px minmax(0,1fr) auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--bg)}.meeting:first-child{padding-top:0}.meeting:last-child{border-bottom:0;padding-bottom:0}.meeting>button{padding:6px 10px;border-radius:7px;font-size:12px;font-weight:500;align-self:center}
.meeting .time{font:12px var(--mono);color:var(--muted);padding-top:2px}.meeting .bar{width:3px;border-radius:2px;background:var(--fg);align-self:stretch}.meeting.past{opacity:.55}.meeting.past .bar{background:var(--line)}.meeting.next .bar{background:var(--accent)}
.meeting .body{display:flex;flex-direction:column;gap:5px;min-width:0}.meeting .title{font-weight:500}.meeting .brief{font-size:13px;color:var(--fg-2);line-height:1.5}.meeting .bar{margin-top:2px}.meeting.past>button{opacity:1}.meeting .noact{width:1px}
.note{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.note .src{font:11px var(--mono);color:var(--muted)}.note .body{font-size:13px;line-height:1.5;white-space:pre-wrap;max-height:16rem;overflow:auto}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.suggest{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.answer{white-space:pre-wrap;line-height:1.55}
.fact{position:relative;padding:.6rem .8rem .6rem 1.7rem;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.fact::before{content:"";position:absolute;left:.7rem;top:1rem;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.fact .when,.fact .src{font:.74rem var(--mono);color:var(--muted)}.fact.superseded,.fact.superseded .when,.fact.superseded .src{color:var(--faint)}.fact.superseded::before{background:transparent;border:1.5px solid var(--faint)}
.empty{color:var(--muted);font-size:13px}
.flash{margin:0;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:13px}
.resolve{display:flex;flex-direction:column;gap:12px}.res-opts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.res-how{display:flex;flex-direction:column;gap:6px}
label.chip{cursor:pointer}label.chip input{display:none}label.chip:has(input:checked){background:var(--fg);color:var(--bg);border-color:var(--fg)}.resolve textarea{resize:vertical;min-height:3.2rem}
.state{max-width:640px;padding:28px}.state .sym{width:36px;height:36px}.state h2{font:500 20px var(--sans);letter-spacing:-.02em;text-transform:none;color:var(--fg)}.state p{margin:0;color:var(--muted);line-height:1.55}.state .progress{font:12px var(--mono);color:var(--muted);display:flex;align-items:center;gap:8px}.state .progress .dot{width:7px;height:7px;background:var(--accent);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:.25}50%{opacity:1}}.state .actions{display:flex;gap:8px;flex-wrap:wrap}

/* Today (HEM-132): the header with its freshness line and banner, the week strip, one card per person,
   the day as a timeline with overlap clusters, the folds. Tokens only; no shadows; radius 12. */
:root{--tint-2:#E8C9B5;--copper-dark:#8A4A26;--stone-2:#CFC6B8;--free:#F2F6EF;--sep:#F1EDE6;--ok-dot:#6E8F63}
@media (prefers-color-scheme:dark){:root{--tint-2:#5A3A2A;--copper-dark:#D8895C;--stone-2:#5A5348;--free:#2C3129;--sep:#332F2B;--ok-dot:#8FB585}}
#today{display:flex;flex-direction:column;gap:22px}
.today-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.today-title{display:flex;flex-direction:column;gap:6px;min-width:0}
.today-head .kicker{font:12px var(--mono);color:var(--muted)}
.today-head .lede{margin:4px 0 0;font-size:18px;line-height:1.5;color:var(--fg);max-width:62ch;text-wrap:pretty}.today-head .lede.muted{color:var(--muted);font-size:15px}
.lede em.who{font-style:normal;font-weight:500;border-bottom:2px solid var(--tint-2)}
.fresh-line{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font:12px var(--mono);color:var(--muted);margin-top:-8px}
.fresh{display:inline-flex;align-items:center;gap:6px}.fresh i{width:6px;height:6px;border-radius:50%;background:var(--ok-dot);flex:none}
.fresh.warn{color:var(--copper-dark)}.fresh.warn i{background:var(--accent)}.fresh.mute i{background:var(--faint)}
.linkish{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;white-space:nowrap}.linkish:hover{text-decoration:underline;border:0}.linkish.quiet{color:var(--muted);font-size:12px}
.banner{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:10px;background:var(--card);border:1px solid var(--line);margin-top:-6px}
.banner>i{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}.banner .btext{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.banner .btext b{font-weight:500}.banner .btext span{font-size:13px;color:var(--fg-2)}
.banner.soft{background:var(--tint);border-color:var(--tint-2)}.banner.line{border-color:var(--tint-2)}.banner.loud{background:#F3E3D8;border-color:#D9A887}
@media (prefers-color-scheme:dark){.banner.loud{background:#4A3327;border-color:#8A5A3A}}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.sec-head h2{font:500 13px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.card h3{font:500 12px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.today-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}.col-needs,.col-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.needs-list{display:flex;flex-direction:column;gap:14px}
/* the week strip */
.week-card{padding:16px 20px;gap:12px}.wk-head{flex-wrap:wrap;gap:16px}.wk-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.wk-sum{font-size:13px;color:var(--fg-2)}.wk-sum b{font-weight:500}.wk-sum b.copper{color:var(--copper-dark)}.wk-open{font-size:13px;font-weight:500}
.wk-days{display:flex;gap:12px}.wk-day{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 0}.wk-day.weekend{flex:0 0 64px}.wk-day.weekend .wk-lbl{color:var(--faint)}
.wk-day .wk-lbl{font-size:13px;font-weight:500;color:var(--fg);display:flex;justify-content:space-between;align-items:baseline}.wk-day.today .wk-lbl{font-weight:600}
.wk-day .wk-flag{font-size:11px;color:var(--copper-dark);min-height:1em}
.strip{position:relative;height:10px;background:var(--free);border-radius:3px;overflow:hidden}.strip i{position:absolute;top:0;bottom:0}.strip i.busy{background:var(--stone-2)}.strip i.hold{background:var(--stone-2);opacity:.55}.strip i.overlap{background:var(--accent)}
.wk-day{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lbl flag" "strip strip";align-items:baseline;gap:6px}.wk-day .wk-lbl{grid-area:lbl}.wk-day .wk-flag{grid-area:flag}.wk-day .strip{grid-area:strip}
.wk-legend{display:flex;gap:12px;font-size:11px;color:var(--muted);padding-top:8px;border-top:1px solid var(--sep)}.wk-legend span{display:inline-flex;gap:5px;align-items:center}.wk-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}.wk-legend i.busy{background:var(--stone-2)}.wk-legend i.overlap{background:var(--accent)}.wk-legend i.free{background:var(--free);border:1px solid #BFD0B8}
/* one card per person */
.person-card{padding:16px 18px;gap:12px}.person-head{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center}
.person-head .who{display:flex;align-items:baseline;gap:8px;min-width:0;flex-wrap:wrap}.person-head .name{font-weight:500;font-size:15px}.person-head .cnt{font-size:11px;color:var(--muted)}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--bg);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font:600 11px var(--sans);color:var(--muted);flex:none}.avatar.alert{background:var(--tint);color:var(--copper-dark)}
.person-card .rows{display:flex;flex-direction:column;padding-left:44px}.person-card .rows>*{padding:10px 0;border-bottom:0;border-top:1px solid var(--sep)}.person-card .rows>*:first-child{border-top:0;padding-top:0}.person-card .rows>*:last-child{padding-bottom:0}
/* the item component */
.item{display:flex;flex-direction:column;gap:6px}
.item-main{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:baseline}
.pdot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--faint);background:transparent;transform:translateY(-1px);flex:none}.pdot.today{background:var(--accent);border-color:var(--accent)}.pdot.later{border-color:transparent}
.item-body{display:flex;flex-direction:column;gap:4px;min-width:0}.item-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.kind{font:600 11px/1.5 var(--sans);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex:none;padding:1px 6px;border-radius:5px;border:1px solid transparent}
.kind.decide{background:var(--fg);color:var(--bg);border-color:var(--fg)}.kind.reply{border-color:var(--fg);color:var(--fg)}.kind.promise{background:var(--card-2);color:var(--fg-2)}.kind.alert{border-color:var(--accent);color:var(--copper-dark)}
.item-text{font-size:15px;font-weight:500;line-height:1.4;text-wrap:pretty}.item .why{font-size:13px;color:var(--fg-2);line-height:1.45}.item .thread{font:11.5px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.item-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.item-side .due{font:11px var(--mono);color:var(--muted);white-space:nowrap}.item-side .due.today{color:var(--copper-dark)}.item-side .nudge{font-size:11px;color:var(--copper-dark);white-space:nowrap}
.slots{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-left:20px}.slots .meta{font-size:12px}
.slot{padding:4px 10px;border:1px dashed var(--accent);border-radius:7px;background:var(--card);color:var(--copper-dark);font:12px var(--mono);cursor:pointer}.slot:hover{background:#F3E3D8;border-color:var(--accent)}
.item-acts{display:flex;gap:2px;align-items:center;padding-left:14px;flex-wrap:wrap}.item-acts a{padding:4px 6px;font-size:12.5px;font-weight:500}.vsep{width:1px;height:14px;background:var(--line);margin:0 6px}
.act{padding:4px 8px;border:0;border-radius:6px;background:transparent;font-size:12.5px;color:var(--fg);cursor:pointer}.act:hover{background:var(--bg);border:0}.act.quiet{color:var(--muted)}
.soon{margin-left:auto;font-size:12px;color:var(--faint);border:1px dashed var(--line-2);border-radius:6px;padding:3px 8px;white-space:nowrap;flex:none}
.why-row .meta{font-size:12.5px;color:var(--copper-dark);margin-right:4px}.why-row{background:var(--tint);border-radius:6px;padding:6px 10px}
.closed-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);flex-direction:row}.closed-row svg{flex:none}.struck{text-decoration:line-through;color:var(--faint)}.closed-row .struck{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.closed-row .closed-label{white-space:nowrap}
.empty-card{padding:18px;gap:4px}.empty-card b{font-weight:500}.empty-card span{font-size:13px;color:var(--muted)}
/* your day */
.day-card{padding:18px 20px;gap:4px}.day-card .card-head{padding-bottom:10px}.allday{font:12px var(--mono);color:var(--muted);padding-bottom:8px}
.rail{display:flex;flex-direction:column}.tb{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px}.tb.past{opacity:.6}
.tb .tt{font:12px var(--mono);color:var(--muted);padding-top:12px}.tb .tbody{display:flex;flex-direction:column;padding:10px 0 10px 14px;border-left:2px solid var(--line);gap:8px;min-width:0}.tb.cluster .tbody{border-left-color:var(--tint-2)}.tb.now .tbody{border-left-color:var(--accent);padding:6px 0 6px 14px}
.nowline{display:flex;align-items:center;gap:8px;margin-left:-20px}.nowline i{width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--card);box-shadow:0 0 0 1px var(--accent);flex:none}.nowline span{font:12px var(--mono);color:var(--copper-dark);white-space:nowrap}.nowline .hr{flex:1;height:1px;background:var(--tint-2)}
.cluster-box{display:flex;flex-direction:column;gap:8px;border:1px solid var(--tint-2);background:var(--tint);border-radius:10px;padding:8px 12px}.cl-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.cl-head b{font-size:13px;font-weight:600;color:var(--copper-dark)}.cl-head .mono{font-size:11px;color:var(--copper-dark)}
.mt{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.mt.in-cluster{padding-top:8px;border-top:1px solid #EFDCCE}.mt-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.mt-title{font:500 14px var(--sans);color:var(--fg);background:none;border:0;padding:0;cursor:pointer;text-align:left;white-space:normal}.mt-title:hover{color:var(--accent);border:0}.mt.in-cluster .mt-title{font-size:13.5px}
.mt .range{font-size:11px;color:var(--muted)}.mt .flag{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px}.mt .flag.warn{color:var(--copper-dark);border-color:var(--tint-2)}
.mt .ctx{font-size:13px;color:var(--fg-2);line-height:1.45;text-wrap:pretty}.mt .ctx .ctx-src{color:var(--muted)}.mt .pill{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--copper-dark);background:var(--tint);border-radius:6px;padding:3px 8px}
.mt .linkish{font-size:12.5px;font-weight:500}
/* the folds */
.folds{padding:0;gap:0;overflow:hidden}.fold{border-top:1px solid var(--line)}.fold:first-child{border-top:0}
.fold>summary,.fold-row{list-style:none;width:100%;display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 16px;cursor:pointer;background:transparent;border:0;text-align:left;font:inherit;color:inherit}.fold>summary::-webkit-details-marker{display:none}.fold>summary:hover,.fold-row:hover{background:#FBF9F5}
@media (prefers-color-scheme:dark){.fold>summary:hover,.fold-row:hover{background:var(--card-2)}}
.fold .chev::before{content:"▸";font-size:12px;color:var(--muted)}.fold[open] .chev::before{content:"▾"}.fold .fl{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}.fold .fl b{font-weight:500;font-size:14px}.fold .fl .meta{font-size:12.5px}.fold .cnt{font-size:12px;color:var(--fg)}
.fold-rows{display:flex;flex-direction:column;padding:0 18px 12px 44px}
.frow{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:12px;padding:8px 0;border:0;border-top:1px solid var(--sep);border-radius:0;align-items:baseline;font-size:13px;background:transparent;text-align:left;cursor:pointer;color:inherit;white-space:normal;width:100%}.frow:hover{background:var(--bg)}
.frow .fwho{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frow .ftext{color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frow .fkind{font:600 10.5px var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:8px}.frow .fdue{font-size:11px;color:var(--muted)}
.fold-rows .frow.more{display:none}.fold-rows.open .frow.more{display:grid}.fold-rows .linkish{font-size:12.5px;padding-top:8px;align-self:flex-start}.fold-rows .item{padding:10px 0;border-top:1px solid var(--sep)}
/* closed for you · the lake changed its mind */
.closed-card,.rewrites-card{padding:16px 18px;gap:10px}.crow{display:flex;flex-direction:column;gap:3px;padding-top:8px;border-top:1px solid var(--sep)}.crow .ctext{font-size:13px;line-height:1.4}.crow .ctext b{font-weight:500}.crow .cev{font-size:12px;color:var(--muted);line-height:1.4}.crow .cev.mono{font-size:11px}.crow s{color:var(--faint)}
.crow .linkish{align-self:flex-start}.more-link>summary{cursor:pointer;font-size:12.5px;color:var(--accent);list-style:none;padding-top:4px}.more-link>summary::-webkit-details-marker{display:none}.more-link>summary:hover{text-decoration:underline}
/* phone-only bits, hidden on the desktop (the id keeps this rule above the blocks' own display) */
#today .phone-only{display:none}
.next-card{background:var(--ink);color:var(--paper);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.next-card .mono{font-size:11px;color:#D9C9B8}.next-card b{font-size:16px;font-weight:500}.next-card span:not(.mono){font-size:13px;color:#D9C9B8;line-height:1.45}
.phone-top{display:flex;flex-direction:column;gap:12px}.pcard{padding:14px;gap:8px;border-radius:14px}.pc-head{display:flex;align-items:center;gap:10px}.pc-head .avatar{width:28px;height:28px;font-size:10px}.pc-head b{font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-text{font-size:15px;font-weight:500;line-height:1.4}.pc-acts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding-top:4px}.pc-acts .btn,.pc-acts button{height:44px;justify-content:center;border-radius:10px;font-size:14px}.pc-acts .quiet{color:var(--muted)}.pc-acts .btn.disabled{opacity:.5;pointer-events:none}
@media (max-width:600px){
  .shell{grid-template-columns:1fr;min-width:0}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:12px 14px;gap:10px}.side .nav{flex-direction:row;flex-wrap:wrap;gap:2px}.side .nav a{padding:6px 8px;font-size:13px}.side .nav a svg{display:none}.side-card{display:none}
  main{padding:16px 18px 40px;gap:16px}#today{gap:16px}
  #today .phone-only{display:flex}.needs-list,.fresh-line .fresh[data-key=lake],.fresh-line .fresh[data-key=calendars],.sec-head .meta,.wk-open,.wk-sum,.day-card,.closed-card,.rewrites-card,.today-head .ask,.suggest,.banner,.soon{display:none}
  #today.show-all .needs-list{display:flex}#today.show-all .phone-top.phone-only,#today.show-all .fold-row.phone-only{display:none}
  .today-head{flex-direction:column;gap:8px}.today-head .lede{font-size:15px;color:var(--fg-2)}.today-head h1{font-size:22px}
  .fresh-line{margin-top:-4px;font-size:11px}
  .wk-days{flex-direction:column;gap:0}.wk-day,.wk-day.weekend{flex:none;grid-template-columns:44px minmax(0,1fr) 44px;grid-template-areas:"lbl strip flag";align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--sep)}.wk-day:first-child{border-top:0}.wk-day .strip{height:14px}.wk-day .wk-flag{text-align:right}
  .week-card{padding:6px 14px 0;gap:0}.wk-head{padding:10px 0 6px}.wk-legend{padding:8px 0 6px}
  .today-grid{grid-template-columns:1fr;gap:16px}
  .fold>summary{min-height:48px}.fold-rows{padding-left:16px}.frow{grid-template-columns:minmax(0,1fr) auto}.frow .ftext{grid-column:1 / -1}
}
/* status */
.issue{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.issue .dot{background:var(--accent)}.issue .cmd{font:12px var(--mono);color:var(--muted);background:var(--bg);padding:4px 8px;border-radius:6px}
.issue .acts{display:flex;gap:8px;align-items:center}
.disk-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line)}.disk-bar span{display:block;height:100%}
.legend{display:grid;grid-template-columns:1fr 1fr;gap:6px 24px;font-size:13px}.legend .k{display:flex;align-items:center;gap:8px}.legend .k i{width:8px;height:8px;border-radius:2px;display:inline-block}.legend .v{font:12px var(--mono);color:var(--muted);text-align:right}
.comp{display:grid;grid-template-columns:8px minmax(0,1fr) 60px 90px;gap:10px;align-items:center;font-size:13px}.comp .n{font:13px var(--mono)}.comp .v{font:12px var(--mono);color:var(--muted);text-align:right}

/* sources */
#sources-body{display:flex;flex-direction:column;gap:28px}.group{display:flex;flex-direction:column;gap:12px}.group-head{display:flex;align-items:center;gap:10px;padding:0 4px}.group-head svg{width:18px;height:18px;color:var(--muted)}.group-head h2{font:500 14px var(--sans);text-transform:none;letter-spacing:0}
.list{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.src{display:grid;grid-template-columns:36px minmax(160px,1fr) minmax(0,2fr) auto auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.src:last-child{border-bottom:0}
.src .name{font:13px var(--mono)}.src .sub{font-size:12px;color:var(--muted)}.src .status{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.src .status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src .seen{font:12px var(--mono);color:var(--muted);white-space:nowrap}.src .acts{display:flex;gap:6px}
.src.fresh-account{box-shadow:inset 0 0 0 2px var(--tint-2)}.src .suffix,.suffix{color:var(--copper-dark)}
/* the Add account drawer (HEM-208): the meeting drawer's shell, its own fields */
.acct-drawer{width:min(600px,92vw)}.acct-body{gap:20px}.acct-body form{display:contents}
.acct-field{display:flex;flex-direction:column;gap:8px;border:0;padding:0;margin:0;min-width:0}.acct-field>span:first-child,.acct-field legend{font-size:12px;color:var(--muted);padding:0;margin-bottom:6px}
.acct-providers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.acct-provider{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer}.acct-provider.picked{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}.acct-provider input{position:absolute;opacity:0;width:0;height:0}.acct-provider b{font-weight:500;font-size:13.5px}
.group-head .grow{flex:1}.group-head .pill.acct{font-size:12px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--tint);color:var(--fg)}.group-head .meta.copper{color:var(--copper-dark)}.group-head .ident{font-size:11.5px}
.head-acts{display:flex;gap:4px;align-items:center}.head-acts button.quiet,.head-acts summary.quiet{border:0;background:transparent;color:var(--muted);padding:5px 8px;border-radius:7px;font-size:12px}.head-acts button.quiet:hover,.head-acts summary.quiet:hover{background:var(--card);color:var(--fg)}
.head-acts .menu{position:relative}.head-acts .menu>summary{list-style:none;cursor:pointer;line-height:1}.head-acts .menu>summary::-webkit-details-marker{display:none}.head-acts .menu>div{position:absolute;right:0;top:calc(100% + 4px);z-index:5;min-width:160px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.08)}.head-acts .menu>div button{width:100%;text-align:left;border:0;background:transparent}.head-acts .menu>div button.danger{color:var(--copper-dark)}.head-acts .menu>div button:hover{background:var(--bg)}
.group-head{flex-wrap:wrap}.head-acts:has(.rename){flex-basis:100%;justify-content:flex-end}.head-acts .rename{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.head-acts .rename input{width:200px;padding:4px 8px;font-size:13px}
.group.htmx-request .src[data-on] .idle{display:none}.group.htmx-request .src[data-on] .status .htmx-indicator{display:inline-flex}.head-acts .htmx-indicator{display:none;align-items:center}.group.htmx-request .head-acts .htmx-indicator{display:inline-flex}.group.htmx-request .head-acts .idle{display:none}
.src.acct-row{grid-template-columns:auto minmax(0,1fr) auto;padding:10px 14px}label.src.acct-row{cursor:pointer}.acct-row input[type=checkbox]{width:auto;margin:0}.acct-row .status{justify-content:flex-end}
.acct-drawer .chip{display:inline-flex;align-items:center;cursor:pointer;border:1px solid var(--line);background:var(--card)}.acct-drawer .chip input{position:absolute;opacity:0;width:0;height:0}
.acct-foot{display:flex;align-items:center;gap:12px;padding-top:14px;border-top:1px solid var(--line);margin-top:auto}.acct-foot .grow{flex:1}
.acct-drawer code.copy{cursor:copy;user-select:all}
#toast .toast{margin:0 0 6px}#toast .toast button{margin-left:auto}
.src.htmx-request .idle{display:none}.src .htmx-indicator{display:none;align-items:center}.src.htmx-request .htmx-indicator{display:inline-flex}.src .acts button:disabled{cursor:progress;opacity:1}

/* tools */
.tools-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;align-items:start}
.tools-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:8px}.tools-nav .items{display:flex;flex-direction:column;gap:1px}
.tools-nav a{display:flex;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:7px;color:var(--fg);font-size:13px}.tools-nav a:hover{background:var(--card);text-decoration:none}.tools-nav a.active{background:var(--card)}.tools-nav a small{font:11px var(--mono);color:var(--muted)}
.tool{display:grid;grid-template-columns:minmax(200px,240px) minmax(0,1fr);gap:16px;padding:14px 18px;border-bottom:1px solid var(--line)}.tool:last-child{border-bottom:0}
.tool .name{font:13px var(--mono);word-break:break-all}.tool .desc{font-size:13px;line-height:1.5;color:var(--fg-2)}.tool .params{display:flex;flex-wrap:wrap;gap:6px}.tool .params .tag.req{color:var(--fg)}
.callout{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;font-size:13px}

/* people */
.review-list{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;gap:8px 20px}
.review{display:grid;grid-template-columns:subgrid;grid-column:1/-1;gap:20px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.review .acts{display:flex;gap:6px;align-items:center}
.review .who{display:flex;flex-direction:column;gap:3px;min-width:0}.review .who b{font-weight:500}.review .who span{font-size:12px;color:var(--muted)}
.review .who .with{color:var(--faint)}.review .who .with a{color:var(--muted);text-decoration:none}.review .who .with a:hover{text-decoration:underline}
.review .q{font:11px var(--mono);color:var(--muted);text-align:center;line-height:1.4}.review .q i{display:block;font-style:normal;color:var(--accent)}
.merge{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.merge:last-child{border-bottom:0}
.merge .when{font:12px var(--mono);color:var(--muted)}.merge .why{font-size:12px;color:var(--muted)}

/* logs */
.log{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;font:12.5px/1.5 var(--mono)}
.log .line{display:grid;grid-template-columns:70px 140px minmax(0,1fr);gap:12px;padding:6px 16px;border-bottom:1px solid var(--line)}.log .line:last-child{border-bottom:0}
.log .line.err{background:var(--tint)}.log .t{color:var(--faint)}.log .u{color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log .line.err .u{color:var(--accent)}.log .x{color:var(--fg-2);word-break:break-word;white-space:pre-wrap}.log .line.err .x{color:var(--fg)}
.log .fix{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-size:12px;color:var(--muted)}.log .fix code{background:var(--bg)}
.log-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.log-tools .sep{width:1px;height:20px;background:var(--line)}.log-tools input{margin-left:auto;max-width:280px}

/* settings */
.settings-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;align-items:start}
.settings-nav{position:sticky;top:24px;display:flex;flex-direction:column;gap:2px}.settings-nav a{padding:7px 10px;border-radius:7px;font-size:13px;color:var(--fg)}.settings-nav a:hover{background:var(--card);text-decoration:none}
.field{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);gap:16px;align-items:center}.field .lbl{display:flex;flex-direction:column;gap:2px}.field .lbl span{font-size:13px;font-weight:500}.field .lbl code{font:11px var(--mono);color:var(--muted);background:none;padding:0}
.secret{display:flex;gap:10px;align-items:center;font-size:13px}.secret .state{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--bg)}.secret .state.unset{background:var(--tint);color:var(--accent)}
.savebar{position:sticky;bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--code-bg);color:var(--code-fg);padding:12px 18px;border-radius:12px;font-size:13px}
.savebar button{background:transparent;color:var(--code-fg);border-color:var(--graphite)}.savebar button.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}

/* modal (the confirm dialog and the prep sheet) */
.modal-backdrop{position:fixed;inset:0;background:rgba(31,29,26,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.modal{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:12px;padding:20px 22px;max-width:28rem;width:calc(100% - 2rem);display:flex;flex-direction:column;gap:12px}
.modal.wide{max-width:60rem;max-height:85vh;overflow:auto}.modal h3{font-size:16px}.modal p{margin:0;color:var(--muted)}.modal .actions{display:flex;gap:8px;justify-content:flex-end}
.out{min-height:2rem;white-space:pre-wrap}

/* the meeting drawer */
.drawer-backdrop{position:fixed;inset:0;background:rgba(31,29,26,.28);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,92vw);background:var(--bg);border-left:1px solid var(--line);z-index:50;display:flex;flex-direction:column;box-shadow:-24px 0 60px rgba(31,29,26,.12)}
.drawer-head{padding:24px 32px 20px;border-bottom:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:14px}
.drawer-head h2{font-size:22px;font-weight:500;letter-spacing:-.02em;line-height:1.2;text-transform:none;color:var(--fg)}
.drawer-close{width:32px;height:32px;padding:0;justify-content:center;font-size:16px;color:var(--muted)}
.drawer-body{overflow:auto;padding:24px 32px 48px;display:flex;flex-direction:column;gap:28px}
.attendee{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:12px;white-space:nowrap}
.attendee .av{width:20px;height:20px;border-radius:50%;background:var(--bg);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font:600 9px var(--sans);border:1px solid var(--line)}.attendee .av.me{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.lede-big{margin:0;font-size:16px;line-height:1.55;color:var(--fg);text-wrap:pretty}
.mini{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.mini-title{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.mini-row{font-size:13px;line-height:1.45;display:flex;gap:8px}.mini-row .dot{width:6px;height:6px;margin-top:6px;flex:none}
.said{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.said-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--bg);font:12px var(--mono);color:var(--muted)}
.said-lines{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.said-line{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;font-size:13.5px;line-height:1.5}.said-line .t{font:11px var(--mono);color:var(--faint);padding-top:3px}.said-line.more{display:none}.said-lines.open .said-line.more{display:grid}
.factrow{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 16px;border-bottom:1px solid var(--bg);font-size:14px;line-height:1.45}.factrow:last-child{border-bottom:0}.factrow .dot{margin-top:6px}.factrow.gone{color:var(--faint)}.factrow a{white-space:nowrap;padding-top:2px}
.timeline{border-left:1px solid var(--line);margin-left:5px;display:flex;flex-direction:column}.tl{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;padding:6px 0 14px 16px;position:relative;font-size:13.5px;line-height:1.45}.tl::before{content:"";position:absolute;left:-4px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--faint)}.tl-date{font:11px var(--mono);color:var(--muted);padding-top:2px}
.htmx-request.small{opacity:.5}

/* people directory and graph */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tabs a{padding:10px 14px;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none}.tabs a.active{color:var(--fg);border-bottom-color:var(--fg)}.tabs .badge{margin-left:4px}
.dir{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.dir-side{display:flex;flex-direction:column;gap:10px;position:sticky;top:24px}
.dir-side input[name=q]{padding:9px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:var(--card);width:100%}
.chip.small{padding:3px 9px;font-size:11px}
.plist{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:calc(100vh - 240px);overflow-y:auto}
.prow{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:10px 14px;border-bottom:1px solid var(--bg);text-decoration:none;color:inherit}.prow:hover{background:var(--bg)}.prow.sel{background:var(--bg)}
.prow .who{display:flex;flex-direction:column;gap:1px;min-width:0}.prow .who b{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow .who span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow .last{font:11px var(--mono);color:var(--faint)}
.av{width:32px;height:32px;border-radius:50%;background:var(--bg);border:1px solid var(--line);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font:600 11px var(--sans);flex:none}.av.me{background:var(--accent);color:var(--paper);border-color:var(--accent)}.prow.sel .av{background:var(--fg);color:var(--paper);border-color:var(--fg)}.av.big{width:56px;height:56px;font-size:16px}
.person{display:flex;flex-direction:column;gap:16px;min-width:0}.person .card h2.person-name{font:500 22px var(--sans);letter-spacing:-.02em;text-transform:none;color:var(--fg);line-height:1.2}.person .card h3.section-title{font-size:13px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.person-cols{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:16px;align-items:start}
.detail-form select,.detail-form input{padding:7px 8px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:12px;background:var(--card)}
.person textarea{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;line-height:1.5;background:var(--card);resize:vertical;width:100%}
.gwrap{display:grid;grid-template-columns:200px minmax(0,1fr) 320px;gap:16px;align-items:stretch;height:calc(100vh - 170px);min-height:560px;max-height:820px}.gwrap>.card{min-height:0}
.gtype{display:flex;align-items:center;border-radius:7px;font-size:13px}.gtype:hover{background:var(--bg)}.gtype.off .gname{opacity:.4}
.gtype .gname{display:flex;align-items:center;gap:10px;padding:6px 8px;flex:1;min-width:0;color:var(--fg);text-decoration:none}.gtype .sw{width:12px;height:12px;border:1.5px solid var(--fg);box-sizing:border-box;flex:none}
.gtype .gonly{font:11px var(--mono);color:var(--muted);padding:6px 8px;text-decoration:none;visibility:hidden}.gtype:hover .gonly,.gtype .gonly:focus{visibility:visible}.gtype .gonly:hover{color:var(--fg)}
#gsvg{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none;user-select:none}#gsvg text{paint-order:stroke;stroke:var(--card);stroke-width:3px;stroke-linejoin:round}#gsvg.panning{cursor:grabbing}#gsvg.panning a{pointer-events:none}
/* The SVG's ink: names and outlines in --fg, small labels in --muted, edges in their own tokens so the dark scheme
   keeps 4.5:1 on text and 3:1 on strokes against --bg (WCAG 1.4.3 and 1.4.11). Light keeps the mock's values. */
:root{--g-edge:#C9C2B6;--g-gone:var(--stone)}
@media (prefers-color-scheme:dark){:root{--g-edge:#7E776D;--g-gone:#9A927F}}
#gsvg .gbox{stroke:var(--fg)}#gsvg .gtitle{fill:var(--fg)}#gsvg .gkind,#gsvg .glabel{fill:var(--muted)}#gsvg .glabel.gone{fill:var(--g-gone)}
#gsvg .gedge.hot{stroke:var(--fg)}#gsvg .gedge.far{stroke:var(--g-edge)}#gsvg .gedge.gone{stroke:var(--g-gone)}
#gsvg .garrow{stroke:none}#gsvg .garrow.hot{fill:var(--fg)}#gsvg .garrow.far{fill:var(--g-edge)}#gsvg .garrow.gone{fill:var(--g-gone)}
.gzoom{position:absolute;right:12px;bottom:12px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--card);overflow:hidden}
.gzoom button{width:30px;height:30px;padding:0;border:0;background:transparent;color:var(--fg);font:16px var(--sans);cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center}.gzoom svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8}.gzoom button+button{border-top:1px solid var(--line)}.gzoom button:hover{background:var(--bg)}
.gzoom-hint{position:absolute;left:12px;bottom:12px;color:var(--faint);pointer-events:none}
.hits{position:relative}#graph-q{padding:10px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14px;background:var(--card)}
@media (max-width:1100px){.dir{grid-template-columns:1fr}.dir-side{position:static}.person-cols{grid-template-columns:1fr}.gwrap{grid-template-columns:1fr}}

/* calendar */
.cal{display:flex;flex-direction:column;gap:20px;min-height:calc(100vh - 96px)}
.cal-head{flex-wrap:wrap}.cal-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cal-tools .seg .btn{border:0;border-radius:0;padding:7px 12px}.cal-tools .seg .btn+.btn{border-left:1px solid var(--line)}.cal-tools .seg .btn:hover{background:var(--bg)}.cal-tools .seg .btn.active{background:var(--fg);color:var(--bg)}
.cal-range{font-size:15px;font-weight:500;min-width:170px;text-align:center}
.cal-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:stretch;flex:1;min-height:0}
.cal-dow{font:11px var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.cal-num{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;color:var(--fg)}.cal-num.today{background:var(--accent);color:var(--paper)}
.cal-mini{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--fg);max-width:100%;min-width:0}.cal-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-mini .dot{width:6px;height:6px}.cal-mini.past{opacity:.55}
.cal-mini.o365_calendar .dot,.cal-ev.o365_calendar,.meeting .bar.o365_calendar{--kind:var(--fg)}.cal-mini.google_calendar .dot,.cal-ev.google_calendar,.meeting .bar.google_calendar{--kind:var(--accent)}
.cal-mini .dot{background:var(--kind,var(--fg))}.meeting .bar.o365_calendar,.meeting .bar.google_calendar{background:var(--kind)}.meeting.past .bar.o365_calendar,.meeting.past .bar.google_calendar{background:var(--line)}
/* month */
.cal-month{background:var(--card);border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:auto;overflow:hidden;align-content:start}
.cal-month .cal-dow{padding:10px 10px 8px;border-bottom:1px solid var(--line)}
.cal-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-height:92px;padding:8px;border-bottom:1px solid var(--bg);border-right:1px solid var(--bg);color:inherit;text-decoration:none;min-width:0}
.cal-cell:nth-child(7n){border-right:0}.cal-cell:hover{background:var(--bg);text-decoration:none}.cal-cell.sel{background:var(--bg)}.cal-cell.out{opacity:.4}
.cal-cell .cal-num{width:24px;height:24px;font-size:12px}.cal-more{font-size:11px;color:var(--muted)}
/* week and day */
.cal-week{background:var(--card);border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:52px repeat(var(--cols),minmax(0,1fr));grid-template-rows:auto minmax(560px,1fr);overflow:hidden;min-height:0}
.cal-corner{border-bottom:1px solid var(--line)}
.cal-dayhead{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 8px;border-bottom:1px solid var(--line);border-left:1px solid var(--bg);color:inherit;text-decoration:none;min-width:0}
.cal-dayhead:hover{background:var(--bg);text-decoration:none}.cal-dayhead.sel{background:var(--bg)}.cal-dayhead .cal-num{width:28px;height:28px;font-size:15px}.cal-count{font-size:11px;color:var(--muted);min-height:1.2em}
.cal-dayhead .cal-mini{align-self:stretch;padding:2px 6px;border-radius:4px;background:var(--bg);margin-top:2px}
.cal-hours{position:relative;overflow:hidden}.cal-hours span{position:absolute;right:8px;font:10px var(--mono);color:var(--faint);transform:translateY(-50%)}.cal-hours span:first-child{transform:none;top:2px !important}
.cal-col{position:relative;border-left:1px solid var(--bg);overflow:hidden}.cal-col.sel{background:color-mix(in srgb,var(--bg) 55%,transparent)}
.cal-line{position:absolute;left:0;right:0;border-top:1px solid var(--bg)}.cal-now{position:absolute;left:0;right:0;border-top:1.5px solid var(--accent);z-index:2}
.cal-ev{position:absolute;left:4px;width:calc(100% - 8px);display:flex;flex-direction:column;gap:2px;align-items:stretch;padding:3px 8px;border:1px solid var(--line);border-left:3px solid var(--kind,var(--fg));border-radius:6px;background:var(--card);text-align:left;white-space:normal;overflow:hidden;z-index:1;font-size:12px;line-height:1.3;gap:1px}
.cal-ev:hover{border-color:var(--fg);border-left-color:var(--kind,var(--fg))}.cal-ev.past{opacity:.6}
.cal-ev-title{font-weight:500;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.cal-ev-note{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* the selected day */
.cal-day{padding:20px;gap:16px;overflow:auto;min-height:0;align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px)}
.cal-day h2.cal-day-title{font:500 18px var(--sans);letter-spacing:-.02em;text-transform:none;color:var(--fg)}.cal-day-brief{margin:0;font-size:13px;color:var(--fg-2);line-height:1.5}
.cal-day .meeting{grid-template-columns:44px 3px minmax(0,1fr) 0;gap:12px;padding:12px 0}.cal-day .meeting .title{font-size:13.5px;line-height:1.35}.cal-day .meeting .brief{font-size:12.5px}
@media (max-width:1180px){.cal-body{grid-template-columns:1fr}.cal-day{position:static;max-height:none}}

/* calendar · the week ahead (HEM-133, artboard 1e) */
.cw{padding:18px 20px;gap:14px;position:relative}.cw-head{flex-wrap:wrap;gap:16px;align-items:baseline}.cw-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.cw-sum{font-size:13px;color:var(--fg-2)}.cw-sum b{font-weight:500}.cw-sum b.copper{color:var(--copper-dark)}
.cw-read{font-size:11px;color:var(--muted)}.cw-read.warn{color:var(--copper-dark)}.cw-flash{margin:0}
.cw-empty{display:flex;flex-direction:column;gap:8px;padding:12px 0}.cw-empty h2{font:500 18px var(--sans);letter-spacing:-.02em;text-transform:none;color:var(--fg)}.cw-empty p{margin:0;font-size:14px;color:var(--fg-2);line-height:1.5;max-width:560px}
.cw-grid{display:grid;grid-template-columns:40px repeat(7,minmax(0,1fr));gap:0 8px}
.cw-dayhead{display:flex;flex-direction:column;gap:3px;padding:0 2px 8px;border-bottom:1px solid var(--line);min-width:0}.cw-dayhead .cw-lbl{font-size:13px;font-weight:500;color:var(--fg)}.cw-dayhead.today .cw-lbl{font-weight:600}.cw-dayhead.weekend .cw-lbl{color:var(--faint)}
.cw-dsum{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}.cw-allday{font-size:11px;color:var(--fg-2);background:var(--bg);border-radius:4px;padding:1px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-hours{position:relative;height:var(--h)}.cw-hours span{position:absolute;right:4px;font:10px var(--mono);color:var(--faint);transform:translateY(-6px)}
.cw-col{position:relative;height:var(--h);border-radius:4px;min-width:0}.cw-col.today{background:color-mix(in srgb,var(--bg) 60%,transparent)}
.cw-line{position:absolute;left:0;right:0;height:1px;background:var(--sep)}.cw-now{position:absolute;left:-2px;right:-2px;height:2px;background:var(--accent);border-radius:1px;z-index:4}
.cw-free{position:absolute;left:2px;right:2px;border:1px dashed #BFD0B8;background:var(--free);border-radius:5px;display:flex;align-items:center;justify-content:center;font:10.5px var(--mono);color:#4E6B45;overflow:hidden}
@media (prefers-color-scheme:dark){.cw-free{border-color:#4E6B45;color:#8FB585}}
.cw-rail{position:absolute;left:-5px;width:3px;border-radius:2px;background:var(--accent);z-index:2}
.cw-offer{position:absolute;left:2px;right:2px;border:1px dashed var(--accent);background:var(--tint);color:var(--copper-dark);border-radius:5px;font:500 10.5px var(--mono);padding:0 5px;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;z-index:2;display:block}.cw-offer:hover{background:var(--tint-2);border-style:solid}
.cw-ev{position:absolute;padding:2px 5px;border-radius:5px;border:1px solid var(--line);background:var(--bg);display:flex;gap:4px;align-items:flex-start;cursor:pointer;z-index:3;text-align:left;min-width:0}
.cw-ev:hover,.cw-ev:focus-visible{border-color:var(--fg);outline:0;z-index:5}.cw-ev.open{z-index:6}
.cw-ev.acc{background:var(--bg)}.cw-ev.org{background:var(--bg);box-shadow:inset 2px 0 0 var(--fg)}
.cw-ev.ten,.cw-ev.hold{background:repeating-linear-gradient(135deg,var(--paper) 0 4px,#E9E3D9 4px 7px);color:var(--fg-2)}
@media (prefers-color-scheme:dark){.cw-ev.ten,.cw-ev.hold{background:repeating-linear-gradient(135deg,var(--card) 0 4px,var(--card-2) 4px 7px)}}
.cw-ev.pen{background:var(--card);border:1px dashed var(--accent)}.cw-ev.dec{background:transparent;color:var(--faint)}.cw-ev.dec .cw-ev-title{text-decoration:line-through}
.cw-ev.cluster{background:var(--tint);border-color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.cw-ev.cluster .cw-ev-title{font-weight:600;color:var(--copper-dark)}
.cw-ev.past:not(.open){opacity:.55}.cw-ev.clipped{border-top-style:dotted}
.cw-ev-title{flex:1;min-width:0;font-size:11px;line-height:1.3;font-weight:500;color:inherit;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--lines,3)}
.cw-ev .q,.cw-out .q{flex:none;width:13px;height:13px;border-radius:50%;background:var(--accent);color:#fff;font:600 9px var(--sans);display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.cw-ev .na{flex:none;margin-top:1px;display:inline-flex;color:var(--muted)}.cw-ev .two{flex:none;font:10px var(--mono);color:var(--muted);margin-top:1px}
.cw-pop{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:260px;max-width:340px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(31,29,26,.12);z-index:7;cursor:default;flex-direction:column;gap:6px;text-align:left;color:var(--fg);opacity:1}
.cw-ev.open .cw-pop{display:flex}.cw-col:nth-last-child(-n+3) .cw-pop{left:auto;right:0}
.cw-pop-head{display:flex;flex-direction:column;gap:2px}.cw-pop-head b{font-size:13.5px;font-weight:500;line-height:1.3}.cw-pop-head .mono{font-size:11px;color:var(--muted)}.cw-pop-who{font-size:12px;color:var(--fg-2)}
.cw-pop-flags{display:flex;flex-wrap:wrap;gap:4px}.cw-pop-flags:empty{display:none}.cw-pop .flag,.cw-member .flag{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px}.cw-pop .flag.warn,.cw-member .flag.warn{color:var(--copper-dark);border-color:var(--tint-2)}
.cw-pop-acts{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding-top:2px}.cw-pop-acts .act{background:none;border:0;padding:0;font:500 12.5px var(--sans);color:var(--fg);cursor:pointer}.cw-pop-acts .act.quiet{color:var(--muted);font-weight:400}.cw-pop-acts .act:hover{color:var(--accent);border:0}.cw-pop-acts .vsep{width:1px;height:12px;background:var(--line)}
.cw-pop-cluster{min-width:320px;max-width:420px;max-height:60vh;overflow:auto}
.cw-member{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:8px 0;border-top:1px solid var(--sep)}.cw-member .range{font-size:11px;color:var(--muted);padding-top:2px}.cw-member-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.cw-member-title{font-size:13px;font-weight:500;line-height:1.3}.cw-member.dec .cw-member-title{text-decoration:line-through;color:var(--faint)}.cw-member-meta{font-size:11px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.cw-foot{min-width:0;padding-top:6px}.cw-fold{font-size:11px;color:var(--muted)}.cw-fold summary{cursor:pointer;display:flex;align-items:center;gap:4px;list-style:none;padding:2px 0}.cw-fold summary::-webkit-details-marker{display:none}.cw-fold .chev{width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s}.cw-fold[open] .chev{transform:rotate(45deg)}
.cw-out{display:flex;gap:6px;align-items:baseline;width:100%;background:none;border:0;border-top:1px solid var(--sep);padding:5px 0;font-size:11.5px;color:var(--fg);text-align:left;white-space:normal;cursor:pointer;border-radius:0}.cw-out:hover{color:var(--accent);border-color:var(--sep)}.cw-out .mono{color:var(--muted);flex:none}.cw-out .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.cw-out.dec .t{text-decoration:line-through;color:var(--faint)}.cw-out.past{opacity:.55}
.cw-none{font:11px var(--mono);color:var(--faint)}
.cw-legend{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font-size:12px;color:var(--muted);padding-top:8px;border-top:1px solid var(--sep)}.cw-legend span{display:inline-flex;gap:6px;align-items:center}
.cw-legend i{width:18px;height:12px;border-radius:3px;border:1px solid var(--line);background:var(--bg);display:inline-block}.cw-legend i.org{box-shadow:inset 2px 0 0 var(--fg)}.cw-legend i.ten{background:repeating-linear-gradient(135deg,var(--paper) 0 4px,#E9E3D9 4px 7px)}.cw-legend i.pen{background:var(--card);border:1px dashed var(--accent)}
.cw-legend i.rail{width:3px;height:14px;border:0;border-radius:2px;background:var(--accent)}.cw-legend i.free{background:var(--free);border:1px dashed #BFD0B8}.cw-legend i.offer{background:var(--tint);border:1px dashed var(--accent)}.cw-hint{margin-left:auto}
.cw-switch{display:none;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.cw-switch::-webkit-scrollbar{display:none}
.cw-switch button{flex:none;display:inline-flex;flex-direction:column;align-items:center;gap:1px;min-width:52px;min-height:44px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:13px;color:var(--fg)}.cw-switch button small{font:10.5px var(--mono);color:var(--muted)}
.cw-switch button.sel{background:var(--fg);color:var(--bg);border-color:var(--fg)}.cw-switch button.sel small{color:var(--bg)}.cw-switch button.today:not(.sel){border-color:var(--accent)}
@media (max-width:600px){
  .cw{padding:12px 14px}.cw-switch{display:flex}.cw-hint,.cw-sum,.cal-head .cal-range{display:none}.cal-tools{width:100%;justify-content:space-between}
  .cw-grid{grid-template-columns:40px minmax(0,1fr)}.cw-dayhead:not(.sel),.cw-col:not(.sel),.cw-foot:not(.sel){display:none}
  .cw-ev-title{font-size:13px}.cw-pop,.cw-col:nth-last-child(-n+3) .cw-pop{left:0;right:0;min-width:0;max-width:none}.cw-pop-cluster{max-width:none}
  .cw-pop-acts .act{min-height:32px}.cw-legend{gap:6px 12px;font-size:11px}
}
