:root{--control-touch-size:44px;--fs-input-mobile:16px;--modal-width:408px;--modal-gutter:var(--space-7);--modal-backdrop:color-mix(in srgb, var(--nav-bg), transparent 35%);--dur-fast:.12s;--dur-base:.18s;--dur-slow:.24s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.2, 0, 0, 1);--r-xs:4px;--r-sm:7px;--r-md:10px;--r-lg:12px;--r-xl:16px;--r-2xl:22px;--r-pill:999px;--r-code:6px;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:14px;--space-7:16px;--space-8:20px;--space-9:22px;--space-10:24px;--space-12:32px;--space-14:36px;--card-padding:25px 27px;--page-padding:var(--space-14) calc(48px + var(--safe-right)) calc(var(--space-14) + var(--safe-bottom)) calc(48px + var(--safe-left));--page-gap:30px;--grid-gap:18px;--topbar-height:60px;--content-max:1440px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--font-sans:var(--font-manrope), "Segoe UI", system-ui, sans-serif;--font-mono:var(--font-plex-mono), "Consolas", ui-monospace, monospace;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-18:18px;--fs-19:19px;--fs-23:23px;--fs-28:28px;--fs-40:40px;--fs-52:52px;--z-topbar:700;--z-panel:800;--z-menu:850;--z-modal:900;--z-toast:1000;--shadow-toast:0 8px 24px #13161b29}@supports (color:lab(0% 0 0)){:root{--shadow-toast:0 8px 24px lab(7.19015% -.368543 -3.62587/.16)}}:root[data-density=compact]{--card-padding:var(--space-6) var(--space-7);--page-padding:var(--space-8) calc(var(--space-10) + var(--safe-right)) calc(var(--space-12) + var(--safe-bottom)) calc(var(--space-10) + var(--safe-left));--page-gap:var(--space-6);--grid-gap:var(--space-5);--table-row-padding-y:7px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-13);-webkit-font-smoothing:antialiased;line-height:1.45}a{color:var(--accent);transition:color var(--dur-fast) var(--ease-standard);text-decoration:none}a:hover{color:var(--accent-hover)}button{font:inherit}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fieldInput{border:1px solid var(--border-control);border-radius:var(--r-xl);min-height:42px;padding:9px var(--space-5);font-family:inherit;font-size:var(--fs-13);background:var(--surface);color:var(--text);transition:border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard)}.fieldInput::placeholder{color:var(--text-faint)}.fieldInput:disabled{color:var(--text-faint);cursor:not-allowed}.fieldInput[aria-invalid=true]{border-color:var(--crit)}.fieldInput:focus-visible,.fieldInput:focus{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent);box-shadow:none}.fieldLabel{font-size:var(--fs-12);color:var(--text-muted)}.formActions{justify-content:flex-end;gap:var(--space-5);padding-top:var(--space-6);border-top:1px solid var(--border-soft);display:flex}.formError{font-size:var(--fs-12);color:var(--crit)}.accentFill.accentFill{background:var(--accent);color:var(--on-accent);box-shadow:none}.accentFill.accentFill:hover:not(:disabled){background:var(--accent-hover)}.dangerFill.dangerFill{background:var(--crit);color:var(--on-danger);box-shadow:none}.dangerFill.dangerFill:hover:not(:disabled){background:color-mix(in srgb, var(--crit), var(--on-danger) 8%)}.bubbleBase{gap:var(--space-2);padding:var(--space-4) var(--space-6);font-size:var(--fs-14);flex-direction:column;line-height:1.45;display:flex}.bubbleIn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl) var(--r-2xl) var(--r-2xl) var(--r-xs)}.bubbleOut{background:var(--bubble-out);border:1px solid var(--bubble-out-border);border-radius:var(--r-2xl) var(--r-2xl) var(--r-xs) var(--r-2xl)}.bubbleText{white-space:pre-wrap;overflow-wrap:anywhere}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (max-width:680px),(pointer:coarse){.fieldInput{font-size:var(--fs-input-mobile);min-height:var(--control-touch-size)}}.training-banner{z-index:60;color:#38220b;text-align:center;background:#ffe6b0;border-bottom:1px solid #c79848;padding:10px 20px;font-size:13px;line-height:1.5;position:relative}
