:root{--navy-900:#0F2D58;--navy-800:#163A6E;--navy-700:#1E4577;--navy-500:#4A6488;--navy-300:#9AABC3;--blue-700:#155AA3;--blue-600:#1F74D0;--blue-500:#2686E6;--blue-300:#8DC0F3;--blue-200:#C4DFFA;--blue-100:#E3F0FC;--blue-50:#F2F8FE;--green-700:#176B3B;--green-600:#1E8449;--green-500:#38B573;--green-300:#9BDAB7;--green-100:#E4F5EB;--green-50:#F3FAF6;--amber-700:#8A5300;--amber-500:#F2A51A;--amber-100:#FFF3D9;--red-700:#B42318;--red-500:#E0483E;--red-100:#FDE8E6;--white:#FFFFFF;--gray-50:#F5F7FA;--gray-100:#EEF2F6;--gray-200:#DDE5EE;--gray-300:#C5D0DC;--gray-500:#6B7A8F;--gray-700:#3D4B5E;--color-brand-primary:var(--navy-900);--color-brand-secondary:var(--green-500);--color-brand-accent:var(--blue-500);--color-background-primary:var(--blue-50);--color-background-secondary:var(--green-50);--color-surface:var(--white);--color-surface-tint:var(--blue-100);--color-text-primary:var(--navy-900);--color-text-secondary:var(--gray-700);--color-text-muted:var(--gray-500);--color-text-inverse:var(--white);--color-success:var(--green-600);--color-success-bg:var(--green-100);--color-info:var(--blue-600);--color-info-bg:var(--blue-100);--color-warning:var(--amber-500);--color-warning-text:var(--amber-700);--color-warning-bg:var(--amber-100);--color-error:var(--red-500);--color-error-text:var(--red-700);--color-error-bg:var(--red-100);--color-border:var(--blue-200);--color-border-neutral:var(--gray-200);--color-action-primary:var(--blue-600);--color-action-primary-hover:var(--blue-700);--color-action-success:var(--green-600);--color-action-success-hover:var(--green-700);--color-link:var(--blue-600);--color-link-hover:var(--navy-900)}:root{--type-ui-scale:.55;--fs-display:96px;--lh-display:1.04;--ls-display:-.025em;--fw-display:800;--fs-h1:72px;--lh-h1:1.08;--ls-h1:-.02em;--fw-h1:800;--fs-h2:52px;--lh-h2:1.14;--ls-h2:-.015em;--fw-h2:800;--fs-h3:38px;--lh-h3:1.2;--ls-h3:-.01em;--fw-h3:700;--fs-section:30px;--lh-section:1.25;--ls-section:0;--fw-section:700;--fs-body:30px;--lh-body:1.4;--ls-body:0;--fw-body:500;--fs-body-sm:24px;--lh-body-sm:1.4;--ls-body-sm:0;--fw-body-sm:500;--fs-caption:20px;--lh-caption:1.35;--ls-caption:.005em;--fw-caption:500;--fs-label:24px;--lh-label:1.2;--ls-label:0;--fw-label:700;--fs-badge:22px;--lh-badge:1;--ls-badge:.02em;--fw-badge:800;--fs-script:40px;--lh-script:1.1}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--canvas-margin:44px;--canvas-gutter:20px;--canvas-columns:12;--card-padding:24px;--card-padding-lg:32px;--card-gap:20px;--section-gap:48px;--heading-body-gap:12px;--media-text-gap:16px}:root{--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:24px;--radius-2xl:32px;--radius-pill:999px;--border-width:1.5px;--border-card:1.5px solid var(--color-border);--shadow-card:0 1px 2px rgba(15,45,88,.05),0 6px 18px rgba(15,45,88,.06);--shadow-floating:0 10px 30px rgba(15,45,88,.14);--shadow-button:0 3px 0 rgba(15,45,88,.18);--shadow-button-pressed:0 1px 0 rgba(15,45,88,.18);--gradient-sky:linear-gradient(180deg,#EAF4FD 0%,#F7FBFF 100%);--gradient-card:linear-gradient(180deg,#F5FAFF 0%,#EAF3FC 100%);--ease-standard:cubic-bezier(.2,.7,.2,1);--dur-fast:.12s;--dur-base:.2s}:root{--c-bg: var(--blue-50);--c-surface: #FFFFFF;--c-raised: var(--gray-50);--c-field: #FFFFFF;--c-tint: var(--blue-100);--c-scrim: rgba(11, 26, 48, .55);--c-shadow: rgba(15, 45, 88, .12);--c-ink: var(--navy-900);--c-ink-2: var(--gray-700);--c-muted: var(--gray-500);--c-on-dark: #FFFFFF;--c-line: var(--blue-200);--c-line-soft: var(--gray-200);--c-accent: var(--blue-600);--c-accent-hover: var(--blue-700);--c-accent-ink: #FFFFFF;--c-accent-soft: var(--blue-100);--c-selected-bg: var(--navy-900);--c-selected-ink: #FFFFFF;--c-selected-line: var(--navy-900);--c-brand: var(--green-600);--c-brand-hover: var(--green-700);--c-brand-ink: #FFFFFF;--c-ok: var(--green-500);--c-ok-ink: var(--green-700);--c-ok-bg: var(--green-100);--c-warn: var(--amber-500);--c-warn-ink: var(--amber-700);--c-warn-bg: var(--amber-100);--c-bad: var(--red-500);--c-bad-ink: var(--red-700);--c-bad-bg: var(--red-100);--c-info: var(--blue-500);--c-info-ink: var(--blue-700);--c-info-bg: var(--blue-100);--c-glow-ok: none;--c-glow-warn: none;--c-glow-bad: none;--c-glow-accent: none;--c-grid: transparent;color-scheme:light}:root[data-theme=dark]{--c-bg: #070B0E;--c-surface: #0C1317;--c-raised: #111A20;--c-field: #111A20;--c-tint: #0F2230;--c-scrim: rgba(0, 0, 0, .65);--c-shadow: rgba(0, 0, 0, .55);--c-ink: #E4ECF1;--c-ink-2: #B6C3CD;--c-muted: #8A9CAB;--c-on-dark: #FFFFFF;--c-line: #22313B;--c-line-soft: #18232B;--c-accent: #38BDF8;--c-accent-hover: #7DD3FC;--c-accent-ink: #04121A;--c-accent-soft: rgba(56, 189, 248, .14);--c-selected-bg: rgba(56, 189, 248, .18);--c-selected-ink: #E0F5FF;--c-selected-line: #38BDF8;--c-brand: #22C55E;--c-brand-hover: #4ADE80;--c-brand-ink: #03140A;--c-ok: #22D37A;--c-ok-ink: #6EE7A8;--c-ok-bg: rgba(34, 211, 122, .14);--c-warn: #F5B134;--c-warn-ink: #FCD27A;--c-warn-bg: rgba(245, 177, 52, .14);--c-bad: #FF5B4A;--c-bad-ink: #FF9A8F;--c-bad-bg: rgba(255, 91, 74, .14);--c-info: #38BDF8;--c-info-ink: #7DD3FC;--c-info-bg: rgba(56, 189, 248, .12);--c-glow-ok: 0 0 10px rgba(34, 211, 122, .55);--c-glow-warn: 0 0 10px rgba(245, 177, 52, .5);--c-glow-bad: 0 0 10px rgba(255, 91, 74, .55);--c-glow-accent: 0 0 14px rgba(56, 189, 248, .35);--c-grid: rgba(56, 189, 248, .045);--lr-label-size: 12px;--lr-label-case: uppercase;--lr-label-track: .06em;--lr-label-ink: var(--c-muted);--white: #0C1317;--navy-900: #E4ECF1;--navy-800: #D0DBE3;--navy-700: #B6C3CD;--navy-500: #8A9CAB;--navy-300: #52636F;--blue-700: #7DD3FC;--blue-600: #38BDF8;--blue-500: #38BDF8;--blue-300: #2F6F99;--blue-200: #22313B;--blue-100: #0F2230;--blue-50: #070B0E;--green-700: #6EE7A8;--green-600: #22D37A;--green-500: #22C55E;--green-300: #1F7A4D;--green-100: rgba(34, 211, 122, .14);--green-50: #0B1A12;--amber-700: #FCD27A;--amber-500: #F5B134;--amber-100: rgba(245, 177, 52, .14);--red-700: #FF9A8F;--red-500: #FF5B4A;--red-100: rgba(255, 91, 74, .14);--gray-50: #111A20;--gray-100: #16212A;--gray-200: #22313B;--gray-300: #2C3C47;--gray-500: #8A9CAB;--gray-700: #B6C3CD;color-scheme:dark}:root{--font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body: var(--font-display);--font-label: var(--font-display);--app-h: 100vh;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--sidebar-w: 256px;--page-pad: 20px;--lr-btn2-line: var(--c-accent);--lr-btn2-hover: var(--c-bg);--lr-btn-navy-hover: var(--navy-800)}:root[data-theme=dark]{--lr-btn2-line: var(--c-line);--lr-btn2-hover: var(--c-tint);--lr-btn-navy-hover: var(--c-accent-soft)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--c-bg);color:var(--c-ink);font-family:var(--font-body);font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#root{height:var(--app-h)}img{max-width:100%}button,input,textarea,select{font-family:inherit}input,textarea,select{font-size:15px;color:var(--c-ink);background-color:var(--c-field)}input::placeholder,textarea::placeholder{color:var(--c-muted);opacity:1}@media(pointer:coarse){input,textarea{font-size:16px!important}}a{color:var(--c-accent)}a:hover{color:var(--c-ink)}@keyframes lrUp{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@keyframes lrFade{0%{opacity:0}to{opacity:1}}@keyframes lrPulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes lrPop{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}.tap{cursor:pointer;-webkit-user-select:none;user-select:none}.tap:focus{outline:none}.tap:focus-visible,button:focus-visible{outline:2.5px solid var(--c-accent);outline-offset:2px}.card-tap{transition:border-color .12s var(--ease-standard),box-shadow .12s var(--ease-standard),transform .12s var(--ease-standard)}@media(hover:hover){.card-tap:hover{box-shadow:var(--shadow-floating)!important}.pill-tap:hover{filter:brightness(.97)}}.card-tap:active{transform:scale(.99)}:root[data-theme=dark] .tap:focus-visible,:root[data-theme=dark] button:focus-visible{box-shadow:var(--c-glow-accent)}:root[data-theme=dark] input:not([type=file]):not([type=checkbox]):not([type=radio]):focus,:root[data-theme=dark] textarea:focus,:root[data-theme=dark] select:focus{border-color:var(--c-accent)!important;box-shadow:var(--c-glow-accent)}@media(hover:hover){:root[data-theme=dark] .card-tap:hover{box-shadow:0 10px 30px var(--c-shadow)!important;border-color:var(--c-selected-line)!important}:root[data-theme=dark] .pill-tap:hover{filter:brightness(1.18)}}.app{height:var(--app-h);display:flex;overflow:hidden;background-color:var(--c-bg)}.app.km{font-family:Plus Jakarta Sans,Noto Sans Khmer,system-ui,sans-serif}.sidebar{display:none}.main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.scroll::-webkit-scrollbar{width:0;height:0}.page{width:100%;margin:0 auto;padding:calc(var(--safe-t) + 20px) var(--page-pad) 24px;display:flex;flex-direction:column;gap:16px}.page.home{gap:20px}.page.narrow{max-width:640px}.page.bare{padding:calc(var(--safe-t) + 8px) 0 calc(130px + var(--safe-b));gap:0}.topbar{display:flex;align-items:center;gap:8px;padding:8px 12px}.topbar-title{flex:1;font-weight:700;font-size:15px;text-align:center}.icon-btn{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none}@media(hover:hover){.icon-btn:hover{background:var(--c-tint)}}.home-grid{display:flex;flex-direction:column;gap:20px}.home-col{display:flex;flex-direction:column;gap:20px;min-width:0}.home-head-desktop{display:none}.card-grid{display:flex;flex-direction:column;gap:10px}.list-grid,.detail-grid{display:flex;flex-direction:column;gap:16px}.detail-col{display:flex;flex-direction:column;gap:16px;min-width:0}.page.bare .detail-grid{padding:4px var(--page-pad) 0}.tabbar{flex:none;background:var(--c-surface);border-top:1.5px solid var(--c-line);display:grid;grid-template-columns:repeat(6,1fr);align-items:start;padding:8px 0 calc(var(--safe-b) + 10px);min-height:66px;position:relative;z-index:2}.tab{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;padding-top:2px}.tab-label{font-size:11px;font-weight:700}.fab{width:58px;height:58px;margin-top:-24px;border-radius:50%;background:var(--c-brand);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-button),0 0 0 5px var(--c-surface);transition:background .12s,transform .12s}.fab:active{transform:translateY(2px);background:var(--c-brand-hover)}.tab-badge{position:absolute;top:-4px;left:50%;margin-left:6px;min-width:18px;height:18px;border-radius:9px;background:var(--c-bad);color:var(--c-on-dark);font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--c-surface);box-shadow:var(--c-glow-bad)}.bottombar{position:absolute;left:0;right:0;bottom:0;background:var(--c-surface);border-top:1.5px solid var(--c-line);padding:14px 20px calc(var(--safe-b) + 16px);z-index:3}.bottombar-inner{display:flex;flex-direction:column;gap:8px;max-width:640px;margin:0 auto}.sheet-wrap{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:flex-end}.sheet-backdrop{position:absolute;inset:0;background:var(--c-scrim);animation:lrFade .16s}.sheet{position:relative;background:var(--c-surface);color:var(--c-ink);border-radius:28px 28px 0 0;padding:10px 20px calc(var(--safe-b) + 28px);display:flex;flex-direction:column;gap:18px;max-height:calc(var(--app-h) - var(--safe-t) - 24px);overflow-y:auto;animation:lrUp .2s var(--ease-standard);-webkit-overflow-scrolling:touch}.sheet-handle{width:40px;height:5px;border-radius:3px;background:var(--c-line-soft);align-self:center;flex:none}.sheet-close{display:none}.capture-wrap{position:fixed;inset:0;z-index:20;background:#0b1a30;display:flex;align-items:center;justify-content:center}.capture{position:relative;width:100%;height:100%;background:#0b1a30;display:flex;flex-direction:column;overflow:hidden}.capture-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.cap-top{padding-top:calc(var(--safe-t) + 16px)}.cap-bottom{padding-bottom:calc(var(--safe-b) + 36px)}.cam-video,.photo-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.sig-canvas{width:100%;display:block;border-radius:14px;background:#fff;border:1px dashed var(--c-line);touch-action:none;cursor:crosshair}@media(min-width:768px){:root{--page-pad: 32px}.page{padding-top:calc(var(--safe-t) + 32px);max-width:760px}.page.home,.page.bare{max-width:760px}.list-grid,.card-grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.sheet-wrap{justify-content:center;align-items:center;padding:24px}.sheet{width:100%;max-width:520px;border-radius:24px;padding:20px 24px 24px;max-height:calc(var(--app-h) - 48px);animation:lrPop .2s var(--ease-standard);box-shadow:var(--shadow-floating)}.sheet-handle{display:none}.sheet-close{display:flex;position:absolute;top:14px;right:14px}.capture-wrap{background:#0b1a30b8;padding:24px;animation:lrFade .16s}.capture{width:440px;height:min(880px,calc(var(--app-h) - 48px));border-radius:28px;box-shadow:0 20px 60px #00000059}.capture .cap-top{padding-top:24px}.capture .cap-bottom{padding-bottom:32px}}@media(min-width:1024px){:root{--page-pad: 40px;--sidebar-w: 272px}.sidebar{display:flex;flex-direction:column;gap:6px;width:var(--sidebar-w);flex:none;background:var(--c-surface);border-right:1.5px solid var(--c-line);padding:24px 16px 20px;overflow-y:auto}.tabbar{display:none}.home-head-mobile{display:none!important}.home-head-desktop{display:flex}.page{max-width:1120px;padding-top:36px}.page.home{max-width:1180px}.page.narrow{max-width:720px}.page.bare{max-width:1120px;padding-top:16px}.home-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:start}.detail-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}.home-col .card-grid.two{display:flex;align-items:stretch}.detail-grid>.detail-col:last-child{position:sticky;top:0}.list-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.bottombar{left:0}.bottombar-inner{flex-direction:row-reverse;justify-content:flex-start;max-width:1040px}.bottombar-inner>*{flex:0 1 320px}}@media(min-width:1440px){:root{--sidebar-w: 272px}}.nav-item{display:flex;align-items:center;gap:12px;height:44px;padding:0 12px;border-radius:12px;font-size:15px;font-weight:700;color:var(--c-muted);position:relative}@media(hover:hover){.nav-item:hover{background:var(--c-bg);color:var(--c-ink)}}.nav-item.on{background:var(--c-accent-soft);color:var(--c-accent-hover)}.nav-badge{margin-left:auto;min-width:22px;height:22px;border-radius:11px;background:var(--c-bad);color:var(--c-on-dark);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 6px;box-shadow:var(--c-glow-bad)}.nav-badge.blue{background:var(--c-accent);color:var(--c-accent-ink);box-shadow:var(--c-glow-accent)}.auth-wrap{flex:1;min-height:100%;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-t) + 24px) 20px calc(var(--safe-b) + 24px);background:var(--gradient-sky);overflow-y:auto}.auth-card{width:100%;max-width:440px;display:flex;flex-direction:column;gap:22px;background:var(--c-surface);border:1.5px solid var(--c-line);border-radius:24px;padding:28px 24px;box-shadow:var(--shadow-card)}@media(max-width:480px){.auth-card{border:none;box-shadow:none;background:transparent;padding:8px 4px}.auth-wrap{align-items:flex-start;background:var(--c-bg)}}.spinner{width:20px;height:20px;border-radius:50%;border:3px solid var(--c-line);border-top-color:var(--c-accent);animation:lrSpin .8s linear infinite;flex:none}@keyframes lrSpin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;transform:translate(-50%);top:calc(var(--safe-t) + 12px);z-index:50;width:calc(100% - 24px);max-width:480px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;background:var(--c-ink);color:var(--c-surface);font-size:14px;font-weight:600;line-height:1.4;box-shadow:var(--shadow-floating);animation:lrFade .2s var(--ease-standard)}.install-card{position:fixed;left:12px;right:12px;bottom:calc(var(--safe-b) + 12px);z-index:25;margin:0 auto;max-width:480px;display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:20px;background:var(--c-bg);border:1.5px solid var(--c-line);box-shadow:var(--shadow-floating);animation:lrUp .24s var(--ease-standard)}.install-card.above-tabs{bottom:calc(var(--safe-b) + 84px)}@media(min-width:1024px){.install-card.above-tabs{bottom:24px}}:root[data-theme=dark] .app{background-image:linear-gradient(var(--c-grid) 1px,transparent 1px),linear-gradient(90deg,var(--c-grid) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}:root[data-theme=dark] .auth-wrap{background:transparent}:root[data-theme=dark] .sheet{border:1px solid var(--c-line);border-bottom:0;box-shadow:0 -12px 40px var(--c-shadow)}:root[data-theme=dark] .sheet-handle{background:var(--c-line)}:root[data-theme=dark] .tab.on:before{content:"";position:absolute;top:-9px;width:28px;height:2px;border-radius:2px;background:var(--c-accent);box-shadow:var(--c-glow-accent)}:root[data-theme=dark] .fab{box-shadow:0 0 0 5px var(--c-surface),var(--c-glow-ok)}:root[data-theme=dark] .nav-item.on{box-shadow:inset 3px 0 0 var(--c-accent)}:root[data-theme=dark] .toast{background:var(--c-raised);color:var(--c-ink);box-shadow:0 12px 34px var(--c-shadow),inset 0 0 0 1px var(--c-line),inset 3px 0 0 var(--c-accent)}:root[data-theme=dark] .install-card{background:var(--c-surface);box-shadow:0 12px 34px var(--c-shadow)}:root[data-theme=dark] .auth-card{box-shadow:0 18px 50px var(--c-shadow)}@media(max-width:480px){:root[data-theme=dark] .auth-card{margin:auto 0;background:var(--c-surface);border:1.5px solid var(--c-line);padding:24px 20px}}@media(min-width:768px){:root[data-theme=dark] .sheet{border-bottom:1px solid var(--c-line);box-shadow:0 24px 60px var(--c-shadow)}}.chat{flex:1;min-height:0;display:flex;background:transparent}.chat-list,.chat-thread{min-height:0;display:flex;flex-direction:column}.chat-list{flex:1;padding:calc(var(--safe-t) + 20px) 0 0}.chat-thread{flex:1;display:none;background:var(--c-surface)}.chat.has-room .chat-list{display:none}.chat.has-room .chat-thread{display:flex}.chat-list-head{display:flex;align-items:center;gap:10px;padding:0 var(--page-pad) 12px}.chat-list-head h1{margin:0;flex:1;font-weight:800;font-size:28px;letter-spacing:-.02em}.live-pill{font-size:12px;font-weight:700;color:var(--c-muted);display:inline-flex;align-items:center;gap:6px}.live-pill:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c-line)}.live-pill.on{color:var(--c-ok-ink)}.live-pill.on:before{background:var(--c-ok);box-shadow:var(--c-glow-ok)}.chat-search{margin:0 var(--page-pad) 12px;display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;background:var(--c-field);border:1.5px solid var(--c-line);border-radius:12px}.chat-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--c-ink);box-shadow:none!important}.chat-rows{flex:1;overflow-y:auto;padding:0 12px 16px;-webkit-overflow-scrolling:touch}.chat-label{font-size:12px;font-weight:800;color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;padding:14px 8px 6px}.chat-row{display:flex;gap:12px;align-items:center;padding:10px 8px;border-radius:14px}.chat-row.on{background:var(--c-accent-soft)}@media(hover:hover){.chat-row:hover{background:var(--c-tint)}.chat-row.on:hover{background:var(--c-accent-soft)}}.chat-av{position:relative;flex:none;display:inline-flex}.chat-team-ic{width:44px;height:44px;border-radius:50%;background:var(--c-accent);color:var(--c-accent-ink);display:flex;align-items:center;justify-content:center}.chat-team-ic.small{width:38px;height:38px}.online-dot{position:absolute;right:0;bottom:0;width:12px;height:12px;border-radius:50%;background:var(--c-ok);border:2px solid var(--c-surface);box-shadow:var(--c-glow-ok)}.chat-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.chat-row-top,.chat-row-bottom{display:flex;align-items:center;gap:6px;min-width:0}.chat-row-name{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-role{font-size:11px;font-weight:700;color:var(--c-info-ink);background:var(--c-info-bg);border-radius:6px;padding:1px 6px;flex:none}.chat-row-time{margin-left:auto;font-size:12px;color:var(--c-muted);flex:none}.chat-row-sub{flex:1;min-width:0;font-size:13px;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-row-sub.strong{color:var(--c-ink);font-weight:700}.chat-unread{flex:none;min-width:20px;height:20px;border-radius:10px;background:var(--c-accent);color:var(--c-accent-ink);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 6px;box-shadow:var(--c-glow-accent)}.chat-thread-head{display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 8px) 12px 8px;border-bottom:1.5px solid var(--c-tint);flex:none}.chat-thread-title{font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-thread-sub{font-size:12px;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-none{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px}.msg-list{flex:1;min-height:0;overflow-y:auto;padding:12px 12px 8px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.msg-empty{color:var(--c-muted);font-size:14px;text-align:center;padding:24px 12px}.msg-day{display:flex;justify-content:center;margin:12px 0 6px}.msg-day span{font-size:11px;font-weight:700;color:var(--c-muted);background:var(--c-raised);border-radius:10px;padding:3px 10px}.msg{display:flex;gap:8px;margin-top:2px;align-items:flex-end}.msg.first{margin-top:10px}.msg.mine{justify-content:flex-end}.msg-av{width:30px;flex:none}.msg-col{display:flex;flex-direction:column;gap:2px;max-width:min(78%,520px);min-width:0}.msg.mine .msg-col{align-items:flex-end}.msg-name{font-size:12px;font-weight:700;color:var(--c-muted);padding-left:4px}.msg-bubble{background:var(--c-bg);border:1.5px solid var(--c-tint);border-radius:16px 16px 16px 6px;padding:8px 12px;min-width:0;display:flex;flex-direction:column;gap:6px}.msg.mine .msg-bubble{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink);border-radius:16px 16px 6px}.msg-bubble.sending{opacity:.6}.msg-text{font-size:15px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.msg-photo{display:block;margin:-2px -6px 0;border-radius:12px;overflow:hidden}.msg-photo img{display:block;width:100%;max-width:280px;max-height:320px;object-fit:cover}.msg-photo.placeholder{width:200px;height:140px;background:var(--c-raised);display:flex;align-items:center;justify-content:center}.msg-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--c-muted);padding:0 4px}.msg-del{display:inline-flex;align-items:center;gap:4px;color:var(--c-muted);border-radius:6px;padding:2px}.msg-del.ask{color:var(--c-bad-ink);font-weight:700}@media(hover:hover){.msg-del:hover{color:var(--c-bad-ink)}}.composer{flex:none;border-top:1.5px solid var(--c-tint);background:var(--c-surface);padding:8px 10px calc(8px + var(--safe-b));display:flex;flex-direction:column;gap:8px}.composer-row{display:flex;align-items:flex-end;gap:8px}.composer textarea{flex:1;min-width:0;resize:none;border:1.5px solid var(--c-line);border-radius:20px;padding:9px 14px;font:inherit;font-size:16px;line-height:1.35;color:var(--c-ink);background:var(--c-bg);outline:0;max-height:132px}.composer textarea:focus{border-color:var(--c-accent);background:var(--c-field)}.composer-btn{position:relative;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer}@media(hover:hover){.composer-btn:hover{background:var(--c-tint)}}.composer-send{width:42px;height:42px;border-radius:50%;border:0;background:var(--c-accent);color:var(--c-accent-ink);display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer}.composer-send:disabled{background:var(--c-line);color:var(--c-surface);cursor:default}.composer-photo{position:relative;align-self:flex-start}.composer-photo img{display:block;height:84px;border-radius:10px}.composer-photo-x{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:50%;background:var(--c-ink);display:flex;align-items:center;justify-content:center}.discussion{background:var(--c-surface);border:1.5px solid var(--c-line);border-radius:20px;overflow:hidden}.discussion-list{padding:4px 12px 12px}.discussion .composer{padding-bottom:8px}.count-chip{margin-left:8px;font-size:12px;font-weight:800;color:var(--c-info-ink);background:var(--c-info-bg);border-radius:10px;padding:2px 8px;vertical-align:middle}@media(max-width:767px){.tabbar.phone-hide{display:none}}@media(min-width:768px){.chat{padding:0}.chat-list{flex:0 0 320px;border-right:1.5px solid var(--c-line)}.chat-thread,.chat.has-room .chat-thread,.chat.has-room .chat-list{display:flex}.chat-back{display:none}.chat-thread-head{padding:calc(var(--safe-t) + 14px) 20px 12px}.msg-list{padding:16px 24px 8px}.composer{padding:10px 20px calc(10px + var(--safe-b))}}@media(min-width:1024px){.chat-list{flex-basis:360px}.chat-list{padding-top:36px}.chat-thread-head{padding-top:24px}.composer{padding-bottom:16px}}.push-card{display:flex;gap:14px;padding:16px;border-radius:20px;background:var(--c-bg);border:1.5px solid var(--blue-300)}.push-card-ic{width:42px;height:42px;border-radius:12px;background:var(--c-accent);display:flex;align-items:center;justify-content:center;flex:none}:root[data-theme=dark] .chat-search:focus-within{border-color:var(--c-accent);box-shadow:var(--c-glow-accent)}:root[data-theme=dark] .msg-bubble{background:var(--c-raised);border-color:var(--c-line-soft)}:root[data-theme=dark] .msg.mine .msg-bubble{background:var(--c-selected-bg);border-color:var(--c-selected-bg);color:var(--c-selected-ink)}:root[data-theme=dark] .composer textarea{background:var(--c-field)}:root[data-theme=dark] .composer-send:disabled{color:var(--c-muted)}:root[data-theme=dark] .push-card{background:var(--c-tint);border-color:var(--c-line)}.tour{position:fixed;inset:0;z-index:90}.tour-block{position:absolute;inset:0}.tour-dim{position:absolute;inset:0;background:var(--c-scrim)}.tour-hole{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px var(--c-scrim),0 0 0 3px var(--blue-300);pointer-events:none;transition:all .22s cubic-bezier(.2,.7,.2,1)}.tour-card{position:absolute;background:var(--c-surface);color:var(--c-ink);border-radius:20px;padding:18px 18px 16px;box-shadow:0 18px 50px #08183059;display:flex;flex-direction:column;gap:8px;outline:none;transition:top .22s cubic-bezier(.2,.7,.2,1),left .22s cubic-bezier(.2,.7,.2,1);animation:tour-in .2s ease-out}@keyframes tour-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.tour-card-top{display:flex;align-items:center;gap:10px}.tour-ic{width:36px;height:36px;border-radius:11px;background:var(--c-accent);display:flex;align-items:center;justify-content:center;flex:none}.tour-count{flex:1;font-size:12px;font-weight:700;color:var(--c-muted)}.tour-skip{font-size:14px;font-weight:700;color:var(--c-accent-hover);padding:6px 10px;border-radius:10px}@media(hover:hover){.tour-skip:hover{background:var(--c-tint)}}.tour-title{margin:4px 0 0;font-size:19px;font-weight:800;letter-spacing:-.01em}.tour-body{margin:0;font-size:14px;line-height:1.5;color:var(--c-ink-2)}.tour-dots{display:flex;gap:5px;justify-content:center;padding:6px 0 2px}.tour-dots span{width:6px;height:6px;border-radius:3px;background:var(--c-line);transition:all .2s}.tour-dots span.on{width:18px;background:var(--c-accent);box-shadow:var(--c-glow-accent)}.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:8px}@media(prefers-reduced-motion:reduce){.tour-hole,.tour-card{transition:none;animation:none}}:root[data-theme=dark] .tour-hole{box-shadow:var(--c-glow-accent),0 0 0 2px var(--c-accent),0 0 0 9999px var(--c-scrim)}:root[data-theme=dark] .tour-card{box-shadow:0 18px 50px var(--c-shadow),inset 0 0 0 1px var(--c-line)}
