/* Шрифты оболочки (@fontsource-variable 5.3.0, OFL-1.1), подмножества latin + cyrillic */
@font-face{font-family:"Geist Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-latin.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist Variable";font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/geist-cyrillic.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-latin.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/fonts/source-serif-4-cyrillic.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
/* Токены — значения из web/src/styles/tokens.css (светлая :5-35, тёмная .dark :36-62) */
:root{color-scheme:light;--canvas:#F0ECE0;--surface:#FFFFFF;--subtle:#F5F2EA;--hover-overlay:rgb(26 26 24 / .05);--selected:#E3DCCB;--selection:rgb(42 120 204 / .22);--text-primary:#1A1A18;--text-secondary:#55534B;--text-tertiary:#5F5B53;--line-subtle:#E5E0D6;--line:#DCD4C2;--line-strong:#BDB3A0;--line-contrast:#857E70;--btn-ink:#1A1A18;--btn-ink-hover:#33322E;--on-btn-ink:#FAF9F5;--ring:#2A78CC;--info-ink:#1D5A9E;--danger-ink:#AE251D;--danger-soft:#F8EBEB;--font-sans:"Geist Variable",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-serif:"Source Serif 4 Variable","PT Serif",Georgia,"Times New Roman",serif;--radius-md:8px;--radius-xl:16px;--ease-standard:cubic-bezier(.2,0,0,1)}
:root.dark{color-scheme:dark;--canvas:#2B2A27;--surface:#1F1E1B;--subtle:#302E2A;--hover-overlay:rgb(255 255 255 / .06);--selected:#383631;--selection:rgb(111 166 245 / .30);--text-primary:#ECE9E1;--text-secondary:#B3AFA5;--text-tertiary:#A6A298;--line-subtle:#35332F;--line:#3D3A35;--line-strong:#57534B;--line-contrast:#7D786D;--btn-ink:#ECE9E1;--btn-ink-hover:#D9D5CB;--on-btn-ink:#1F1E1B;--ring:#6FA6F5;--info-ink:#8DB8F2;--danger-ink:#F49A90;--danger-soft:#3D2F2B}
@media (prefers-contrast:more){:root,:root.dark{--line:var(--line-contrast);--line-subtle:var(--line-strong);--text-tertiary:var(--text-secondary)}}
/* База — web/src/styles/app.css:6-14 */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100dvh;background:var(--canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:20px;-webkit-font-smoothing:antialiased}
::selection{background:var(--selection)}
:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
[hidden]{display:none!important}
h1,h2,h3{text-wrap:balance}
/* Страница входа: центр холста, как пустой чат (ChatView.tsx:213) */
.auth-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px}
.auth-card{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:32px}
.brand{display:flex;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:600;color:var(--text-primary)}
.logo{display:block;flex:none;height:14px;width:auto}
h1{font-family:var(--font-serif);font-optical-sizing:auto;font-weight:400;font-size:30px;line-height:38px;letter-spacing:-.015em;margin:28px 0 8px}
#intro{margin:0;color:var(--text-secondary)}
.signed-in{margin:16px 0 0;padding:12px;border:1px solid var(--line-contrast);border-radius:var(--radius-md);background:var(--selected);display:grid;gap:8px}
.signed-in p{margin:0;font-size:14px;line-height:20px;overflow-wrap:anywhere}
.signed-in .signed-in-hint{font-size:13px;line-height:18px;color:var(--text-secondary)}
.signed-in-go{justify-self:start;display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:var(--radius-md);background:var(--btn-ink);color:var(--on-btn-ink);font-weight:500;text-decoration:none}
.signed-in-go:hover{background:var(--btn-ink-hover)}
.signed-in-go:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.invite-facts{margin:12px 0 0;padding:8px 12px;border-radius:var(--radius-md);background:var(--subtle);font-size:13px;line-height:18px;overflow-wrap:anywhere}
#login-form{display:flex;flex-direction:column;gap:16px;margin-top:24px}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:18px;color:var(--text-secondary)}
input{height:40px;width:100%;min-width:0;margin:0;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);font:inherit;font-size:14px;line-height:20px;transition:border-color 120ms var(--ease-standard)}
input::placeholder{color:var(--text-tertiary)}
input:hover{border-color:var(--line-strong)}
input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}
input:-webkit-autofill{box-shadow:0 0 0 1000px var(--selected) inset;-webkit-text-fill-color:var(--text-primary);caret-color:var(--text-primary)}
input:-webkit-autofill:focus{box-shadow:0 0 0 1000px var(--selected) inset,0 0 0 1px var(--ring)}
input[aria-invalid=true]{border-color:var(--danger-ink)}
input[readonly]{background:var(--subtle);font-size:13px}
button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--btn-ink);color:var(--on-btn-ink);font:inherit;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color 120ms var(--ease-standard),border-color 120ms var(--ease-standard),transform 80ms var(--ease-standard)}
button:hover:not(:disabled){background:var(--btn-ink-hover)}
button:active:not(:disabled){transform:scale(.98)}
button:disabled{opacity:.45;cursor:not-allowed}
.secondary{background:var(--surface);color:var(--text-primary);border-color:var(--line)}
.secondary:hover:not(:disabled){background:var(--hover-overlay);border-color:var(--line-strong)}
#submit{width:100%;height:40px;font-size:15px;margin-top:4px}
#submit:disabled{opacity:1;cursor:progress}
#submit:disabled::before{content:"";flex:none;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:auth-spin 1s linear infinite}
#feedback{margin:0;min-height:20px;font-size:13px;line-height:18px;color:var(--text-secondary);overflow-wrap:anywhere}
#feedback.error:not(:empty){padding:8px 12px;border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger-ink)}
.error{color:var(--danger-ink)}
.hint{margin:16px 0 0;font-size:12px;line-height:16px;color:var(--text-tertiary)}
#login-form .hint{margin:0}
a{color:var(--info-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media (max-width:767px){.auth-page{justify-content:flex-start;padding:24px 16px}.auth-card{padding:24px}input,#submit{height:44px}input{font-size:16px}}
@media (prefers-reduced-motion:reduce){*,*::before{transition-duration:0ms!important}#submit:disabled::before{animation-duration:2s}}
@media (forced-colors:active){:focus-visible,input:focus{outline:2px solid Highlight;outline-offset:2px}}
/* Codex R116-R1-03: страница учётной записи (/account, если оболочка не главная) — та же таблица стилей, своя раскладка */
main.account{max-width:820px;margin:48px auto;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl)}
main.account nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
main.account section{border-top:1px solid var(--line);margin-top:28px;padding-top:16px}
main.account form{display:flex;flex-direction:column;gap:12px;max-width:480px}
.user-row{display:flex;gap:16px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}
.user-row p{margin:3px 0;color:var(--text-secondary)}
@media (max-width:767px){main.account{margin:16px;padding:24px}.user-row{align-items:flex-start;flex-direction:column}}
