:root{--ty-blue-50:#E8F5FC;--ty-blue-100:#C9E9F8;--ty-blue-200:#9DD8F0;--ty-blue-300:#66C4EA;--ty-blue-400:#2EB2E4;--ty-blue-500:#00A0DE;--ty-blue-600:#0A6FC7;--ty-blue-700:#0B5FAE;--ty-blue-800:#0A4F91;--ty-blue-900:#093F73;--ty-gray-0:#FFFFFF;--ty-gray-25:#FAFBFC;--ty-gray-50:#F6F7F9;--ty-gray-100:#EFF1F5;--ty-gray-200:#E6E8EE;--ty-gray-300:#D3D7E0;--ty-gray-400:#A8AEBA;--ty-gray-500:#818695;--ty-gray-600:#5C6270;--ty-gray-700:#3D424F;--ty-gray-800:#25272E;--ty-gray-900:#181A20;--ty-gray-950:#0C0D10;--ty-gray-975:#14161B;--ty-success:#0E8A73;--ty-warning:#C37720;--ty-danger:#C54B54;--ty-info:var(--ty-blue-600);--ty-on-dark:#F2F5F8;--ty-on-dark-muted:#9C9EAA;--ty-on-dark-faint:#767C89;--ty-radius:12px;--ty-radius-sm:8px;--ty-radius-lg:16px;--ty-radius-pill:999px;--ty-ease:cubic-bezier(.4,0,.2,1);--ty-dur:180ms;--ty-ease-out:ease-out;--ty-h-topbar:56px;--ty-w-rail:68px;--ty-w-nav:240px}:root,[data-theme=daylight]{color-scheme:light;--ty-canvas:var(--ty-gray-50);--ty-surface:var(--ty-gray-0);--ty-raised:var(--ty-gray-25);--ty-sunken:var(--ty-gray-100);--ty-overlay:rgba(24,26,32,.45);--ty-border:var(--ty-gray-200);--ty-border-strong:var(--ty-gray-300);--ty-text:var(--ty-gray-800);--ty-text-muted:var(--ty-gray-600);--ty-text-faint:var(--ty-gray-500);--ty-text-inverse:var(--ty-gray-0);--ty-brand-vivid:var(--ty-blue-500);--ty-brand:var(--ty-blue-600);--ty-brand-hover:var(--ty-blue-700);--ty-brand-active:var(--ty-blue-800);--ty-brand-ink:var(--ty-gray-0);--ty-brand-soft:var(--ty-blue-50);--ty-brand-soft-2:var(--ty-blue-100);--ty-brand-ring:rgba(0,160,222,.38);--ty-nav-bg:var(--ty-gray-900);--ty-nav-fg:#9C9EAA;--ty-nav-fg-active:var(--ty-gray-0);--ty-nav-hover-bg:#24262E;--ty-nav-active-bg:#2A2D36;--ty-nav-indicator:var(--ty-blue-500);--ty-nav-border:#2B2F38;--ty-success-soft:#EBF5F0;--ty-success-line:#CDE3D8;--ty-warning-soft:#FFF1E6;--ty-warning-line:#EDD2BE;--ty-warning-ink:#954A1D;--ty-danger-soft:#FBEDEF;--ty-danger-line:#EAC7CD;--ty-danger-ink:#AA4050;--ty-info-soft:var(--ty-blue-50);--ty-info-line:var(--ty-blue-200);--ty-shadow-1:0 1px 2px rgba(24,26,32,.05);--ty-shadow-2:0 8px 24px rgba(24,26,32,.07);--ty-shadow-3:0 16px 42px rgba(24,26,32,.10);--ty-shadow-brand:0 3px 13px rgba(10,111,199,.19);--ty-select-bg:var(--ty-blue-100);--ty-select-fg:var(--ty-blue-800);--ty-stage-bg:var(--ty-gray-50);--ty-stage-text:var(--ty-gray-800)}[data-theme=nightfall]{color-scheme:dark;--ty-canvas:#0C0D10;--ty-surface:#14161B;--ty-raised:#1C1F26;--ty-sunken:#101216;--ty-overlay:rgba(0,0,0,.62);--ty-border:#2E333D;--ty-border-strong:#3B414D;--ty-text:#F2F5F8;--ty-text-muted:#A8AEBA;--ty-text-faint:#767C89;--ty-text-inverse:#0C0D10;--ty-brand-vivid:var(--ty-blue-500);--ty-brand:var(--ty-blue-500);--ty-brand-hover:var(--ty-blue-400);--ty-brand-active:var(--ty-blue-300);--ty-brand-ink:#0C0D10;--ty-brand-soft:#0B2A3D;--ty-brand-soft-2:#103A52;--ty-brand-ring:rgba(0,160,222,.45);--ty-nav-bg:#0A0B0E;--ty-nav-fg:#8A909E;--ty-nav-fg-active:#FFFFFF;--ty-nav-hover-bg:#1A1D24;--ty-nav-active-bg:#21242C;--ty-nav-indicator:var(--ty-blue-500);--ty-nav-border:#22252D;--ty-success-soft:#12251F;--ty-success-line:#1E4038;--ty-warning-soft:#2A1F14;--ty-warning-line:#43331F;--ty-warning-ink:#E0A458;--ty-danger-soft:#2A1417;--ty-danger-line:#452226;--ty-danger-ink:#E88B94;--ty-info-soft:#0B2A3D;--ty-info-line:#103A52;--ty-shadow-1:0 1px 2px rgba(0,0,0,.45);--ty-shadow-2:0 8px 24px rgba(0,0,0,.5);--ty-shadow-3:0 16px 42px rgba(0,0,0,.6);--ty-shadow-brand:0 3px 13px rgba(0,160,222,.25);--ty-select-bg:#103A52;--ty-select-fg:#C9E9F8;--ty-stage-bg:#0C0D10;--ty-stage-text:#F2F5F8}.ty-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:var(--ty-radius);color:var(--ty-brand-ink);background:linear-gradient(160deg,var(--ty-blue-500),var(--ty-blue-600));box-shadow:var(--ty-shadow-brand);flex-shrink:0}.ty-mark--sm{width:34px;height:34px;border-radius:var(--ty-radius-sm)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--bg-0:var(--ty-canvas);--bg-1:var(--ty-surface);--bg-2:var(--ty-raised);--bg-3:var(--ty-sunken);--line:var(--ty-border-strong);--line-soft:var(--ty-border);--text-0:var(--ty-text);--text-1:var(--ty-text-muted);--text-2:var(--ty-text-muted);--amber:var(--ty-brand);--amber-soft:var(--ty-brand-soft);--teal:var(--helper-success-ink);--teal-soft:var(--ty-success-soft);--rust:var(--ty-danger-ink);--rust-soft:var(--ty-danger-soft);--blue:var(--ty-brand);--blue-soft:var(--ty-info-soft);--radius:var(--ty-radius);--radius-sm:var(--ty-radius-sm);--shadow:var(--ty-shadow-2);--shadow-lg:var(--ty-shadow-3);--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--helper-success-ink:color-mix(in srgb,var(--ty-success) 78%,var(--ty-gray-950));--green:var(--helper-success-ink);--mono:"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg-0);color:var(--text-0);font-family:var(--font);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button,input,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-0)}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--ty-border-strong)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.spinner{width:15px;height:15px;border-radius:50%;border:2px solid color-mix(in srgb,var(--ty-text) 20%,transparent);border-top-color:var(--amber);animation:spin .7s linear infinite;display:inline-block}[data-theme=nightfall]{--helper-success-ink:color-mix(in srgb,var(--ty-success) 68%,var(--ty-on-dark))}button,select{color:inherit}:focus-visible{outline:2px solid var(--ty-brand);outline-offset:3px}::selection{color:var(--ty-select-fg);background:var(--ty-select-bg)}.ty-brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;max-width:100%}.ty-wordmark{display:block;position:relative;width:116px;aspect-ratio:1426/436;overflow:hidden;flex-shrink:0}.ty-wordmark img{position:absolute;width:122.5806%;max-width:none;height:auto;left:-10.2384%;top:-29.5872%}.ty-wordmark .ty-wordmark-black{display:block}.ty-wordmark .ty-wordmark-white,[data-theme=nightfall] .ty-wordmark .ty-wordmark-black{display:none}[data-theme=nightfall] .ty-wordmark .ty-wordmark-white{display:block}.ty-brand-copy{display:flex;flex-direction:column;gap:5px;line-height:1.2;white-space:nowrap}.ty-brand-copy strong{font-size:15px;font-weight:650;letter-spacing:.5px;color:var(--ty-text)}.ty-brand-copy small{font-size:10px;letter-spacing:.3px;color:var(--ty-text-muted)}.ty-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.ty-theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--ty-border-strong);border-radius:var(--ty-radius-sm);color:var(--ty-text-muted);background:var(--ty-surface);font-size:12px;white-space:nowrap}.ty-theme-toggle:hover{color:var(--ty-brand);border-color:var(--ty-brand);background:var(--ty-brand-soft)}.ty-theme-toggle svg{width:15px;height:15px}@media (max-width:720px){.ty-header-actions{gap:8px}}input::placeholder,textarea::placeholder{color:var(--ty-text-muted);opacity:1}body{display:flex;flex-direction:column;min-height:100dvh;height:auto}.ty-app{flex:1 1;min-width:0}.ty-app>div{min-height:calc(100dvh - 64px)}.ty-company-footer{min-height:64px;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 24px;border-top:1px solid var(--ty-border);background:var(--ty-canvas);color:var(--ty-text-muted)}.ty-company-mark{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;overflow:hidden;background:var(--ty-gray-900);border-radius:7px}.ty-company-mark img{width:100%;height:auto}.ty-company-footer>span:last-child{display:flex;flex-direction:column;gap:2px}.ty-company-name{font-size:11px;line-height:1.5}.ty-company-footer small{font-size:10px;line-height:1.5}@media (max-width:420px){.ty-wordmark{width:104px}.ty-brand{gap:10px}.ty-company-footer{padding:12px 16px}}