@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/barlow-vietnamese-400-normal.9a07bd0e.woff2) format("woff2"),url(/_next/static/media/barlow-vietnamese-400-normal.2a19ccae.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/barlow-latin-ext-400-normal.388b2f91.woff2) format("woff2"),url(/_next/static/media/barlow-latin-ext-400-normal.567f4dbf.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/barlow-latin-400-normal.691b6fb3.woff2) format("woff2"),url(/_next/static/media/barlow-latin-400-normal.6bfc46e7.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-vietnamese-500-normal.83f36bf9.woff2) format("woff2"),url(/_next/static/media/barlow-vietnamese-500-normal.0f9aef14.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-latin-ext-500-normal.42d3702e.woff2) format("woff2"),url(/_next/static/media/barlow-latin-ext-500-normal.cda54286.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-latin-500-normal.b9baa974.woff2) format("woff2"),url(/_next/static/media/barlow-latin-500-normal.3e4a2431.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-vietnamese-600-normal.f4d0342c.woff2) format("woff2"),url(/_next/static/media/barlow-vietnamese-600-normal.7a6c8bf8.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-latin-ext-600-normal.660b5575.woff2) format("woff2"),url(/_next/static/media/barlow-latin-ext-600-normal.b54ba195.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-latin-600-normal.03cb9b26.woff2) format("woff2"),url(/_next/static/media/barlow-latin-600-normal.4306bd70.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-condensed-vietnamese-500-normal.70f04bd5.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-500-normal.7dec19f5.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-condensed-latin-ext-500-normal.dfe6e0fb.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-500-normal.e6bbc82d.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/barlow-condensed-latin-500-normal.6440fe73.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-500-normal.48e4fdf4.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-vietnamese-600-normal.6d7e2f90.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-600-normal.7f364a4c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-latin-ext-600-normal.646ca2c5.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-600-normal.b10b40bc.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/barlow-condensed-latin-600-normal.b506a7ca.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-600-normal.a0aeaff6.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-vietnamese-700-normal.b5cf89c0.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-vietnamese-700-normal.c7b344a0.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-latin-ext-700-normal.e84925df.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-ext-700-normal.73a79c9e.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/barlow-condensed-latin-700-normal.e9811009.woff2) format("woff2"),url(/_next/static/media/barlow-condensed-latin-700-normal.f6cc1247.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.17d05b18.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-400-normal.7daf4077.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.17524150.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-400-normal.29859c59.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-greek-400-normal.77d339c7.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-400-normal.4a5b0cb1.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.553f85d1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-400-normal.fd17702b.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.4d63b447.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-400-normal.ef62d646.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/jetbrains-mono-latin-400-normal.db9d659a.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-400-normal.b0c7be19.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-cyrillic-ext-600-normal.3a831a4d.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-ext-600-normal.ec1a271e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-cyrillic-600-normal.40b4fdec.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-cyrillic-600-normal.6ee2be4b.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-greek-600-normal.642314e1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-greek-600-normal.41929c71.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-vietnamese-600-normal.ec0f0d2d.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-vietnamese-600-normal.31cb43a1.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-latin-ext-600-normal.c6da524e.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-ext-600-normal.d62c3bc3.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/jetbrains-mono-latin-600-normal.ebeb24f1.woff2) format("woff2"),url(/_next/static/media/jetbrains-mono-latin-600-normal.1a59e979.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#e8edf1;--surface:#ffffff;--surface-2:#f3f6f8;--ink:#0e1a2b;--ink-2:#46566b;--rule:#c6d1db;--rule-strong:#93a3b4;--amber:#e8a317;--amber-ink:#5f3f00;--amber-soft:#fcecc6;--dst:#6b3fa0;--dst-soft:#eee5f8;--err:#b42318;--err-soft:#fde8e6;--warn:#8a5a00;--warn-soft:#fff3d6;--ok:#1d7047;--ok-soft:#dcf2e5;--info:#24527a;--info-soft:#e1edf7;--focus:#1b5fd1;--heat-0:#f3f6f8;--heat-1:#fbe3a6;--heat-2:#f2c25a;--heat-3:#d99511;--heat-4:#94600a;--shadow:0 1px 0 rgba(14,26,43,0.06),0 8px 24px -16px rgba(14,26,43,0.25);--font-display:"Barlow Condensed","Arial Narrow",sans-serif;--font-body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--r-sm:4px;--r-md:8px;--gutter:24px;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1420;--surface:#111d2c;--surface-2:#16263a;--ink:#e4ebf3;--ink-2:#9fb0c3;--rule:#263a50;--rule-strong:#3d5670;--amber:#f2b33d;--amber-ink:#f9d68c;--amber-soft:#3a2b0c;--dst:#c3a4f5;--dst-soft:#2a1f3f;--err:#ff8a80;--err-soft:#3d1b19;--warn:#f6c35c;--warn-soft:#362a0d;--ok:#6fdc9e;--ok-soft:#12301f;--info:#8ec2f2;--info-soft:#132b42;--focus:#7ab0ff;--heat-0:#16263a;--heat-1:#4a3a12;--heat-2:#7a5b14;--heat-3:#b9851c;--heat-4:#f2b33d;--shadow:0 1px 0 rgba(0,0,0,0.3),0 10px 28px -18px rgba(0,0,0,0.8);color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1420;--surface:#111d2c;--surface-2:#16263a;--ink:#e4ebf3;--ink-2:#9fb0c3;--rule:#263a50;--rule-strong:#3d5670;--amber:#f2b33d;--amber-ink:#f9d68c;--amber-soft:#3a2b0c;--dst:#c3a4f5;--dst-soft:#2a1f3f;--err:#ff8a80;--err-soft:#3d1b19;--warn:#f6c35c;--warn-soft:#362a0d;--ok:#6fdc9e;--ok-soft:#12301f;--info:#8ec2f2;--info-soft:#132b42;--focus:#7ab0ff;--heat-0:#16263a;--heat-1:#4a3a12;--heat-2:#7a5b14;--heat-3:#b9851c;--heat-4:#f2b33d;--shadow:0 1px 0 rgba(0,0,0,0.3),0 10px 28px -18px rgba(0,0,0,0.8);color-scheme:dark}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;overflow-x:hidden}a{color:inherit;-webkit-text-decoration-color:var(--rule-strong);text-decoration-color:var(--rule-strong);text-underline-offset:3px}a:hover{-webkit-text-decoration-color:var(--amber);text-decoration-color:var(--amber)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}button,input,select,textarea{font:inherit;color:inherit}.mono,code,kbd{font-family:var(--font-mono);font-size:.92em}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.1;letter-spacing:.005em;margin:0}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:8px;top:-40px;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:50;border-radius:var(--r-sm)}.skip:focus{top:8px}.wrap{max-width:1440px;margin:0 auto;padding:0 var(--gutter)}.site-header{border-bottom:1px solid var(--rule);background:var(--surface)}.site-header .wrap{display:flex;align-items:center;gap:20px;min-height:56px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:.01em}.brand svg{flex:none}.site-nav{display:flex;gap:2px;flex:1 1;overflow-x:auto;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav a{text-decoration:none;white-space:nowrap;padding:6px 10px;border-radius:var(--r-sm);color:var(--ink-2);font-size:15px}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--ink);background:var(--surface-2)}.site-nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--amber)}.theme-toggle{margin-left:auto;flex:none;border:1px solid var(--rule);background:transparent;border-radius:var(--r-sm);height:36px;min-width:36px;padding:0 10px;cursor:pointer;font-size:14px;color:var(--ink-2)}.theme-toggle:hover{color:var(--ink);border-color:var(--rule-strong)}.hero{padding:22px 0 14px}.crumbs{font-size:14px;color:var(--ink-2);margin-bottom:6px}.crumbs ol{list-style:none;padding:0;margin:0;display:flex;gap:6px;flex-wrap:wrap}.crumbs li+li:before{content:"/";margin-right:6px;color:var(--rule-strong)}.hero h1{font-size:40px;max-width:34ch}.hero p.lede{margin:8px 0 0;color:var(--ink-2);max-width:72ch;font-size:17px}.ws{display:grid;grid-template-columns:248px minmax(0,1fr) 320px;grid-template-areas:"bar bar bar" "rail main side";grid-gap:16px;gap:16px;align-items:start;margin-bottom:40px}.ws-bar{grid-area:bar}.ws-rail{grid-area:rail}.ws-main{grid-area:main;min-width:0}.ws-side{grid-area:side;min-width:0}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--shadow)}.panel-pad{padding:16px}.exprbar{padding:16px 16px 0;display:flex;flex-direction:column}.exprbar-row{display:grid;grid-template-columns:236px minmax(0,1fr) 240px;grid-gap:12px;gap:12px;align-items:end}.field-label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:4px;font-weight:500}.input,.select{width:100%;height:44px;border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--surface);padding:0 10px}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-2) 50%),linear-gradient(135deg,var(--ink-2) 50%,transparent 50%);background-position:calc(100% - 16px) 19px,calc(100% - 11px) 19px;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}.expr-input{width:100%;font-family:var(--font-mono);font-size:26px;line-height:1.25;min-height:56px;padding:10px 12px;border:2px solid var(--ink);border-radius:var(--r-sm);background:var(--surface);resize:vertical;letter-spacing:.02em}.expr-input[aria-invalid=true]{border-color:var(--err)}.detect{font-size:13px;color:var(--ink-2);margin-top:4px;min-height:20px}.detect b{color:var(--ink);font-weight:600}.bar-actions{display:flex;gap:8px;flex-wrap:wrap;padding:10px 0 12px}.bar-actions,.btn{align-items:center}.btn{display:inline-flex;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--rule-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}.btn:hover{border-color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--ink-2)}.btn-small{min-height:30px;font-size:13px;padding:0 8px}.btn-quiet{border-color:transparent;background:transparent;color:var(--ink-2)}.btn-quiet:hover{color:var(--ink);border-color:var(--rule)}.status-line{font-size:13px;color:var(--ink-2);margin-left:auto}.ribbon{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border-top:1px solid var(--rule);margin:0 -16px}.cell{border:0;border-right:1px solid var(--rule);background:transparent;text-align:left;padding:10px 12px 12px;cursor:default;min-width:0;position:relative}.cell:last-child{border-right:0}.cell .tok{display:block;font-family:var(--font-mono);font-size:20px;font-weight:600;overflow-wrap:anywhere}.cell .lab{font-family:var(--font-display);font-size:15px;font-weight:600}.cell .lab,.cell .mean{display:block;color:var(--ink-2);margin-top:2px}.cell .mean{font-size:13px;overflow-wrap:anywhere}.cell:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.cell.on:after,.cell:focus-visible:after,.cell:hover:after{background:var(--amber)}.cell.bad .tok{color:var(--err);-webkit-text-decoration:wavy underline var(--err);text-decoration:wavy underline var(--err);text-underline-offset:4px}.cell.f-second .tok,.cell.f-year .tok{color:var(--ink-2)}.explain{padding:14px 16px 16px;border-top:1px solid var(--rule);margin:0 -16px;background:var(--surface-2);border-radius:0 0 var(--r-md) var(--r-md)}.explain .sentence{font-family:var(--font-display);font-size:26px;font-weight:500;line-height:1.2;margin:0;max-width:60ch}.quals{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--ink-2)}.quals li:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rule-strong);margin-right:6px;vertical-align:middle}.diags{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.diag{border-left:4px solid var(--info);background:var(--info-soft);padding:8px 12px;border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:14px}.diag.error{border-color:var(--err);background:var(--err-soft)}.diag.warning{border-color:var(--warn);background:var(--warn-soft)}.diag .code{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);margin-left:6px}.diag .fix{display:block;margin-top:2px}.diag .sev{font-weight:600}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--rule);overflow-x:auto;scrollbar-width:thin;padding:0 8px}.tab{border:0;background:transparent;padding:12px 12px 10px;font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-1px}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--amber)}.tab:hover{color:var(--ink)}.tabpanel{padding:16px;min-height:420px}.toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end;margin-bottom:14px}.toolbar .grp{display:flex;flex-direction:column}.seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--r-sm);overflow:hidden}.seg button{border:0;background:var(--surface);padding:0 12px;min-height:36px;cursor:pointer;font-size:14px;border-right:1px solid var(--rule)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.tt{width:100%;border-collapse:collapse;font-size:15px}.tt th{text-align:left;font-weight:600;font-size:13px;color:var(--ink-2);border-bottom:1px solid var(--rule-strong);padding:6px 8px;white-space:nowrap}.tt td{border-bottom:1px solid var(--rule);padding:7px 8px;vertical-align:top}.tt .n{color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;width:3.5em}.tt .time{font-family:var(--font-display);font-size:22px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tt .date,.tt .time{white-space:nowrap}.tt .sub{display:block;font-size:13px;color:var(--ink-2);font-family:var(--font-mono)}.tt tr.first td{background:var(--amber-soft)}.tt tr.first td:first-child{box-shadow:inset 4px 0 0 var(--amber)}.tt tr.blackout td{opacity:.55;text-decoration:line-through}.tt-scroll{overflow-x:auto;max-height:640px;overflow-y:auto;border:1px solid var(--rule);border-radius:var(--r-sm)}.tt thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--surface);z-index:1}.badge{display:inline-block;font-size:12px;font-weight:600;padding:1px 7px;border-radius:999px;border:1px solid;white-space:nowrap;line-height:1.5}.badge.dst{color:var(--dst);background:var(--dst-soft)}.badge.next{color:var(--amber-ink);background:var(--amber);border-color:var(--amber)}.badge.exact,.badge.ok{color:var(--ok);background:var(--ok-soft)}.badge.lossy,.badge.qualified,.badge.split{color:var(--warn);background:var(--warn-soft)}.badge.informational{color:var(--info);background:var(--info-soft)}.badge.fail,.badge.impossible,.badge.unsupported{color:var(--err);background:var(--err-soft)}.badge.label{color:var(--ink-2);background:var(--surface-2);font-family:var(--font-mono);font-weight:500}.side-sec{padding:14px 16px;border-bottom:1px solid var(--rule)}.side-sec:last-child{border-bottom:0}.rail h2,.side-sec h2{font-size:19px;margin-bottom:6px}.side-sec p{margin:4px 0;font-size:14px}.side-sec ul{margin:6px 0 0;padding-left:18px;font-size:14px;color:var(--ink-2)}.side-sec li+li{margin-top:4px}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 12px;gap:4px 12px;font-size:14px;margin:6px 0 0}.kv dt{color:var(--ink-2)}.kv dd{margin:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.btn-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.rail{padding:14px}.rail h2{margin-top:6px}.rail h3{font-size:15px;color:var(--ink-2);margin:12px 0 4px;font-family:var(--font-body);font-weight:600}.rail ul{list-style:none;margin:0;padding:0}.rail li button{width:100%;text-align:left;border:0;background:transparent;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:14px;line-height:1.3}.rail li button:hover{background:var(--surface-2)}.rail li button .mono{display:block;color:var(--ink-2);font-size:12px}.rail details>summary{cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:19px}.preset-row{display:flex;align-items:center;gap:4px}.preset-row button:first-child{flex:1 1}.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));grid-gap:4px;gap:4px}.chips.wide{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.chip{min-height:36px;border:1px solid var(--rule);background:var(--surface);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:13px;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.fieldset{border:1px solid var(--rule);border-radius:var(--r-md);padding:12px;margin:0 0 12px}.fieldset legend{font-family:var(--font-display);font-weight:600;font-size:18px;padding:0 6px}.modes{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:10px;font-size:14px}.modes label{display:inline-flex;gap:6px;align-items:center;min-height:32px}.inline-inputs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}.inline-inputs .input,.inline-inputs .select{width:auto;min-width:80px;height:36px}.split2{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.conv-table{width:100%;border-collapse:collapse;font-size:14px}.conv-table td,.conv-table th{border-bottom:1px solid var(--rule);padding:8px;text-align:left;vertical-align:top}.conv-table th{font-size:13px;color:var(--ink-2)}.conv-table code{font-size:14px;overflow-wrap:anywhere}pre.snippet{background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-sm);padding:10px 12px;overflow-x:auto;font-size:13px;margin:8px 0}.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:16px;gap:16px}.month h3{font-size:16px;margin-bottom:4px}.mgrid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.mgrid .dh{font-size:11px;color:var(--ink-2);text-align:center}.dcell{aspect-ratio:1;border-radius:3px;font-size:10px;display:flex;align-items:center;justify-content:center;color:var(--ink);border:0;padding:0;cursor:pointer;background:var(--heat-0)}.dcell.l1{background:var(--heat-1)}.dcell.l2{background:var(--heat-2)}.dcell.l3{background:var(--heat-3);color:#1b1200}.dcell.l4{background:var(--heat-4);color:#fff}:root[data-theme=dark] .dcell.l4{color:#1b1200}.dcell.dstday{box-shadow:inset 0 0 0 2px var(--dst)}.dcell.sel{outline:2px solid var(--ink)}.dcell.empty{visibility:hidden}.weekgrid{display:grid;grid-template-columns:40px repeat(24,minmax(10px,1fr));grid-gap:2px;gap:2px;font-size:11px;color:var(--ink-2)}.weekgrid .wc{height:18px;border-radius:2px;background:var(--heat-0)}.legend{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--ink-2);margin:8px 0;flex-wrap:wrap}.legend .sw{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:middle;margin-right:4px}.daystrip{position:relative;height:56px;border:1px solid var(--rule);border-radius:var(--r-sm);background:var(--surface-2);margin-top:6px}.daystrip .tick{position:absolute;top:8px;bottom:18px;width:2px;background:var(--amber)}.daystrip .tick.dst{background:var(--dst)}.daystrip .hr{position:absolute;bottom:0;font-size:10px;color:var(--ink-2);transform:translateX(-50%)}.cmp-row{display:grid;grid-template-columns:1.5fr 150px 170px 90px auto;grid-gap:8px;gap:8px;align-items:end;margin-bottom:8px}.lanes{border:1px solid var(--rule);border-radius:var(--r-sm);overflow-x:auto;background:var(--surface-2)}.lanes svg{display:block;min-width:640px}.dst-event{border:1px solid var(--rule);border-left:4px solid var(--dst);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:10px}.dst-event h3{font-size:18px}.policy-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:13px}.policy-grid span{border:1px solid var(--rule);border-radius:var(--r-sm);padding:2px 8px}.policy-grid span.cur{border-color:var(--ink);font-weight:600}.checks{list-style:none;padding:0;margin:0;display:grid;grid-gap:4px;gap:4px}.checks li{display:grid;grid-template-columns:30px 130px 1fr;grid-gap:8px;gap:8px;padding:6px 8px;border-bottom:1px solid var(--rule);font-size:14px}.checks .mark{font-weight:700}.checks .pass .mark{color:var(--ok)}.checks .failx .mark{color:var(--err)}.note{font-size:14px;color:var(--ink-2)}.empty-state{border:1px dashed var(--rule-strong);border-radius:var(--r-md);padding:24px;text-align:center;color:var(--ink-2)}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--r-sm);font-size:14px;z-index:40;box-shadow:var(--shadow)}.feas{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}.editorial{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:48px;gap:48px;padding:8px 0 48px}.prose{max-width:72ch}.prose h2{font-size:28px;margin:28px 0 10px}.prose h2:first-child{margin-top:0}.prose p{margin:0 0 14px;font-size:17px;line-height:1.6}.examples{display:grid;grid-gap:8px;gap:8px;list-style:none;padding:0;margin:0 0 14px}.examples a{display:flex;gap:12px;justify-content:space-between;align-items:baseline;padding:10px 12px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-sm);text-decoration:none;flex-wrap:wrap}.examples a:hover{border-color:var(--ink)}.examples code{font-size:15px;font-weight:600;white-space:pre-wrap}.examples span{color:var(--ink-2);font-size:14px}.faq details{border-bottom:1px solid var(--rule);padding:12px 0}.faq summary{cursor:pointer;font-weight:600;font-size:17px}.faq p{margin:8px 0 0}.aside-links h2{font-size:22px;margin-bottom:8px}.aside-links ul{list-style:none;padding:0;margin:0 0 24px}.aside-links li a{display:block;padding:8px 0;border-bottom:1px solid var(--rule);text-decoration:none}.aside-links li a:hover{color:var(--ink);text-decoration:underline}.ad-slot{min-height:280px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--rule);border-radius:var(--r-sm);color:var(--ink-2);font-size:12px;margin:16px 0}.site-footer{border-top:1px solid var(--rule);background:var(--surface);padding:28px 0 40px;font-size:14px;color:var(--ink-2)}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;grid-gap:24px;gap:24px}.foot-grid h2{font-size:17px;color:var(--ink);margin-bottom:8px}.foot-grid ul{list-style:none;padding:0;margin:0}.foot-grid li{margin:4px 0}.page-doc{max-width:72ch;padding:24px 0 64px}.page-doc h1{font-size:40px;margin-bottom:12px}.page-doc h2{font-size:26px;margin:28px 0 8px}.page-doc li,.page-doc p{font-size:17px;line-height:1.6}@media (max-width:1199px){.ws{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"bar bar" "main side" "rail side"}.editorial{grid-template-columns:minmax(0,1fr);gap:16px}}@media (max-width:900px){:root{--gutter:16px}.ws{grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "main" "side" "rail"}.exprbar-row{grid-template-columns:1fr 1fr}.exprbar-row .expr-col{grid-column:1/-1;order:-1}.cmp-row,.foot-grid{grid-template-columns:1fr 1fr}.cmp-row .cmp-expr{grid-column:1/-1}}@media (max-width:767px){.hero h1{font-size:30px}.hero{padding-top:14px}.hero p.lede{font-size:16px}.expr-input{font-size:20px}.exprbar .explain{order:2;border-radius:0;margin-top:10px}.exprbar .ribbon{order:3}.exprbar .bar-actions{order:4;flex-wrap:nowrap;overflow-x:auto}.exprbar .bar-actions .btn{min-height:40px}.ribbon{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.cell{border-bottom:1px solid var(--rule)}.explain .sentence{font-size:21px}.tab{font-size:16px;padding:10px 10px 8px}.tabpanel{padding:12px}.split2{grid-template-columns:1fr}.btn,.chip{min-height:44px}.checks li{grid-template-columns:24px 1fr}.checks li>:last-child{grid-column:2}.tt .time{font-size:19px}.status-line{margin-left:0;width:100%}}@media (max-width:480px){.site-header .wrap{flex-wrap:wrap;gap:6px 12px;padding-top:8px}.site-nav{order:3;flex-basis:100%;padding-bottom:6px}.exprbar-row,.foot-grid{grid-template-columns:1fr}.weekgrid{grid-template-columns:32px repeat(24,minmax(6px,1fr))}.cmp-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){.cell:after{transition:background-color .12s ease}}@media print{.ad-slot,.bar-actions,.editorial,.hero .crumbs,.no-print,.site-footer,.site-header,.tabs,.ws-rail,.ws-side{display:none!important}body{background:#fff;color:#000}.ws{display:block}.panel{box-shadow:none;border:0}.tt-scroll{max-height:none;overflow:visible;border:0}.print-only{display:block!important}}.print-only{display:none}