:root{--bg:#fbf8f8;--surface:#fff;--surface-soft:#fff8fa;--ink:#2e2024;--muted:#806d73;--line:#eadde1;--accent:#ffc5d3;--accent-strong:#99606e;--accent-deep:#662c39;--accent-wash:#fff0f4;--danger:#ad4e5c;--danger-wash:#fff0f1;--shadow:0 16px 45px rgba(102,44,57,.08);--radius:18px}[data-theme=dark]{--bg:#21171b;--surface:#2c1d23;--surface-soft:#35232a;--ink:#fff5f7;--muted:#c9aeb6;--line:#51333e;--accent:#ffc5d3;--accent-strong:#e89bab;--accent-deep:#ffc5d3;--accent-wash:#4b2833;--danger:#ff9eaa;--danger-wash:#4a252d;--shadow:0 16px 45px rgba(0,0,0,.24)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;transition:background-color 260ms ease,color 260ms ease}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}.shell,.sidebar,.card,.input,.textarea,.person,.bottomnav,.callbar,.settings-panel,.settings-link{transition:background-color 260ms ease,border-color 260ms ease,color 260ms ease,box-shadow 260ms ease}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:23px;letter-spacing:-.04em}.brand-mark{width:35px;height:35px;display:block}.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:28px 18px;display:flex;flex-direction:column;gap:28px;min-height:100vh}.nav{display:grid;gap:6px}.nav button,.bottomnav button{color:var(--muted);background:transparent;padding:12px 14px;border-radius:13px;text-align:left;font-weight:650;display:flex;align-items:center;gap:11px;transition:background-color 200ms ease,color 200ms ease,transform 200ms ease}.nav button:hover,.bottomnav button:hover{background:var(--accent-wash);color:var(--accent-strong)}.nav button:active{transform:translateY(1px)}.nav button.active,.bottomnav button.active{background:var(--accent);color:var(--accent-deep);box-shadow:0 5px 16px rgba(153,96,110,.14)}.nav-icon{width:18px;text-align:center;font-size:18px}.account{margin-top:auto;border-top:1px solid var(--line);padding-top:18px;display:flex;gap:10px;align-items:center}.account small{display:block}.avatar{width:42px;height:42px;border-radius:14px;background:var(--accent-deep);color:var(--accent);display:grid;place-items:center;font-weight:800;flex:0 0 auto}.avatar.sm{width:34px;height:34px;border-radius:11px;font-size:12px}.main{max-width:1200px;width:100%;margin:auto;padding:38px 5vw 80px;min-width:0}.topline{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.h1{font-size:clamp(28px,4vw,42px);line-height:1.1;letter-spacing:-.045em;margin:4px 0}.muted{color:var(--muted)}.grid{display:grid;gap:18px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.page-sections{display:grid;gap:46px;margin-top:24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card h2,.card h3{margin:0 0 15px;letter-spacing:-.025em}.stat-card{padding:20px 22px}.stat{font-size:32px;font-weight:800;color:var(--accent-deep);margin-top:4px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.stack{display:grid;gap:12px}.btn{padding:10px 15px;border-radius:12px;background:var(--accent-deep);color:var(--accent);font-weight:750;transition:transform 180ms ease,filter 180ms ease,background-color 220ms ease,color 220ms ease}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.ghost{background:var(--accent-wash);color:var(--accent-strong)}.btn.subtle{background:var(--bg);color:var(--ink)}.btn.danger{background:var(--danger-wash);color:var(--danger)}.input,.textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg);color:var(--ink);outline:none}.input:focus,.textarea:focus,button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:2px}.list{display:grid;gap:10px}.person{padding:12px;border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;gap:12px;background:var(--surface)}.person:hover{background:var(--surface-soft)}.person .grow{flex:1;min-width:0}.conversation{width:100%}.online{width:9px;height:9px;border-radius:50%;background:#aab0ad;display:inline-block;margin-left:4px}.online.yes{background:#5fc28b;box-shadow:0 0 0 3px rgba(95,194,139,.2)}.tabs{display:flex;gap:8px;overflow:auto}.tabs button{background:transparent;color:var(--muted);padding:10px 12px;border-bottom:2px solid transparent;white-space:nowrap;transition:color 180ms ease,border-color 180ms ease}.tabs button.active{color:var(--accent-strong);border-color:var(--accent-strong)}.chat{height:520px;display:grid;grid-template-rows:auto 1fr auto}.messages{overflow:auto;padding:16px 3px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:72%;padding:10px 13px;border-radius:16px;background:var(--bg);align-self:flex-start}.bubble.mine{align-self:flex-end;background:var(--accent-deep);color:var(--accent)}.auth{min-height:100vh;display:grid;place-items:center;padding:25px}.authbox{max-width:450px;width:100%}.authbox .brand{justify-content:center;margin-bottom:28px}.auth-card{animation:appear 280ms ease both}.error{color:var(--danger);font-size:13px}.bottomnav{display:none}.toast{position:fixed;right:20px;bottom:20px;background:var(--accent-deep);color:var(--accent);padding:12px 16px;border-radius:13px;z-index:5;animation:toast-in 220ms ease both}.callbar{position:fixed;right:20px;top:20px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:15px;border-radius:18px;z-index:4;max-width:320px;animation:appear 220ms ease both}.settings-layout{max-width:820px}.settings-section{margin-bottom:38px}.section-heading{margin-bottom:13px}.section-heading h2{font-size:22px;margin:3px 0}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.setting-row{min-height:92px;padding:22px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.setting-row+.setting-row{border-top:1px solid var(--line)}.setting-row>b,.setting-row>div>b{font-size:15px}.setting-row p{margin:7px 0 0;color:var(--muted);font-size:13px}.theme-row{align-items:flex-start}.theme-options{display:flex;gap:5px;padding:4px;background:var(--bg);border:1px solid var(--line);border-radius:12px;flex-shrink:0}.theme-choice{background:transparent;color:var(--muted);border-radius:9px;padding:8px 12px;transition:background-color 180ms ease,color 180ms ease}.theme-choice:hover{color:var(--accent-strong)}.theme-choice.selected{background:var(--accent);color:var(--accent-deep);font-weight:750}.toggle{position:relative;width:48px;height:28px;border-radius:999px;background:var(--line);padding:3px;display:flex;align-items:center;justify-content:flex-start;flex:0 0 auto;transition:background-color 180ms ease,box-shadow 180ms ease}.toggle span{display:block;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:0 2px 5px rgba(0,0,0,.15);transform:translateX(0);transition:transform 180ms ease}.toggle.on{background:var(--accent);box-shadow:0 0 0 3px rgba(255,197,211,.22)}.toggle.on span{transform:translateX(20px)}.settings-link{width:100%;background:transparent;color:var(--ink);padding:17px 20px;display:flex;align-items:center;justify-content:space-between;text-align:left}.settings-link+.settings-link{border-top:1px solid var(--line)}.settings-link:hover{background:var(--surface-soft)}.settings-link small{display:block;color:var(--muted);margin-top:3px}.settings-link.disabled{cursor:default}.danger-zone{border-top:1px solid var(--line);padding-top:28px}.danger-zone .btn{margin-top:5px}.profile-card{max-width:650px}.profile-avatar{width:75px;height:75px;font-size:22px}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:800px){.shell{display:grid;grid-template-columns:170px minmax(0,1fr);align-items:stretch}.sidebar{display:flex;min-height:100vh;padding:20px 10px;gap:22px}.main{padding:25px 14px 60px;min-width:0}.bottomnav{display:none}.sidebar .brand{font-size:20px;gap:7px}.sidebar .brand-mark{width:30px;height:30px}.nav button{padding:11px 8px;font-size:13px;gap:7px}.nav-icon{width:16px;font-size:16px}.account{font-size:12px}.grid2,.grid3{grid-template-columns:1fr}.topline{align-items:flex-start}.card{padding:18px}.page-sections{gap:34px;margin-top:20px}.setting-row{align-items:flex-start;padding:22px 16px}.theme-row{display:block}.theme-options{margin-top:13px;width:max-content;max-width:100%}.toggle{margin-top:3px}.settings-section{margin-bottom:30px}}
.shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}
.nav-icon{font-size:0;display:inline-block;width:18px;height:18px;flex:0 0 18px;background-color:#662C39;transition:background-color 200ms ease}.nav button:nth-child(1) .nav-icon{mask:url('/assets/icons/home.svg') center/contain no-repeat;-webkit-mask:url('/assets/icons/home.svg') center/contain no-repeat}.nav button:nth-child(2) .nav-icon{mask:url('/assets/icons/friends.svg') center/contain no-repeat;-webkit-mask:url('/assets/icons/friends.svg') center/contain no-repeat}.nav button:nth-child(3) .nav-icon{mask:url('/assets/icons/messages.svg') center/contain no-repeat;-webkit-mask:url('/assets/icons/messages.svg') center/contain no-repeat}.nav button:nth-child(4) .nav-icon{mask:url('/assets/icons/calls.svg') center/contain no-repeat;-webkit-mask:url('/assets/icons/calls.svg') center/contain no-repeat}.nav button:nth-child(5) .nav-icon{mask:url('/assets/icons/settings.svg') center/contain no-repeat;-webkit-mask:url('/assets/icons/settings.svg') center/contain no-repeat}[data-theme=dark] .nav-icon{background-color:#FFC5D3}@media(max-width:800px){.nav-icon{width:16px;height:16px;flex-basis:16px}}
.nav button{font-size:16px}
.nav button,.bottomnav button{color:#662C39}
[data-theme=dark] .nav button,[data-theme=dark] .bottomnav button{color:#FFC5D3}
.nav button.active,.bottomnav button.active{background:#FFC5D3;color:#662C39}
[data-theme=dark] .nav button.active,[data-theme=dark] .bottomnav button.active,[data-theme=dark] .nav button.active:hover,[data-theme=dark] .bottomnav button.active:hover{background:#99606E;color:#FFC5D3}
.page-sections{gap:22px}
@media(max-width:800px){.page-sections{gap:20px}}
.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.nav{position:relative}
.nav::before{content:"";position:absolute;z-index:0;left:0;right:0;top:var(--indicator-y,0px);height:var(--indicator-height,0px);border-radius:13px;background:#FFC5D3;box-shadow:0 5px 16px rgba(153,96,110,.14);pointer-events:none;transition:top 320ms cubic-bezier(.22,1.2,.36,1),height 180ms ease,background-color 260ms ease,box-shadow 260ms ease}
.nav button{position:relative;z-index:1}
.nav button.active{background:transparent;color:#662C39;box-shadow:none}
[data-theme=dark] .nav::before{background:#99606E;box-shadow:0 5px 16px rgba(0,0,0,.2)}
[data-theme=dark] .nav button.active,[data-theme=dark] .nav button.active:hover{background:transparent;color:#FFC5D3}
@media(prefers-reduced-motion:reduce){.nav::before{transition:none}.nav button,.toggle,.toggle span{transition:none}}
.nav::before{transition:none}
.nav.indicator-ready::before{transition:top 320ms cubic-bezier(.22,1.2,.36,1),height 180ms ease,background-color 260ms ease,box-shadow 260ms ease}
.auth-view{animation:auth-step-in 240ms cubic-bezier(.22,1,.36,1) both}.auth-card{animation:auth-card-in 320ms cubic-bezier(.22,1,.36,1) both}.auth-tabs button,.auth-action,.auth-link,.input{transition:background-color 180ms ease,border-color 180ms ease,color 180ms ease,box-shadow 180ms ease,transform 180ms ease,opacity 180ms ease}.auth-action:hover{transform:translateY(-1px)}.auth-action:active{transform:translateY(0)}@keyframes auth-step-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes auth-card-in{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.nav.indicator-ready::before,.auth-view,.auth-card{animation:none;transition:none}}
.auth{background:var(--bg);transition:background-color 260ms ease}.authbox{max-width:480px}.authbox .brand{margin-bottom:22px}.auth-card{padding:0;overflow:hidden}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;padding:8px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.auth-tabs button{padding:11px;border-radius:11px;background:transparent;color:var(--muted);font-weight:750;transition:background-color 180ms ease,color 180ms ease}.auth-tabs button.active{background:var(--surface);color:var(--accent-deep);box-shadow:0 4px 14px rgba(102,44,57,.08)}.auth-progress{display:flex;gap:6px;padding:22px 28px 0}.auth-progress span{height:4px;flex:1;border-radius:999px;background:var(--line);transition:background-color 220ms ease}.auth-progress span.current{background:var(--accent-strong)}.auth-view{padding:28px}.auth-heading h1{font-size:28px;margin:0 0 7px}.auth-heading p{margin:0 0 24px;color:var(--muted)}.auth-form{display:grid;gap:15px}.auth-form label{display:grid;gap:7px;font-weight:700}.auth-form label .input{font-weight:400}.auth-action{width:100%;padding:12px 15px;border-radius:12px;font-weight:750;transition:transform 180ms ease,background-color 180ms ease,filter 180ms ease,opacity 180ms ease}.auth-action:hover{transform:translateY(-1px)}.auth-action:active{transform:translateY(0)}.auth-action:disabled{opacity:.65;cursor:wait}.auth-action.primary{background:var(--accent-deep);color:var(--accent)}.auth-action.secondary{background:var(--accent-wash);color:var(--accent-deep)}.auth-action.google{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.auth-choice-list{display:grid;gap:11px}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:2px 0}.auth-divider::before,.auth-divider::after{content:"";height:1px;background:var(--line);flex:1}.auth-link{background:transparent;color:var(--accent-strong);font-weight:700;justify-self:center;padding:4px}.auth-link:hover{text-decoration:underline}.auth-actions-row{display:flex;align-items:center;justify-content:space-between;gap:15px}.auth-actions-row .auth-action{width:auto;min-width:130px}.auth-error{min-height:18px;color:var(--danger);font-size:13px}.password-field,.username-field{position:relative}.password-field .input{padding-right:62px}.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;color:var(--accent-strong);font-size:12px;font-weight:750}.field-help{display:block;color:var(--muted);font-size:12px;font-weight:400}.username-field .input{padding-right:42px;transition:background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease}.username-field .input.is-valid{border-color:#8ab99a;background:#f3faf5;box-shadow:0 0 0 3px rgba(138,185,154,.14)}.username-field .input.is-invalid{border-color:#d28d96;background:#fff5f5;box-shadow:0 0 0 3px rgba(210,141,150,.12)}.username-field .input.is-checking{border-color:var(--accent-strong)}.field-status{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-weight:900;animation:appear 180ms ease both}.username-field:has(.is-valid) .field-status{color:#4d9365}.username-field:has(.is-invalid) .field-status{color:var(--danger)}.auth-account-note{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;margin:-10px 0 18px;border-radius:10px;background:var(--accent-wash);color:var(--accent-deep);font-size:13px}.auth-account-note span{color:var(--muted)}[data-theme=dark] .username-field .input.is-valid{background:#24382d}[data-theme=dark] .username-field .input.is-invalid{background:#3d272b}@media(max-width:520px){.auth{padding:16px}.auth-view{padding:22px 18px}.auth-heading h1{font-size:25px}.authbox .brand{justify-content:flex-start}}
