:root{--bg:#faf8f2;--surface:#fff;--ink:#192e2b;--muted:#52615b;--green:#214d43;--on-green:#fff;--lime:#ddeb9d;--line:#b6c3b8;--wash:#eef0e5;--error:#8d2020;--focus:#774300;--font-scale:1;color-scheme:light;font-size:calc(20px * var(--font-scale));font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;line-height:1.6}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button,a{touch-action:manipulation}a{color:var(--green);text-underline-offset:.2em}button{border:1px solid transparent;border-radius:12px;background:var(--green);color:var(--on-green);padding:.65rem 1.1rem;min-height:48px;font-weight:650;line-height:1.35}button:hover{filter:brightness(.92)}button:active{transform:translateY(1px)}button:disabled{cursor:wait;opacity:.65}button.secondary,.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button.text-button{background:transparent;color:var(--green);padding:.4rem .3rem;text-decoration:underline;text-underline-offset:.2em}button.danger{background:var(--error);color:#fff}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;background:var(--green);color:var(--on-green);padding:.65rem 1.1rem;text-decoration:none;font-weight:650;border:1px solid transparent;line-height:1.35}.button:hover{filter:brightness(.92)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}input,textarea,select{width:100%;min-width:0;border:1px solid var(--muted);border-radius:9px;background:var(--surface);color:var(--ink);padding:.65rem .75rem;min-height:50px;caret-color:var(--green)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}textarea{min-height:130px;resize:vertical}label{display:grid;gap:.35rem;font-weight:600}label small{font-weight:400;color:var(--muted)}input[type=checkbox]{width:25px;height:25px;min-height:25px;flex:none;accent-color:var(--green)}.check{display:flex;align-items:center;gap:.6rem;min-height:48px;font-size:.9rem}.check input{margin:0}.field{margin-bottom:1rem}.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.muted{color:var(--muted)}.small{font-size:.85rem}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15;letter-spacing:-.03em;overflow-wrap:anywhere}h1{font-size:clamp(2.15rem,4vw,3.4rem);margin-bottom:1rem;font-weight:700}h2{font-size:1.65rem;margin-bottom:.8rem}h3{font-size:1.2rem;margin-bottom:.4rem}p{max-width:68ch;margin-bottom:1rem}::selection{background:var(--lime);color:var(--ink)}[hidden]{display:none!important}.topbar{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem 3rem;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-size:1.55rem;font-weight:800;letter-spacing:.08em;color:var(--ink)}.brand-symbol{display:inline-flex;justify-content:center;align-items:center;width:44px;height:44px;background:var(--green);color:var(--lime);border-radius:50%;font-size:2.5rem;line-height:1;padding-bottom:8px;letter-spacing:0}.brand-dot{color:var(--green);margin-inline-start:-.5rem}.top-controls{display:flex;align-items:center;gap:1rem}.language-label{display:flex;align-items:center;gap:.6rem;font-size:.85rem}.language-label select{width:auto;max-width:190px}.skip{position:absolute;top:-150px;inset-inline-start:16px;z-index:100;background:var(--lime);color:var(--ink);padding:16px}.skip:focus{top:12px}.access-panel{max-width:1320px;margin:1rem auto;padding:1.4rem 2rem;border:1px solid var(--line);border-radius:16px;background:var(--wash)}.access-fields{display:flex;gap:1rem;flex-wrap:wrap;align-items:end;margin-bottom:1rem}.access-fields label:first-child{max-width:180px}.access-panel p{margin-bottom:0}.sandbox{text-align:center;background:var(--wash);padding:.45rem 1rem;font-size:.8rem;border-bottom:1px solid var(--line)}.notice:empty{display:none}.notice{max-width:1200px;margin:1rem auto;padding:.8rem 1rem;background:var(--wash);border:1px solid var(--green);border-radius:10px}.notice.error{color:var(--error);border-color:var(--error);background:var(--surface)}#shell{max-width:1440px;margin:auto;min-height:65vh}main{min-width:0;padding:2.5rem 3rem}main:focus{outline:none}.landing{display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;align-items:start;padding-top:1rem}.hero{padding-top:1rem}.hero h1{font-size:clamp(2.6rem,4.3vw,4.2rem);line-height:1.07;max-width:10ch;margin:1.4rem 0}.hero .lead{font-size:1.15rem;max-width:37ch}.hero .accent{color:var(--green)}.hero-rule{width:75px;height:5px;background:var(--green);border:0;margin:0}.values{margin-top:2rem;padding:0;list-style:none;display:grid;gap:.9rem}.values li{display:flex;gap:.8rem;align-items:start}.value-mark{font-size:.8rem;min-width:30px;min-height:30px;border-radius:50%;background:var(--lime);display:inline-flex;align-items:center;justify-content:center;font-weight:800;margin-top:.15rem}.welcome-form{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:1.75rem}.welcome-form h2{margin-bottom:.65rem}.welcome-form .wide{width:100%}.welcome-form .switch{margin:1rem 0 0;text-align:center}.demo-entry{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.demo-entry button{width:100%}.app-shell{display:grid;grid-template-columns:235px minmax(0,1fr)}.sidebar{padding:2rem 1.3rem 2rem 2rem;border-inline-end:1px solid var(--line)}.sidebar nav{display:grid;gap:.35rem}.sidebar a{display:flex;align-items:center;min-height:52px;padding:.6rem .9rem;border-radius:11px;text-decoration:none;color:var(--muted);font-weight:600}.sidebar a:hover{background:var(--wash)}.sidebar a[aria-current=page]{background:var(--green);color:var(--on-green)}.sidebar .member{margin:2rem .6rem 1rem;font-size:.85rem;overflow-wrap:anywhere}.sidebar button{width:100%;font-size:.85rem}.page-top{display:flex;justify-content:space-between;align-items:start;gap:1rem;margin-bottom:1.5rem}.page-top h1{margin-bottom:.65rem}.page-top p{margin-bottom:0}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);padding:.25rem .65rem;border-radius:30px;font-size:.75rem;white-space:normal}.pill.green{background:var(--lime);border-color:var(--lime);color:#192e2b}.filters{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:.75rem;align-items:end;background:var(--wash);padding:1rem;border-radius:14px;margin:1.5rem 0}.filters label{font-size:.8rem}.filters input,.filters select{font-size:.85rem}.filters button{font-size:.85rem}.profiles{display:grid;gap:0}.profile{padding:1.6rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:64px minmax(0,1fr);gap:1rem}.avatar{width:64px;height:64px;border-radius:50%;background:var(--wash);color:var(--green);display:grid;place-items:center;font-size:1.4rem;font-weight:650}.profile:nth-child(3n+2) .avatar{background:#ecdcd1;color:#623b28}.profile:nth-child(3n+3) .avatar{background:#dce5ef;color:#294663}.profile-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.profile h2{font-size:1.4rem;margin:0}.profile .meta{font-size:.85rem;margin:.35rem 0 .8rem;color:var(--muted)}.profile p{overflow-wrap:anywhere;white-space:pre-line}.profile-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.9rem}.profile-actions button,.profile-actions a{font-size:.85rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.empty{border:1px dashed var(--line);border-radius:16px;padding:2rem;margin:1.5rem 0;background:var(--surface)}.empty p:last-child{margin-bottom:0}.form-width{max-width:760px}.section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.stack{display:grid;gap:1rem}.conversation{display:flex;align-items:center;gap:1rem;padding:1.2rem 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.conversation .summary{min-width:0;flex:1}.conversation p{margin:0;overflow-wrap:anywhere}.conversation strong{font-size:1.1rem}.conversation:hover{background:var(--wash)}.messages{display:grid;gap:1rem;padding:1rem 0;max-height:52vh;overflow:auto;overscroll-behavior:contain}.message{padding:.8rem 1rem;border-radius:14px;background:var(--wash);max-width:88%;justify-self:start;min-width:100px}.message.own{justify-self:end;background:var(--green);color:var(--on-green)}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:.25rem 0}.message .byline{font-size:.75rem}.composer{padding-top:1.2rem;margin-top:1rem;border-top:1px solid var(--line)}.composer textarea{min-height:100px}.composer .actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.8rem}.chat-back{display:inline-block;margin-bottom:1.2rem;min-height:48px}.safety-content{max-width:800px}.safety-content h2{margin-top:2rem}details{margin:.8rem 0}summary{cursor:pointer;min-height:48px;padding:.45rem 0;font-weight:600}dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;max-width:min(600px,95vw);padding:1.5rem}dialog::backdrop{background:#0008}dialog .actions{display:flex;gap:.6rem;margin-top:1rem;flex-wrap:wrap}footer{max-width:1320px;margin:1rem auto 0;padding:1.5rem 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:var(--muted)}footer a{min-height:44px;display:flex;align-items:center}footer span{padding:.5rem 0}.loading{padding:2rem;color:var(--muted)}.danger-zone{border:1px solid var(--error);padding:1.2rem;border-radius:14px}.danger-zone h2{color:var(--error)}
:root[data-contrast=high]{--bg:#000;--surface:#000;--ink:#ffef5e;--muted:#fff;--green:#ffef5e;--on-green:#000;--lime:#ffef5e;--line:#fff;--wash:#191919;--error:#ffa6a6;--focus:#fff;color-scheme:dark}[data-contrast=high] .avatar,[data-contrast=high] .profile:nth-child(n) .avatar{background:var(--wash);color:var(--ink)}[data-contrast=high] .pill.green{color:#000}[data-contrast=high] .brand-symbol{color:#000}[data-contrast=high] .value-mark{color:#000}[data-contrast=high] button.danger{color:#000}
@media(min-width:900px){:root[data-large=yes] .app-shell{grid-template-columns:1fr}:root[data-large=yes] .sidebar{border-inline-end:0;border-bottom:1px solid var(--line)}:root[data-large=yes] .sidebar nav{display:flex;flex-wrap:wrap}:root[data-large=yes] .landing{grid-template-columns:1fr}:root[data-large=yes] .filters{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){.topbar{padding:1rem 1.5rem}main{padding:2rem 1.5rem}.landing{gap:2rem}.app-shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:1.5rem .8rem}.filters{grid-template-columns:1fr 1fr}footer{margin-inline:1.5rem}.access-panel{margin-inline:1rem}}
@media(max-width:760px){.topbar{flex-wrap:wrap;gap:.8rem}.top-controls{width:100%;justify-content:space-between;gap:.5rem}.top-controls button{font-size:.8rem}.language-label{font-size:.75rem}.language-label select{font-size:.8rem;max-width:160px}.landing{grid-template-columns:1fr;gap:1.5rem;padding:0}.hero{padding:0}.hero h1{max-width:14ch;margin-top:1rem;font-size:2.6rem}.hero .lead{font-size:1rem}.values{margin:1rem 0;gap:.5rem;font-size:.85rem}.welcome-form{padding:1.2rem}.app-shell{grid-template-columns:1fr}.sidebar{padding:.7rem 1rem;border-inline-end:0;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;flex-wrap:wrap;gap:.25rem}.sidebar a{font-size:.8rem;min-height:48px;padding:.5rem .65rem}.sidebar .member{display:none}.sidebar>button{width:auto;margin:.5rem .65rem 0;font-size:.75rem}.page-top{display:block}.page-top>.pill{margin-top:.8rem}main{padding:1.5rem 1rem}.profile{grid-template-columns:46px minmax(0,1fr);gap:.7rem}.avatar{width:46px;height:46px;font-size:1rem}.profile-actions{margin-inline-start:-3rem}.profile h2{font-size:1.3rem}.profile-header{align-items:start}.filters{grid-template-columns:1fr 1fr;padding:.8rem;gap:.6rem}.filters label:first-child{grid-column:1/-1}.filters button{grid-column:1/-1}.row{grid-template-columns:1fr}.access-panel{padding:1rem}.notice{margin:1rem}.hero-rule{width:50px}.brand{font-size:1.3rem}.safety-content h1{font-size:2rem}footer{margin-inline:1rem}.message{max-width:95%}h1{font-size:2.1rem}}
@media(max-width:420px){.filters{grid-template-columns:1fr}.top-controls{flex-wrap:wrap}.profile{grid-template-columns:1fr}.profile>.avatar{display:none}.profile-actions{margin-inline-start:0}.profile-actions button,.profile-actions a{flex:1 1 auto}}
/* User requirement: default white on black, optional yellow on black. */
:root{--bg:#080808;--surface:#101010;--ink:#fff;--muted:#c7c7c7;--green:#fff;--on-green:#080808;--lime:#fff;--line:#747474;--wash:#202020;--error:#ffaaaa;--focus:#ffdf55;color-scheme:dark}
.brand-symbol{color:#080808}.brand-dot{color:var(--ink)}.value-mark{color:#080808}.profile:nth-child(n) .avatar{background:var(--wash);color:var(--ink)}.pill.green{color:#080808}button.danger{color:#080808}.hero-rule{background:var(--ink)}
.voice-dock{max-width:1320px;margin:1.1rem auto 0;padding:1rem 1.3rem;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.voice-top{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.voice-top h2{font-size:1.2rem;margin:0;flex:1}.voice-top button{font-size:.85rem}#voice-status:empty{display:none}#voice-status{margin:1rem 0 0}#command-form{display:flex;align-items:end;gap:.8rem}#command-form label{flex:1;min-width:0}.call-panel{max-width:1000px;margin:1rem auto;padding:1.5rem;border:2px solid var(--ink);border-radius:14px}#remote-audio{display:block;max-width:100%;margin-top:1rem}.filter-details{grid-column:1/-1;margin:0}.filter-details .row{margin-top:1rem}.filters .field{margin:0}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.profile-pager{display:flex;gap:.5rem;flex-wrap:wrap}.profile-pager button{font-size:.8rem}.profile[data-selected=true]{outline:2px solid var(--ink);outline-offset:8px;border-radius:6px}.confirm-banner{margin-top:1rem;border:1px solid var(--line);padding:1rem;border-radius:12px}.confirm-banner .profile-actions{margin:0}
@media(max-width:1100px){.voice-dock,.call-panel{margin-inline:1rem}}
@media(max-width:760px){.voice-top{align-items:stretch}.voice-top h2{flex-basis:100%}#command-form{display:grid}.voice-dock{padding:1rem}.voice-top button{flex:1}}
@media(prefers-reduced-motion:no-preference){button,.button{transition:background-color 140ms ease-out,transform 140ms ease-out}}
@media(forced-colors:active){button,.button,.pill,.avatar{border:1px solid ButtonText}.sidebar a[aria-current=page]{outline:2px solid Highlight}}
.photo-thumb{padding:0;border:2px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden;display:block;width:160px;min-width:100px;color:var(--ink)}.photo-thumb img{width:100%;height:190px;object-fit:cover;display:block}.profile.has-photo{grid-template-columns:160px minmax(0,1fr)}.photo-editor{padding-bottom:1.5rem;margin-bottom:1.8rem;border-bottom:1px solid var(--line)}.photo-editor .photo-thumb{margin-bottom:1rem}.photo-viewer{width:min(900px,95vw);max-width:95vw;max-height:95dvh}.photo-scroll{overflow:auto;max-height:65dvh;margin:1rem 0;border:1px solid var(--line);border-radius:8px}.photo-scroll img{display:block;width:100%;height:auto;max-width:none}.photo-viewer p{white-space:pre-line}.photo-viewer .profile-actions{margin:0}input[type=file]{max-width:100%;font-size:.8rem}.photo-editor textarea{min-height:100px}
@media(max-width:760px){.profile.has-photo{grid-template-columns:1fr}.profile.has-photo .photo-thumb{width:180px}.profile.has-photo .photo-thumb img{height:215px}.photo-viewer{padding:1rem}}
/* Text enlargement must reflow controls, including long translated words. */
body{overflow-wrap:anywhere}button,.button{max-width:100%;overflow-wrap:anywhere;min-width:0}#command-form{min-width:0}#command-form>*{min-width:0}.access-fields>*{max-width:100%}h1,h2,h3{scroll-margin-top:1rem;text-wrap:balance}dialog{overscroll-behavior:contain}main:focus-visible{outline:3px solid var(--focus);outline-offset:-5px}footer{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}
@media(max-width:760px){#command-form{grid-template-columns:minmax(0,1fr)}}

/* Installed mobile shell: protect content from notches without restricting zoom. */
body{padding-inline-start:env(safe-area-inset-left,0px);padding-inline-end:env(safe-area-inset-right,0px)}
.topbar{padding-top:calc(1.2rem + env(safe-area-inset-top,0px))}.top-controls{flex-wrap:wrap}
#pwa-dialog{max-height:90dvh;overflow:auto;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}#pwa-dialog h3{margin-top:1.3rem}#pwa-dialog p:empty{display:none}#pwa-dialog .actions{flex-wrap:wrap;gap:.8rem}
.pwa-update p{margin-bottom:.8rem}button{-webkit-user-select:none;user-select:none}.button:active{transform:translateY(1px)}
@media(display-mode:standalone){body{min-height:100dvh}html{overscroll-behavior-y:contain}}
@media(hover:none){button:hover,.button:hover{filter:none}.sidebar a:hover,.conversation:hover{background:transparent}.sidebar a[aria-current=page]:hover{background:var(--green)}}
@media(max-width:760px){.top-controls{justify-content:flex-start}.topbar{padding-top:calc(1rem + env(safe-area-inset-top,0px))}}

/* One consistent target for touch, keyboard and spoken button names. */
.social-auth{margin-block:1rem 1.5rem}.social-buttons{display:grid;gap:1rem}.social-buttons p{margin:.4rem 0 0}
.social-button{min-height:56px}.social-button[aria-disabled=true]{border-style:dashed;cursor:not-allowed;opacity:1}
.social-divider{margin-block:1.5rem 1rem;border-top:1px solid var(--line);padding-top:1rem}
.social-onboarding{margin-inline:auto}.social-onboarding>button{margin-top:1rem}.social-onboarding h1{font-size:clamp(1.6rem,4vw,2.5rem)}
@media(max-width:760px){.landing .welcome-form{order:-1}.landing .hero{margin-top:1rem}}
