.landing{--h-bg:#0a0a0b;--h-bg2:#0d0d0f;--h-cream:#f4efe6;--h-cream-dim:#c9c3b9;--h-muted:#8d8f93;--h-faint:#5a5c60;--h-line:#ffffff14;--h-line-strong:#ffffff24;--h-pill:#ffffff0d;background:var(--h-bg);font-family:var(--font-body);position:fixed;inset:0;overflow:hidden auto}[data-theme=light] .landing{--h-bg:#f4f3f0;--h-bg2:#efeee9;--h-cream:#14150f;--h-cream-dim:#3a3b34;--h-muted:#6b6d66;--h-faint:#9a9c94;--h-line:#00000012;--h-line-strong:#0000001f;--h-pill:#00000008}.landing a{color:inherit;text-decoration:none}.landing svg.ico{display:block}.landing .hero{background:radial-gradient(120% 80% at 50% -10%, var(--h-bg2), var(--h-bg) 60%);min-height:100vh;font-family:var(--font-body);flex-direction:column;display:flex;position:relative;overflow:hidden}.landing .hero-bg{z-index:0;pointer-events:none;position:absolute;inset:0}.landing .hero-bg svg{width:100%;height:100%;position:absolute;inset:0}.landing .hero-bg .curve{fill:none;stroke-width:1px;vector-effect:non-scaling-stroke}.landing .hero-glow{z-index:0;pointer-events:none;background:radial-gradient(ellipse 60% 60% at 50% 50%, color-mix(in srgb, var(--h-cream) 16%, transparent), transparent 70%);filter:blur(20px);width:min(1100px,92vw);height:460px;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}[data-theme=light] .landing .hero-glow{background:radial-gradient(60% 60%,#16c7841a,#0000 70%)}.landing .hero-vignette{z-index:0;pointer-events:none;background:radial-gradient(130% 120% at 50% 40%,#0000 55%,#0000008c);position:absolute;inset:0}[data-theme=light] .landing .hero-vignette{background:radial-gradient(130% 120% at 50% 40%,#0000 60%,#0000000f)}.landing .hero-nav{z-index:3;justify-content:space-between;align-items:center;padding:22px clamp(20px,4vw,48px);display:flex;position:relative}.landing .hero-logo{color:var(--h-cream);align-items:center;gap:11px;display:inline-flex}.landing .hero-logo .hero-logo-img{display:block}.landing .hero-logo .name{font-family:var(--font-display);letter-spacing:-.01em;font-size:19px;font-weight:600}.landing .hero-nav-r{align-items:center;gap:10px;display:flex}.landing .npill{height:40px;color:var(--h-cream-dim);border:1px solid var(--h-line-strong);background:var(--h-pill);border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 16px;font-size:13.5px;font-weight:600;transition:color .16s,border-color .16s,background .16s,transform .12s;display:inline-flex}.landing .npill:hover{color:var(--h-cream);border-color:color-mix(in srgb, var(--h-cream) 28%, transparent)}.landing .npill.icon-only{justify-content:center;width:40px;padding:0}.landing .npill.ghost{background:0 0;border-color:#0000}.landing .npill.ghost:hover{background:var(--h-pill)}.landing .npill.solid{background:var(--h-cream);color:#0a0a0b;border-color:#0000;font-weight:700}.landing .npill.solid:hover{background:#fff;transform:translateY(-1px)}[data-theme=light] .landing .npill.solid{background:var(--ink);color:#fff}.landing .hero-main{z-index:2;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px clamp(20px,5vw,40px) 64px;display:flex;position:relative}.landing .hero-eyebrow{border:1px solid var(--h-line-strong);background:var(--h-pill);font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--h-cream-dim);white-space:nowrap;border-radius:999px;align-items:center;gap:9px;padding:8px 18px;font-size:11px;font-weight:500;display:inline-flex}.landing .hero-eyebrow .dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 24%, transparent), 0 0 12px var(--accent);border-radius:50%}.landing .hero h1{max-width:16ch;font-family:var(--font-display);letter-spacing:-.04em;text-wrap:balance;background:linear-gradient(100deg, var(--h-cream) 30%, var(--h-cream-dim));color:#0000;filter:drop-shadow(0 0 38px color-mix(in srgb, var(--h-cream) 22%, transparent));-webkit-background-clip:text;background-clip:text;margin:34px 0 0;font-size:clamp(40px,8.2vw,104px);font-weight:500;line-height:.98}[data-theme=light] .landing .hero h1{filter:none}.landing .hero .lead{max-width:46ch;color:var(--h-muted);text-wrap:pretty;margin:30px 0 0;font-size:clamp(15px,1.7vw,18px);line-height:1.55}.landing .hero-cta{cursor:pointer;font-family:var(--font-display);letter-spacing:-.005em;white-space:nowrap;background:var(--h-cream);color:#0a0a0b;box-shadow:0 0 0 1px #ffffff0f, 0 22px 50px -18px #000000b3, 0 0 60px -20px color-mix(in srgb, var(--h-cream) 60%, transparent);border:none;border-radius:999px;justify-content:center;align-items:center;gap:11px;margin:42px 0 0;padding:19px 36px;font-size:16.5px;font-weight:700;transition:transform .14s cubic-bezier(.2,.8,.2,1),box-shadow .22s,background .16s;display:inline-flex}.landing .hero-cta:hover{box-shadow:0 0 0 1px #ffffff1a, 0 30px 60px -18px #000000bf, 0 0 80px -16px color-mix(in srgb, var(--h-cream) 70%, transparent);background:#fff;transform:translateY(-2px)}.landing .hero-cta:active{transform:translateY(0)}.landing .hero-cta .ar{transition:transform .2s;display:inline-flex}.landing .hero-cta:hover .ar{transform:translate(5px)}.landing .hero-cta-alt{cursor:pointer;color:#ffffffa8;letter-spacing:.01em;text-underline-offset:3px;background:0 0;border:0;margin-top:14px;font-size:14px;font-weight:600;text-decoration:underline;transition:color .18s}.landing .hero-cta-alt:hover{color:#fff}[data-theme=light] .landing .hero-cta{background:var(--ink);color:#fff}[data-theme=light] .landing .hero-cta:hover{background:#000}@media (prefers-reduced-motion:no-preference){.landing .hero-main>*{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1);transform:translateY(16px)}.landing .hero-main>:first-child{transition-delay:20ms}.landing .hero-main>:nth-child(2){transition-delay:80ms}.landing .hero-main>:nth-child(3){transition-delay:.16s}.landing .hero-main>:nth-child(4){transition-delay:.24s}.landing .hero-main>:nth-child(5){transition-delay:.32s}.landing .hero.is-in .hero-main>*{opacity:1;transform:none}.landing .hero-bg .curve{stroke-dasharray:2400;stroke-dashoffset:2400px;transition:stroke-dashoffset 2.6s cubic-bezier(.4,0,.2,1)}.landing .hero-bg .curve:nth-child(2){transition-delay:.15s}.landing .hero-bg .curve:nth-child(3){transition-delay:.3s}.landing .hero-bg .curve:nth-child(4){transition-delay:.45s}.landing .hero.is-in .hero-bg .curve{stroke-dashoffset:0}}@media (width<=600px){.landing .hero-nav{padding:16px}.landing .hero-nav-r{gap:8px}.landing .npill{height:38px;padding:0 14px;font-size:13px}.landing .npill.icon-only{width:38px;padding:0}.landing .npill.lbl-hide{display:none}.landing .hero h1{font-size:clamp(34px,11vw,56px)}}@media (width<=480px){.landing .hero-logo .name{display:none}.landing .hero-nav-r{gap:7px}.landing .npill{height:36px;padding:0 13px;font-size:12.5px}.landing .npill.icon-only{width:36px}}.landing .auth-top{z-index:3;justify-content:space-between;align-items:center;padding:22px clamp(20px,4vw,48px);display:flex;position:relative}.landing .auth-top-r{align-items:center;gap:10px;display:flex}.landing .auth-main{z-index:2;flex:1;justify-content:center;align-items:center;padding:12px clamp(20px,5vw,40px) 56px;display:flex;position:relative}.landing .auth-card{background:color-mix(in srgb, var(--h-cream) 4%, transparent);border:1px solid var(--h-line-strong);-webkit-backdrop-filter:blur(12px);border-radius:22px;width:100%;max-width:424px;padding:36px 34px;animation:.5s cubic-bezier(.2,.7,.3,1) both auth-rise;box-shadow:0 36px 90px -44px #000000bf}@keyframes auth-rise{0%{opacity:0;transform:translateY(14px)}}.landing .auth-card .hero-eyebrow{padding:7px 14px;font-size:10.5px}.landing .auth-title{font-family:var(--font-display);letter-spacing:-.03em;text-wrap:balance;background:linear-gradient(100deg, var(--h-cream) 30%, var(--h-cream-dim));color:#0000;-webkit-background-clip:text;background-clip:text;margin:18px 0 0;font-size:clamp(28px,6vw,38px);font-weight:500;line-height:1.02}.landing .auth-sub{color:var(--h-muted);margin:10px 0 24px;font-size:14.5px;line-height:1.5}.landing .field{flex-direction:column;gap:7px;display:flex}.landing .field label{color:var(--h-cream-dim);font-size:12.5px;font-weight:600}.landing .input{background:var(--h-pill);border:1px solid var(--h-line-strong);width:100%;height:48px;color:var(--h-cream);font-size:15px;font-family:var(--font-body);border-radius:12px;padding:0 15px;transition:border-color .14s,box-shadow .14s,background .14s}.landing .input::placeholder{color:var(--h-faint)}.landing .input:focus{border-color:color-mix(in srgb, var(--accent) 70%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.landing .btn{cursor:pointer;white-space:nowrap;height:50px;font-family:var(--font-display);border:none;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:0 24px;font-size:15.5px;font-weight:700;transition:transform .14s,background .16s,box-shadow .22s,opacity .16s;display:inline-flex}.landing .btn-accent{background:var(--h-cream);color:#0a0a0b;box-shadow:0 0 0 1px #ffffff0f,0 20px 44px -18px #000000b3}.landing .btn-accent:hover{background:#fff;transform:translateY(-1px)}.landing .btn-accent:disabled,.landing .btn[disabled]{opacity:.55;pointer-events:none;transform:none}[data-theme=light] .landing .btn-accent{background:var(--ink);color:#fff}[data-theme=light] .landing .btn-accent:hover{background:#000}.landing .auth-foot{text-align:center;color:var(--h-muted);margin-top:20px;font-size:13.5px}.landing .auth-foot a{color:var(--h-cream);font-weight:600}.landing .auth-foot a:hover{color:var(--accent)}@media (width<=480px){.landing .auth-card{padding:30px 22px}}:root{--accent:#ff7a1a;--font-display:"Space Grotesk", sans-serif;--font-body:"Instrument Sans", sans-serif;--font-mono:"JetBrains Mono", monospace;--bg:#fff;--bg-sunken:#f6f6f5;--surface:#fff;--surface-2:#fafafa;--ink:#0c0d0d;--ink-2:#5c5f5e;--ink-3:#9a9d9c;--line:#e7e7e5;--line-strong:#d4d4d2;--btn-ink:#0c0d0d;--btn-on:#fff;--accent-ink:#06120d;--pos:var(--accent);--neg:#e5484d;--shadow:0 1px 2px #0c0d0d0a, 0 8px 24px -12px #0c0d0d1a;--radius:14px;--radius-sm:9px;--radius-lg:22px}[data-theme=dark]{--bg:#08090a;--bg-sunken:#050606;--surface:#111314;--surface-2:#16191a;--ink:#f4f5f4;--ink-2:#a3a8a6;--ink-3:#626866;--line:#1f2425;--line-strong:#2c3234;--btn-ink:#f4f5f4;--btn-on:#08090a;--accent-ink:#06120d;--neg:#ff6166;--shadow:0 1px 2px #0006, 0 12px 32px -14px #0009}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink) 24%, transparent) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ink) 22%, transparent);background-clip:padding-box;border:3px solid #0000;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ink) 40%, transparent);background-clip:padding-box}::-webkit-scrollbar-corner{background:0 0}body{font-family:var(--font-body);background:var(--bg-sunken);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow:hidden}#root{height:100vh}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}::selection{background:var(--accent);color:var(--accent-ink)}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:34px 24px 30px;display:flex}.empty-state.compact{gap:8px;padding:22px 18px 24px}.empty-state-ring{width:58px;height:58px;color:var(--accent);background:color-mix(in srgb, var(--accent) 13%, transparent);box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 7%, transparent);border-radius:50%;place-items:center;animation:3s ease-in-out infinite empty-float;display:grid}.empty-state.compact .empty-state-ring{width:50px;height:50px}@keyframes empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.empty-state-title{font-family:var(--font-display);color:var(--ink);font-size:15px;font-weight:600}.empty-state-hint{color:var(--ink-3);max-width:32ch;font-size:12.5px;line-height:1.5}.empty-state-cta{cursor:pointer;background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);border:none;border-radius:999px;align-items:center;gap:7px;margin-top:6px;padding:9px 18px;font-size:13.5px;font-weight:700;transition:transform .12s,opacity .14s;display:inline-flex}.empty-state-cta:hover{opacity:.92;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.empty-state-ring{animation:none}}html{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}input,textarea,[contenteditable],.lg,.lg *{-webkit-user-select:text;user-select:text}.mono{font-family:var(--font-mono);font-feature-settings:"tnum" 1;letter-spacing:-.01em}.material-symbols-rounded{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-font-smoothing:antialiased;font-feature-settings:"liga";font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;direction:ltr;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;line-height:1;display:inline-block}.dd-icon-search{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;margin-bottom:8px;padding:7px 10px;font-size:13px}.dd-icon-search:focus{border-color:var(--ink);outline:none}.dd-icon-grid{overscroll-behavior:contain;touch-action:pan-y;max-height:188px;overflow:hidden auto}.dd-icon-empty{text-align:center;color:var(--ink-3);grid-column:1/-1;padding:14px 0;font-size:12.5px}.dd-ramps{overscroll-behavior:contain;touch-action:pan-y;flex-direction:column;gap:6px;width:200px;max-height:244px;padding:2px;display:flex;overflow:hidden auto}.dd-ramp{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.dd-ramp-color{aspect-ratio:1;cursor:pointer;outline:1px solid var(--line);outline-offset:1px;border:none;border-radius:7px;width:100%}.dd-ramp-color.on{outline:2px solid var(--ink);box-shadow:0 0 0 2px var(--bg) inset}.tnum{font-variant-numeric:tabular-nums}.app{background:var(--bg-sunken);grid-template-columns:248px 1fr;height:100vh;display:grid}.app.no-side{grid-template-columns:1fr}.side{background:var(--bg);border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:22px 16px;display:flex;overflow-y:auto}.brand{align-items:center;gap:11px;padding:4px 8px 22px;display:flex}.brand-mark{background:var(--ink);width:34px;height:34px;color:var(--bg);font-family:var(--font-display);border-radius:9px;flex:none;place-items:center;font-size:18px;font-weight:700;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:19px;font-weight:700}.brand-sub{color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.logo-light-variant{display:block}.logo-dark-variant,[data-theme=dark] .logo-light-variant{display:none}[data-theme=dark] .logo-dark-variant{display:block}.nav-group-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:16px 10px 7px;font-size:10.5px;font-weight:600}.nav-item{border-radius:var(--radius-sm);color:var(--ink-2);text-align:left;align-items:center;gap:11px;width:100%;padding:9px 10px;font-size:14px;font-weight:500;transition:background .14s,color .14s;display:flex;position:relative}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--ink);color:var(--btn-on)}.nav-item.active .ico{color:var(--btn-on)}.nav-item .ico{color:var(--ink-3);flex:none}.nav-item:hover .ico{color:var(--ink)}.nav-item.active:hover{background:var(--ink);color:var(--btn-on)}.nav-item.active:hover .ico{color:var(--btn-on)}.nav-badge{background:var(--surface-2);color:var(--ink-2);text-align:center;border-radius:20px;min-width:20px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.nav-item.active .nav-badge{color:var(--btn-on);background:#ffffff29}.side-foot{margin-top:auto;padding-top:14px}.theme-toggle{border-radius:var(--radius-sm);width:100%;color:var(--ink-2);border:1px solid var(--line);align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:500;display:flex}.theme-toggle:hover{background:var(--surface-2);color:var(--ink)}.main{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{z-index:20;background:var(--bg);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:18px;padding:16px 32px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.02em;white-space:nowrap;font-size:22px;font-weight:700;line-height:1.2}.page-sub{color:var(--ink-2);margin-top:1px;font-size:13px}.topbar-spacer{flex:1}.cur-switch{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;gap:2px;padding:3px;display:flex}.cur-switch button{color:var(--ink-3);border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:600}.cur-switch button.on{background:var(--bg);color:var(--ink);box-shadow:var(--shadow)}.content{flex:1;padding:26px 32px 80px;overflow-y:auto}.content>.grid,.content>div{max-width:none}.cur-select{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9d9c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border-radius:10px;padding:8px 30px 8px 12px;font-size:13px;font-weight:600}.cur-select:focus{border-color:var(--ink);outline:none}.btn{white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13.5px;font-weight:600;transition:transform 80ms,background .14s,opacity .14s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);color:var(--btn-on)}.btn-primary:hover{opacity:.88}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover{opacity:.9}.btn-ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{border-radius:9px;padding:7px 12px;font-size:12.5px}.btn-icon{border-radius:9px;padding:9px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.card-pad-0{padding:0}.card-hover{transition:border-color .15s,transform .15s,box-shadow .15s}.card-hover:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 10px 28px -16px #0006}.row-click{transition:background .12s}.row-click:hover{background:var(--surface-2)}.btn:disabled,.btn[disabled]{opacity:.45;pointer-events:none}.grid{gap:16px;display:grid}.section-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-head h3{font-family:var(--font-display);letter-spacing:-.01em;font-size:16px;font-weight:700}.section-head .topbar-spacer{flex:1}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.stat-label{color:var(--ink-2);font-size:12.5px;font-weight:500}.stat-value{font-family:var(--font-mono);letter-spacing:-.03em;margin-top:6px;font-size:30px;font-weight:600}.stat-value.sm{font-size:22px}.delta{font-size:12.5px;font-weight:600;font-family:var(--font-mono);align-items:center;gap:3px;display:inline-flex}.delta.up{color:var(--pos)}.delta.down{color:var(--neg)}.pos{color:var(--pos)}.neg{color:var(--neg)}.pill{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:30px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.dot{border-radius:50%;flex:none;width:8px;height:8px}.row{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:13px 20px;display:flex}.row:last-child{border-bottom:none}.row:hover{background:var(--surface-2)}.row-ico{background:var(--surface-2);border:1px solid var(--line);width:38px;height:38px;color:var(--ink);border-radius:10px;flex:none;place-items:center;display:grid}.row-main{flex:1;min-width:0}.row-title{font-size:14px;font-weight:600;line-height:1.3}.cat-cell .row-main,.cat-cell>div{min-width:0}.cat-title-trunc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row-sub{color:var(--ink-2);margin-top:1px;font-size:12.5px}.row-amt{font-family:var(--font-mono);white-space:nowrap;font-size:14.5px;font-weight:600}.bar{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;height:7px;overflow:hidden}.bar>i{background:var(--ink);border-radius:20px;height:100%;display:block}.bar.accent>i{background:var(--accent)}.field{flex-direction:column;gap:7px;display:flex}.field label{color:var(--ink-2);font-size:12.5px;font-weight:600}.input,.select{border:1px solid var(--line-strong);background:var(--surface);border-radius:10px;width:100%;padding:11px 13px;font-size:14px;transition:border-color .14s,box-shadow .14s}.input:focus,.select:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--ink) 10%, transparent);outline:none}.input.mono{font-family:var(--font-mono)}textarea.input{resize:vertical;min-height:64px}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:11px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.opt-toggle{color:var(--ink-2);align-items:center;gap:9px;padding:4px 2px;font-size:12.5px;font-weight:500;display:inline-flex}.opt-toggle .opt-box{border:1.5px solid var(--line-strong);width:18px;height:18px;color:var(--accent-ink);border-radius:6px;place-items:center;transition:background .12s,border-color .12s;display:grid}.opt-toggle[data-on=true]{color:var(--ink)}.opt-toggle[data-on=true] .opt-box{background:var(--accent);border-color:var(--accent)}.seg button{color:var(--ink-2);border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}.seg button.on{background:var(--bg);color:var(--ink);box-shadow:var(--shadow)}.type-chips{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.type-chip{border:1.5px solid var(--line-strong);border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 12px;font-size:14px;font-weight:600;transition:all .14s;display:flex}.type-chip .ico{color:var(--ink-3)}.type-chip.on{border-color:var(--ink);background:var(--ink);color:var(--btn-on)}.type-chip.on .ico{color:var(--btn-on)}.cat-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.cat-cell{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:11px;padding:18px;transition:border-color .14s,transform 80ms;display:flex}.cat-cell:hover{border-color:var(--line-strong)}.swatch{color:#fff;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.cat-amt{color:var(--ink-3);margin-top:2px;font-size:13px;font-weight:500}.cat-budget{font-size:12px;font-weight:500}.dd{position:relative}.dd-trigger{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:9px 12px;font-size:14px;transition:border-color .14s,box-shadow .14s;display:flex}.dd-trigger:hover{border-color:var(--ink-2)}.dd-trigger.open{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--ink) 10%, transparent)}.dd-trigger-in{flex:1;align-items:center;min-width:0;display:flex}.dd-pop{z-index:200;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:6px;animation:.14s ddpop;position:fixed;overflow-y:auto;box-shadow:0 18px 50px -16px #00000073}@keyframes ddpop{0%{opacity:0;transform:translateY(-4px)}}.dd-opt-face{align-items:center;gap:10px;min-width:0;display:flex}.dd-ico{color:#fff;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;display:grid}.dd-swatch{border:1px solid var(--line);border-radius:9px;flex:none;width:30px;height:30px}.dd-opt-text{flex-direction:column;min-width:0;font-weight:600;line-height:1.25;display:flex}.dd-opt-sub{color:var(--ink-3);font-size:11.5px;font-weight:500}.dd-opt{cursor:pointer;text-align:left;border-radius:9px;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.dd-opt:hover,.dd-opt.on{background:var(--surface-2)}.dd-opt .dd-opt-text{flex:1}.dd-grid{grid-template-columns:repeat(6,1fr);gap:6px;padding:2px;display:grid}.dd-grid-cell{aspect-ratio:1;border:1px solid var(--line);background:var(--surface-2);width:100%;color:var(--ink-2);border-radius:9px;place-items:center;display:grid}.dd-grid-cell:hover{border-color:var(--ink-2);color:var(--ink)}.dd-grid-cell.on{background:var(--ink);color:var(--btn-on);border-color:var(--ink)}.dd-grid.colors{grid-template-columns:repeat(7,1fr)}.dd-grid-color{aspect-ratio:1;outline:1px solid var(--line);outline-offset:1px;border-radius:8px;width:100%}.dd-grid-color.on{outline:2px solid var(--ink);box-shadow:0 0 0 2px var(--bg) inset}.icocolor-row{gap:10px;display:flex}.icocolor-row>*{flex:1;min-width:0}.icocolor-name{align-items:stretch;gap:10px;display:flex}.icocolor-name>.input{flex:1;min-width:0}.amount-row{position:relative}.amount-row .input{padding-right:52px}.amount-cur{color:var(--ink-3);font-weight:600;font-family:var(--font-mono);pointer-events:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.dnd-bar{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.dnd-lane{min-width:0}.dnd-col{flex-direction:column;gap:7px;display:flex}.dnd-chip{border:1px solid var(--line);background:var(--surface);cursor:grab;border-radius:10px;align-items:center;gap:9px;padding:8px 11px;font-size:13px;font-weight:600;transition:border-color .12s,box-shadow .12s,opacity .12s,transform 80ms;display:flex}.dnd-chip:hover{border-color:var(--line-strong)}.dnd-chip:active{cursor:grabbing}.dnd-chip.dragging{opacity:.45}.dnd-chip.dim{opacity:.4}.dnd-chip.drop-ok{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent);transform:translateY(-1px)}.dnd-dot{color:#fff;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:grid}@media (width<=760px){.dnd-bar{grid-template-columns:1fr}}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:100;background:#08090a6b;justify-content:center;align-items:flex-start;padding:60px 20px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:540px;max-height:calc(100vh - 80px);animation:.22s cubic-bezier(.2,.8,.2,1) pop;display:flex;box-shadow:0 24px 70px -20px #00000080}@keyframes pop{0%{opacity:0;transform:translateY(14px)scale(.97)}}.modal-head{border-bottom:1px solid var(--line);flex:none;align-items:center;padding:20px 22px;display:flex}.modal-head h3{font-family:var(--font-display);font-size:18px;font-weight:700}.modal-body{flex-direction:column;gap:16px;padding:22px;display:flex;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);flex:none;justify-content:flex-end;gap:10px;padding:16px 22px;display:flex}.badge-card{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:18px;position:relative;overflow:hidden}.badge-card.locked{opacity:.55}.badge-card.earned{border-color:var(--ink)}.badge-ico{background:var(--ink);width:46px;height:46px;color:var(--btn-on);border-radius:13px;place-items:center;margin-bottom:12px;display:grid}.badge-card.earned .badge-ico{background:var(--accent);color:var(--accent-ink)}.badge-name{font-family:var(--font-display);font-size:15px;font-weight:700}.badge-desc{color:var(--ink-2);margin-top:4px;font-size:12.5px;line-height:1.45}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=1000px){.cols-3,.cols-4{grid-template-columns:1fr 1fr}.dash-split{grid-template-columns:1fr!important}}.dash-split{grid-template-columns:1.6fr 1fr;gap:16px;display:grid}.empty{text-align:center;color:var(--ink-3);padding:40px 20px}.chart-wrap{position:relative}.chart-tip{pointer-events:none;background:var(--ink);color:var(--btn-on);font-family:var(--font-mono);white-space:nowrap;opacity:0;border-radius:7px;padding:5px 9px;font-size:12px;transition:opacity .1s;position:absolute;transform:translate(-50%,-130%)}.legend{flex-wrap:wrap;gap:12px;display:flex}.legend-item{color:var(--ink-2);align-items:center;gap:7px;font-size:12.5px;display:flex}.scroll-x{overflow-x:auto}hr.sep{border:none;border-top:1px solid var(--line);margin:0}.fade-in{animation:.32s cubic-bezier(.2,.8,.2,1) fade}@keyframes fade{0%{transform:translateY(9px)}}.qo-board{flex-direction:column;align-items:stretch;gap:0;display:flex}.qo-lane{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:16px}.qo-lane-head{font-family:var(--font-display);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.qo-count{color:var(--ink-3);font-size:12px;font-family:var(--font-mono);margin-left:auto}.qo-col{flex-wrap:wrap;gap:8px;display:flex}.qo-col>.qo-chip{flex:200px}.qo-col>.qo-empty{flex:1}.qo-arrow{color:var(--ink-3);justify-content:center;align-items:center;height:26px;display:flex}.qo-chip{border:1.5px solid var(--line);background:var(--surface);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;border-radius:12px;align-items:center;gap:11px;min-height:56px;padding:10px 12px;transition:border-color .12s,box-shadow .12s,opacity .14s,transform 80ms;display:flex}.qo-chip:hover{border-color:var(--line-strong)}.qo-chip:active{cursor:grabbing}.qo-chip.sel{border-color:var(--ink);box-shadow:0 0 0 2px color-mix(in srgb, var(--ink) 15%, transparent)}.qo-chip.candidate{border-color:var(--accent);animation:1.5s ease-in-out infinite qopulse}.qo-chip.dropping{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 38%, transparent);transform:translateY(-1px)scale(1.01)}.qo-chip.dragsrc{opacity:.4}.qo-chip.dim{opacity:.38}@keyframes qopulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 30%, transparent)}}.qo-dot{color:#fff;border-radius:9px;flex:none;place-items:center;width:32px;height:32px;display:grid}.qo-meta{flex-direction:column;flex:1;min-width:0;display:flex}.qo-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.qo-sub{color:var(--ink-3);margin-top:1px;font-size:11px}.qo-act{color:var(--accent-ink);background:var(--accent);border-radius:20px;flex:none;padding:3px 9px;font-size:11px;font-weight:700}.qo-act.sel{background:var(--ink);color:var(--btn-on)}.qo-empty{color:var(--ink-3);text-align:center;border:1px dashed var(--line);border-radius:12px;padding:16px;font-size:12.5px}.qo-ghost{z-index:300;pointer-events:none;background:var(--bg);border:1px solid var(--line-strong);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:9px;padding:9px 13px;font-size:13.5px;font-weight:600;display:flex;position:fixed;transform:translate(-50%,-130%)}.qe-flow{align-items:center;gap:12px;padding:4px 0;display:flex}.qe-node{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.qe-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.qe-flow .qe-node:last-of-type{text-align:right;justify-content:flex-end}.rcpt-drop{border:1.5px dashed var(--line-strong);color:var(--ink-2);cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:26px;font-size:14px;font-weight:600;transition:border-color .14s,background .14s,color .14s;display:flex}.rcpt-drop:hover{border-color:var(--ink);background:var(--surface-2);color:var(--ink)}.rcpt-thumb{object-fit:cover;border:1px solid var(--line);border-radius:10px;flex:none;width:64px;height:64px}.rcpt-thumb-lg{object-fit:cover;border:1px solid var(--line);border-radius:12px;max-width:150px;max-height:190px}.rcpt-spin{background:var(--surface-2);width:44px;height:44px;color:var(--accent);border-radius:50%;place-items:center;animation:1s linear infinite rcptspin;display:grid}@keyframes rcptspin{to{transform:rotate(360deg)}}.rcpt-item{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.rcpt-health{flex:none;gap:4px;display:flex}.rcpt-health button{border:1px solid var(--line);background:var(--surface);border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.rcpt-health button span{border-radius:50%;width:12px;height:12px;display:block}.rcpt-health button.on{border-color:var(--hc);box-shadow:0 0 0 2px color-mix(in srgb, var(--hc) 30%, transparent)}.app.with-chat{grid-template-columns:248px 1fr 360px}.app.no-side.with-chat{grid-template-columns:1fr 360px}.btn-ghost.active{background:var(--surface-2);color:var(--ink)}.chat-panel{background:var(--bg);border-left:1px solid var(--line);flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.chat-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;padding:14px 16px;display:flex}.chat-head-mark{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:9px;flex:none;place-items:center;display:grid}.chat-head-title{font-size:14px;font-weight:700}.chat-head-sub{color:var(--ink-3);font-size:11.5px}.chat-limit-row{flex:none;justify-content:center;padding:8px 16px 0;display:flex}.chat-limit-note{margin-bottom:10px}.chat-scroll{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.chat-empty{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px}.chat-starters{flex-wrap:wrap;justify-content:center;gap:8px;margin:auto 0;padding:8px 4px;display:flex}.chat-starters-title{text-align:center;width:100%;color:var(--ink);margin-bottom:4px;font-size:14px;font-weight:600}.chat-starter{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:9px 14px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s}.chat-starter:hover{border-color:var(--ink-2)}.chat-starter:active{background:var(--surface-2)}.chat-starter:disabled{opacity:.5}.chat-head-menu{margin-left:-4px}.chat-hist-scrim{z-index:8;background:#08090a6b;position:absolute;inset:0}.chat-history{z-index:9;background:var(--bg);border-right:1px solid var(--line);flex-direction:column;gap:8px;width:min(300px,84%);padding:14px;animation:.18s chatHistIn;display:flex;position:absolute;top:0;bottom:0;left:0;box-shadow:10px 0 36px -14px #00000080}@keyframes chatHistIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.chat-hist-top{letter-spacing:.02em;color:var(--ink-3);text-transform:uppercase;flex:none;padding:2px 4px;font-size:12px;font-weight:600}.chat-hist-list{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.chat-newchat{background:var(--accent);width:100%;color:var(--accent-ink);border-radius:14px;flex:none;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:13px;font-size:14px;font-weight:700;display:flex}.chat-newchat:active{transform:translateY(1px)}.chat-hist-empty{color:var(--ink-3);text-align:center;padding:22px 0;font-size:13px}.chat-hist-item{background:var(--surface);border:1px solid var(--line);border-radius:11px;align-items:center;gap:2px;display:flex;position:relative}.chat-hist-item.on{border-color:var(--accent)}.chat-hist-item:hover{border-color:var(--ink-2)}.chat-hist-item.on:hover{border-color:var(--accent)}.chat-hist-open{cursor:pointer;min-width:0;color:var(--ink);text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:10px;padding:11px 2px 11px 12px;display:flex}.chat-hist-title{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13.5px;overflow:hidden}.chat-hist-rename{border:1px solid var(--accent);background:var(--bg);min-width:0;color:var(--ink);border-radius:9px;outline:none;flex:1;margin:6px 6px 6px 12px;padding:8px 10px;font-family:inherit;font-size:13.5px}.chat-hist-kebab{width:34px;height:34px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:none;place-items:center;margin-right:4px;display:grid}.chat-hist-kebab:hover{background:var(--surface-2);color:var(--ink)}.chat-hist-menuscrim{z-index:10;position:absolute;inset:0}.chat-hist-menu{z-index:11;background:var(--bg);border:1px solid var(--line-strong);border-radius:12px;flex-direction:column;gap:2px;min-width:184px;padding:6px;animation:.12s chatMenuIn;display:flex;position:absolute;top:calc(100% - 4px);right:8px;box-shadow:0 14px 36px -12px #0000008c}@keyframes chatMenuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chat-hist-menu button{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 11px;font-size:13.5px;font-weight:500;display:flex}.chat-hist-menu button:hover{background:var(--surface-2)}.chat-hist-menu button.danger{color:var(--neg)}.chat-msg{flex-direction:column;gap:6px;max-width:100%;display:flex}.chat-msg.user{align-items:flex-end}.chat-msg.assistant{align-items:flex-start}.chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:86%;padding:9px 12px;font-size:13.5px;line-height:1.5}.chat-bubble.user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:5px}.chat-bubble.assistant{background:var(--surface-2);color:var(--ink);border-bottom-left-radius:5px}.chat-bubble.error{background:color-mix(in srgb, var(--neg) 14%, transparent);color:var(--neg)}.chat-rich{white-space:normal}.chat-rich b,.chat-rich strong{font-weight:700}.chat-rich p,.chat-rich .chat-p{margin:0 0 7px}.chat-rich p:last-child,.chat-rich .chat-p:last-child{margin-bottom:0}.chat-rich .chat-list{flex-direction:column;gap:3px;margin:6px 0;padding-left:18px;display:flex}.chat-rich .chat-list:first-child{margin-top:0}.chat-rich .chat-list:last-child{margin-bottom:0}.chat-rich .chat-list li{line-height:1.45}.chat-rich .chat-code{font-family:var(--font-mono);background:color-mix(in srgb, var(--ink) 10%, transparent);border-radius:5px;padding:1px 5px;font-size:.92em}.chat-rich .chat-link{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.chat-choice{flex-wrap:wrap;gap:8px;width:100%;display:flex}.chat-chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 13px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.chat-chip:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.chat-chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.chat-chip:disabled{cursor:default;opacity:.6}.chat-chip.on:disabled{opacity:1}.chat-chip-sub{color:var(--ink-3);font-size:11.5px;font-weight:500}.chat-tile{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;width:100%;padding:12px;display:flex}.chat-tile-head{align-items:center;gap:9px;display:flex}.chat-tile-ico{background:var(--surface-2);width:28px;height:28px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.chat-tile-ico.neg{background:color-mix(in srgb, var(--neg) 14%, transparent);color:var(--neg)}.chat-tile-ico.pos{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--pos)}.chat-tile-title{flex:1;min-width:0;font-size:13.5px;font-weight:600}.chat-tile-amount{font-size:15px;font-weight:700}.chat-tile-amount.neg{color:var(--neg)}.chat-tile-amount.pos{color:var(--pos)}.chat-tile-eye{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:none;place-items:center;transition:color .12s,background .12s;display:grid}.chat-tile-eye:hover{color:var(--ink-2);background:color-mix(in srgb, var(--ink) 7%, transparent)}.chat-tile-eye.on{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.chat-tile-detail{border-top:1px dashed var(--line);margin-top:2px;padding-top:8px}.chat-tile-rows{flex-direction:column;gap:5px;display:flex}.chat-tile-row{justify-content:space-between;gap:12px;font-size:12.5px;display:flex}.chat-tile-k{color:var(--ink-3)}.chat-tile-v{color:var(--ink);text-align:right;font-weight:500}.chat-tile-summary{color:var(--ink-2);font-size:12.5px;line-height:1.4}.chat-tile-note{color:var(--ink-3);font-size:12px}.chat-thumb{border:1px solid var(--line);object-fit:cover;border-radius:12px;max-width:140px;max-height:150px}.chat-file{background:var(--accent);max-width:86%;color:var(--accent-ink);border-radius:14px 14px 5px;align-items:center;gap:10px;padding:9px 12px;display:inline-flex}.chat-file-ico{background:color-mix(in srgb, var(--accent-ink) 18%, transparent);border-radius:9px;flex:none;place-items:center;width:32px;height:32px;display:grid}.chat-file-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.chat-file-name{white-space:nowrap;text-overflow:ellipsis;max-width:210px;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.chat-file-kind{opacity:.78;font-size:11px;font-weight:600}.chat-actions{flex-direction:column;gap:8px;width:100%;max-width:92%;display:flex}.chat-batch{flex-direction:column;gap:8px;display:flex}.chat-tile-batch{cursor:pointer;transition:border-color .12s,background .12s}.chat-tile-batch:hover{border-color:var(--ink-2)}.chat-tile-batch.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface))}.chat-tile-check{border:1.5px solid var(--line-strong);width:20px;height:20px;color:var(--accent-ink);background:var(--surface);border-radius:6px;flex:none;place-items:center;transition:background .12s,border-color .12s;display:grid}.chat-tile-check.on{background:var(--accent);border-color:var(--accent)}.chat-batch-apply{align-self:flex-start;margin-top:2px}.chat-batch-apply:disabled{opacity:.5}.chat-action{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:10px;align-self:flex-start;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:inline-flex}.chat-action:hover{background:var(--surface-2)}.chat-card{border:1px solid var(--line-strong);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;width:100%;padding:12px;display:flex}.chat-card-dim{opacity:.7}.chat-card-text{color:var(--ink);font-size:13px;line-height:1.45}.chat-card-actions{flex-wrap:wrap;gap:8px;display:flex}.chat-card-done{color:var(--pos);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.chat-chart{padding:14px}.chat-chart-title{margin-bottom:10px;font-size:13px;font-weight:600}.chat-typing{align-items:center;gap:4px;display:inline-flex}.chat-typing span{background:var(--ink-3);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite chat-bounce}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-bounce{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.update-pill{left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:400;background:var(--ink);color:var(--btn-on,#fff);white-space:nowrap;border-radius:30px;align-items:center;gap:8px;padding:11px 18px;font-size:13px;font-weight:600;animation:.18s chatMenuIn;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 30px -10px #0a0b0c80}@media (width<=880px){.update-pill{bottom:calc(86px + env(safe-area-inset-bottom,0px))}}.chat-caret{vertical-align:text-bottom;background:var(--accent);border-radius:1px;width:2px;height:.95em;margin-left:2px;animation:1.05s step-end infinite chat-caret;display:inline-block}@keyframes chat-caret{0%,50%{opacity:1}50.01%,to{opacity:0}}.chat-composer{border-top:1px solid var(--line);background:var(--bg);flex:none;padding:12px}.chat-draft{align-items:center;gap:6px;margin-bottom:8px;display:inline-flex}.chat-draft img{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:44px;height:44px}.chat-input-row{align-items:flex-end;gap:8px;display:flex;position:relative}.chat-textarea{resize:none;border:1px solid var(--line-strong);background:var(--surface);min-width:0;min-height:48px;max-height:132px;color:var(--ink);border-radius:24px;flex:1;padding:13px 18px;font-family:inherit;font-size:15px;line-height:1.4;transition:border-color .14s,box-shadow .14s;overflow-y:hidden}.chat-textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--ink) 10%, transparent);outline:none}.chat-attach{width:48px;height:48px;color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;place-items:center;transition:background .12s,color .12s;display:grid}.chat-attach:hover{background:var(--surface-2);color:var(--ink)}.chat-attach-wrap{flex:none;position:relative}.chat-attach-scrim{z-index:60;position:fixed;inset:0}.chat-attach-menu{z-index:61;background:var(--bg);border:1px solid var(--line-strong);border-radius:12px;flex-direction:column;gap:2px;min-width:194px;padding:6px;animation:.12s chatMenuIn;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 14px 36px -12px #00000080}.chat-attach-menu button{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:10px 11px;font-size:13.5px;font-weight:500;display:flex}.chat-attach-menu button:hover{background:var(--surface-2)}.chat-send{background:var(--accent);width:48px;height:48px;color:var(--accent-ink);cursor:pointer;border:none;border-radius:50%;flex:none;place-items:center;transition:opacity .12s,transform 80ms;display:grid}.chat-send:hover:not(:disabled){opacity:.9}.chat-send:active:not(:disabled){transform:translateY(1px)}.chat-send:disabled{opacity:.4;cursor:default}.chat-scrim{display:none}.chat-mic{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}.chat-mic:hover:not(:disabled){border-color:var(--accent);color:var(--accent);opacity:1}.chat-voice-hint{color:var(--ink-2);padding:0 4px 8px;font-size:12.5px}.chat-mic.recording:after{content:"";border:2px solid var(--accent);opacity:.5;pointer-events:none;border-radius:50%;animation:1.5s ease-out infinite chat-mic-pulse;position:absolute;inset:-7px}.chat-mic{transition:transform .16s cubic-bezier(.2,.9,.3,1.3),background .16s;position:relative}.chat-mic.cancelling{background:var(--neg);color:#fff}.chat-mic.cancelling:after{border-color:var(--neg)}@keyframes chat-mic-pulse{0%{opacity:.55;transform:scale(.86)}to{opacity:0;transform:scale(1.5)}}.chat-recbar{background:var(--surface-2);border:1px solid var(--line);border-radius:24px;flex:1;align-items:center;gap:10px;min-width:0;height:48px;padding:0 4px 0 12px;display:flex;position:relative}.chat-rb-slide{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.chat-rb-dot{background:var(--neg);border-radius:50%;flex:none;width:9px;height:9px;animation:1.1s ease-in-out infinite chat-rec-blink}.chat-rb-time{color:var(--ink);font-variant-numeric:tabular-nums;flex:none;font-size:13.5px;font-weight:600}.chat-rb-wave{flex:1;min-width:0;height:26px;display:block}.chat-rb-hint{color:var(--ink-3);pointer-events:none;background:var(--surface-2);border-radius:24px;justify-content:center;align-items:center;gap:5px;font-size:12.5px;display:flex;position:absolute;inset:0}.chat-rb-arr{place-items:center;animation:1.5s ease-in-out infinite chat-rb-arr;display:grid;transform:rotate(90deg)}@keyframes chat-rb-arr{0%,to{opacity:.5}50%{opacity:1}}.chat-rb-cancel{cursor:pointer;color:var(--neg);background:0 0;border:none;flex:none;padding:0 4px;font-family:inherit;font-size:13.5px;font-weight:650}.chat-mic-wrap{flex:none;position:relative}.chat-lock{z-index:3;background:var(--surface-2);border:1px solid var(--line);width:30px;height:44px;color:var(--ink-2);pointer-events:none;border-radius:15px;place-items:center;gap:2px;padding-top:5px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden}.chat-lock-fill{background:color-mix(in srgb, var(--accent) 32%, transparent);height:0;transition:height 80ms linear;position:absolute;inset:auto 0 0}.chat-lock>svg,.chat-lock-chev{z-index:1;position:relative}.chat-lock-chev{place-items:center;animation:1.4s ease-in-out infinite chat-lock-bob;display:grid;transform:rotate(180deg)}@keyframes chat-lock-bob{0%,to{opacity:.5}50%{opacity:1}}@keyframes chat-rec-blink{0%,to{opacity:1}50%{opacity:.25}}.chat-bubble-voice{padding:8px 10px}.chat-voice{min-width:210px}.chat-voice-row{align-items:center;gap:10px;display:flex}.chat-voice-play{cursor:pointer;background:color-mix(in srgb, var(--accent-ink) 16%, transparent);width:34px;height:34px;color:inherit;border:none;border-radius:50%;flex:none;place-items:center;display:grid}.chat-voice-play:disabled{opacity:.45;cursor:default}.chat-voice-wave{flex:1;align-items:center;gap:2px;min-width:0;height:26px;display:flex}.chat-voice-wave i{background:currentColor;border-radius:2px;flex:1;min-width:2px}.chat-voice-time{opacity:.8;flex:none;font-size:12px}.chat-voice-text{opacity:.92;margin-top:6px;font-size:13.5px;line-height:1.4}.chat-voice-note{opacity:.7;margin-top:5px;font-size:11.5px;line-height:1.35}.chat-voice-wave{cursor:pointer}.chat-backdrop{display:none}.chat-scroll{overscroll-behavior:contain}@media (width<=880px){.app.with-chat{grid-template-columns:1fr}.chat-backdrop{z-index:118;background:var(--bg);display:block;position:fixed;inset:0}.chat-panel{z-index:120;width:min(420px,100%);height:100dvh;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px -16px #00000080}.chat-head{padding-top:calc(14px + env(safe-area-inset-top))}.chat-scrim{z-index:110;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08090a6b;display:block;position:fixed;inset:0}.chat-composer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}.is-highlighted{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px;animation:1.3s ease-in-out 2 hl-pulse}@keyframes hl-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 55%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 0%, transparent)}}
