@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4f6667dd39116621-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07935285219a259d-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/f58031ded4338640-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/77814b00d5ca94a4-s.p.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:400;font-display:swap;src:url(../media/605ce01b664af129-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/4f6667dd39116621-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/07935285219a259d-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/f58031ded4338640-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/77814b00d5ca94a4-s.p.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:500;font-display:swap;src:url(../media/605ce01b664af129-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/4f6667dd39116621-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07935285219a259d-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/f58031ded4338640-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/77814b00d5ca94a4-s.p.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:600;font-display:swap;src:url(../media/605ce01b664af129-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(../media/4f6667dd39116621-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(../media/07935285219a259d-s.1qq4vpdcun5oj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(../media/f58031ded4338640-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(../media/77814b00d5ca94a4-s.p.21jp631_3pja2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:700;font-display:swap;src:url(../media/605ce01b664af129-s.p.0wgildi0cnwt9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.S_LR-q_className{font-family:Geist,Geist Fallback;font-style:normal}.S_LR-q_variable{--font-geist:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bb852295097cd96-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9eb5a876700c0028-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2a04751c893bf294-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bb852295097cd96-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9eb5a876700c0028-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2a04751c893bf294-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.2tuy5pz7dlieh.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bb852295097cd96-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9eb5a876700c0028-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2a04751c893bf294-s.1rgnod-3esatf.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.0r6juujl39pe6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.zs4-Aq_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.zs4-Aq_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--navy-50:#eef2fb;--navy-100:#dce3f5;--navy-200:#b9c6ea;--navy-300:#8fa3d9;--navy-400:#5f78bf;--navy-500:#3e57a3;--navy-600:#2d4285;--navy-700:#23356d;--navy-800:#1d2c5c;--navy-900:#172554;--navy-950:#0e1838;--teal-50:#f0fdfa;--teal-100:#ccfbf1;--teal-200:#99f6e4;--teal-300:#5eead4;--teal-400:#2dd4bf;--teal-500:#14b8a6;--teal-600:#0d9488;--teal-700:#0f766e;--teal-800:#115e59;--teal-900:#134e4a;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--amber-800:#92400e;--white:#fff;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--red-50:#fef2f2;--red-100:#fee2e2;--red-200:#fecaca;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--green-50:#f0fdf4;--green-100:#dcfce7;--green-200:#bbf7d0;--green-600:#16a34a;--green-700:#15803d;--sky-50:#f0f9ff;--sky-100:#e0f2fe;--sky-200:#bae6fd;--sky-600:#0284c7;--sky-700:#0369a1;--brand-primary:var(--navy-900);--brand-primary-hover:#1f3170;--brand-primary-active:var(--navy-950);--brand-secondary:var(--teal-600);--brand-secondary-hover:var(--teal-700);--brand-secondary-subtle:var(--teal-50);--brand-accent:var(--amber-500);--brand-accent-subtle:var(--amber-50);--bg-app:var(--slate-50);--surface-card:var(--white);--surface-subtle:var(--slate-50);--surface-sunken:var(--slate-100);--surface-hover:var(--slate-100);--surface-selected:var(--navy-50);--surface-inverse:var(--navy-900);--surface-overlay:#0f172a66;--border-subtle:#eef2f6;--border-default:var(--slate-200);--border-strong:var(--slate-300);--border-focus:var(--teal-600);--border-brand:var(--navy-900);--text-primary:var(--slate-900);--text-secondary:var(--slate-600);--text-tertiary:var(--slate-500);--text-disabled:var(--slate-400);--text-on-brand:var(--white);--text-brand:var(--navy-900);--text-link:var(--teal-700);--text-link-hover:var(--teal-800);--success-fg:var(--green-700);--success-bg:var(--green-50);--success-border:var(--green-200);--success-solid:var(--green-600);--warning-fg:var(--amber-800);--warning-bg:var(--amber-50);--warning-border:var(--amber-200);--warning-solid:var(--amber-500);--danger-fg:var(--red-700);--danger-bg:var(--red-50);--danger-border:var(--red-200);--danger-solid:var(--red-600);--info-fg:var(--sky-700);--info-bg:var(--sky-50);--info-border:var(--sky-200);--info-solid:var(--sky-600);--conflict-fg:var(--red-700);--conflict-bg:var(--red-50);--conflict-border:var(--red-500);--conflict-stripe:#ef44441a;--blocked-bg:var(--slate-100);--blocked-stripe:#64748b1a;--drop-target-bg:var(--teal-50);--drop-target-border:var(--teal-500);--now-line:var(--amber-500);--subject-math-bg:#eef3ff;--subject-math-border:#c9d7fb;--subject-math-fg:#1e3a8a;--subject-english-bg:#fdf0f3;--subject-english-border:#f4cad5;--subject-english-fg:#9f1239;--subject-science-bg:#e9f7f3;--subject-science-border:#b9e5d8;--subject-science-fg:#115e59;--subject-history-bg:#fdf6e6;--subject-history-border:#f1dba4;--subject-history-fg:#92400e;--subject-geography-bg:#f0f7e8;--subject-geography-border:#cde3b2;--subject-geography-fg:#3f6212;--subject-art-bg:#f5f1fd;--subject-art-border:#dcd1f6;--subject-art-fg:#5b21b6;--subject-music-bg:#fbf0fa;--subject-music-border:#eecce9;--subject-music-fg:#86198f;--subject-pe-bg:#fef2ea;--subject-pe-border:#f6d0b5;--subject-pe-fg:#9a3412;--subject-computing-bg:#ebf6fc;--subject-computing-border:#bee1f1;--subject-computing-fg:#075985;--subject-languages-bg:#f1f5f9;--subject-languages-border:#d3dce7;--subject-languages-fg:#334155;--pick-blue:#3b6fd8;--pick-indigo:#5b5bd6;--pick-violet:#8256d0;--pick-magenta:#b4479f;--pick-pink:#d64f84;--pick-red:#d9534f;--pick-orange:#e07b39;--pick-amber:#d99a1e;--pick-olive:#9a9a2e;--pick-lime:#6fa03a;--pick-green:#3e9f5b;--pick-teal:#1e9488;--pick-cyan:#2393b5;--pick-brown:#9c6b4e;--pick-slate:#64748b;--pick-navy:#2d4285}
:root{--font-sans:var(--font-geist),"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:var(--font-geist-mono),"Geist Mono",ui-monospace,"SF Mono",Menlo,monospace;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-none:1;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tighter:-.025em;--tracking-tight:-.015em;--tracking-normal:0;--tracking-wide:.04em;--type-display:600 48px/1.1 var(--font-sans);--type-h1:600 30px/1.2 var(--font-sans);--type-h2:600 24px/1.25 var(--font-sans);--type-h3:600 18px/1.35 var(--font-sans);--type-h4:600 14px/1.4 var(--font-sans);--type-body-lg:400 16px/1.6 var(--font-sans);--type-body:400 14px/1.5 var(--font-sans);--type-body-sm:400 13px/1.5 var(--font-sans);--type-caption:500 12px/1.4 var(--font-sans);--type-overline:600 11px/1.3 var(--font-sans);--type-mono:500 12px/1.4 var(--font-mono)}
:root{--space-0:0;--space-0-5:2px;--space-1:4px;--space-1-5:6px;--space-2:8px;--space-2-5:10px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:14px;--radius-2xl:18px;--radius-full:999px;--control-sm:28px;--control-md:34px;--control-lg:40px;--sidebar-width:248px;--topbar-height:56px;--content-max:1440px;--page-padding:32px;--tt-time-col:76px;--tt-row-height:76px;--tt-row-height-compact:56px;--tt-break-height:28px;--tt-header-height:44px}
:root{--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 1px 3px #0f172a12,0 1px 2px #0f172a0a;--shadow-md:0 4px 12px -2px #0f172a14,0 2px 4px -2px #0f172a0d;--shadow-lg:0 12px 32px -8px #0f172a24,0 4px 8px -4px #0f172a0f;--shadow-xl:0 24px 56px -12px #0f172a38,0 8px 16px -8px #0f172a14;--shadow-drag:0 16px 32px -8px #0f172a38,0 0 0 1px #0f172a0f;--shadow-inset:inset 0 1px 2px #0f172a0f;--ring-focus:0 0 0 1px var(--white),0 0 0 3px #0d94888c;--ring-focus-inset:0 0 0 3px #0d948838;--ring-danger:0 0 0 3px #dc26262e;--ease-out:cubic-bezier(.2,.8,.2,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.3,1.3,.5,1);--dur-instant:80ms;--dur-fast:.14s;--dur-base:.2s;--dur-slow:.32s;--blur-overlay:3px}
*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:var(--bg-app);margin:0}a{color:var(--text-link);text-underline-offset:2px;text-decoration:none}a:hover{color:var(--text-link-hover);text-decoration:underline}::selection{background:var(--teal-100);color:var(--slate-900)}.tt-num{font-variant-numeric:tabular-nums}.tt-mono{font-family:var(--font-mono)}
.tt-icon{vertical-align:middle;stroke-width:2px;flex:none;display:inline-block}.tt-btn{font-family:var(--font-sans);letter-spacing:-.005em;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-weight:500;display:inline-flex}.tt-btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-btn:active:not(:disabled){transform:translateY(.5px)scale(.99)}.tt-btn:disabled{opacity:.45;cursor:not-allowed}.tt-btn--sm{height:var(--control-sm);border-radius:var(--radius-sm);gap:5px;padding:0 10px;font-size:13px}.tt-btn--md{height:var(--control-md);padding:0 14px;font-size:14px}.tt-btn--lg{height:var(--control-lg);padding:0 18px;font-size:15px}.tt-btn--full{width:100%}.tt-btn--primary{background:var(--brand-primary);color:var(--text-on-brand);box-shadow:var(--shadow-xs),inset 0 1px 0 #ffffff14}.tt-btn--primary:hover:not(:disabled){background:var(--brand-primary-hover)}.tt-btn--secondary{background:var(--brand-secondary);color:var(--text-on-brand);box-shadow:var(--shadow-xs),inset 0 1px 0 #ffffff1a}.tt-btn--secondary:hover:not(:disabled){background:var(--brand-secondary-hover)}.tt-btn--outline{background:var(--surface-card);color:var(--text-primary);border-color:var(--border-default);box-shadow:var(--shadow-xs)}.tt-btn--outline:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--border-strong)}.tt-btn--ghost{color:var(--text-secondary);background:0 0}.tt-btn--ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.tt-btn--danger{background:var(--danger-solid);color:var(--white);box-shadow:var(--shadow-xs)}.tt-btn--danger:hover:not(:disabled){background:var(--red-700)}.tt-btn__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite tt-spin}@keyframes tt-spin{to{transform:rotate(360deg)}}.tt-iconbtn{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tt-iconbtn:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-iconbtn:disabled{opacity:.45;cursor:not-allowed}.tt-iconbtn--sm{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-sm)}.tt-iconbtn--md{width:var(--control-md);height:var(--control-md)}.tt-iconbtn--lg{width:var(--control-lg);height:var(--control-lg)}.tt-iconbtn--ghost:hover:not(:disabled),.tt-iconbtn--ghost.is-active{background:var(--surface-hover);color:var(--text-primary)}.tt-iconbtn--outline{background:var(--surface-card);border-color:var(--border-default);box-shadow:var(--shadow-xs)}.tt-iconbtn--outline:hover:not(:disabled),.tt-iconbtn--outline.is-active{background:var(--surface-subtle);border-color:var(--border-strong);color:var(--text-primary)}.tt-iconbtn--primary{background:var(--brand-primary);color:var(--white)}.tt-iconbtn--primary:hover:not(:disabled){background:var(--brand-primary-hover)}.tt-badge{border-radius:var(--radius-sm);white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid;align-items:center;gap:5px;height:20px;padding:0 7px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.tt-badge--lg{height:24px;padding:0 9px;font-size:13px}.tt-badge__dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.tt-badge--neutral{background:var(--slate-100);border-color:var(--slate-200);color:var(--slate-700)}.tt-badge--brand{background:var(--navy-50);border-color:var(--navy-100);color:var(--navy-900)}.tt-badge--teal{background:var(--teal-50);border-color:var(--teal-100);color:var(--teal-800)}.tt-badge--amber{background:var(--amber-50);border-color:var(--amber-200);color:var(--amber-800)}.tt-badge--success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}.tt-badge--warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.tt-badge--danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg)}.tt-badge--info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.tt-badge--solid{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--white)}.tt-card{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);min-width:0}.tt-card--interactive{cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.tt-card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.tt-card__header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.tt-card__title{color:var(--text-primary);letter-spacing:-.005em;font-size:14px;font-weight:600;line-height:1.4}.tt-card__subtitle{color:var(--text-tertiary);margin-top:2px;font-size:13px;line-height:1.45}.tt-card__actions{flex:none;align-items:center;gap:6px;display:flex}.tt-card__body--none{padding:0}.tt-card__body--sm{padding:12px 16px}.tt-card__body--md{padding:20px}.tt-card__body--lg{padding:28px}.tt-card__footer{border-top:1px solid var(--border-subtle);background:var(--surface-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.tt-avatar{letter-spacing:0;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a0f}.tt-avatar img{object-fit:cover;width:100%;height:100%}
.tt-field{flex-direction:column;gap:6px;min-width:0;display:flex}.tt-field__label{color:var(--text-primary);font-size:13px;font-weight:500;line-height:1.3}.tt-field__label-row{align-items:center;gap:4px;display:flex}.tt-check__help{margin-left:4px}.tt-field__hint{color:var(--text-tertiary);font-size:12px;line-height:1.4}.tt-field__error{color:var(--danger-fg);font-size:12px;line-height:1.4}.tt-input{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);align-items:center;gap:8px;padding:0 10px;display:flex;position:relative}.tt-input:hover{border-color:var(--border-strong)}.tt-input:focus-within{border-color:var(--border-focus);box-shadow:var(--ring-focus-inset)}.tt-input.is-error{border-color:var(--red-500)}.tt-input.is-error:focus-within{box-shadow:var(--ring-danger)}.tt-input.is-disabled{background:var(--surface-sunken);box-shadow:none;cursor:not-allowed}.tt-input--sm{height:var(--control-sm);border-radius:var(--radius-sm);padding:0 8px}.tt-input--md{height:var(--control-md)}.tt-input--lg{height:var(--control-lg)}.tt-input input,.tt-input select{min-width:0;height:100%;font:inherit;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;padding:0;font-size:14px}.tt-input--sm input,.tt-input--sm select{font-size:13px}.tt-input input::placeholder{color:var(--text-disabled)}.tt-input input:disabled,.tt-input select:disabled{cursor:not-allowed;color:var(--text-disabled)}.tt-input select{appearance:none;cursor:pointer;padding-right:22px}.tt-input__icon{color:var(--text-tertiary)}.tt-input__chevron{pointer-events:none;color:var(--text-tertiary);position:absolute;right:9px}.tt-check{cursor:pointer;color:var(--text-primary);align-items:flex-start;gap:9px;font-size:14px;line-height:1.4;display:inline-flex;position:relative}.tt-check.is-disabled{cursor:not-allowed;opacity:.5}.tt-check__input{opacity:0;width:1px;height:1px;margin:0;position:absolute}.tt-check__box{border:1px solid var(--border-strong);border-radius:var(--radius-xs);background:var(--surface-card);color:#0000;width:16px;height:16px;box-shadow:var(--shadow-xs);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);flex:none;justify-content:center;align-items:center;margin-top:1px;display:inline-flex}.tt-check:hover .tt-check__box{border-color:var(--slate-400)}.tt-check__input:checked+.tt-check__box,.tt-check.is-indeterminate .tt-check__box{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--white)}.tt-check__input:focus-visible+.tt-check__box{box-shadow:var(--ring-focus)}.tt-check__box--radio{border-radius:50%}.tt-check__dot{background:var(--white);width:6px;height:6px;transition:transform var(--dur-fast) var(--ease-spring);border-radius:50%;transform:scale(0)}.tt-check__input:checked+.tt-check__box--radio .tt-check__dot{transform:scale(1)}.tt-check__text{flex-direction:column;gap:2px;display:flex}.tt-check__desc{color:var(--text-tertiary);font-size:13px}.tt-switch{color:var(--text-primary);align-items:center;gap:10px;font-size:14px;display:inline-flex}.tt-switch.is-disabled{opacity:.5}.tt-switch__track{border-radius:var(--radius-full);background:var(--slate-300);cursor:pointer;width:32px;height:18px;transition:background-color var(--dur-base) var(--ease-out);border:0;flex:none;padding:0;position:relative}.tt-switch--sm .tt-switch__track{width:26px;height:15px}.tt-switch__track:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-switch__track.is-on{background:var(--brand-secondary)}.tt-switch__track:disabled{cursor:not-allowed}.tt-switch__thumb{background:var(--white);width:14px;height:14px;transition:transform var(--dur-base) var(--ease-spring);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f172a33}.tt-switch--sm .tt-switch__thumb{width:11px;height:11px}.tt-switch__track.is-on .tt-switch__thumb{transform:translate(14px)}.tt-switch--sm .tt-switch__track.is-on .tt-switch__thumb{transform:translate(11px)}.tt-switch__label{cursor:pointer;-webkit-user-select:none;user-select:none}
.tt-cp{display:inline-flex;position:relative}.tt-cp__trigger{height:var(--control-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-xs);font:inherit;color:var(--text-primary);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);align-items:center;gap:8px;padding:0 10px 0 5px;font-size:13px;display:inline-flex}.tt-cp__trigger:hover{border-color:var(--border-strong)}.tt-cp__trigger:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-cp__trigger:disabled{opacity:.5;cursor:not-allowed}.tt-cp__trigger--sm{height:var(--control-sm);border-radius:var(--radius-sm);padding:0 8px 0 3px}.tt-cp__trigger--swatch{width:var(--control-sm);height:var(--control-sm);border-radius:var(--radius-sm);justify-content:center;padding:0}.tt-cp__chip{border-radius:6px;flex:none;width:22px;height:22px;box-shadow:inset 0 0 0 1px #0f172a1f}.tt-cp__trigger--sm .tt-cp__chip,.tt-cp__trigger--swatch .tt-cp__chip{border-radius:5px;width:18px;height:18px}.tt-cp__chip.is-none{background:repeating-linear-gradient(135deg,var(--surface-card) 0 3px,var(--slate-200) 3px 4px)}.tt-cp__hexlabel{font-family:var(--font-mono);color:var(--text-tertiary);text-transform:uppercase;font-size:12px}.tt-cp__pop{z-index:70;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:tt-pop var(--dur-fast) var(--ease-out);padding:12px;position:absolute;top:calc(100% + 6px);left:0}.tt-cp__pop--right{left:auto;right:0}.tt-cp__panel{flex-direction:column;gap:10px;width:250px;display:flex}.tt-cp__section{color:var(--text-tertiary);font-size:12px;font-weight:500}.tt-cp__grid{grid-template-columns:repeat(8,26px);gap:6px;display:grid}.tt-cp__sw{cursor:pointer;width:26px;height:26px;transition:transform var(--dur-fast) var(--ease-out);border:0;border-radius:7px;justify-content:center;align-items:center;padding:0;display:flex;box-shadow:inset 0 0 0 1px #0f172a1a}.tt-cp__sw:hover{transform:scale(1.08)}.tt-cp__sw:focus-visible{box-shadow:0 0 0 2px var(--surface-card),0 0 0 4px var(--teal-500);outline:none}.tt-cp__sw.is-selected{box-shadow:0 0 0 2px var(--surface-card),0 0 0 4px currentColor}.tt-cp__custom{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;padding-top:10px;display:flex}.tt-cp__native{border:1px dashed var(--border-strong);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:hidden}.tt-cp__native.is-on{box-shadow:0 0 0 2px var(--surface-card),0 0 0 4px currentColor;border:0}.tt-cp__native input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.tt-cp__hash{font-family:var(--font-mono);color:var(--text-tertiary);font-size:12px}.tt-cp__hex input{font-family:var(--font-mono);text-transform:uppercase;font-size:12px}.tt-cp__clear{border-radius:var(--radius-xs);font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:12px}.tt-cp__clear:hover{background:var(--surface-hover);color:var(--text-primary)}.tt-etag{border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:.02em;flex:none;align-items:center;gap:6px;font-weight:600;line-height:1;display:inline-flex}.tt-etag--sm{justify-content:center;min-width:24px;height:20px;padding:0 5px;font-size:11px}.tt-etag--md{justify-content:center;min-width:28px;height:22px;padding:0 6px;font-size:12px}.tt-etag--lg{border-radius:var(--radius-md);justify-content:center;min-width:40px;height:32px;padding:0 9px;font-size:14px}.tt-etag__label{letter-spacing:0;font-weight:500}.tt-sn__use{background:var(--surface-sunken);border-radius:var(--radius-xs);font:inherit;color:var(--text-secondary);cursor:pointer;white-space:nowrap;border:0;padding:2px 6px;font-size:11px;font-weight:500}.tt-sn__use:hover{background:var(--slate-200);color:var(--text-primary)}.tt-sn input{text-transform:uppercase;letter-spacing:.04em;font-weight:500}.tt-ms{position:relative}.tt-ms__control{width:100%;min-height:var(--control-md);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-xs);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);outline:0;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 30px 4px 5px;display:flex;position:relative}.tt-ms--sm .tt-ms__control{min-height:var(--control-sm);border-radius:var(--radius-sm);padding:2px 28px 2px 4px}.tt-ms__control:hover{border-color:var(--border-strong)}.tt-ms.is-open .tt-ms__control,.tt-ms__control:focus-visible{border-color:var(--border-focus);box-shadow:var(--ring-focus-inset)}.tt-ms.is-error .tt-ms__control{border-color:var(--red-500)}.tt-ms__placeholder{color:var(--text-disabled);padding-left:5px;font-size:14px}.tt-ms--sm .tt-ms__placeholder{font-size:13px}.tt-ms__chev{color:var(--text-tertiary);position:absolute;top:50%;right:9px;transform:translateY(-50%)}.tt-chip{border-radius:var(--radius-sm);background:var(--surface-sunken);height:22px;color:var(--text-primary);white-space:nowrap;align-items:center;gap:5px;padding:0 3px 0 7px;font-size:12px;font-weight:500;line-height:1;display:inline-flex}.tt-chip__dot{border-radius:50%;flex:none;width:8px;height:8px}.tt-chip__x{color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px;display:inline-flex}.tt-chip__x:hover{background:var(--slate-200);color:var(--text-primary)}.tt-ms__menu{z-index:70;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:220px;max-height:300px;box-shadow:var(--shadow-lg);animation:tt-pop var(--dur-fast) var(--ease-out);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.tt-ms__search{border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);align-items:center;gap:8px;padding:8px 10px;display:flex}.tt-ms__search input{min-width:0;font:inherit;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;font-size:13px}.tt-ms__list{flex:1;padding:4px;overflow:auto}.tt-ms__opt{border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:flex}.tt-ms__opt:hover{background:var(--surface-hover)}.tt-ms__box{border:1px solid var(--border-strong);border-radius:var(--radius-xs);color:#0000;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.tt-ms__opt.is-on .tt-ms__box{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--white)}.tt-ms__short{font-family:var(--font-mono);color:var(--text-tertiary);margin-left:auto;font-size:11px}.tt-ms__none{color:var(--text-tertiary);text-align:center;padding:14px;font-size:13px}.tt-ms__foot{border-top:1px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-tertiary);justify-content:space-between;align-items:center;padding:6px 8px 6px 12px;font-size:12px;display:flex}.tt-days{flex-wrap:wrap;gap:6px;display:flex}.tt-day{border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--surface-card);height:32px;font:inherit;color:var(--text-secondary);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);padding:0 14px;font-size:13px;font-weight:500}.tt-day:hover{border-color:var(--border-strong);color:var(--text-primary)}.tt-day:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-day.is-on{background:var(--brand-primary);border-color:var(--brand-primary);color:var(--white)}.tt-day:disabled{opacity:.45;cursor:not-allowed}.tt-days--sm .tt-day{height:26px;padding:0 10px;font-size:12px}
.tt-tabs{border-bottom:1px solid var(--border-default);align-items:center;gap:20px;display:flex}.tt-tab{height:38px;font:inherit;color:var(--text-tertiary);cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:500;display:inline-flex;position:relative}.tt-tab:hover,.tt-tab.is-active{color:var(--text-primary)}.tt-tab.is-active:after{content:"";background:var(--brand-primary);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.tt-tab:focus-visible{box-shadow:var(--ring-focus);border-radius:4px;outline:none}.tt-tab__count{border-radius:var(--radius-full);background:var(--slate-100);min-width:18px;height:18px;color:var(--text-secondary);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.tt-tab.is-active .tt-tab__count{background:var(--navy-50);color:var(--navy-900)}.tt-seg{border-radius:var(--radius-md);background:var(--slate-100);border:1px solid var(--border-default);align-items:center;gap:2px;padding:2px;display:inline-flex}.tt-seg .tt-tab{height:28px;color:var(--text-secondary);border-radius:6px;padding:0 10px;font-size:13px}.tt-seg .tt-tab.is-active{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tt-seg .tt-tab.is-active:after{display:none}.tt-seg--sm .tt-tab{height:24px;padding:0 8px;font-size:12px}.tt-nav{border-radius:var(--radius-sm);width:100%;height:32px;font:inherit;color:var(--text-secondary);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:center;gap:10px;padding:0 10px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.tt-nav:hover{background:var(--surface-hover);color:var(--text-primary);text-decoration:none}.tt-nav.is-active{background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-xs),0 0 0 1px var(--border-default)}.tt-nav.is-active .tt-icon{color:var(--brand-secondary)}.tt-nav:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-nav .tt-icon{color:var(--text-tertiary)}.tt-nav__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tt-nav__badge{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.tt-nav__badge--alert{border-radius:var(--radius-full);background:var(--danger-bg);min-width:18px;height:18px;color:var(--danger-fg);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}
.tt-dialog__overlay{z-index:110;background:var(--surface-overlay);-webkit-backdrop-filter:blur(var(--blur-overlay));animation:tt-fade var(--dur-base) var(--ease-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.tt-dialog{background:var(--surface-card);border-radius:var(--radius-xl);width:100%;max-height:calc(100vh - 48px);box-shadow:var(--shadow-xl),0 0 0 1px #0f172a0f;animation:tt-pop var(--dur-base) var(--ease-out);flex-direction:column;display:flex}.tt-dialog--sm{max-width:400px}.tt-dialog--md{max-width:520px}.tt-dialog--lg{max-width:720px}.tt-dialog__header{align-items:flex-start;gap:12px;padding:20px 20px 0 24px;display:flex}.tt-dialog__title{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:16px;font-weight:600;line-height:1.4}.tt-dialog__desc{color:var(--text-secondary);margin:4px 0 0;font-size:14px;line-height:1.5}.tt-dialog__body{padding:20px 24px;overflow:auto}.tt-dialog__footer{border-top:1px solid var(--border-subtle);background:var(--surface-subtle);border-radius:0 0 var(--radius-xl) var(--radius-xl);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}@keyframes tt-fade{0%{opacity:0}}@keyframes tt-pop{0%{opacity:0;transform:translateY(4px)scale(.98)}}.tt-toast{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:360px;max-width:100%;box-shadow:var(--shadow-lg);animation:tt-pop var(--dur-base) var(--ease-out);align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;display:flex}.tt-toast__icon{margin-top:2px}.tt-toast--success .tt-toast__icon{color:var(--success-solid)}.tt-toast--warning .tt-toast__icon{color:var(--amber-600)}.tt-toast--danger .tt-toast__icon{color:var(--danger-solid)}.tt-toast--info .tt-toast__icon{color:var(--info-solid)}.tt-toast--neutral .tt-toast__icon{color:var(--text-tertiary)}.tt-toast__body{flex:1;min-width:0}.tt-toast__title{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.4}.tt-toast__desc{color:var(--text-secondary);margin-top:2px;font-size:13px;line-height:1.45}.tt-toast__action{margin-top:8px}.tt-tooltip{display:inline-flex;position:relative}.tt-tooltip__bubble{z-index:50;border-radius:var(--radius-sm);background:var(--navy-950);color:var(--white);white-space:nowrap;box-shadow:var(--shadow-md);pointer-events:none;animation:tt-fade var(--dur-fast) var(--ease-out);padding:5px 8px;font-size:12px;font-weight:500;line-height:1.35;position:absolute}.tt-tooltip__bubble--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tt-tooltip__bubble--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tt-tooltip__bubble--left{top:50%;right:calc(100% + 6px);transform:translateY(-50%)}.tt-tooltip__bubble--right{top:50%;left:calc(100% + 6px);transform:translateY(-50%)}.tt-tooltip--wrap .tt-tooltip__bubble{white-space:pre-line;text-align:left;width:max-content;max-width:min(280px,70vw);font-weight:400}.tt-tooltip__bubble--wrap{white-space:normal;width:max-content;max-width:min(260px,70vw);font-weight:400}.tt-help{vertical-align:middle}.tt-help__btn{width:18px;height:18px;color:var(--text-tertiary);cursor:help;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.tt-help__btn:hover,.tt-help__btn[aria-expanded=true]{color:var(--text-secondary)}.tt-help__btn:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-tooltip__kbd{font-family:var(--font-mono);background:#ffffff24;border-radius:3px;margin-left:6px;padding:0 4px;font-size:11px}
.tt-drawer__overlay{z-index:100;background:var(--surface-overlay);animation:tt-fade var(--dur-base) var(--ease-out);position:fixed;inset:0}.tt-drawer{z-index:101;width:min(100vw,var(--drawer-w,560px));background:var(--surface-card);border-left:1px solid var(--border-default);box-shadow:var(--shadow-xl);animation:tt-drawer-in var(--dur-slow) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.tt-drawer--inline{z-index:auto;max-width:100%;height:100%;box-shadow:var(--shadow-lg);border:1px solid var(--border-default);border-radius:var(--radius-lg);animation:none;position:relative;inset:auto;overflow:hidden}@keyframes tt-drawer-in{0%{opacity:0;transform:translate(32px)}}.tt-drawer__header{align-items:center;gap:12px;padding:18px 16px 14px 24px;display:flex}.tt-drawer__title{letter-spacing:-.015em;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:17px;font-weight:600;line-height:1.35;overflow:hidden}.tt-drawer__desc{color:var(--text-secondary);margin:2px 0 0;font-size:13px;line-height:1.45}.tt-drawer__tabs{border-bottom:1px solid var(--border-default);padding:0 24px}.tt-drawer__tabs .tt-tabs{border-bottom:0}.tt-drawer__body{flex:1;min-height:0;padding:20px 24px 28px;overflow:auto}.tt-drawer__footer{border-top:1px solid var(--border-default);background:var(--surface-subtle);align-items:center;gap:8px;padding:12px 16px 12px 24px;display:flex}.tt-table{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);min-width:0}.tt-table__toolbar{border-bottom:1px solid var(--border-default);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.tt-table__scroll{overflow-x:auto}.tt-table__inner{width:max-content;min-width:100%}.tt-table__row{border-bottom:1px solid var(--border-subtle);min-height:52px;transition:background-color var(--dur-fast) var(--ease-out);align-items:center;gap:16px;padding:0 16px;display:grid}.tt-table--compact .tt-table__row{min-height:46px}.tt-table__row:last-child{border-bottom:0}.tt-table__row--head{background:var(--surface-subtle);color:var(--text-tertiary);font-size:12px;font-weight:500;border-bottom:1px solid var(--border-default)!important;min-height:36px!important}.tt-table__row.is-clickable{cursor:pointer}.tt-table__row.is-clickable:hover{background:var(--surface-subtle)}.tt-table__row.is-selected{background:var(--surface-selected)}.tt-table__cell{min-width:0;color:var(--text-primary);align-items:center;gap:6px;font-size:14px;display:flex}.tt-table__row--head .tt-table__cell{color:var(--text-tertiary);font-size:12px}.tt-table__empty{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:6px;padding:48px 24px;font-size:14px;display:flex}.tt-table__footer{border-top:1px solid var(--border-default);color:var(--text-tertiary);align-items:center;gap:8px;padding:10px 16px;font-size:12px;display:flex}@media (max-width:640px){.tt-table__row{gap:12px;padding:0 12px}.tt-table__row>.tt-table__cell:first-child{z-index:1;background:var(--surface-card);box-shadow:1px 0 0 var(--border-subtle);align-self:stretch;margin-left:-12px;padding-left:12px;position:sticky;left:-12px}.tt-table__row--head>.tt-table__cell:first-child,.tt-table__row.is-clickable:hover>.tt-table__cell:first-child{background:var(--surface-subtle)}.tt-table__row.is-selected>.tt-table__cell:first-child{background:var(--surface-selected)}}
.tt-avs{border-radius:var(--radius-sm);font:inherit;background:0 0;border:1px solid #0000;align-items:flex-end;gap:3px;padding:4px 5px;display:inline-flex}button.tt-avs{cursor:pointer}button.tt-avs:hover{border-color:var(--border-default);background:var(--surface-card)}button.tt-avs:focus-visible{box-shadow:var(--ring-focus);outline:none}.tt-avs__day{flex-direction:column;align-items:center;gap:3px;display:flex}.tt-avs__cell{border:1.5px solid var(--teal-600);background:var(--surface-card);border-radius:3px;width:14px;height:18px;position:relative;overflow:hidden}.tt-avs--lg .tt-avs__cell{border-radius:4px;width:20px;height:24px}.tt-avs__cell.is-full{background:var(--teal-600)}.tt-avs__fill{background:var(--teal-600);position:absolute;bottom:0;left:0;right:0}.tt-avs__cell.is-none{border-color:var(--slate-400)}.tt-avs__cell.is-off{border-color:var(--slate-300);background:repeating-linear-gradient(135deg,var(--surface-card) 0 2px,var(--slate-300) 2px 3px)}.tt-avs__lbl{color:var(--text-tertiary);font-size:9px;font-weight:600;line-height:1}.tt-avs--lg .tt-avs__lbl{font-size:10px}.tt-avl{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12px;display:flex}.tt-avl__item{align-items:center;gap:6px;display:inline-flex}.tt-avl .tt-avs__cell{border-radius:2px;width:11px;height:13px}.tt-ave{-webkit-user-select:none;user-select:none;flex-direction:column;gap:12px;display:flex;position:relative}.tt-ave__toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tt-ave__grid{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);display:grid;overflow:hidden}.tt-ave__corner{background:var(--surface-subtle);border-bottom:1px solid var(--border-default)}.tt-ave__head{background:var(--surface-subtle);border-bottom:1px solid var(--border-default);border-left:1px solid var(--border-subtle);height:36px;color:var(--text-secondary);justify-content:center;align-items:center;gap:2px;padding:0 2px 0 8px;font-size:12px;font-weight:600;display:flex}.tt-ave__head.is-off{color:var(--text-disabled)}.tt-ave__head button{border-radius:var(--radius-xs);width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.tt-ave__head button:hover,.tt-ave__head button.is-open{background:var(--slate-200);color:var(--text-primary)}.tt-ave__rowh{border:0;border-bottom:1px solid var(--border-subtle);background:var(--surface-subtle);font:inherit;text-align:left;cursor:pointer;flex-direction:column;justify-content:center;gap:1px;padding:0 10px;display:flex}.tt-ave__rowh:hover{background:var(--surface-hover)}.tt-ave__rowh b{color:var(--text-primary);font-size:12px;font-weight:600}.tt-ave__rowh span{font-family:var(--font-mono);color:var(--text-tertiary);font-size:10.5px}.tt-ave__cell{border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);cursor:pointer;height:38px;padding:3px}.tt-ave__in{height:100%;transition:background-color var(--dur-instant) var(--ease-out),box-shadow var(--dur-instant) var(--ease-out);border-radius:5px}.tt-ave__cell.is-a .tt-ave__in{background:var(--teal-500);box-shadow:inset 0 0 0 1px var(--teal-600)}.tt-ave__cell.is-u .tt-ave__in{background:var(--surface-card);box-shadow:inset 0 0 0 1.5px var(--slate-300)}.tt-ave__cell:hover .tt-ave__in{box-shadow:inset 0 0 0 2px var(--navy-900)}.tt-ave__cell.is-off{cursor:not-allowed}.tt-ave__cell.is-off .tt-ave__in{background:repeating-linear-gradient(135deg,var(--surface-subtle) 0 4px,var(--slate-200) 4px 5px);box-shadow:none}.tt-ave__foot{color:var(--text-tertiary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.tt-menu{z-index:70;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:208px;box-shadow:var(--shadow-lg);animation:tt-pop var(--dur-fast) var(--ease-out);padding:4px;position:absolute}.tt-menu__item{border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:7px 8px;font-size:13px;display:flex}.tt-menu__item:hover{background:var(--surface-hover)}.tt-menu__item .tt-icon{color:var(--text-tertiary)}.tt-menu__sep{background:var(--border-subtle);height:1px;margin:4px 0}.tt-menu__title{color:var(--text-tertiary);padding:6px 8px 4px;font-size:12px;font-weight:500}.tt-pe{flex-direction:column;gap:20px;display:flex}.tt-pe__summary{align-items:flex-start;gap:12px;display:flex}.tt-pe__title{color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.tt-pe__sub{color:var(--text-secondary);margin-top:3px;font-size:13px}.tt-pe__bar{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-subtle);height:46px;display:flex;overflow:hidden}.tt-pe__seg{border-right:1px solid var(--surface-card);white-space:nowrap;cursor:pointer;min-width:0;transition:filter var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex;overflow:hidden}.tt-pe__seg:last-child{border-right:0}.tt-pe__seg:hover{filter:brightness(.97)}.tt-pe__seg--break{background:var(--amber-50);color:var(--amber-700)}.tt-pe__seg--buffer{background:repeating-linear-gradient(135deg,var(--surface-subtle) 0 3px,var(--border-subtle) 3px 4px);cursor:default}.tt-pe__seg--buffer:hover{filter:none}.tt-pe__axis{color:var(--text-tertiary);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:8px;font-size:12px;display:flex}.tt-pe__list{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);container-type:inline-size}.tt-pe__head{border-bottom:1px solid var(--border-default);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;font-size:13px;display:flex}.tt-pe__cols{grid-template-columns:var(--pe-cols);background:var(--surface-subtle);border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);gap:10px;padding:8px 14px;font-size:11.5px;font-weight:500;display:grid}.tt-pe__row{grid-template-columns:var(--pe-cols);border-bottom:1px solid var(--border-subtle);background:var(--surface-card);transition:background-color var(--dur-fast) var(--ease-out);align-items:center;gap:10px;padding:8px 14px;display:grid}.tt-pe__row:hover{background:var(--surface-subtle)}.tt-pe__row.is-over{box-shadow:inset 0 2px 0 var(--teal-500)}.tt-pe__row.is-dragging{opacity:.4}.tt-pe__row.is-flash{background:var(--teal-50)}.tt-pe__handle{color:var(--text-disabled);cursor:grab;justify-content:center;align-items:center;display:flex}.tt-pe__handle:hover{color:var(--text-secondary)}.tt-pe__time{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;font-size:12px}.tt-pe__actions{opacity:0;transition:opacity var(--dur-fast) var(--ease-out);justify-content:flex-end;align-items:center;gap:2px;display:flex}.tt-pe__row:hover .tt-pe__actions,.tt-pe__row:focus-within .tt-pe__actions{opacity:1}.tt-pe__unit{color:var(--text-tertiary);font-size:12px}.tt-pe__foot{padding:6px 8px}.tt-pe input[type=time],.tt-pe input[type=number]{font-variant-numeric:tabular-nums}@container (max-width:760px){.tt-pe__cols{display:none}.tt-pe__row{grid-template-columns:16px 28px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"handle color name time"". .type length"". .short actions";row-gap:8px;padding:12px 14px}.tt-pe__handle{grid-area:handle}.tt-pe__color{grid-area:color}.tt-pe__name{grid-area:name}.tt-pe__time{grid-area:time;justify-self:end}.tt-pe__type{grid-area:type}.tt-pe__length{grid-area:length}.tt-pe__short{grid-area:short}.tt-pe__actions{opacity:1;grid-area:actions}}@container (max-width:420px){.tt-pe__actions .tt-btn>span:not(.tt-btn__spinner){clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.tt-lib__state{color:var(--text-secondary);align-items:center;gap:8px;padding:24px 4px;font-size:14px;display:flex}.tt-spin{animation:1s linear infinite tt-spin}.tt-lib__group{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);overflow:hidden}.tt-lib__head{align-items:center;gap:12px;padding:10px 14px;display:flex}.tt-lib__group.is-open .tt-lib__head{background:var(--surface-subtle);border-bottom:1px solid var(--border-subtle)}.tt-lib__toggle{min-width:0;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:4px 0;display:flex}.tt-lib__title{color:var(--text-primary);font-size:14px;font-weight:600;display:block}.tt-lib__meta{color:var(--text-tertiary);margin-top:2px;font-size:12px;display:block}.tt-lib__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;padding:12px 14px;display:grid}.tt-lib__course{min-width:0;padding:6px 0}.tt-lib__label{align-items:center;gap:10px;min-width:0;display:flex}.tt-lib__short{border-radius:var(--radius-xs);background:var(--surface-subtle);border:1px solid var(--border-subtle);min-width:30px;font-family:var(--font-mono);color:var(--text-secondary);text-align:center;flex:none;padding:2px 6px;font-size:11px}.tt-lib__added{color:var(--text-tertiary);flex:none;font-size:12px}@media (max-width:640px){.tt-lib__list{grid-template-columns:1fr}}
.tt-tl{background:var(--tl-bg);height:100%;min-height:0;box-shadow:inset 0 0 0 1px var(--tl-bd);color:var(--tl-fg);transition:box-shadow var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out);border-radius:6px;display:flex;position:relative;overflow:hidden}.tt-tl[draggable=true]{cursor:grab}.tt-tl[draggable=true]:hover{box-shadow:inset 0 0 0 1.5px var(--tl-fg)}.tt-tl.is-clickable{cursor:pointer}.tt-tl.is-selected{box-shadow:0 0 0 2px var(--surface-card),0 0 0 3.5px var(--navy-900)}.tt-tl__stripes{flex:none;display:flex}.tt-tl__stripes span{width:4px;height:100%}.tt-tl__body{flex-direction:column;flex:1;justify-content:center;gap:1px;min-width:0;padding:3px 4px 3px 5px;line-height:1.15;display:flex}.tt-tl__c{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.tt-tl__t{white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:600;overflow:hidden}.tt-tl__r{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.tt-tl--compact .tt-tl__t,.tt-tl--compact .tt-tl__r{display:none}.tt-tl__flag{width:7px;height:7px;box-shadow:0 0 0 1.5px var(--surface-card);border-radius:50%;position:absolute;top:3px;right:3px}.tt-tl.is-conflict{box-shadow:inset 0 0 0 1.5px var(--red-500);background-image:repeating-linear-gradient(135deg,var(--conflict-stripe) 0 4px,transparent 4px 8px)}.tt-tl.is-conflict .tt-tl__flag{background:var(--red-600)}.tt-tl.is-pending .tt-tl__flag{background:var(--amber-500)}.tt-tl.is-dragging{opacity:.3}.tt-tl.d-unchanged{filter:grayscale();opacity:.45}.tt-tl.d-added,.tt-tl.d-assigned{box-shadow:inset 0 0 0 2px var(--green-600)}.tt-tl.d-added .tt-tl__flag,.tt-tl.d-assigned .tt-tl__flag{background:var(--green-600)}.tt-tl.d-modified{box-shadow:inset 0 0 0 2px var(--pick-orange)}.tt-tl.d-modified .tt-tl__flag{background:var(--pick-orange)}.tt-tl.d-removed{box-shadow:inset 0 0 0 2px var(--red-500);background:var(--surface-card);color:var(--red-700)}.tt-tl.d-removed .tt-tl__c{text-decoration:line-through}.tt-tl.d-removed .tt-tl__stripes{opacity:.35}.tt-tl.d-unresolved{box-shadow:inset 0 0 0 2px var(--red-500);background:var(--danger-bg);background-image:repeating-linear-gradient(135deg,var(--conflict-stripe) 0 4px,transparent 4px 8px);color:var(--red-700)}.tt-tl.d-removed .tt-tl__flag,.tt-tl.d-unresolved .tt-tl__flag{background:var(--red-600)}.tt-st{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-xs);flex-direction:column;display:flex}.tt-st__scroll{border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:100%;overflow:auto}.tt-st__grid{width:max-content;min-width:100%;display:grid}.tt-st__corner{z-index:4;background:var(--surface-subtle);border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-default);color:var(--text-tertiary);align-items:flex-end;padding:0 10px 8px;font-size:11px;font-weight:500;display:flex;position:sticky;top:0;left:0}.tt-st__day{z-index:3;background:var(--surface-subtle);border-left:1px solid var(--border-default);height:32px;color:var(--text-primary);white-space:nowrap;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex;position:sticky;top:0}.tt-st__day small{color:var(--text-tertiary);font-size:11px;font-weight:500}.tt-st__day.is-today{background:var(--amber-50);color:var(--amber-800)}.tt-st__per{z-index:3;background:var(--surface-subtle);border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-default);height:30px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1.1;display:flex;position:sticky;top:32px}.tt-st__per span{font-family:var(--font-mono);color:var(--text-tertiary);font-size:9px;font-weight:400}.tt-st__per.is-first,.tt-st__cell.is-first{border-left-color:var(--border-default)}.tt-st__row{z-index:2;background:var(--surface-card);border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-subtle);color:var(--text-primary);flex-direction:column;justify-content:center;gap:1px;padding:0 10px;font-size:12px;font-weight:600;display:flex;position:sticky;left:0}.tt-st__row small{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:500;overflow:hidden}.tt-st__cell{border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);min-width:0;transition:background-color var(--dur-instant) var(--ease-out);padding:3px;position:relative}.tt-st__cell.is-today{background:color-mix(in oklab,var(--amber-50) 60%,transparent)}.tt-st__cell.is-valid{background:var(--drop-target-bg);box-shadow:inset 0 0 0 1.5px var(--drop-target-border)}.tt-st__cell.is-conflict{background:var(--warning-bg);box-shadow:inset 0 0 0 1.5px var(--amber-500)}.tt-st__cell.is-invalid{background:var(--danger-bg);box-shadow:inset 0 0 0 1.5px var(--red-500)}.tt-st__more{background:var(--red-600);color:var(--white);border-radius:4px;padding:0 4px;font-size:9px;font-weight:700;line-height:14px;position:absolute;bottom:4px;right:4px}.tt-st__empty{text-align:center;color:var(--text-tertiary);grid-column:1/-1;padding:40px;font-size:14px}.tt-st__foot{border-top:1px solid var(--border-default);min-height:40px;color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:8px 14px;font-size:12px;display:flex}.tt-st__foot.is-valid{background:var(--teal-50);color:var(--teal-800)}.tt-st__foot.is-conflict{background:var(--warning-bg);color:var(--warning-fg)}.tt-st__foot.is-invalid{background:var(--danger-bg);color:var(--danger-fg)}.tt-key{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.tt-key__sw{border-radius:3px;flex:none;width:12px;height:12px}.tt-ftb{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tt-xm{display:inline-flex;position:relative}.tt-xm .tt-menu{width:260px;top:calc(100% + 6px);right:0}.tt-xm__hint{color:var(--text-tertiary);padding:8px 8px 4px;font-size:11.5px;line-height:1.4}.tt-cmp{flex-direction:column;gap:16px;min-width:0;display:flex}.tt-cmp__stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.tt-cmp__stat{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);padding:12px 14px}.tt-cmp__stat b{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:22px;font-weight:600;display:block}.tt-cmp__stat span{color:var(--text-secondary);font-size:12px}.tt-cmp__stat.is-bad b{color:var(--danger-fg)}.tt-cmp__stat.is-good b{color:var(--success-fg)}.tt-cmp__legend{color:var(--text-secondary);flex-wrap:wrap;gap:6px 16px;font-size:12px;display:flex}.tt-cmp__pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:14px;display:grid}.tt-cmp__h{color:var(--text-primary);align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.tt-cmp__list{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card)}.tt-cmp__item{border:0;border-bottom:1px solid var(--border-subtle);width:100%;font:inherit;text-align:left;color:var(--text-primary);background:0 0;grid-template-columns:10px 92px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.tt-cmp__item:last-child{border-bottom:0}button.tt-cmp__item{cursor:pointer}button.tt-cmp__item:hover{background:var(--surface-subtle)}.tt-cmp__dot{border-radius:50%;width:8px;height:8px}.tt-cmp__when{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:12px}.tt-cmp__what{min-width:0;font-size:13px}.tt-cmp__what small{color:var(--text-secondary);margin-top:1px;font-size:12px;display:block}.tt-cmp__tag{white-space:nowrap;font-size:11.5px;font-weight:600}.tt-sc{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);flex-direction:column;display:flex;overflow:hidden}.tt-sc__head{border-bottom:1px solid var(--border-default);align-items:center;gap:10px;padding:14px 16px;display:flex}.tt-sc__head b{font-size:14px;font-weight:600;display:block}.tt-sc__head span{color:var(--text-secondary);font-size:12px}.tt-sc__step{border:0;border-bottom:1px solid var(--border-subtle);width:100%;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;grid-template-columns:26px minmax(0,1fr) 16px;align-items:start;gap:10px;padding:12px 14px 12px 16px;display:grid}.tt-sc__step:last-child{border-bottom:0}.tt-sc__step:hover{background:var(--surface-subtle)}.tt-sc__step:focus-visible{box-shadow:inset var(--ring-focus);outline:none}.tt-sc__step.is-active,.tt-sc__hstep.is-active{background:var(--surface-selected)}.tt-sc__num{border:1.5px solid var(--border-strong);background:var(--surface-card);width:24px;height:24px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;font-size:11.5px;font-weight:600;display:flex}.tt-sc .s-complete .tt-sc__num{background:var(--teal-600);border-color:var(--teal-600);color:var(--white)}.tt-sc .s-warning .tt-sc__num{background:var(--amber-100);border-color:var(--amber-500);color:var(--amber-800)}.tt-sc .s-error .tt-sc__num{background:var(--red-50);border-color:var(--red-500);color:var(--red-700)}.tt-sc .s-missing .tt-sc__num{border-style:dashed}.tt-sc .s-ready .tt-sc__num{background:var(--navy-900);border-color:var(--navy-900);color:var(--white)}.tt-sc__label{font-size:13.5px;font-weight:600;line-height:1.3}.tt-sc__sum{color:var(--text-secondary);margin-top:2px;font-size:12px;line-height:1.4}.tt-sc__issue{gap:5px;margin-top:4px;font-size:12px;line-height:1.4;display:flex}.tt-sc__issue.is-warning{color:var(--warning-fg)}.tt-sc__issue.is-error{color:var(--danger-fg)}.tt-sc__chev{color:var(--text-disabled);margin-top:4px}.tt-dialog--xl{max-width:1180px}.tt-dialog--xl .tt-dialog__body{background:var(--bg-app);border-top:1px solid var(--border-subtle);margin-top:16px}.tt-sc--h{display:block;container-type:inline-size}.tt-sc__inner{flex-wrap:nowrap;align-items:stretch;display:flex}.tt-sc--h .tt-sc__head{border-bottom:0;border-right:1px solid var(--border-default);flex:none;gap:8px;max-width:170px;padding:10px 12px}.tt-sc--h .tt-sc__head b{white-space:nowrap;font-size:13px}.tt-sc--h .tt-sc__head span{white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;display:block;overflow:hidden}.tt-sc__row{flex:1;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.tt-sc__row li{flex:1 1 0;min-width:0;display:flex}.tt-sc__hstep{border:0;border-right:1px solid var(--border-subtle);width:100%;min-width:0;font:inherit;text-align:left;color:var(--text-primary);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;align-items:center;gap:7px;padding:8px 10px;display:flex}.tt-sc__row li:last-child .tt-sc__hstep{border-right:0}.tt-sc__hstep:hover{background:var(--surface-subtle)}.tt-sc__hstep:focus-visible{box-shadow:inset var(--ring-focus);outline:none}.tt-sc__hstep.is-active{box-shadow:inset 0 -2px 0 var(--navy-900)}.tt-sc__hstep .tt-sc__num{flex:none;width:20px;height:20px;font-size:10.5px}.tt-sc__htext{flex-direction:column;gap:2px;min-width:0;display:flex}.tt-sc__hstep .tt-sc__label{white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.tt-sc__hsub{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.3;overflow:hidden}.tt-sc .s-warning .tt-sc__hsub{color:var(--warning-fg)}.tt-sc .s-error .tt-sc__hsub{color:var(--danger-fg)}.tt-sc__actions{border-left:1px solid var(--border-default);flex:none;align-items:center;gap:8px;padding:8px 10px;display:flex}.tt-st__add{color:#0000;cursor:pointer;width:100%;height:100%;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);background:0 0;border:1px dashed #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.tt-st__add:hover,.tt-st__add:focus-visible{border-color:var(--border-strong);background:var(--surface-subtle);color:var(--text-tertiary);outline:none}.tt-st__add.is-selected{border-style:solid;border-color:var(--navy-900);background:var(--surface-selected);color:var(--navy-900)}.tt-sc__short{display:none}@container (max-width:1050px){.tt-sc__hsub,.tt-sc--h .tt-sc__head span{display:none}}@container (max-width:860px){.tt-sc__inner{flex-wrap:wrap}.tt-sc--h .tt-sc__head{border-right:0;border-bottom:1px solid var(--border-default);flex:auto;max-width:none}.tt-sc--h .tt-sc__head span{display:block}.tt-sc__actions{border-left:0;border-bottom:1px solid var(--border-default)}.tt-sc__row{flex:100%;order:3}}@container (max-width:620px){.tt-sc__long{display:none}.tt-sc__short{display:inline}.tt-sc__hstep{justify-content:center;gap:4px;padding:8px 2px}.tt-sc__hstep .tt-sc__num{width:18px;height:18px}.tt-sc__htext{flex:none;min-width:auto}.tt-sc__hstep .tt-sc__label{text-overflow:clip;letter-spacing:-.01em;font-size:12px;overflow:visible}}@container (max-width:440px){.tt-sc__hstep .tt-sc__label{display:none}}.tt-gen-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.tt-gen-choice{flex-direction:column;gap:10px;display:flex}.tt-gen-choice__icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.tt-gen-choice__icon--teal{background:var(--teal-50);color:var(--teal-700)}.tt-gen-choice__icon--navy{background:var(--navy-50);color:var(--navy-700)}.tt-gen-choice__icon--amber{background:var(--amber-50);color:var(--amber-700)}.tt-gen-choices--3{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-gen-choice__title{color:var(--text-primary);margin:6px 0 0;font-size:16px;font-weight:600}.tt-gen-choice__text{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.55}.tt-gen-choice__best{border-top:1px solid var(--border-subtle);color:var(--text-secondary);margin-top:auto;padding-top:12px;font-size:13px}@media (max-width:1000px){.tt-gen-choices--3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.tt-gen-choices,.tt-gen-choices--3{grid-template-columns:1fr}}.tt-mg{background:var(--bg-app);flex-direction:column;min-height:100%;display:flex}.tt-mg__bar{padding:10px var(--page-padding);border-bottom:1px solid var(--border-default);background:var(--surface-card);flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.tt-mg__back{border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:4px;padding:6px 8px;font-size:14px;text-decoration:none;display:inline-flex}.tt-mg__back:hover{background:var(--surface-subtle);color:var(--text-primary)}.tt-mg__title{color:var(--text-primary);font-size:15px;font-weight:600}.tt-mg__sub{color:var(--text-tertiary);font-size:12.5px}.tt-mg__body{padding:16px var(--page-padding);grid-template-columns:200px minmax(0,1fr) 260px;align-items:start;gap:16px;display:grid}.tt-mg--embedded{background:0 0;min-height:0}.tt-mg--embedded .tt-mg__body{padding:0}.tt-mg__panel{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);overflow:hidden}.tt-mg__panel-head{border-bottom:1px solid var(--border-subtle);padding:14px 14px 12px}.tt-mg__panel-title{color:var(--text-primary);font-size:14px;font-weight:600}.tt-mg__panel-sub{color:var(--text-tertiary);margin-top:2px;font-size:12.5px}.tt-mg__list{flex-direction:column;gap:6px;padding:8px;display:flex}.tt-mg__class{border-radius:var(--radius-md);width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;display:flex}.tt-mg__class:hover{background:var(--surface-subtle)}.tt-mg__class.is-active{background:var(--navy-50)}.tt-mg__ring{border:2px solid var(--border-strong);width:18px;height:18px;color:var(--white);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.tt-mg__ring.is-partial{border-color:var(--amber-500)}.tt-mg__ring.is-done{border-color:var(--teal-600);background:var(--teal-600)}.tt-mg__class-name{color:var(--text-primary);flex:1;font-size:14px;font-weight:500}.tt-mg__class-meta{color:var(--text-tertiary);font-size:12px}.tt-mg__main{flex-direction:column;gap:12px;min-width:0;display:flex}.tt-mg__hint{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);color:var(--text-secondary);padding:12px 14px;font-size:13px}.tt-mg__warn{color:var(--danger-fg,var(--danger-solid))}.tt-mg__grid-wrap{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);overflow-x:auto}.tt-mg__grid{min-width:640px;display:grid}.tt-mg__corner,.tt-mg__colhead{border-bottom:1px solid var(--border-default);background:var(--surface-subtle);padding:8px 4px}.tt-mg__colhead{font-family:var(--font-mono);color:var(--text-tertiary);flex-direction:column;align-items:center;font-size:11px;display:flex}.tt-mg__colhead b{color:var(--text-secondary);font-weight:500}.tt-mg__break{background:var(--surface-subtle);border-bottom:1px solid var(--border-subtle)}.tt-mg__day{border-right:1px solid var(--border-default);border-bottom:1px solid var(--border-subtle);background:var(--surface-subtle);color:var(--text-secondary);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.tt-mg__cell{border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);min-height:72px;transition:background-color var(--dur-fast) var(--ease-out);padding:3px}.tt-mg__cell.is-ok{background:color-mix(in srgb,var(--teal-500) 10%,white);cursor:pointer}.tt-mg__cell.is-ok:hover{background:color-mix(in srgb,var(--teal-500) 20%,white)}.tt-mg__cell.is-no{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--border-subtle) 6px 7px);cursor:not-allowed}.tt-mg__lesson{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--mg-color) 35%,white);border-left:4px solid var(--mg-color);background:color-mix(in srgb,var(--mg-color) 12%,white);height:100%;min-height:64px;color:color-mix(in srgb,var(--mg-color) 55%,black);cursor:grab;flex-direction:column;padding:6px 8px 6px 10px;font-size:11px;line-height:1.35;display:flex;position:relative}.tt-mg__lesson b{font-size:13px}.tt-mg__lesson code{font-family:var(--font-mono);opacity:.8;font-size:10px}.tt-mg__remove{opacity:0;position:absolute;top:2px;right:2px}.tt-mg__lesson:hover .tt-mg__remove,.tt-mg__lesson:focus-within .tt-mg__remove{opacity:1}.tt-mg__course{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);width:100%;font:inherit;text-align:left;cursor:grab;align-items:center;gap:10px;padding:10px;display:flex}.tt-mg__course:hover{border-color:var(--border-strong)}.tt-mg__course.is-picked{border-color:var(--navy-700);box-shadow:0 0 0 1px var(--navy-700)}.tt-mg__course.is-done{background:var(--surface-subtle);cursor:default}.tt-mg__course.is-done .tt-mg__course-name{color:var(--text-tertiary);text-decoration:line-through}.tt-mg__course-tag{border-radius:var(--radius-sm);background:var(--mg-color);width:34px;height:34px;color:var(--white);flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.tt-mg__course.is-done .tt-mg__course-tag{background:var(--slate-500)}.tt-mg__course-text{flex-direction:column;flex:1;min-width:0;display:flex}.tt-mg__course-name{color:var(--text-primary);align-items:center;gap:4px;font-size:14px;font-weight:500;display:flex}.tt-mg__course-teachers{color:var(--text-tertiary);margin-top:2px;font-size:12px}.tt-mg__course-left{flex-direction:column;flex:none;align-items:flex-end;display:flex}.tt-mg__course-left b{color:var(--text-primary);font-size:20px;font-weight:600;line-height:1}.tt-mg__course-left span{color:var(--text-tertiary);margin-top:3px;font-size:11px}.tt-mg__empty{color:var(--text-tertiary);padding:16px;font-size:13px}@media (max-width:1100px){.tt-mg__body{grid-template-columns:180px minmax(0,1fr)}.tt-mg__courses{grid-column:1/-1}}@media (max-width:760px){.tt-mg__body{grid-template-columns:1fr}.tt-mg__courses{grid-column:auto}}
.tt-stack{gap:var(--stack-gap,16px);flex-direction:column;min-width:0;display:flex}.tt-row{align-items:center;gap:var(--row-gap,8px);min-width:0;display:flex}.tt-row--wrap{flex-wrap:wrap}.tt-row--start{align-items:flex-start}.tt-spacer{flex:1}.tt-grid-2{grid-template-columns:1fr 1fr;gap:18px 16px;display:grid}.tt-grid-2>.tt-span{grid-column:1/-1}.tt-grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--grid-min,260px)),1fr));gap:18px 20px;display:grid}.tt-muted{color:var(--text-tertiary)}.tt-secondary{color:var(--text-secondary)}.tt-text-sm{font-size:13px}.tt-text-xs{font-size:12px}.tt-ellipsis{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.tt-strong{color:var(--text-primary);font-weight:600}.tt-danger-text{color:var(--danger-fg)}.tt-warning-text{color:var(--warning-fg)}.tt-success-text{color:var(--success-fg)}.tt-none{color:var(--text-disabled);font-size:12px}.tt-wordmark{letter-spacing:-.03em;color:var(--navy-900);font-size:18px;font-weight:600}.tt-kbd{font-family:var(--font-mono);color:var(--text-tertiary);border:1px solid var(--border-default);border-radius:4px;padding:0 4px;font-size:11px}.tt-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tt-shell{min-height:100vh;display:flex}.tt-shell__main{flex-direction:column;flex:1;min-width:0;display:flex}.tt-shell-toggle,.tt-top-search-btn{display:none}.tt-shell-scrim{z-index:240;background:var(--surface-overlay);position:fixed;inset:0}.tt-shell-loading{min-height:100vh;color:var(--text-tertiary);justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.tt-app-sidebar{width:var(--sidebar-width);border-right:1px solid var(--border-default);background:var(--bg-app);flex-direction:column;flex:none;height:100dvh;padding:14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.tt-app-sidebar__brand{justify-content:space-between;align-items:center;min-height:36px;padding:0 0 10px 10px;display:flex}.tt-app-sidebar__school{border:1px solid var(--border-default);background:var(--surface-card);width:100%;box-shadow:var(--shadow-xs);font:inherit;text-align:left;cursor:pointer;color:inherit;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;text-decoration:none;display:flex}.tt-app-sidebar__school:hover{border-color:var(--border-strong);text-decoration:none}.tt-app-sidebar__school-name{color:var(--text-primary);font-size:13px;font-weight:600}.tt-app-sidebar__active{color:var(--text-tertiary);align-items:center;gap:5px;min-width:0;font-size:12px;display:flex}.tt-app-sidebar__nav{flex-direction:column;gap:2px;display:flex}.tt-app-sidebar__section{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:16px 10px 6px;font-size:11px;font-weight:600}.tt-status-dot{background:var(--success-solid);border-radius:3px;flex:none;width:6px;height:6px}.tt-topbar{height:var(--topbar-height);padding:0 var(--page-padding);border-bottom:1px solid var(--border-default);background:var(--surface-card);z-index:60;flex:none;align-items:center;gap:8px;display:flex;position:sticky;top:0}.tt-crumbs{flex:1;align-items:center;gap:8px;min-width:0;font-size:14px;display:flex;overflow:hidden}.tt-crumb{white-space:nowrap;text-overflow:ellipsis;min-width:24px;color:var(--text-tertiary);flex-shrink:1;overflow:hidden}.tt-crumb.is-last{min-width:0;max-width:100%;color:var(--text-primary);flex-shrink:0;font-weight:500}.tt-crumb-sep{color:var(--text-disabled)}.tt-top-search{flex-shrink:1;width:240px;min-width:140px;display:flex}.tt-acct{height:36px;font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;margin-left:4px;padding:0 6px 0 4px;font-size:13px;font-weight:500;display:flex}.tt-acct:hover,.tt-acct[aria-expanded=true]{background:var(--surface-hover)}.tt-acct__name{white-space:nowrap;text-overflow:ellipsis;max-width:140px;overflow:hidden}.tt-acct__card{align-items:center;gap:10px;padding:8px 8px 10px;display:flex}.tt-popover{flex:none;position:relative}.tt-popover>.tt-menu{top:calc(100% + 6px);right:0}.tt-page{padding:24px var(--page-padding) 48px;flex-direction:column;gap:20px;min-width:0;display:flex}.tt-page--embedded{padding:0}.tt-page-header{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.tt-page-header__main{flex:1;min-width:260px}.tt-page-header__title{font:var(--type-h2);letter-spacing:-.02em;margin:0}.tt-page-header__desc{color:var(--text-secondary);margin-top:4px;font-size:14px}.tt-page-header__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tt-banner{border-radius:var(--radius-lg);border:1px solid;align-items:center;gap:10px;padding:10px 12px 10px 14px;font-size:13px;line-height:1.45;display:flex}.tt-banner__body{flex:1;min-width:0}.tt-banner--info{background:var(--info-bg);border-color:var(--info-border);color:var(--info-fg)}.tt-banner--warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-fg)}.tt-banner--success{background:var(--success-bg);border-color:var(--success-border);color:var(--success-fg)}.tt-banner--danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-fg)}.tt-namecell{min-width:0}.tt-namecell__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.tt-namecell__flag{align-items:center;gap:6px;min-width:0;display:flex}.tt-namecell__name:has(.tt-namecell__flag){overflow:visible}.tt-namecell__flag>span:last-child{flex:none;display:inline-flex}.tt-notes-mark{color:var(--text-tertiary)}.tt-core-mark{color:var(--text-secondary);fill:currentColor}.tt-namecell__sub{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.tt-swatch{border-radius:5px;flex:none;width:18px;height:18px;display:inline-block;box-shadow:inset 0 0 0 1px #0f172a1f}.tt-num-cell{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:13px}.tt-loadbar{align-items:center;gap:8px;width:100%;display:flex}.tt-loadbar__track{background:var(--slate-100);border-radius:3px;flex:1;height:5px}.tt-loadbar__fill{background:var(--teal-600);border-radius:3px;height:100%}.tt-loadbar__label{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-size:12px}.tt-empty-strong{color:var(--text-primary);font-weight:500}.tt-dashed-empty{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);color:var(--text-secondary);flex-direction:column;align-items:center;gap:4px;padding:36px 20px;font-size:14px;display:flex}.tt-hint-row{color:var(--text-tertiary);justify-content:space-between;padding:4px 2px;font-size:12px;display:flex}.tt-intro-row{align-items:center;gap:12px;margin-bottom:4px;display:flex}.tt-intro-row__text{color:var(--text-secondary);flex:1;font-size:13px;line-height:1.5}.tt-textarea{height:auto!important;padding:8px 10px!important}.tt-textarea textarea{resize:vertical;font:inherit;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;font-size:14px}.tt-unit{color:var(--text-tertiary);white-space:nowrap;font-size:12px}.tt-link-btn{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;font-size:13px;display:inline-flex}.tt-link-btn--danger{color:var(--danger-fg)}.tt-link-btn:hover{background:var(--surface-hover)}.tt-btn--danger-ghost{color:var(--danger-fg)!important}.tt-tag-list{flex-wrap:wrap;gap:3px;display:flex}.tt-tag-badge{display:inline-flex;position:relative}.tt-tag-badge.is-muted{opacity:.55}.tt-tag-badge__mark{background:var(--surface-card);width:13px;height:13px;box-shadow:0 0 0 1px var(--border-default);color:var(--text-secondary);border-radius:7px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:-5px;right:-5px}.tt-panel-box{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-subtle);padding:16px}.tt-meter{background:var(--slate-200);border-radius:4px;height:8px}.tt-meter__fill{border-radius:4px;height:100%}.tt-section-title{margin:0 0 4px;font-size:15px;font-weight:600}.tt-section-desc{color:var(--text-secondary);margin:0 0 18px;font-size:13px}.tt-print-title{font-size:16px;font-weight:600;display:none}.tt-toast-dock{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.tt-asg{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card)}.tt-asg.is-open{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.tt-asg__head{cursor:pointer;color:var(--text-tertiary);grid-template-columns:minmax(0,1.3fr) auto minmax(0,1fr) auto 20px;align-items:center;gap:12px;padding:10px 12px;display:grid}.tt-asg__head:focus-visible{box-shadow:var(--ring-focus);border-radius:var(--radius-lg);outline:none}.tt-asg__title{color:var(--text-primary);font-size:14px;font-weight:500}.tt-asg__meta{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:12px;overflow:hidden}.tt-asg__body{border-top:1px solid var(--border-subtle);grid-template-columns:1fr 1fr;gap:18px 16px;padding:16px 14px 14px;display:grid}.tt-asg__section{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.tt-asg__section-title{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.tt-asg__num{background:var(--surface-sunken);width:18px;height:18px;color:var(--text-tertiary);border-radius:9px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.tt-rule{border-bottom:1px solid var(--border-subtle);align-items:center;gap:16px;padding:14px 18px;display:flex}.tt-rule__title{font-size:14px;font-weight:500}.tt-rule__desc{color:var(--text-secondary);margin-top:2px;font-size:13px}.tt-gen-empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 0;display:flex}.tt-gen-empty__title{font-size:16px;font-weight:600}.tt-gen-empty__desc{color:var(--text-secondary);max-width:420px;font-size:14px}.tt-gen-empty__note{color:var(--text-tertiary);max-width:400px;font-size:12px}.tt-option-list{border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.tt-option{border:0;border-bottom:1px solid var(--border-subtle);background:var(--surface-card);font:inherit;text-align:left;cursor:pointer;color:var(--text-primary);align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.tt-option:last-child{border-bottom:0}.tt-option:hover{background:var(--surface-subtle)}.tt-option.is-on{background:var(--surface-selected)}.tt-stepper{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.tt-stepper li{flex:1;min-width:0}.tt-stepper li+li{border-left:1px solid var(--border-subtle)}.tt-stepper__btn{width:100%;font:inherit;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.tt-stepper__btn:disabled{color:var(--text-disabled);cursor:default}.tt-stepper__btn.is-current{background:var(--surface-selected);box-shadow:inset 0 -2px 0 var(--navy-900);font-weight:600}.tt-stepper__num{background:var(--surface-sunken);width:20px;height:20px;color:var(--text-tertiary);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.tt-stepper__btn.is-done .tt-stepper__num{background:var(--teal-600);color:#fff}.tt-stepper__btn.is-current .tt-stepper__num{background:var(--navy-900);color:#fff}.tt-week-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tt-week-row__label{width:110px;color:var(--text-tertiary);font-size:12px;font-weight:500}.tt-week-row .tt-day{min-width:92px}.tt-lesson-chip{border:1px solid var(--border-default);background:var(--surface-card);height:26px;font:inherit;cursor:pointer;color:var(--text-primary);border-radius:6px;align-items:center;gap:5px;padding:0 8px;font-size:12px;display:inline-flex}.tt-lesson-chip.is-on{border-color:var(--navy-900);background:var(--surface-selected)}.tt-sub-table{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);overflow-x:auto}.tt-sub-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:84px 48px minmax(120px,1fr) minmax(200px,1.4fr) 140px 104px;align-items:center;gap:12px;min-width:780px;padding:8px 14px;display:grid}.tt-sub-row--period{grid-template-columns:104px 48px minmax(120px,1fr) minmax(200px,1.4fr) 110px 140px 104px;min-width:900px}.tt-sub-row:last-child{border-bottom:0}.tt-sub-row--head{background:var(--surface-subtle);border-bottom:1px solid var(--border-default);color:var(--text-tertiary);font-size:12px;font-weight:500}.tt-sub-row.is-unresolved{background:color-mix(in oklab,var(--danger-bg) 60%,transparent)}.tt-is-struck{text-decoration:line-through}.tt-auth{background:var(--surface-card);grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100dvh;display:grid}.tt-auth__main{flex-direction:column;justify-content:space-between;gap:32px;padding:32px clamp(20px,6vw,72px);display:flex}.tt-auth__top{justify-content:space-between;align-items:center;gap:12px;display:flex}.tt-auth__form{flex-direction:column;gap:24px;width:100%;max-width:400px;margin:0 auto;display:flex}.tt-auth__form form{flex-direction:column;gap:16px;display:flex}.tt-auth__lang{justify-content:flex-end;margin-bottom:-8px;display:flex}.tt-lang-field{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);height:38px;box-shadow:var(--shadow-xs);font:inherit;color:var(--text-primary);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);align-items:center;gap:8px;padding:0 10px 0 12px;font-size:14px;font-weight:500;display:inline-flex}.tt-lang-field:hover,.tt-lang-field[aria-expanded=true]{border-color:var(--border-strong)}.tt-lang-field:focus-visible{outline:2px solid var(--text-link);outline-offset:2px}.tt-auth__icon{background:var(--surface-sunken);width:44px;height:44px;color:var(--text-secondary);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.tt-auth__title{font:var(--type-h2);letter-spacing:-.02em;text-wrap:balance;margin:0}.tt-auth__sub{color:var(--text-secondary);text-wrap:pretty;margin:6px 0 0;font-size:14px;line-height:1.5}.tt-auth__foot{color:var(--text-secondary);font-size:14px}.tt-auth__aside{background:var(--navy-900);color:#fff;align-items:flex-end;padding:56px;display:flex}.tt-auth__headline{letter-spacing:-.025em;text-wrap:balance;font-size:30px;font-weight:600;line-height:1.2}.tt-auth__lede{color:#ffffffb8;text-wrap:pretty;margin:14px 0 0;font-size:15px;line-height:1.6}.tt-auth__link{white-space:nowrap;font:inherit;color:var(--text-link);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline-flex}.tt-auth__link:hover{text-decoration-line:underline;text-decoration-color:currentColor}.tt-divider{color:var(--text-tertiary);align-items:center;gap:12px;font-size:13px;display:flex}.tt-divider:before,.tt-divider:after{content:"";background:var(--border-subtle);flex:1;height:1px}.tt-strength{align-items:center;gap:10px;margin-top:-6px;display:flex}.tt-strength__bars{flex:1;grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.tt-strength__bars span{background:var(--border-default);border-radius:2px;height:4px}.tt-strength__label{color:var(--text-tertiary);text-align:right;white-space:nowrap;min-width:52px;font-size:12px}.tt-exporting{background:#fff;padding:16px;width:max-content!important}.tt-exporting .tt-st__scroll{overflow:visible!important}.tt-exporting .tt-print-title{display:block!important}@media print{@page{size:landscape;margin:8mm}html,body{background:#fff!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body *{visibility:hidden}[data-print-area],[data-print-area] *{visibility:visible}[data-print-area]{width:100%;position:absolute;top:0;left:0}[data-print-area] .tt-print-title{display:block!important}[data-print-area] .tt-st__scroll{overflow:visible!important}[data-print-area] .tt-st__corner,[data-print-area] .tt-st__day,[data-print-area] .tt-st__per,[data-print-area] .tt-st__row{position:static!important}[data-print-area] .tt-st__foot{display:none}}@media (max-width:1100px){.tt-top-search{width:180px}.tt-acct__name,.tt-acct__chev{display:none!important}.tt-acct{padding:0 2px}}@media (max-width:1000px){.tt-crumb:not(.is-last),.tt-crumb-sep{display:none}}@media (max-width:900px){:root{--page-padding:16px}.tt-app-sidebar{z-index:250;transition:transform var(--dur-slow) var(--ease-out);box-shadow:var(--shadow-xl);position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.tt-app-sidebar.is-open{transform:none}.tt-shell-toggle,.tt-top-search-btn{display:inline-flex}.tt-top-search{display:none}.tt-auth{grid-template-columns:minmax(0,1fr)}.tt-auth__aside{display:none}.tt-auth__main{padding:24px 20px}}@media (min-width:901px){.tt-shell-scrim{display:none}}@media (max-width:640px){.tt-top-help{display:none}.tt-toast-dock{bottom:12px;left:12px;right:12px}.tt-grid-2,.tt-asg__body{grid-template-columns:1fr}.tt-drawer__header{padding:14px 12px 12px 16px}.tt-drawer__tabs{padding:0 16px;overflow-x:auto}.tt-drawer__body{padding:16px 16px 24px}.tt-drawer__footer{flex-wrap:wrap;padding:10px 12px 10px 16px}.tt-asg__head{grid-template-columns:minmax(0,1fr) auto 20px}.tt-asg__head>:nth-child(2),.tt-asg__head>:nth-child(3){display:none}}.tt-dash__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 20px 0;display:flex}.tt-dash__title{color:var(--text-primary);font-size:16px;font-weight:600}.tt-dash__sub{color:var(--text-secondary);margin-top:3px;font-size:13px}.tt-dash__bar{background:var(--surface-subtle);border-radius:999px;height:6px;margin:20px 20px 16px;overflow:hidden}.tt-dash__bar>span{border-radius:inherit;background:var(--teal-600);height:100%;transition:width var(--dur-base) var(--ease-out);display:block}.tt-dash__steps{border-top:1px solid var(--border-subtle);margin:0;padding:0;list-style:none}.tt-dash__steps>li+li{border-top:1px solid var(--border-subtle)}.tt-dash__step{color:inherit;transition:background-color var(--dur-fast) var(--ease-out);align-items:center;gap:14px;padding:14px 20px;text-decoration:none;display:flex}.tt-dash__step:hover{background:var(--surface-subtle)}.tt-dash__step:focus-visible{box-shadow:inset var(--ring-focus);outline:none}.tt-dash__num{border:1px solid var(--border-default);width:24px;height:24px;color:var(--text-tertiary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:500;display:inline-flex}.tt-dash__step.is-done .tt-dash__num{border-color:var(--teal-600);background:var(--teal-600);color:var(--white)}.tt-dash__step.is-next .tt-dash__num{border:1.5px solid var(--navy-700);background:var(--navy-50);color:var(--navy-700);font-weight:600}.tt-dash__text{flex-direction:column;flex:1;min-width:0;display:flex}.tt-dash__label{color:var(--text-primary);font-size:14px;font-weight:500}.tt-dash__summary{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12.5px;overflow:hidden}.tt-dash__action{color:var(--teal-700);flex:none;font-size:13px;font-weight:500}.tt-dash__stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.tt-dash__stat{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);color:inherit;flex-direction:column;gap:4px;padding:18px 20px;text-decoration:none;display:flex}.tt-dash__stat:hover{border-color:var(--border-strong)}.tt-dash__value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.tt-dash__statlabel{color:var(--text-secondary);font-size:13px}@media (max-width:640px){.tt-dash__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.tt-tc__summary{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);color:var(--text-secondary);flex-wrap:wrap;gap:8px 24px;padding:14px 18px;font-size:13px;display:flex}.tt-tc__summary b{color:var(--text-primary);font-weight:600}.tt-tc__warn,.tt-tc__warn b{color:var(--warning-fg)}.tt-tc__head{align-items:center;gap:12px;padding:14px 16px;display:flex}.tt-tc__avatar{background:var(--tc-color,var(--slate-500));width:36px;height:36px;color:var(--white);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.tt-tc__name{color:var(--text-primary);font-size:14px;font-weight:600}.tt-tc__count{color:var(--text-tertiary);margin-top:1px;font-size:12.5px}.tt-tc__table{border-top:1px solid var(--border-subtle)}.tt-tc__row{border-top:1px solid var(--border-subtle);color:var(--text-primary);grid-template-columns:minmax(180px,2fr) minmax(120px,2fr) 80px 100px 90px 36px;align-items:center;gap:12px;padding:12px 16px;font-size:13.5px;display:grid}.tt-tc__row:first-child{border-top:0}.tt-tc__row--head{background:var(--surface-subtle);color:var(--text-tertiary);padding-top:8px;padding-bottom:8px;font-size:12px;font-weight:500}.tt-tc__course{align-items:center;gap:6px;font-weight:500;display:flex}.tt-tc__co{color:var(--text-tertiary);margin-top:2px;font-size:12px;display:block}.tt-tc__chip{border-radius:var(--radius-xs);background:var(--surface-subtle);border:1px solid var(--border-subtle);color:var(--text-secondary);align-items:center;padding:2px 7px;font-size:12px;display:inline-flex}.tt-tc__editor{border-top:1px solid var(--border-subtle);background:var(--surface-subtle);flex-direction:column;gap:12px;padding:14px 16px;display:flex}.tt-tc__foot{border-top:1px solid var(--border-subtle);color:var(--teal-700);padding:8px 10px}@media (max-width:760px){.tt-tc__row{grid-template-columns:1fr auto;grid-auto-flow:row}.tt-tc__row--head,.tt-tc__row>:nth-child(n+2):not(:last-child){display:none}}

