:root{color:#172225;font-synthesis:none;text-rendering:optimizelegibility;--ink:#172225;--muted:#637074;--paper:#fffef8;--line:#dce0da;--brand:#0d7569;--brand-dark:#09574f;--accent:#efaa57;--error:#a32a35;--success:#176b4b;--shadow:0 24px 70px #2231321f;background:#f4f4ee;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{min-height:100vh;margin:0}button,input,textarea,select{font:inherit}a{color:var(--brand-dark);text-underline-offset:.2em}a:hover{color:var(--brand)}:focus-visible{outline-offset:3px;outline:3px solid #f3a84f}.skip-link{z-index:10;color:#fff;background:var(--ink);border-radius:.5rem;padding:.7rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:none}h1,h2{color:var(--ink);margin:0;font-family:ui-rounded,SF Pro Rounded,Inter,system-ui,sans-serif;line-height:1.12}h1{letter-spacing:-.045em;max-width:15ch;font-size:clamp(2rem,6vw,3.5rem)}h2{letter-spacing:-.02em;font-size:1.25rem}p{margin:.75rem 0}.brand{color:var(--ink);letter-spacing:-.04em;align-items:center;gap:.15rem;font:800 1.25rem ui-rounded,SF Pro Rounded,Inter,system-ui,sans-serif;text-decoration:none;display:inline-flex}.brand span{color:#fff;background:var(--brand);border-radius:.7rem .7rem .7rem .2rem;place-items:center;width:2.05rem;height:2.05rem;display:grid}.public-shell{grid-template-rows:auto 1fr auto;min-height:100vh;padding:clamp(1.25rem,4vw,3rem);display:grid;position:relative;overflow:hidden}.public-shell:before,.public-shell:after{z-index:-1;content:"";border-radius:50%;position:absolute}.public-shell:before{background:#dcece6;width:34rem;height:34rem;top:-10rem;right:-8rem}.public-shell:after{background:#f7dfc1;width:32rem;height:32rem;bottom:-16rem;left:-12rem}.public-shell>header,.public-shell>footer{width:min(100%,75rem);margin:0 auto}.public-shell>footer{color:var(--muted);align-self:end;padding-top:2rem;font-size:.88rem}.auth-card{width:min(100%,34rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffef8f0;border:1px solid #ffffffb3;border-radius:1.75rem;align-self:center;margin:3rem auto;padding:clamp(1.5rem,5vw,3.25rem)}.auth-card h1{margin-bottom:1rem}.intro,.muted,.hint{color:var(--muted)}.eyebrow{color:var(--brand);letter-spacing:.14em;text-transform:uppercase;margin:0 0 .75rem;font-size:.75rem;font-weight:700}form{gap:1.15rem;margin-top:1.5rem;display:grid}.field{gap:.4rem;display:grid}.field label{font-weight:600}input:not([type=checkbox]){width:100%;min-height:3rem;color:var(--ink);background:#fff;border:1px solid #bdc5c1;border-radius:.65rem;padding:.7rem .85rem}textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #bdc5c1;border-radius:.65rem;padding:.7rem .85rem}textarea{resize:vertical}input:not([type=checkbox]):hover{border-color:#7f8c88}.hint,.field-error{font-size:.82rem}.field-error{color:var(--error)}.valid{color:var(--success)}.checkbox-row{align-items:flex-start;gap:.65rem;font-size:.9rem;display:flex}.checkbox-row input{width:1.15rem;height:1.15rem;accent-color:var(--brand);flex:none;margin-top:.15rem}.checkbox-row.compact{margin:-.25rem 0 .25rem}button,.button-link{cursor:pointer;border:0;border-radius:.7rem;justify-content:center;align-items:center;min-height:2.75rem;padding:.65rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}button.primary,.button-link{color:#fff;background:var(--brand);box-shadow:0 10px 25px #0d75692e}button:hover,.button-link:hover{transform:translateY(-1px)}button.primary:hover,.button-link:hover{color:#fff;background:var(--brand-dark)}button:disabled{cursor:not-allowed;opacity:.55;transform:none}.text-button{min-height:auto;color:var(--brand-dark);background:0 0;padding:.5rem}.split-links{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.4rem;font-size:.9rem;display:flex}.switch{margin-top:1.4rem;font-size:.9rem}.form-error,.success{border-radius:.65rem;margin:1rem 0;padding:.85rem 1rem}.form-error{color:var(--error);background:#fff1f2;border:1px solid #eac3c6}.success{color:var(--success);background:#eaf8f1;border:1px solid #b8dfcf}.app-shell{background:linear-gradient(155deg,#eef4ef 0%,#f8f3e8 100%);min-height:100vh}.app-header{justify-content:space-between;align-items:center;width:min(100% - 2rem,76rem);margin:0 auto;padding:1.25rem 0;display:flex}.header-actions,.button-row,.section-heading,.page-heading{align-items:center;gap:.75rem;display:flex}.section-heading,.page-heading{justify-content:space-between}.app-nav{background:#fffef8bf;border:1px solid #ffffffbf;border-radius:.9rem;gap:.25rem;width:min(100% - 2rem,76rem);margin:0 auto;padding:.35rem;display:flex;overflow-x:auto}.app-nav a{color:var(--muted);border-radius:.65rem;flex:none;padding:.55rem .8rem;font-size:.9rem;font-weight:700;text-decoration:none}.app-nav a.active{color:#fff;background:var(--brand)}.nav-badge,.unread-badge{color:#fff;background:var(--error);border-radius:999px;place-items:center;min-width:1.35rem;min-height:1.35rem;margin-left:.4rem;padding:0 .3rem;font-size:.7rem;line-height:1;display:inline-grid}.realtime-notification{z-index:20;width:min(100% - 2rem,30rem);box-shadow:var(--shadow);background:#eaf8f1;border:1px solid #b8dfcf;border-radius:.8rem;align-items:center;gap:.5rem;padding:.65rem .8rem .65rem 1rem;display:flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.realtime-notification a{flex:1;font-weight:700}.app-main{gap:1.25rem;width:min(100% - 2rem,76rem);margin:2rem auto 0;padding-bottom:4rem;display:grid}.page-heading{padding:1rem 0}.page-heading h1{max-width:none}.dashboard{gap:1.25rem;width:min(100% - 2rem,76rem);margin:2rem auto;padding-bottom:4rem;display:grid}.hero-panel,.panel{background:#fffef8e0;border:1px solid #ffffffbf;box-shadow:0 15px 45px #22313212}.hero-panel{border-radius:1.5rem;justify-content:space-between;align-items:flex-start;gap:2rem;padding:clamp(1.5rem,5vw,3rem);display:flex}.hero-panel h1{font-size:clamp(2rem,5vw,3.25rem)}.hero-panel p:last-child{max-width:55ch;color:var(--muted)}.role-badge{color:var(--brand-dark);background:#d8efe8;border-radius:999px;flex:none;padding:.45rem .75rem;font-size:.8rem;font-weight:700}.dashboard-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.25rem;display:grid}.panel{border-radius:1.25rem;padding:clamp(1.25rem,3vw,2rem)}.profile-list{margin:1.5rem 0 0}.profile-list div{border-bottom:1px solid var(--line);grid-template-columns:7rem 1fr;padding:.8rem 0;display:grid}.profile-list dt{color:var(--muted)}.profile-list dd{overflow-wrap:anywhere;margin:0;font-weight:600}.session-list{gap:0;margin:1rem 0 0;padding:0;list-style:none;display:grid}.session-list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.session-list li div{gap:.12rem;min-width:0;display:grid}.session-list span,.session-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.session-list button{border:1px solid var(--line);color:var(--ink);background:0 0;flex:none}.center{place-items:center;min-height:100vh;display:grid}h3{color:var(--ink);margin:0}.secondary{color:var(--ink);background:#fff;border:1px solid #c7cec9}.compact-button{min-height:2.25rem;padding:.35rem .7rem;font-size:.85rem}.avatar{object-fit:cover;color:#fff;background:var(--brand);border-radius:50%;flex:none;place-items:center;width:3rem;height:3rem;font-size:1.1rem;font-weight:800;display:grid}.avatar-large{width:6rem;height:6rem;font-size:2rem}.profile-summary,.profile-hero,.inviter-preview{align-items:center;gap:1rem;margin-top:1.25rem;display:flex}.profile-summary>div,.person-main{gap:.2rem;min-width:0;display:grid}.profile-summary span,.profile-summary small,.person-main span,.person-main small{color:var(--muted)}.compact-list,.card-list{gap:0;margin:1rem 0 0;padding:0;list-style:none;display:grid}.compact-list li{border-top:1px solid var(--line);align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.compact-list li>a,.compact-list li>div,.compact-list li>strong{flex:1}.compact-list li>span{color:var(--muted);font-size:.85rem}.empty-state{color:var(--muted);text-align:center;border:1px dashed #c7cec9;border-radius:.8rem;padding:1.5rem}.content-grid{gap:1.25rem;display:grid}.sidebar-grid{grid-template-columns:minmax(15rem,.35fr) minmax(0,1fr);align-items:start}.avatar-panel{justify-items:start}.avatar-panel .avatar{margin-bottom:.5rem}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;width:1px;height:1px;position:absolute}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.unsaved{color:#8a5719;font-size:.85rem;font-weight:700}.security-forms form{border:1px solid var(--line);border-radius:.9rem;padding:1rem}.search-bar{grid-template-columns:1fr auto;gap:.6rem;margin:0;display:grid}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.person-card,.request-card{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:1rem;padding:1rem 0;display:grid}.person-actions,.chat-action{align-items:flex-start;gap:.5rem;display:flex}.chat-action{flex-direction:column;margin-top:1rem}.person-actions .chat-action{margin-top:0}.chat-action small{max-width:17rem}.inline-error{color:var(--error)}.request-card{grid-template-columns:auto minmax(0,1fr) auto}.request-card blockquote{color:var(--muted);border-left:3px solid #c8ddd6;margin:.5rem 0 0;padding-left:.75rem}.status-dot{color:var(--muted);align-items:center;gap:.35rem;font-size:.82rem;display:inline-flex}.status-dot:before{content:"";background:#9ba5a1;border-radius:50%;width:.55rem;height:.55rem}.status-dot.online:before{background:#28a46e}.status-line{align-items:center;gap:.5rem;display:flex}.tag-list{flex-wrap:wrap;gap:.45rem;margin-top:1.2rem;display:flex}.tag-list span,.qr-status{color:var(--brand-dark);background:#d8efe8;border-radius:999px;padding:.35rem .6rem;font-size:.78rem;font-weight:700}.qr-status.near_limit,.qr-status.paused,.qr-status.limit_reached{color:#764a15;background:#fae5c8}.qr-panel{align-content:start}.qr-image{border-radius:1rem;width:min(100%,21rem);margin:1rem auto}.history-list small{color:var(--muted);display:block}.load-more{margin-top:1rem}.inviter-preview{align-items:flex-start;margin:1.25rem 0}.inviter-preview h1{font-size:clamp(1.8rem,5vw,2.8rem)}.invite-message{border-left:4px solid var(--accent);white-space:pre-wrap;background:#fff8ec;border-radius:0 .7rem .7rem 0;margin:1rem 0;padding:1rem}.join-actions{text-align:center;gap:1rem;margin-top:1.5rem;display:grid}.chat-layout{grid-template-columns:minmax(16rem,.34fr) minmax(0,1fr);align-items:stretch;gap:1.25rem;display:grid}.conversation-sidebar,.conversation-panel{min-height:38rem}.conversation-sidebar{padding:1rem}.conversation-list{gap:.35rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.conversation-list a{color:var(--ink);border-radius:.75rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.75rem;text-decoration:none;display:grid}.conversation-list a:hover,.conversation-list a.selected{background:#e8f1ec}.conversation-list .avatar{width:2.65rem;height:2.65rem}.conversation-copy{min-width:0;display:grid}.conversation-copy>span,.conversation-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.conversation-copy>span{max-width:25ch}.unread-badge{margin:0}.conversation-panel{grid-template-rows:auto auto auto minmax(15rem,1fr) auto;min-width:0;padding:0;display:grid;overflow:hidden}.conversation-header{border-bottom:1px solid var(--line);align-items:center;gap:.8rem;padding:1rem 1.25rem;display:flex}.conversation-header a{text-decoration:none}.conversation-header h2{font-size:1.1rem}.chat-search{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem;margin:0;padding:.75rem 1.25rem;display:grid}.chat-search input:not([type=checkbox]){min-height:2.5rem}.chat-notice{color:#70430d;background:#fff5e5;border-bottom:1px solid #efd3a9;margin:0;padding:.8rem 1.25rem;font-size:.88rem}.message-history{overscroll-behavior:contain;background:linear-gradient(#f7f8f3,#fffef8);min-height:18rem;max-height:62vh;padding:1rem 1.25rem;overflow-y:auto}.older-messages{margin:0 auto 1rem;display:flex}.search-result-label{color:var(--muted);text-align:center;font-size:.82rem}.message-row{margin:.45rem 0;display:flex}.message-row.own{justify-content:flex-end}.message-bubble{border:1px solid var(--line);overflow-wrap:anywhere;background:#fff;border-radius:.9rem .9rem .9rem .2rem;max-width:min(78%,38rem);padding:.65rem .8rem}.message-row.own .message-bubble{background:#dff2ec;border-color:#b8dcd3;border-radius:.9rem .9rem .2rem}.message-body{white-space:pre-wrap;margin:0}.message-bubble small{color:var(--muted);text-align:right;margin-top:.3rem;font-size:.7rem;display:block}.pending-message{opacity:.72}.pending-message.failed{opacity:1;background:#fff1f2;border-color:#e1a8ad}.retry-button{min-height:auto;color:var(--error);background:0 0;margin-top:.35rem;padding:.25rem 0;font-size:.78rem}.message-composer{padding:.85rem 1.25rem calc(.85rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);grid-template-columns:minmax(0,1fr) auto;gap:.6rem;margin:0;display:grid;position:sticky;bottom:0}.message-composer textarea{max-height:9rem}.message-composer small{color:var(--muted);grid-column:1/-1;font-size:.72rem}.read-only-composer{padding:1rem 1.25rem calc(1rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);background:var(--paper)}@media (max-width:720px){.public-shell{padding:1rem}.auth-card{border-radius:1.2rem;margin:2rem auto}.dashboard-grid,.sidebar-grid,.form-grid{grid-template-columns:1fr}.hero-panel{flex-direction:column-reverse;gap:1rem}.session-list li{flex-direction:column;align-items:flex-start}.person-card,.request-card{grid-template-columns:auto minmax(0,1fr)}.person-card>.status-dot,.person-card>.person-actions,.request-card>.button-row{grid-column:2;justify-self:start}.app-header{align-items:flex-start}.header-actions{flex-direction:column;align-items:flex-end}.chat-layout{grid-template-columns:1fr}.conversation-sidebar,.conversation-panel{min-height:auto}.conversation-list{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.message-history{max-height:55vh}.message-bubble{max-width:88%}}@media (max-width:480px){.chat-search{grid-template-columns:minmax(0,1fr) auto}.chat-search .text-button{grid-column:1/-1;justify-self:start}.message-composer{grid-template-columns:1fr}.message-composer small{grid-column:1}}@media (prefers-reduced-motion:no-preference){button,.button-link{transition:transform .12s,background .12s}}
