.toast-host[data-v-8593a99b]{bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));z-index:9999;align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;width:max-content;max-width:min(480px,100vw - 2rem);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast-list[data-v-8593a99b]{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.toast[data-v-8593a99b]{align-items:center;gap:var(--space-3);padding:var(--space-3) 14px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);font-size:var(--text-sm);font-weight:var(--fw-medium);pointer-events:auto;width:max-content;max-width:min(480px,100vw - 2rem);display:flex}.toast-icon[data-v-8593a99b]{color:#fff;width:22px;height:22px;font-family:var(--font-mono);font-weight:var(--fw-bold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.toast-icon-ok[data-v-8593a99b]{background:var(--success)}.toast-icon-err[data-v-8593a99b]{background:var(--error)}.toast-icon-info[data-v-8593a99b]{background:var(--info)}.toast-msg[data-v-8593a99b]{color:var(--fg1);flex:1}.toast-close[data-v-8593a99b]{color:var(--fg3);padding:0 0 0 var(--space-2);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:18px;line-height:1}.toast-close[data-v-8593a99b]:hover{color:var(--fg1)}.toast-enter-active[data-v-8593a99b]{animation:toastIn-8593a99b var(--dur-slow) var(--ease-out)}.toast-leave-active[data-v-8593a99b]{animation:toastOut-8593a99b var(--dur-base) var(--ease-standard)}@keyframes toastIn-8593a99b{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastOut-8593a99b{to{opacity:0;transform:translateY(6px)scale(.97)}}@media (prefers-reduced-motion:reduce){.toast-enter-active[data-v-8593a99b],.toast-leave-active[data-v-8593a99b]{animation:none}}.avatar[data-v-49319263]{color:#fff;font-family:var(--font-body);font-weight:var(--fw-bold);-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.locale-btn[data-v-d26fd74d]{border-radius:var(--radius-md);width:40px;height:40px;color:var(--fg2);cursor:pointer;font-family:var(--font-mono);transition:background var(--dur-fast), color var(--dur-fast);background:0 0;border:none;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.locale-btn[data-v-d26fd74d]:hover{background:var(--surface-2);color:var(--fg1)}.locale-btn[data-v-d26fd74d]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.locale-label[data-v-d26fd74d]{letter-spacing:.04em;font-size:10px}.sheet-scrim[data-v-86818f17]{background:var(--scrim);z-index:400;animation:scrimIn-86818f17 var(--dur-base) var(--ease-out);align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-box[data-v-86818f17]{background:var(--surface);border-top:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;box-shadow:var(--shadow-3);max-height:85dvh;animation:sheetUp-86818f17 var(--dur-slow) var(--ease-out);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;display:flex;overflow:hidden}.sheet-handle[data-v-86818f17]{border-radius:var(--radius-pill);background:var(--border-strong);width:36px;height:4px;margin:var(--space-3) auto var(--space-1);flex-shrink:0}.sheet-header[data-v-86818f17]{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.sheet-title[data-v-86818f17]{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-h4);color:var(--fg1)}.sheet-close[data-v-86818f17]{color:var(--fg3);padding:var(--space-1);border-radius:var(--radius-xs);cursor:pointer;background:0 0;border:none;flex-shrink:0;font-size:22px;line-height:1}.sheet-close[data-v-86818f17]:hover{color:var(--fg1);background:var(--surface-2)}.sheet-body[data-v-86818f17]{padding:var(--space-4);flex:1;overflow-y:auto}.sheet-footer[data-v-86818f17]{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);gap:var(--space-3);flex-shrink:0;display:flex}@keyframes scrimIn-86818f17{0%{opacity:0}}@keyframes sheetUp-86818f17{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.sheet-scrim[data-v-86818f17],.sheet-box[data-v-86818f17]{animation:none}}.user-menu[data-v-c4f67674]{margin:0;padding:0;list-style:none}.user-menu-item[data-v-c4f67674]{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-body);color:var(--fg1);cursor:pointer;text-align:left;background:0 0;border:none;font-family:inherit;display:flex}.user-menu-item[data-v-c4f67674]:hover{background:var(--surface-2)}.user-menu-item--danger[data-v-c4f67674]{color:var(--color-danger,#e53e3e)}.user-menu-item--danger[data-v-c4f67674]:hover{background:color-mix(in srgb, var(--color-danger,#e53e3e) 10%, transparent)}.user-menu-version[data-v-c4f67674]{font-size:var(--text-caption);color:var(--fg3)}.hdr[data-v-ee974bda]{z-index:30;height:var(--header-h,56px);padding:0 var(--space-4);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid var(--border);align-items:center;gap:4px;display:flex;position:sticky;top:0}.brand[data-v-ee974bda]{align-items:center;gap:var(--space-2);font-family:var(--font-display);letter-spacing:-.02em;color:var(--fg1);flex-shrink:0;font-size:19px;font-weight:800;text-decoration:none;display:flex}.brand img[data-v-ee974bda]{width:24px;height:24px}.hdr-title[data-v-ee974bda]{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.hdr-spacer[data-v-ee974bda]{flex:1}.iconbtn[data-v-ee974bda]{border-radius:var(--radius-md);width:40px;height:40px;color:var(--fg2);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.iconbtn[data-v-ee974bda]:hover{background:var(--surface-2);color:var(--fg1)}.iconbtn[data-v-ee974bda]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.dot-badge[data-v-ee974bda]{background:var(--error);color:#fff;font-family:var(--font-mono);border-radius:var(--radius-pill);text-align:center;pointer-events:none;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:6px;right:6px}.offline-badge[data-v-ee974bda]{font-family:var(--font-mono);color:var(--warning-fg,#92400e);background:var(--warning-bg,#fef3c7);border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.tabbar[data-v-f79697e3]{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);border-top:1px solid var(--border);padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));display:grid;position:sticky;bottom:0}.tab[data-v-f79697e3]{color:var(--fg3);font-size:11px;font-weight:600;font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;transition:color var(--dur-fast);min-height:var(--tap-min,44px);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;padding:6px 0;display:flex}.tab[data-v-f79697e3]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.tab.on[data-v-f79697e3]{color:var(--primary)}.tab.disabled[data-v-f79697e3]{opacity:.35;cursor:default;pointer-events:none}.notif-empty[data-v-ab75569a]{text-align:center;color:var(--fg3);flex-direction:column;align-items:center;gap:10px;padding:40px 16px;font-size:14px;display:flex}.notif-empty-icon[data-v-ab75569a]{color:var(--fg3)}.notif-list[data-v-ab75569a]{margin:0;padding:0;list-style:none}.notif-item[data-v-ab75569a]{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:12px 4px;display:flex}.notif-item[data-v-ab75569a]:last-child{border-bottom:none}.notif-dot[data-v-ab75569a]{background:var(--primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-item:not(.unread) .notif-dot[data-v-ab75569a]{display:none}.notif-item[data-v-ab75569a]:not(.unread){padding-left:18px}.notif-body[data-v-ab75569a]{flex:1}.notif-title[data-v-ab75569a]{color:var(--fg1);margin:0 0 2px;font-size:14px;font-weight:600}.notif-text[data-v-ab75569a]{color:var(--fg2);margin:0;font-size:13px}.notif-time[data-v-ab75569a]{font-family:var(--font-mono);color:var(--fg3);flex-shrink:0;padding-top:2px;font-size:11px}.notif-loading[data-v-ab75569a]{flex-direction:column;gap:10px;padding:8px 0;display:flex}.notif-skeleton[data-v-ab75569a]{border-radius:var(--radius-sm);background:var(--surface-2);height:54px;animation:1.4s ease-in-out infinite pulse-ab75569a}@keyframes pulse-ab75569a{0%,to{opacity:1}50%{opacity:.5}}.app-layout{flex-direction:column;width:100%;min-height:100dvh;display:flex;overflow-x:clip}.app-main{flex-direction:column;flex:1;display:flex;overflow:hidden}.scroll{flex:1;padding:16px 16px 96px;overflow-y:auto}.screen-title{font-family:var(--font-display);letter-spacing:-.02em;margin:4px 0 2px;font-size:30px;font-weight:800}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg3);font-size:11px;font-weight:700}.sub{color:var(--fg2);margin-top:2px;font-size:14px}.stack{gap:var(--space-3);flex-direction:column;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.card.pad{padding:var(--space-4)}@font-face{font-family:Bricolage Grotesque;src:url(/assets/BricolageGrotesque-variable-IeJf__1j.ttf)format("truetype-variations");font-weight:200 800;font-stretch:75% 100%;font-display:swap}@font-face{font-family:Hanken Grotesk;src:url(/assets/HankenGrotesk-variable-2z-3qhAN.ttf)format("truetype-variations");font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/JetBrainsMono-variable--VKQJH3W.ttf)format("truetype-variations");font-weight:100 800;font-display:swap}:root{--font-display:"Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;--font-body:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-display-2xl:3.5rem;--text-display-xl:2.75rem;--text-h1:2.125rem;--text-h2:1.6875rem;--text-h3:1.375rem;--text-h4:1.125rem;--text-body-lg:1.125rem;--text-body:1rem;--text-sm:.875rem;--text-caption:.8125rem;--text-micro:.75rem;--lh-tight:1.08;--lh-snug:1.25;--lh-normal:1.5;--lh-relaxed:1.6;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-display:800;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.04em;--tracking-label:.08em;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:22px;--radius-pill:999px;--content-max:1120px;--content-narrow:560px;--header-h:60px;--tap-min:44px;--dur-fast:.12s;--dur-base:.18s;--dur-slow:.26s;--ease-standard:cubic-bezier(.2, .7, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1);--violet-500:#7b5cff;--violet-600:#6a3df0;--violet-700:#5a2edb;--violet-300:#b7a6ff;--sent-neg3:#c81e4a;--sent-neg2:#e14b3c;--sent-neg1:#f0883c;--sent-zero:#8a8da0;--sent-pos1:#4fbe8e;--sent-pos2:#1fa567;--sent-pos3:#0b8a60;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f6fb;--surface:#fff;--surface-2:#f0f0f8;--surface-3:#e8e8f3;--scrim:#14122673;--border:#e4e3ef;--border-strong:#cecde0;--fg1:#181826;--fg2:#54546a;--fg3:#6f6f88;--on-accent:#fff;--primary:var(--violet-600);--primary-hover:var(--violet-700);--primary-press:#4e27c2;--primary-soft:#ece7ff;--primary-soft-fg:#4e27c2;--link:var(--violet-600);--focus-ring:#7b5cff;--success:#1fa567;--success-soft:#e2f6ec;--success-fg:#0b7048;--warning:#e89512;--warning-soft:#fcefd6;--warning-fg:#8a5800;--error:#db2e45;--error-soft:#fce5e8;--error-fg:#a01124;--info:#2e73e8;--info-soft:#e5eefd;--info-fg:#14479e;--sent-neg3-soft:#fbe0e6;--sent-neg3-fg:#9c123a;--sent-neg2-soft:#fce5df;--sent-neg2-fg:#b43217;--sent-neg1-soft:#fdeedc;--sent-neg1-fg:#9c5808;--sent-zero-soft:#ececf1;--sent-zero-fg:#4d4f60;--sent-pos1-soft:#dff4ea;--sent-pos1-fg:#0b7048;--sent-pos2-soft:#dbf2e5;--sent-pos2-fg:#0a7a4d;--sent-pos3-soft:#d5efe4;--sent-pos3-fg:#086b4b;--shadow-1:0 1px 2px #1818260f, 0 1px 1px #1818260a;--shadow-2:0 4px 12px #18182614, 0 2px 4px #1818260d;--shadow-3:0 16px 40px #18182629, 0 4px 12px #18182614;--glow-primary:0 4px 18px #7b5cff52}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d14;--surface:#16161f;--surface-2:#1e1e2a;--surface-3:#272736;--scrim:#0009;--border:#2a2a38;--border-strong:#3a3a4c;--fg1:#f3f3f8;--fg2:#afafc4;--fg3:#7c7c95;--on-accent:#fff;--primary:var(--violet-500);--primary-hover:#8e72ff;--primary-press:#6a3df0;--primary-soft:#221c40;--primary-soft-fg:#b7a6ff;--link:#a892ff;--focus-ring:#9d86ff;--success:#34c27e;--success-soft:#11291f;--success-fg:#6fe0ab;--warning:#f0a938;--warning-soft:#2e2310;--warning-fg:#f4c57a;--error:#f0566b;--error-soft:#2e1218;--error-fg:#ff9aa8;--info:#5b97f5;--info-soft:#121f33;--info-fg:#9dc0fb;--sent-neg3-soft:#2c1019;--sent-neg3-fg:#ff8fa6;--sent-neg2-soft:#2d140e;--sent-neg2-fg:#ff9c84;--sent-neg1-soft:#2c1d0d;--sent-neg1-fg:#fbb873;--sent-zero-soft:#23232f;--sent-zero-fg:#a6a8bc;--sent-pos1-soft:#0e2a1f;--sent-pos1-fg:#74e0ac;--sent-pos2-soft:#0c2619;--sent-pos2-fg:#5fd79a;--sent-pos3-soft:#0b231a;--sent-pos3-fg:#58d196;--shadow-1:0 1px 2px #00000080;--shadow-2:0 6px 16px #00000080;--shadow-3:0 20px 50px #0009;--glow-primary:0 4px 22px #7b5cff73}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d14;--surface:#16161f;--surface-2:#1e1e2a;--surface-3:#272736;--scrim:#0009;--border:#2a2a38;--border-strong:#3a3a4c;--fg1:#f3f3f8;--fg2:#afafc4;--fg3:#7c7c95;--on-accent:#fff;--primary:var(--violet-500);--primary-hover:#8e72ff;--primary-press:#6a3df0;--primary-soft:#221c40;--primary-soft-fg:#b7a6ff;--link:#a892ff;--focus-ring:#9d86ff;--success:#34c27e;--success-soft:#11291f;--success-fg:#6fe0ab;--warning:#f0a938;--warning-soft:#2e2310;--warning-fg:#f4c57a;--error:#f0566b;--error-soft:#2e1218;--error-fg:#ff9aa8;--info:#5b97f5;--info-soft:#121f33;--info-fg:#9dc0fb;--sent-neg3-soft:#2c1019;--sent-neg3-fg:#ff8fa6;--sent-neg2-soft:#2d140e;--sent-neg2-fg:#ff9c84;--sent-neg1-soft:#2c1d0d;--sent-neg1-fg:#fbb873;--sent-zero-soft:#23232f;--sent-zero-fg:#a6a8bc;--sent-pos1-soft:#0e2a1f;--sent-pos1-fg:#74e0ac;--sent-pos2-soft:#0c2619;--sent-pos2-fg:#5fd79a;--sent-pos3-soft:#0b231a;--sent-pos3-fg:#58d196;--shadow-1:0 1px 2px #00000080;--shadow-2:0 6px 16px #00000080;--shadow-3:0 20px 50px #0009;--glow-primary:0 4px 22px #7b5cff73}.t-display-2xl{font-family:var(--font-display);font-size:var(--text-display-2xl);line-height:var(--lh-tight);font-weight:var(--fw-display);letter-spacing:var(--tracking-tight)}.t-display-xl{font-family:var(--font-display);font-size:var(--text-display-xl);line-height:var(--lh-tight);font-weight:var(--fw-display);letter-spacing:var(--tracking-tight)}.t-h1{font-family:var(--font-display);font-size:var(--text-h1);line-height:var(--lh-snug);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.t-h2{font-family:var(--font-display);font-size:var(--text-h2);line-height:var(--lh-snug);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.t-h3{font-family:var(--font-display);font-size:var(--text-h3);line-height:var(--lh-snug);font-weight:var(--fw-semibold)}.t-h4{font-family:var(--font-body);font-size:var(--text-h4);line-height:var(--lh-snug);font-weight:var(--fw-semibold)}.t-body-lg{font-family:var(--font-body);font-size:var(--text-body-lg);line-height:var(--lh-relaxed);font-weight:var(--fw-regular)}.t-body{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-normal);font-weight:var(--fw-regular)}.t-sm{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--lh-normal);font-weight:var(--fw-regular)}.t-caption{font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--lh-normal);font-weight:var(--fw-medium);color:var(--fg2)}.t-label{font-family:var(--font-mono);font-size:var(--text-micro);font-weight:var(--fw-bold);letter-spacing:var(--tracking-label);text-transform:uppercase}.t-mono{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.ds-base{background:var(--bg);color:var(--fg1);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.ds-focusable:focus-visible,:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior-x:none;width:100%;max-width:100%;height:100%;margin:0;padding:0;overflow-x:clip}body{background:var(--bg);color:var(--fg1);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}#app{width:100%;max-width:100%;min-height:100%}button{cursor:pointer;font-family:inherit}a{color:var(--link)}img,svg{display:block}h1,h2,h3,h4,h5,h6,p{margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--focus-ring,var(--primary));outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}button,[role=button],[role=radio],[role=tab]{min-height:var(--tap-min,44px)}.iconbtn{min-height:unset}.vote-btn{min-height:var(--tap-min,44px)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-weight:var(--fw-semibold);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);min-height:var(--tap-min);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard), transform var(--dur-fast), box-shadow var(--dur-fast);border:1.5px solid #0000;font-size:15px;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-sm{font-size:var(--text-sm);padding:var(--space-2) var(--space-3);min-height:36px}.btn-primary{background:var(--primary);color:var(--on-accent);box-shadow:var(--glow-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary-press)}.btn-secondary{background:var(--surface-2);color:var(--fg1);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-outline{color:var(--primary);border-color:var(--primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--primary-soft)}.btn-ghost{color:var(--fg1);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover:not(:disabled){background:var(--error-fg)}.input{width:100%;font-family:var(--font-body);color:var(--fg1);background:var(--surface);border:1.5px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-3) 14px;min-height:var(--tap-min);transition:border-color var(--dur-fast), box-shadow var(--dur-fast);font-size:15px}.input::placeholder{color:var(--fg3)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.input:disabled{opacity:.5;cursor:not-allowed}.input-sm{font-size:var(--text-sm);min-height:36px;padding:6px 10px}.error-msg{font-size:var(--text-caption);color:var(--error-fg);margin-top:var(--space-1)}@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:active:not(:disabled){transform:none}.input{transition:none}}
