@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-vietnamese-wght-normal.9ea1ffad.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-ext-wght-normal.df252a37.woff2) format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/fraunces-latin-wght-normal.7d78925e.woff2) format("woff2-variations");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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-cyrillic-ext-wght-normal.d1990364.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-cyrillic-wght-normal.2ffcac4f.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-greek-wght-normal.6b69666c.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-vietnamese-wght-normal.383b32a0.woff2) format("woff2-variations");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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-latin-ext-wght-normal.f5cc7610.woff2) format("woff2-variations");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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-latin-wght-normal.fedf4c92.woff2) format("woff2-variations");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{--paper:#F5F1EA;--surface:#FFFFFF;--ink:#1C1A20;--ink-2:#4A4550;--muted:#5F5A63;--faint:#6E6873;--line:#E2DCD2;--line-soft:#EEE9E1;--field:#D9D2C7;--night:#1C1A20;--night-2:#2E2A33;--night-3:#34303A;--on-night:#F5F1EA;--on-night-muted:#D8D2DB;--brand:#3D88E5;--brand-strong:#3275C9;--brand-text:#2A68B8;--brand-dark:#1F4F8E;--brand-tint:#EDF4FD;--radius:18px;--display:"Fraunces Variable",Georgia,serif;--body:"Manrope Variable",system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0}body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}a{color:var(--brand-text)}a:hover{color:var(--brand-dark)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px}h1,h2,h3{margin:0}.display,.h1{font-family:var(--display);font-weight:600;letter-spacing:-.02em}.h1{font-size:40px;line-height:1.1}.h2{font-family:var(--display);font-weight:600;font-size:22px}.h3{font-size:17px;font-weight:700}.muted{color:var(--muted)}.eyebrow,.small{font-size:13px}.eyebrow{font-weight:700;color:var(--brand-text)}.stack{flex-direction:column;gap:var(--gap,16px)}.row,.stack{display:flex}.row{align-items:center;gap:var(--gap,12px)}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grow{flex-grow:1;min-width:0}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px}@media (max-width:800px){.grid-2,.grid-3{grid-template-columns:1fr}}.shell{display:flex;min-height:100vh}.sidebar{width:248px;flex-shrink:0;background:var(--night);padding:32px 20px;flex-direction:column;gap:36px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand,.sidebar{color:var(--on-night);display:flex}.brand{align-items:center;gap:12px;padding:0 14px;text-decoration:none}.brand img{width:44px;height:44px}.brand-name{font-family:var(--display);font-size:20px;font-weight:600;line-height:1.1}.brand-sub{font-size:12px;font-weight:600;color:#B9B2BD;margin-top:4px}.nav{flex-direction:column;gap:4px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:12px;min-height:44px;padding:0 14px;border-radius:10px;color:var(--on-night-muted);text-decoration:none;font-weight:500}.nav a:hover{background:var(--night-2);color:#fff}.nav a[aria-current=page]{background:var(--night-3);color:#fff;font-weight:600}.nav-label{font-size:12px;font-weight:700;color:#8B8490;padding:14px 14px 4px}.sidebar-foot{margin-top:auto;padding:0 14px;display:flex;flex-direction:column;gap:8px;font-size:14px}.sidebar-foot button{background:none;border:0;color:var(--on-night-muted);font:inherit;padding:0;cursor:pointer;text-align:left}.sidebar-foot button:hover{color:#fff;text-decoration:underline}.main{flex-grow:1;min-width:0;padding:40px 48px 64px;display:flex;flex-direction:column;gap:24px;max-width:1200px}@media (max-width:900px){.shell{flex-direction:column}.sidebar{width:auto;height:auto;position:static;padding:16px;gap:12px}.nav{flex-direction:row;flex-wrap:wrap}.sidebar-foot{margin-top:0}.main{padding:24px 16px 48px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px}.card.tight{padding:18px 20px}.card.flush{padding:0;overflow:hidden}.card.dark{background:var(--night);border-color:var(--night);color:var(--on-night)}.card.highlight{box-shadow:inset 0 0 0 2px var(--brand);border-color:transparent}.list-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line-soft)}.list-row:first-child{border-top:0}.note{background:#FDF4E7;border:1px solid #edd3a8;color:#4A3206;border-radius:12px;padding:12px 14px;font-size:14px}.note.info{background:var(--brand-tint);border-color:#C7DCF6;color:var(--brand-dark)}.note.good{background:#E3F0E8;border-color:#BFDCC9;color:#22553A}.error{background:#FBE9E7;border:1px solid #f0c4bd;color:#8A2B1E;border-radius:12px;padding:12px 14px;font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:22px;border:0;background:var(--brand-strong);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--brand-dark);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#fff;color:var(--ink);border:1px solid #cfc7ba;font-weight:600}.btn.secondary:hover{background:var(--paper)}.btn.small{min-height:36px;padding:0 14px;font-size:13px}.btn.dashed{background:#fff;color:var(--ink);border:1px dashed #b8afa2;font-weight:600}.linkbtn{background:none;border:0;padding:4px;font:inherit;color:var(--brand-text);cursor:pointer}.linkbtn,.pill{font-weight:700}.pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:13px;font-size:12px;white-space:nowrap}.pill.neutral{background:#EFEAE2;color:var(--muted)}.pill.info{background:#E6E9F3;color:#2E3F73}.pill.warn{background:#FBEBD6;color:#7A4A08}.pill.good{background:#E3F0E8;color:#22553A}.pill.blue{background:#E4EEFB;color:var(--brand-dark)}label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}.input,select.input,textarea.input{min-height:46px;border:1px solid var(--field);border-radius:10px;padding:0 14px;font:inherit;font-size:15px;font-weight:400;background:#fff;color:var(--ink);width:100%}textarea.input{padding:12px 14px;min-height:110px;resize:vertical;line-height:1.5}.check{display:flex;align-items:flex-start;gap:10px;font-size:15px;cursor:pointer;font-weight:500}.check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--brand);flex-shrink:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.progress{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-gap:8px;gap:8px}.progress .bar{height:6px;border-radius:3px;background:#DDD6CB}.progress .bar.done{background:var(--brand)}.progress .bar.current{background:#9CC2F0}.meter{height:6px;border-radius:3px;background:var(--line-soft);overflow:hidden}.meter>div{height:100%;background:var(--brand)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;font-weight:700;color:var(--muted);padding:10px 12px}.table td,.table th{border-bottom:1px solid var(--line-soft)}.table td{padding:12px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}.file{gap:12px;padding:10px 12px;border-radius:10px;background:var(--paper);font-size:14px}.file,.file .ext{display:flex;align-items:center}.file .ext{width:40px;height:40px;border-radius:8px;background:var(--line);justify-content:center;font-size:10px;font-weight:700;color:var(--muted);flex-shrink:0}.drop{border:1.5px dashed #c9bfb0;border-radius:12px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:var(--night);color:var(--on-night);padding:48px;display:flex;flex-direction:column;justify-content:space-between}.auth-main{display:flex;align-items:center;justify-content:center;padding:32px}.auth-card{width:100%;max-width:420px}@media (max-width:800px){.auth{grid-template-columns:1fr}.auth-side{padding:24px}}.site-header{align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(20px,5vw,56px);border-bottom:1px solid var(--line);background:var(--paper)}.site-header,.site-nav{display:flex;flex-wrap:wrap}.site-nav{gap:22px}.site-nav a{font-weight:600;font-size:15px;color:var(--ink);text-decoration:none}.site-nav a:hover{color:var(--brand-text)}.site-section{padding:64px clamp(20px,5vw,56px)}.site-wrap{max-width:1200px;margin:0 auto}.site-h1{font-size:clamp(40px,6vw,64px);line-height:1.02;letter-spacing:-.03em;white-space:pre-line}.site-h1,.site-h2{font-family:var(--display);font-weight:600;margin:0}.site-h2{font-size:clamp(30px,4vw,42px);line-height:1.1;letter-spacing:-.02em}.site-lead{font-size:18px;line-height:1.6;color:var(--ink-2);margin:0}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:28px;gap:28px}@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.grid-4{grid-template-columns:1fr}}label.field>span:first-child{display:block}.site-burger{display:none;gap:8px}@media (max-width:1080px){.site-nav{display:none}.site-burger{display:inline-flex}.site-header{flex-wrap:nowrap}}@media (max-width:600px){.site-book,.site-login{display:none}.site-header .display{font-size:17px!important}}@media print{.no-print,.sidebar{display:none!important}.shell{display:block!important}.main{padding:0!important}body{background:#fff!important}.card{box-shadow:none!important;border-color:#999!important}.card,.table tr{page-break-inside:avoid;break-inside:avoid}}.sidebar .nav{overflow-y:auto;min-height:0;flex:1 1 auto}.nav-group>summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 14px;border-radius:10px;color:var(--on-night-muted);font-weight:500;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary:after{content:"▸";margin-left:auto;font-size:12px;transition:transform .15s}.nav-group[open]>summary:after{transform:rotate(90deg)}.nav-group>summary:hover{background:var(--night-2);color:#fff}.nav-group[open]>summary{color:#fff}.nav-children{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px}.nav a.nested{min-height:38px;padding-left:30px;font-size:14px}@media (max-width:900px){.nav-group{width:100%}.nav-children{flex-direction:row;flex-wrap:wrap}}