/* Shared visual primitives, feed and administration. */
:root{color-scheme:light;--bg:var(--alumni-bg);--surface:var(--alumni-surface);--subtle:var(--alumni-surface-subtle);--ink:var(--alumni-text);--secondary:var(--alumni-text-secondary);--muted:var(--alumni-text-muted);--line:var(--alumni-border);--accent:var(--alumni-accent);--soft:var(--alumni-accent-soft);--error:#a12626;--success:#23633e}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--alumni-font);font-size:var(--alumni-body-font-size);line-height:var(--alumni-body-line-height);overflow-wrap:anywhere}
button{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
button,summary{cursor:pointer}
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;max-width:100%;min-height:var(--alumni-button-primary-height);padding:var(--alumni-button-primary-padding-block) var(--alumni-button-primary-padding-inline);border:var(--alumni-button-primary-border-width) solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:var(--alumni-button-primary-font-size);font-weight:var(--alumni-button-primary-font-weight);line-height:var(--alumni-button-primary-line-height);text-align:center;white-space:normal;flex-shrink:0}
button:hover{background:var(--subtle);border-color:var(--secondary)}
button:disabled{opacity:.5;cursor:wait}
button.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}
button.primary:hover{background:var(--secondary)}
button.small{min-height:var(--alumni-button-primary-height-compact);padding-inline:var(--alumni-button-primary-padding-inline-compact)}
button.cta{min-height:var(--alumni-button-primary-cta-height)}
button.subtle{border-color:transparent;background:transparent}
button.active{background:var(--soft);border-color:var(--ink)}
button.text-link{border:0;background:transparent;padding:4px 0;justify-content:flex-start;min-height:32px;font-weight:500}
button.danger{color:var(--error)}
:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}
html[data-keyboard=false] :focus{outline:none}
dialog:focus{outline:none}
button:focus-visible{position:relative;z-index:2}
h1,h2,h3,p{margin:0}
h1{font-size:28px;line-height:1.35;letter-spacing:-.03em;font-weight:700}
h2{font-size:20px;line-height:1.45;letter-spacing:-.02em}
h3{font-size:16px;line-height:1.6}
p+p{margin-top:10px}
small,.meta,time{font-size:var(--alumni-meta-font-size);line-height:var(--alumni-meta-line-height);color:var(--muted)}
.muted{color:var(--secondary);font-size:14px}
.error{color:var(--error);font-size:14px;white-space:pre-wrap}
.error:empty{display:none}
.block{display:block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
[hidden]{display:none!important}
.skip{position:fixed;top:-100px;left:12px;padding:10px;background:var(--ink);color:var(--surface);z-index:100}
.skip:focus{top:8px}
.local-banner{padding:5px 16px;background:var(--subtle);color:var(--muted);font-size:12px;text-align:center;border-bottom:1px solid var(--line)}
.topbar{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}
.menu-items{position:absolute;right:0;top:100%;z-index:25;min-width:176px;max-width:min(280px,85vw);padding:8px;display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 22px #00000012}
.menu-items>button,.menu-items>a{display:flex;align-items:center;justify-content:flex-start;text-align:left;padding:9px 10px;border:0;font-size:14px;font-weight:400;min-height:38px}
.menu-items>.identity{padding:10px;font-size:13px}
main{min-width:0}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}
.section-title h2{font-size:18px}
.section-title>a{font-size:13px;color:var(--secondary)}
.empty{padding:28px 0;color:var(--secondary);border-bottom:1px solid var(--line)}
.empty small{display:block;margin-top:6px}
.loading{padding:36px 0;color:var(--muted)}
.app-loading{display:grid;place-items:center;min-height:100vh;min-height:100svh;width:100%;margin:0;padding:24px;text-align:center}
.app-loading .brand-wordmark{font-size:24px;font-weight:600;line-height:1.3;letter-spacing:-.06em}
.app-loading p{margin:12px 0 0;color:var(--secondary);font-size:14px;line-height:1.6}
.notice{padding:12px 14px;background:var(--subtle);font-size:14px;color:var(--secondary);margin-bottom:22px;border-radius:6px}
.event-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--subtle);padding:12px 16px;border-radius:6px;margin-bottom:26px;font-size:14px}
.event-strip span{font-size:13px;color:var(--secondary)}
.home-topics{margin-bottom:26px}
.topic-mini{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line)}
.topic-mini>a{font-size:16px;font-weight:600}
.mini-reactions{flex-shrink:0}
.new-members{margin-bottom:26px}
.new-member-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.person-mini{min-width:0;padding:12px 0;border-bottom:1px solid var(--line)}
.person-mini p{font-size:14px;color:var(--secondary);margin-top:6px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.compose-call{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;margin:10px 0 24px;border-block:1px solid var(--line);font-size:14px;color:var(--secondary)}
.identity{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;line-height:1.6;color:var(--ink)}
.dot{display:inline-block;flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--muted)}
.post{padding:24px 0;border-bottom:1px solid var(--line);scroll-margin-top:130px}
.post:first-child{padding-top:4px}
.post-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.byline{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:4px}
.post-date{color:var(--muted);font-size:12px}
.post-menu{position:relative;flex-shrink:0}
.post-tools{display:flex;align-items:center;gap:2px;flex:none;margin-top:-8px}.post-edit{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 6px;font-size:12px;color:var(--muted);white-space:nowrap}.post-tools .post-menu>summary{margin-top:0}
.post-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border-radius:5px;margin-top:-8px;font-size:22px;line-height:1}
.post-menu>summary::-webkit-details-marker{display:none}
.post-menu[open]>summary{background:var(--soft)}
.post-body h2{font-size:16px;font-weight:700;line-height:1.6;margin-bottom:8px}
.prose{font-family:var(--alumni-font);font-size:var(--alumni-prose-font-size);line-height:var(--alumni-prose-line-height);white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
/* Keep the original inline order, including trailing links, inside five lines.
   clip also prevents a focused hidden link from scrolling the excerpt itself. */
.prose.clipped{display:block;max-height:9em;overflow:hidden;overflow:clip}
.expand{margin-top:4px}
.text-link{color:var(--secondary);font-size:14px;text-decoration:underline;text-underline-offset:3px}
.links{display:grid;gap:8px;margin-top:14px;font-size:14px}
.links>a,.links details>a{color:var(--secondary);text-decoration:underline;text-underline-offset:3px;display:block;overflow-wrap:anywhere}
.links details>a{margin-top:8px}
.links summary{font-size:14px}
.progress-note{margin-top:16px;padding:12px 16px;border-left:2px solid var(--line);background:var(--subtle)}
.progress-note>strong{font-size:13px}
.progress-note p{margin-top:4px}
.post-footer{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.reaction-pair{display:inline-flex;gap:4px;align-items:center}
.reaction-pair button{border-color:transparent;background:var(--subtle);font-weight:500}
.reaction-pair button.active{background:var(--soft);border-color:var(--ink);font-weight:650}
.reaction-pair .count{min-width:38px;padding-inline:10px}
.blinded{padding:16px;background:var(--subtle);font-size:14px;color:var(--secondary);display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.more{width:100%;margin:24px 0}
.tabs{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);margin:0 0 20px}
.tabs a,.tabs button{background:transparent;border:0;border-radius:0;padding:10px 0;min-height:44px;font-size:15px;font-weight:500;color:var(--secondary)}
.tabs .selected{box-shadow:inset 0 -2px var(--ink);color:var(--ink);font-weight:700}
.filters{display:grid;grid-template-columns:minmax(180px,1fr) 116px 150px;gap:10px;align-items:end;margin-bottom:10px}
.filters input,.filters select{font-size:14px}
.filters+#search-status{margin-bottom:8px;min-height:20px}
.people{margin-top:8px}
.person{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.person h2{font-size:16px;margin:0 0 6px}
.person .identity{font-size:16px}
.short-intro{font-size:14px;line-height:1.7;white-space:pre-wrap}
.person .locations{font-size:12px;color:var(--muted);margin-top:7px}
.person .text-link{display:inline-flex;align-items:center;min-height:36px;font-size:13px}
.person .save{margin-top:0}
.contacts{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap}
.login{max-width:480px;margin:52px auto;padding:0 24px}
.login h1{font-size:28px;margin-bottom:12px}
.login>p{font-size:14px;color:var(--secondary)}
.login-panel{padding-top:26px}
.login-panel>p{font-size:14px;color:var(--secondary);margin-bottom:18px}
.login-panel>.error{color:var(--error)}
.login-notice{white-space:pre-line}
.login>.login-notice.error{color:var(--error)}
.login-panel>.primary{width:100%}
.login-help{font-size:12px;color:var(--muted);border-top:1px solid var(--line);margin-top:24px;padding-top:18px}
.login-help p{margin-bottom:12px}
.login-help a{margin-left:14px}
.site-contact{margin-top:14px}
.site-contact .row a{margin-left:0;overflow-wrap:anywhere}
.contact-help{display:block;margin:-8px 0 16px}
.policy{white-space:pre-wrap;font-size:14px;line-height:1.8;margin-top:12px}
.policy-links{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 20px;margin:20px 16px 28px}.policy-links a{display:inline-flex;align-items:center;min-height:40px;font-size:12px;color:var(--secondary);text-decoration:none}.policy-links a:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}.consents .policy-links{justify-content:flex-start;margin:12px 0 0}
.row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.admin-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.admin-row .prose{max-width:100%}
.audit{font-size:12px;line-height:1.8;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
dialog{position:fixed;inset:0;max-height:calc(100dvh - 48px);width:min(620px,calc(100vw - 32px));max-width:none;margin:auto;padding:0;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--surface);box-shadow:0 12px 60px #00000022;overflow:auto}
dialog::backdrop{background:#00000035}
.dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:var(--surface);border-bottom:1px solid var(--line)}
.dialog-head h2{font-size:18px}
.dialog-head>button{font-size:22px}
.dialog-body{padding:20px 24px 16px}
.dialog-body>.prose{max-width:100%}
.popover{position:fixed;z-index:45;width:300px;max-width:calc(100vw - 24px);max-height:min(360px,calc(100dvh - 32px));overflow:auto;background:var(--surface);color:var(--ink);border:1px solid #b8b8b8;border-radius:8px;box-shadow:0 8px 26px #0000001a;padding:12px 16px 16px}
.popover-close{position:sticky;top:0;display:flex;margin-left:auto;font-size:20px;min-width:38px;background:var(--surface)!important}
.popover-content>.meta{margin:-30px 40px 14px 0;min-height:24px}
.participant{padding:10px 0;border-bottom:1px solid var(--line)}
.participant .identity{font-size:14px}
.popover-content>.primary{margin-bottom:12px}
.popover-content>button:last-child{margin-top:12px}
.contact-item{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.contact-item>span{min-width:0;overflow-wrap:anywhere}
#toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:12px 18px;border-radius:7px;background:var(--ink);color:var(--surface);font-size:14px;box-shadow:0 4px 16px #00000022;z-index:80;display:none}
#toast.visible{display:block}
@media(max-width:900px){
.filters{grid-template-columns:minmax(0,1fr) 110px}
.filters .search{grid-column:1/-1}
.event-strip{align-items:flex-start;flex-direction:column;gap:2px}
}
@media(max-width:650px){
.section-title h2{font-size:18px}
.section-title>a{font-size:12px}
.event-strip{padding:10px 12px;margin-bottom:22px;font-size:14px}
.event-strip span{font-size:12px}
.home-topics,.new-members{margin-bottom:22px}
.topic-mini{gap:12px}
.topic-mini>a{font-size:15px}
.reaction-pair{gap:4px}
.reaction-pair .small{padding-inline:9px}
.new-member-grid{grid-template-columns:1fr;gap:0}
.person-mini{padding:10px 0}
.person-mini:nth-child(n+4){display:none}
.person-mini .identity{font-size:14px}
.person-mini p{font-size:14px;-webkit-line-clamp:2}
.compose-call{gap:16px;padding:14px 0;font-size:14px;align-items:center}
.compose-call span{max-width:210px}
.post{padding:22px 0}
.post .byline{display:grid;gap:2px}
.post-head{margin-bottom:10px}
.post-body h2{font-size:16px}
.post-footer{gap:10px}
.filters{grid-template-columns:1fr 1fr;gap:8px}
.filters input,.filters select{font-size:16px}
.person{gap:12px;padding:17px 0}
.person .identity{font-size:15px}
.person .small{padding-inline:11px}
.short-intro{font-size:14px}
.login{margin:30px auto;padding:0 20px}
.login h1{font-size:26px}
.popover{left:12px!important;right:12px;bottom:max(12px,env(safe-area-inset-bottom));top:auto!important;width:auto;max-width:none;max-height:min(55dvh,440px);padding:10px 18px 18px}
.participant{padding:12px 0}
dialog{max-height:calc(100dvh - 24px);width:calc(100vw - 24px);border-radius:8px}
.dialog-head{padding:12px 16px}
.dialog-body{padding:16px}
.admin-row{align-items:flex-start}
.admin-row>.row{width:100%}
}
@media(forced-colors:active){
.selected,.active{outline:1px solid CanvasText}
.dot{border:1px solid CanvasText}
}
.bio-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}
a:hover{text-decoration:none}
a:hover{color:var(--secondary)}
button{font-weight:500}
h1{font-size:26px;font-weight:600;letter-spacing:-.025em}
h2,h3,strong{font-weight:500}
.section-title{margin-bottom:12px;gap:8px}
.section-title h2{font-size:15px;font-weight:500;letter-spacing:-.01em}
.section-title>a{color:var(--secondary)}
.event-strip{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;margin:0 0 32px;background:var(--subtle);border-radius:4px;font-size:14px;font-weight:400}
.event-strip>span{color:var(--ink);font-size:14px}
.event-strip small{display:inline-block;font-size:12px;margin-left:12px;color:var(--secondary)}
.event-strip:hover{background:var(--soft);color:var(--ink)}
.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:56px;align-items:start}
.home-feed{grid-column:1;grid-row:1;min-width:0}
.home-aside{grid-column:2;grid-row:1;min-width:0;padding-top:2px}
.feed-heading{min-height:40px;margin-bottom:22px}
.feed-heading h2{font-size:17px;font-weight:500}
.home-topics{margin-bottom:34px}
.home-proposals{margin-top:26px}
.topic-mini{padding:10px 0;gap:12px;align-items:center;border:0}
.topic-mini>a{font-size:14px;font-weight:400;line-height:1.65}
.new-member-grid{display:block}
.person-mini{display:block;border:0;padding:10px 0}
.person-mini:nth-child(n+4){display:block}
.person-mini p{font-size:13px;line-height:1.65;margin-top:4px;color:var(--secondary)}
.identity{font-size:13px;font-weight:400;gap:7px}
.dot{width:9px;height:9px;box-shadow:inset 0 0 0 1px #0000000d}
.post{padding:26px 0 28px}
.post-head{margin-bottom:10px}
.post-body h2{font-size:18px;font-weight:500;line-height:1.5;margin-bottom:10px;letter-spacing:-.015em}
.post-title:hover{color:var(--secondary)}
.post .prose{font-size:16px;line-height:1.8}
.byline{column-gap:10px;row-gap:3px}
.post-date,time{font-size:11px;color:var(--muted)}
.post-footer{margin-top:12px;gap:10px}
.post-menu>summary{font-size:20px;color:var(--muted)}
.progress-note{padding:10px 12px;background:transparent}
.progress-note>strong{font-size:12px;font-weight:500}
.icon{display:block;width:18px;height:18px;flex:none}
.icon-button,.icon-link{display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;min-height:38px;padding:8px;border:0;border-radius:5px;background:transparent;color:var(--secondary)}
.icon-button:hover,.icon-link:hover{background:var(--subtle);color:var(--ink)}
.icon-button[aria-pressed=true]{color:var(--ink)}
.reaction-pair{gap:0}
.reaction-pair .icon-button{border:0;background:transparent}
.reaction-pair .icon-button:hover{background:var(--subtle)}
.reaction-pair .icon-button[aria-pressed=true]{background:transparent;color:var(--ink)}
.reaction-pair .count{min-height:34px;min-width:26px;width:auto;padding:4px 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:12px;font-weight:400}
.reaction-pair .count:hover{color:var(--ink);background:var(--subtle)}
.person{padding:17px 0;gap:16px}
.person-info{display:block;padding:2px 0}
.person h2{margin-bottom:6px}
.person .identity{font-size:14px;font-weight:500}
.person-info:hover .identity{color:var(--secondary)}
.short-intro{font-size:14px;line-height:1.7;color:var(--secondary)}
.person .locations{font-size:11px;margin-top:5px}
.person .save{margin-top:-2px}
.tabs{gap:24px;margin-bottom:20px}
.tabs a,.tabs button{font-size:14px;font-weight:400}
.tabs .selected{font-weight:500;box-shadow:inset 0 -1px var(--ink)}
.tabs small{font-size:10px;margin-left:3px}
.participant-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px}
.participant{padding:0;border:0;min-width:0}
.participant>a{display:flex;align-items:center;min-height:28px;padding:3px 0;border-radius:3px}
.participant>a:hover{background:var(--subtle)}
.participant .identity{font-size:12px;line-height:1.5;font-weight:400;gap:5px;align-items:baseline}
.participant .dot{width:7px;height:7px}
.popover{padding:10px 14px 14px;box-shadow:0 4px 18px #00000012}
.popover-content>.meta{font-size:11px;margin-bottom:10px}
.text-link{font-size:13px;text-decoration:none;color:var(--secondary)}
.links>a,.links details>a{text-decoration:none}
.links>a:hover,.links details>a:hover{text-decoration:underline}
.expand{color:var(--muted)}
@media(max-width:900px){
.home-layout{grid-template-columns:minmax(0,1fr) 230px;gap:32px}
}
@media(max-width:650px){
.event-strip{margin-bottom:24px;padding:10px 12px}
.event-strip small{display:block;margin-left:0;margin-top:2px;font-size:11px}
.home-layout{display:flex;flex-direction:column;gap:24px}
.home-aside,.home-feed{width:100%;min-width:0}
.home-aside{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
.home-topics,.new-members,.home-proposals{margin:0}
.home-topics .section-title,.new-members .section-title,.home-proposals .section-title{margin-bottom:6px}
.home-topics .topic-mini,.home-proposals .topic-mini{padding:6px 0}
.home-topics .topic-mini:nth-of-type(n+4){display:none}
.new-member-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.person-mini{padding:6px 0}
.person-mini .identity{font-size:12px;font-weight:400}
.person-mini p{font-size:12px;line-height:1.6}
.section-title h2{font-size:14px;font-weight:500}
.feed-heading{margin-bottom:18px}
.feed-heading h2{font-size:16px}
.post .byline{display:flex;flex-wrap:wrap}
.post .identity{font-size:12px}
.post-body h2{font-size:17px}
.post{padding:24px 0}
.person .identity{font-size:14px}
.participant{padding:0}
.participant .identity{font-size:12px}
.participant-list{gap:2px 12px}
.popover{padding:10px 16px 16px}
}
.tabs a:hover{text-decoration:none}
#results[aria-busy=true]{opacity:1;visibility:visible}
#search-status{min-height:20px;margin:8px 0 4px;font-size:11px}

/* One shared layout; viewport rules change dimensions, never navigation order. */
:root{--page-gutter:24px;--header-offset:120px}
html{scroll-padding-top:var(--header-offset)}
.top-inner,.context-bar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;max-width:1088px;margin:0 auto;padding-inline:var(--page-gutter);column-gap:16px}
.top-inner{min-height:64px;padding-block:8px}
.brand{grid-column:1;grid-row:1;justify-self:start;display:block;min-width:0;max-width:100%;font-size:22px;font-weight:600;letter-spacing:-.06em;white-space:nowrap}
.brand-wordmark{display:block}.brand>span:not([class]),.brand-wordmark>span{font-size:.85em;font-weight:400;margin-left:2px}
.brand-account{display:none}
.nav{grid-column:2;grid-row:1;display:flex;align-items:center;gap:26px;justify-content:center}
.nav>a{display:flex;align-items:center;justify-content:center;min-width:38px;min-height:40px;padding:6px 0;font-size:14px;font-weight:400;color:var(--muted);border-radius:0}
.nav .selected{font-weight:500;color:var(--ink);background:transparent;box-shadow:none}
.brand:hover,.nav>a:hover,.top-actions a:hover,.context-bar a:hover{text-decoration:none}
.top-actions{grid-column:3;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.account-identity{display:flex;align-items:center;min-width:0}.account-actions{display:flex;align-items:center;gap:16px;flex:none}.profile-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:40px;padding:4px;font-size:12px;color:var(--muted)}
.top-actions .identity{min-width:0;font-size:12px;font-weight:400;gap:6px}
.top-actions .identity-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-actions .dot{display:inline-block;width:8px;height:8px;flex:none}
.top-actions .logout{min-width:44px;min-height:40px;padding:4px 0;font-size:12px;font-weight:400;color:var(--muted)}
.context-bar{min-height:42px}
.context-bar>.back{grid-column:1;grid-row:1;justify-self:start}
.context-tabs{grid-column:2;grid-row:1;min-width:0}
.context-tabs>.tabs{border:0;margin:0;gap:24px;justify-content:center}
.context-tabs .tabs a,.context-tabs .tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:6px 0;font-size:13px;font-weight:400;line-height:1.4;white-space:nowrap}
.context-tabs .tabs .selected{box-shadow:inset 0 -1px var(--ink);font-weight:500}
.context-actions{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;min-width:0}
.context-actions>button{min-height:38px;font-size:12px;padding:6px 0}
.context-actions>.icon-button{padding:8px}
.back.icon-button{margin:0;padding:8px;width:38px;min-width:38px;min-height:38px;color:var(--muted)}
.layout{display:block;max-width:1088px;margin:0 auto;padding:20px var(--page-gutter) 64px}
.layout>main{max-width:760px;margin:0 auto;min-width:0}
.layout>main:has(.home-layout){max-width:none}
.layout.single{max-width:808px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.page-head h1{font-size:24px;font-weight:500}
.page-head .muted{margin-top:6px;font-size:13px}
.empty{padding-top:4px}
.profile{padding:0;margin:0;border:0}
.profile-head{display:flex;align-items:center;gap:10px;margin:0 0 6px}
.profile-head h1{min-width:0;margin:0}
.profile-head .identity{font-size:24px;font-weight:500;line-height:1.5;gap:8px}
.profile-head .dot{width:9px;height:9px}
.profile-intro{max-width:640px;margin:0 0 10px;font-size:15px;line-height:1.7;white-space:pre-wrap}
.profile-tabs{display:flex;gap:28px;margin:0 0 12px;border-bottom:1px solid var(--line)}
.profile-tabs a{display:flex;align-items:center;min-height:40px;padding:5px 0;font-size:13px;font-weight:400}
.profile-tabs .selected{box-shadow:inset 0 -1px var(--ink);font-weight:500}
.profile-direct{display:flex;align-items:center;gap:6px;margin:0 0 6px}
.contact-direct{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--ink)}
.intro-section{padding:10px 0}
.intro-section h3{margin:0 0 4px;font-size:12px;font-weight:500;color:var(--muted)}
.profile .prose,.profile-value{font-size:15px;line-height:1.75}
.profile-value{overflow-wrap:anywhere}
.member-feed{margin:0;padding:0;border:0}
.private-memo{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.private-memo .field{margin-bottom:4px}
.private-memo textarea{min-height:68px}
.cohort-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-block:12px 20px}.cohort-edit-form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.cohort-edit-form label{flex:1;min-width:60px}.cohort-edit-form .error{width:100%;margin:0}.cohort-edit-form input[type=color]{height:38px;min-height:38px;padding:4px}
.mention-field{position:relative}.mention-suggestions{position:absolute;top:100%;left:0;right:0;z-index:50;max-height:210px;overflow-y:auto;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:6px;box-shadow:0 5px 16px #00000015;font-size:13px}.mention-suggestions.above{top:auto;bottom:100%}.mention-suggestions button{display:block;width:100%;min-height:38px;text-align:left;border:0;background:transparent;color:var(--ink);font-weight:400}.mention-suggestions button[aria-selected=true]{background:var(--subtle)}.body-mention{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.inactive-mention{color:var(--muted)}
.private-memo .form-bottom{padding:0;margin:0}
input,textarea,select{font:inherit;width:100%;min-width:0;max-width:100%;min-height:40px;padding:8px 11px;border:1px solid #dededc;border-radius:5px;background:#fafaf9;color:var(--ink);font-size:16px;line-height:1.5}
textarea{resize:vertical;min-height:80px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input:focus,textarea:focus,select:focus{background:var(--surface);border-color:#888;outline:2px solid #0000000c;outline-offset:1px}
input[type=checkbox]{width:17px;height:17px;min-height:17px;flex:none;accent-color:var(--ink)}
input[type=color]{width:72px;padding:4px}
input[readonly],textarea[readonly]{background:var(--subtle)}
.field{display:grid;align-content:start;gap:4px;min-width:0;margin:0 0 10px;color:var(--secondary);font-size:13px}
.field-label{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}
.field-label>label,.field>span{font-size:13px;font-weight:400;color:var(--secondary)}
.required{font-size:11px;color:var(--muted);font-weight:400;white-space:nowrap}
.field small{font-size:11px;line-height:1.5}
.field-clear{font-size:11px!important;color:var(--muted);min-height:32px!important;padding:4px 0!important;flex:none}
.filters .field{margin:0}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:12px}
.profile-basics input,.profile-basics select{height:42px;min-height:42px;padding:8px 11px;line-height:24px}
.filters input,.filters select{height:42px;min-height:42px;padding:8px 11px;line-height:24px}
.intro-picker{display:block;max-width:100%;margin:0 0 8px}.intro-picker select{height:40px;min-height:40px;font-size:14px;padding:6px 10px}
.login-account{margin-bottom:16px}.login-account small{font-size:12px}.operator-identity{font-size:14px;margin-bottom:14px;color:var(--secondary)}
.form-section{padding:16px 0;border-bottom:1px solid var(--line)}
.form-section:first-of-type{padding-top:0}
.form-section>h2{font-size:16px;font-weight:500;margin-bottom:12px}
.form-section>p{margin-bottom:12px}
.optional-section{padding:0;border-bottom:1px solid var(--line)}
.optional-section>summary{padding:12px 0;min-height:44px;font-size:15px;font-weight:400}
.optional-section>summary small{font-size:11px;margin-left:6px}
.optional-section[open]{padding-bottom:10px}
.repeat{padding:8px 0 12px;margin:0 0 8px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.repeat:last-child{border-bottom:0;margin-bottom:0}
.repeat .field{margin-bottom:8px}
.repeat .field-label{min-height:32px}
.repeat-bottom{display:flex;align-items:center;margin-top:0}
.checkline{display:flex;align-items:center;gap:8px;margin:8px 0 16px;min-height:38px;font-size:13px;flex-wrap:wrap}
.repeat-bottom>.visibility{display:flex;align-items:center;gap:6px;min-height:30px;margin:0;color:var(--muted);font-size:12px}
.period{margin:4px 0 8px}
.period>summary{padding:5px 0;min-height:32px;font-size:12px;color:var(--muted)}
.period>.two-col{margin:4px 0}
.period>.two-col .field{margin:0}
.period>small{font-size:11px}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 4px}
.presets>button{min-height:32px;font-size:12px;font-weight:400;padding:4px 9px;border:0;background:var(--subtle)}
.other-contacts{margin-top:12px}
.other-contacts>h3{font-size:14px;font-weight:400}
.other-contacts h3 small{margin-left:5px;font-size:11px}
.form-bottom{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 0 0;margin-top:6px;background:transparent}
.consents summary{font-size:13px;color:var(--secondary);min-height:34px;padding:6px 0}
.consents h2{font-size:15px;font-weight:500}
.consent-all{padding:0 0 12px;margin-bottom:6px;border-bottom:1px solid var(--line)}.consent-all .checkline{min-height:40px}.consent-all .checkline span{font-weight:500}.consent-all>small{display:block;padding-left:26px;font-size:12px;line-height:1.5;color:var(--secondary)}
.consents .policy{white-space:normal;min-width:0}.consents .policy-body h2{margin:20px 0 8px;font-weight:600}.consents .policy-body p{margin:10px 0;overflow-wrap:anywhere}.consents .policy-table{width:100%;max-width:100%;overflow-x:auto;margin:12px 0}.consents table{width:100%;min-width:460px;border-collapse:collapse}.consents th,.consents td{padding:8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);font-size:13px;overflow-wrap:anywhere}.consents th{font-weight:600}
.inline-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;padding:12px;margin:0 0 16px;background:var(--subtle);border:1px solid var(--line);border-radius:6px;scroll-margin-top:var(--header-offset)}
.inline-composer>*{min-width:0}
.inline-composer>.field,.inline-composer>[data-list],.inline-composer>.notice,.inline-composer>.error,.inline-composer>.conflict,.inline-composer>.attachments,.inline-composer>.meeting-fields{grid-column:1/-1}
.inline-composer input,.inline-composer textarea{background:var(--surface)}
.inline-composer textarea[name=body]{min-height:114px;max-height:clamp(114px,50vh,480px);resize:none;overflow-y:auto}
.inline-composer .repeat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:10px;margin:0;padding:0;border:0}
.inline-composer .repeat .field-label{min-height:32px}
.attachments{margin-top:4px}
.attachments h3{font-size:13px;font-weight:500;margin-bottom:2px}
.attachments .link-help{display:block;font-size:11px;margin:0 0 4px}
.attachments>[data-action=add-post-link]{font-size:12px;padding:4px 0;min-height:38px}
.inline-composer>.form-bottom{grid-column:2;justify-self:end;margin:0;padding:0}
.inline-composer .form-bottom>button{min-height:38px;font-size:12px;padding:6px 10px}
.inline-composer .form-bottom>button[type=submit]{background:var(--surface);color:var(--ink);border-color:var(--line)}
.home-layout .section-title{min-height:40px;margin-bottom:8px}
.home-layout .section-title h2{font-size:14px;font-weight:700;letter-spacing:-.01em}
.home-layout .section-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:40px;color:var(--ink)}
.home-layout .section-link:hover{color:var(--secondary)}
.prose[data-open-post]{cursor:pointer}
.prose .body-url{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.post-body-jump:focus{position:static;display:block;width:auto;height:auto;margin:4px 0;overflow:visible;clip-path:none;font-size:12px}
.home-feed .post{padding-bottom:10px}
.home-feed .post-footer{margin-top:8px}
.hide-status{font-size:11px}
.pinned-notice small{display:inline;margin:0 8px 0 0;font-size:11px}
.topic-mini>.topic-mini-link{display:flex;flex:1;flex-direction:column;justify-content:center;align-self:stretch;min-width:0;min-height:40px;font-size:15px;line-height:1.55;overflow-wrap:anywhere}
.topic-mini .block{font-size:11px;margin-top:2px}
.meeting-info{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;font-size:12px;color:var(--secondary);margin:0 0 8px;line-height:1.6}
.meeting-info time{font:inherit;color:inherit}.meeting-time{white-space:nowrap}.meeting-venue{min-width:0;overflow-wrap:anywhere}.meeting-venue::before{content:'·';margin-right:10px;color:var(--muted)}
.meeting-fields input{min-width:0;max-width:100%}
.meeting-times input[type=time]{display:block;appearance:none;-webkit-appearance:none;min-inline-size:0;max-inline-size:100%;height:42px}
.meeting-times input::-webkit-date-and-time-value{min-width:0;text-align:left}
.meeting-fields .field-label{min-height:24px}
.schedule-picker{min-width:0}
.schedule-date-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:8px}
.schedule-date-row .field{margin-bottom:0}.calendar-toggle{height:42px;min-width:52px}
.schedule-picker{margin-bottom:10px}.meeting-fields [hidden]{display:none!important}
.meeting-fields input{height:42px;min-width:0;width:100%;box-sizing:border-box}.meeting-times{margin-top:10px}
.calendar-panel{width:100%;max-width:360px;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
.calendar-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.calendar-targets>button{display:block;min-width:0;min-height:38px;padding:5px 6px;font-size:11px;text-align:left;background:transparent}
.calendar-targets>button span{display:block;font-size:12px}
.calendar-targets>button[aria-pressed=true]{border-color:var(--secondary)}
.calendar-month{display:flex;justify-content:space-between;align-items:center;margin:4px 0;font-size:13px}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.calendar-week>span{text-align:center;font-size:11px;padding:4px 0;color:var(--muted)}
.calendar-days>button{min-width:0;width:100%;min-height:38px;padding:3px 0;font-size:13px;border:0;border-radius:4px;background:transparent}
.calendar-days>button:hover,.calendar-days>button.in-range{background:var(--subtle)}
.calendar-days>button[aria-pressed=true]{background:var(--ink);color:var(--surface)}
.calendar-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:2px 8px;margin-top:6px}
.calendar-bottom>small{font-size:10px}
.calendar-bottom>button{font-size:11px;padding:4px 6px}
.signup-help{font-size:12px;line-height:1.65;color:var(--secondary);margin:8px 0}
.event-login{margin-bottom:14px}.event-login summary{font-size:14px;min-height:38px;cursor:pointer}.event-login small{display:block;font-size:12px;line-height:1.6;margin-bottom:10px}
.signup-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;margin:10px 0 0}
.signup-actions .cta{min-height:40px}.signup-actions .subtle{font-size:12px}
.profile-direct{flex-wrap:wrap}.meeting-shortcut>span:last-child{flex:none}
.comment-slot:empty{display:none}
.comments{margin:8px 0 0 8px;padding:0 0 0 12px;border-left:2px solid var(--line)}
.comment{padding:8px 0;border-bottom:1px solid var(--line)}
.comment:last-child{border-bottom:0}
.comment-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px}
.comment .byline{display:flex;align-items:baseline;gap:2px 10px;min-width:0;flex-wrap:wrap}
.comment .identity{font-size:12px;line-height:1.5;gap:5px}
.comment time{font-size:11px;line-height:1.5;white-space:nowrap}
.comment .prose{font-size:13px;line-height:1.65;margin:2px 0 0}
.comment-menu>summary{margin:0;min-height:32px;min-width:36px;font-size:18px}
.comment-menu .menu-items{min-width:112px;padding:4px;gap:0}
.comment-form,.comment-edit{padding-top:6px}
.comment-form .field,.comment-edit .field{margin-bottom:4px}
.comment-form .field-label,.comment-edit .field-label{min-height:24px}
.comment-form .field-label label,.comment-edit .field-label label{font-size:12px}
.comment-form textarea,.comment-edit textarea{min-height:62px;padding:8px 10px;font-size:13px;line-height:1.5}
.comment-form>button{display:flex;margin-left:auto;min-height:38px;font-size:12px;padding:5px 12px}
.comment-edit .form-bottom{margin:4px 0 0;gap:4px}
.comment-loading{margin:8px 0 0 20px;color:var(--muted);font-size:12px}
[aria-invalid=true]{border-color:var(--error)}
.field-error{color:var(--error);font-size:12px}
.checkline .field-error{flex-basis:100%;padding-left:25px}
@media(max-width:650px){
 :root{--page-gutter:16px;--header-offset:110px}
 .top-inner{min-height:54px;padding-block:8px;column-gap:8px}
 .brand{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:40px;font-size:17px}
 .brand-wordmark{line-height:1.2}
 .brand-account{display:block;min-width:0;max-width:100%;letter-spacing:normal}
 .brand-account .identity{display:flex;min-width:0;max-width:100%;gap:4px;font-size:11px;line-height:1.4;font-weight:400;color:var(--secondary)}
 .brand-account .identity-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .brand-account .dot{width:7px;height:7px;flex:none}
 .nav{gap:0}
 .nav>a{min-width:38px;min-height:40px;font-size:12px;padding:6px 3px}
 .top-actions{flex-direction:row;flex-wrap:nowrap;align-items:center;justify-self:end;max-width:100%;gap:0}
 .account-identity{display:none}.account-actions{gap:12px;justify-content:center}.profile-button{font-size:11px}
 .top-actions .identity{font-size:11px;gap:4px}
 .top-actions .dot{display:inline-block;width:7px;height:7px}
 .top-actions .logout{min-height:40px;font-size:11px;padding:4px 0}
 .context-bar{column-gap:8px}
 .context-tabs>.tabs{gap:16px}
 .context-tabs .tabs a,.context-tabs .tabs button{font-size:12px}
 .context-actions>button{font-size:11px}
 .layout{padding-top:16px}
 .page-head h1{font-size:22px}
 .profile-head .identity{font-size:21px}
 .profile-head .dot{width:8px;height:8px}
 .profile-intro{font-size:14px;margin-bottom:8px}
 .profile-tabs{margin-bottom:10px}
 .intro-section{padding:8px 0}
 .inline-composer{padding:10px}
 .inline-composer .repeat{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px}
 .inline-composer .field-label>label{font-size:11px}
 .inline-composer .form-bottom>button{padding-inline:8px}
}
.withdrawal{max-width:44rem}.withdrawal>p{margin-bottom:1rem}.withdrawal-delete{margin-top:1.2rem;border-top:1px solid var(--line,#ddd);padding-top:.8rem}.withdrawal-delete summary{cursor:pointer}.withdrawal .checkline{align-items:flex-start}.withdrawal .checkline input{flex:none;margin-top:.25rem}.withdrawal-receipt{max-width:100%;min-width:0;font-size:16px}.account-withdraw{margin-top:1.5rem;font-size:.85rem}.account-withdraw a{color:var(--muted,#666)}.identity.withdrawn{font-weight:400;color:var(--muted,#666)}
@media(max-width:360px){.top-inner{column-gap:4px}}
@media(max-width:340px){
 :root{--header-offset:150px}
 .top-inner{grid-template-columns:minmax(0,1fr) auto;row-gap:0}
 .top-actions{grid-column:2}
 .nav{grid-column:1/-1;grid-row:2}
}
