@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-opsz-normal-BjhtXyW2.woff2)format("woff2-variations");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:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-opsz-normal-BQn1nviT.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-normal-s-izfB6B.woff2)format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-opsz-italic-DTr-ymY4.woff2)format("woff2-variations");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:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-opsz-italic-CSPGnFdO.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-opsz-italic-kJKFiXvB.woff2)format("woff2-variations");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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-vietnamese-wght-normal-BKsN3ITN.woff2)format("woff2-variations");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:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-latin-ext-wght-normal-B5dZ8C4S.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Work Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/work-sans-latin-wght-normal-Bl-S9Xys.woff2)format("woff2-variations");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}:root{--ink:oklch(22% .02 200);--muted:oklch(45% .015 200);--subtle:oklch(58% .012 200);--pri:oklch(44% .08 180);--pri-hover:oklch(37% .075 180);--deep:oklch(26% .035 195);--deep2:oklch(21% .03 195);--accent-on-dark:oklch(80% .08 175);--text-on-dark:oklch(86% .02 190);--tint:oklch(94% .025 175);--tint-soft:oklch(97% .015 175);--line:oklch(89% .01 85);--line-soft:oklch(93% .008 85);--paper:oklch(98.5% .006 85);--paper-2:oklch(96.5% .008 85);--white:oklch(99.8% .002 85);--warm:oklch(60% .14 45);--warm-ink:oklch(50% .13 45);--warm-tint:oklch(97% .03 45);--warm-line:oklch(90% .05 45);--danger-bg:oklch(93% .05 25);--danger:oklch(50% .16 25);--neutral-bg:oklch(93% .006 200);--neutral:oklch(45% .01 200);--info-bg:oklch(94% .02 250);--info:oklch(42% .09 250);--serif:"Newsreader Variable", "Newsreader", Georgia, serif;--sans:"Work Sans Variable", "Work Sans", system-ui, sans-serif;--r-btn:8px;--r-card:14px;--shadow-float:0 18px 40px -18px oklch(25% .03 195/.35)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px}a{color:var(--pri)}a:hover{color:var(--pri-hover)}button,input,textarea,select{font-family:var(--sans);color:inherit}button{cursor:pointer}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--pri);outline-offset:2px}::placeholder{color:oklch(65% .01 200)}img{max-width:100%;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.fade-in{animation:.3s fadeIn}.container{max-width:1240px;margin:0 auto;padding:0 32px}.eyebrow{font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--pri);margin:0 0 16px}.h2{font:400 clamp(32px, 3.6vw, 46px)/1.1 var(--serif);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;margin:0}.muted{color:var(--muted)}.btn{border-radius:var(--r-btn);font:600 15px var(--sans);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:15px 26px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn-sm{padding:11px 18px;font-size:14px}.btn-xs{padding:9px 14px;font-size:13px}.btn-block{width:100%}.btn-primary{background:var(--pri);color:#fff}.btn-primary:hover{background:var(--pri-hover);color:#fff}.btn-primary:disabled,.btn-primary[aria-disabled=true]{background:var(--neutral-bg);color:var(--neutral);cursor:not-allowed}.btn-outline{background:var(--white);border-color:var(--line);color:var(--ink)}.btn-outline:hover{border-color:var(--ink);color:var(--ink)}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--tint);color:var(--ink)}.btn-danger-outline{background:var(--white);color:var(--danger);border-color:oklch(82% .08 25)}.btn-danger-outline:hover{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{color:#fff;background:oklch(44% .16 25)}.btn-soft{background:var(--tint);color:var(--pri)}.btn-soft:hover{color:var(--pri-hover);background:oklch(91% .035 175)}.btn-done{background:var(--tint-soft);color:var(--pri);border-color:oklch(85% .04 175)}.btn-dashed{color:var(--muted);background:0 0;border:1.5px dashed oklch(80% .015 200);padding:10px 16px;font-size:13px}.btn-dashed:hover{border-color:var(--pri);color:var(--pri)}.btn:disabled{cursor:not-allowed;opacity:.7}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--pri);color:#fff;width:40px;height:40px;font:500 24px var(--serif);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.brand-name{flex-direction:column;gap:1px;display:flex}.brand-name strong{font:600 17px var(--sans);letter-spacing:-.01em;color:var(--ink)}.brand-name small{font:500 11px var(--sans);color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.img-slot{background:var(--tint);width:100%;height:100%;position:relative;overflow:hidden}.img-slot-empty{text-align:center;font:500 13px/1.5 var(--sans);color:oklch(50% .04 180);background-image:repeating-linear-gradient(135deg,#0000 0 14px,oklch(90% .03 175/.5) 14px 15px);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.landing{background:var(--paper);color:var(--ink);animation:.3s fadeIn}.utility{background:var(--deep2);color:var(--text-on-dark)}.utility .container{font:500 13px var(--sans);flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:9px;padding-bottom:9px;display:flex}.utility a{color:#fff;font-weight:600;text-decoration:none}.site-header{z-index:40;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:oklch(98.5% .006 85/.92);position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;gap:24px;padding-top:16px;padding-bottom:16px;display:flex}.site-nav{align-items:center;gap:30px;display:flex}.site-nav a{font:500 14px var(--sans);color:var(--muted);text-decoration:none;transition:color .15s}.site-nav a:hover{color:var(--ink)}.header-actions{align-items:center;gap:10px;display:flex}.menu-btn{border-radius:var(--r-btn);border:1px solid var(--line);background:var(--white);justify-content:center;align-items:center;width:42px;height:42px;display:none}.menu-btn span,.menu-btn span:before,.menu-btn span:after{background:var(--ink);width:18px;height:1.5px;transition:transform .2s,background .2s;display:block;position:relative}.menu-btn span:before,.menu-btn span:after{content:"";position:absolute;left:0}.menu-btn span:before{top:-6px}.menu-btn span:after{top:6px}.menu-btn[aria-expanded=true] span{background:0 0}.menu-btn[aria-expanded=true] span:before{transform:translateY(6px)rotate(45deg)}.menu-btn[aria-expanded=true] span:after{transform:translateY(-6px)rotate(-45deg)}.mobile-menu{display:none}@media (width<=900px){.site-nav,.header-actions{display:none}.menu-btn{display:inline-flex}.mobile-menu[data-open=true]{border-top:1px solid var(--line);background:var(--paper);flex-direction:column;gap:4px;padding:8px 32px 24px;display:flex}.mobile-menu a:not(.btn){font:500 16px var(--sans);color:var(--ink);border-bottom:1px solid var(--line-soft);padding:12px 0;text-decoration:none}.mobile-menu .btn{margin-top:12px}}.hero{grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));align-items:center;gap:64px;padding-top:80px;padding-bottom:96px;display:grid}.hero h1{font:400 clamp(44px, 5.4vw, 72px)/1.02 var(--serif);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:0 0 24px}.hero h1 em{color:var(--pri);font-style:italic}.lead{font:400 18px/1.6 var(--sans);color:var(--muted);text-wrap:pretty;max-width:500px;margin:0 0 36px}.hero-ctas{flex-wrap:wrap;gap:12px;margin-bottom:48px;display:flex}.hero-ctas .btn-outline{padding:15px 24px}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:540px;padding-top:28px;display:grid}.stats p{margin:0}.stat-value{font:400 34px/1 var(--serif);color:var(--ink);margin:0 0 6px!important}.stat-label{font:500 13px/1.4 var(--sans);color:var(--muted)}.hero-media{position:relative}.hero-photo{aspect-ratio:4/5;background:var(--tint);border-radius:20px;width:100%;max-height:640px;overflow:hidden}.float-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-float);pointer-events:none;flex-direction:column;gap:4px;min-width:220px;padding:18px 20px;display:flex;position:absolute;bottom:32px;right:-12px}.float-card .k{font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--pri)}.float-card .t{font:400 22px var(--serif);color:var(--ink)}.float-card .s{font:500 13px var(--sans);color:var(--muted)}@media (width<=560px){.float-card{bottom:16px;right:12px}}.section-white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-pad{padding-top:96px;padding-bottom:96px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.section-head>div{max-width:560px}.section-head>p{font:400 16px/1.6 var(--sans);color:var(--muted);text-wrap:pretty;max-width:400px;margin:0}.grid-auto{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--min,300px)), 1fr));gap:var(--gap,28px);display:grid}.service{flex-direction:column;gap:18px;display:flex}.service-photo{aspect-ratio:4/3;border-radius:var(--r-card);background:var(--tint);overflow:hidden}.service-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:14px;display:flex}.service-head h3{font:400 26px var(--serif);color:var(--ink);margin:0}.service-head span{font:600 14px var(--sans);color:var(--pri);white-space:nowrap}.service p{font:400 15px/1.6 var(--sans);color:var(--muted);text-wrap:pretty;margin:0}.process{background:var(--deep);color:#fff}.process .eyebrow{color:var(--accent-on-dark)}.process .h2{color:#fff}.process-intro{max-width:640px;margin-bottom:56px}.process-intro p{font:400 17px/1.6 var(--sans);color:var(--text-on-dark);text-wrap:pretty;margin:20px 0 0}.process-step{border-top:1px solid oklch(100% 0 0/.22);padding-top:24px}.process-step .n{font:400 44px/1 var(--serif);color:var(--accent-on-dark);margin:0 0 20px}.process-step h3{font:600 18px var(--sans);color:#fff;margin:0 0 10px}.process-step p{font:400 15px/1.6 var(--sans);color:var(--text-on-dark);text-wrap:pretty;margin:0}.process-note{font:500 14px var(--sans);color:var(--text-on-dark);border-top:1px solid oklch(100% 0 0/.12);margin:48px 0 0;padding-top:24px}.split{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--min,440px)), 1fr));align-items:center;gap:64px;display:grid}.portal-photo{aspect-ratio:5/4;background:var(--tint);border-radius:20px;overflow:hidden}.checks{flex-direction:column;gap:24px;margin-top:36px;display:flex}.check-row{align-items:flex-start;gap:16px;display:flex}.check-dot{background:var(--tint);width:20px;height:20px;color:var(--pri);font:700 11px var(--sans);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;display:flex}.check-row h3{font:600 16px var(--sans);color:var(--ink);margin:0 0 4px}.check-row p{font:400 15px/1.55 var(--sans);color:var(--muted);margin:0}.person{flex-direction:column;gap:14px;display:flex}.person-photo{aspect-ratio:4/5;border-radius:var(--r-card);background:var(--tint);overflow:hidden}.person h3{font:400 24px var(--serif);color:var(--ink);margin:0 0 4px}.person .role{font:600 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--pri);margin:0 0 10px}.person .bio{font:400 14px/1.6 var(--sans);color:var(--muted);text-wrap:pretty;margin:0}.quotes{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:56px;margin-top:8px;display:grid}.quotes figure{flex-direction:column;gap:24px;margin:0;display:flex}.quotes blockquote{font:400 clamp(24px, 2.4vw, 32px)/1.35 var(--serif);color:var(--ink);text-wrap:pretty;margin:0}.quotes figcaption{font:500 14px var(--sans);color:var(--muted)}.quotes figcaption strong{color:var(--ink);font-weight:600}.pricing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start;gap:64px;display:grid}.price-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:22px 0;display:flex}.price-list .price-row:last-child{border-bottom:1px solid var(--line)}.price-row h3{font:600 17px var(--sans);margin:0 0 4px}.price-row p{font:400 14px var(--sans);color:var(--muted);margin:0}.price-row .price,.package .price{font:400 30px var(--serif);white-space:nowrap;color:inherit;margin:0}.price-row .price small,.package .price small{font:500 14px var(--sans);color:var(--muted)}.package{border-radius:var(--r-card);background:var(--deep);color:#fff;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding:24px;display:flex}.package .k{font:600 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-on-dark);margin:0 0 6px}.package h3{font:600 17px var(--sans);margin:0 0 4px}.package p{font:400 14px var(--sans);color:var(--text-on-dark);margin:0}.package .price small{color:var(--text-on-dark)!important}.faq-list{border-top:1px solid var(--line)}.faq-item{border-bottom:1px solid var(--line);padding:22px 0}.faq-q{text-align:left;width:100%;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;gap:20px;padding:0;display:flex}.faq-q span:first-child{font:600 17px/1.4 var(--sans)}.faq-icon{border:1px solid var(--line);width:30px;height:30px;font:500 18px var(--sans);color:var(--pri);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.faq-a{font:400 15px/1.65 var(--sans);color:var(--muted);max-width:620px;margin:14px 0 0}.cta-band{background:var(--tint);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:40px;padding:64px 56px;display:flex}.cta-band p{font:400 17px/1.6 var(--sans);color:var(--muted);margin:16px 0 0}.cta-band .aside{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.cta-band .aside span{font:500 14px var(--sans);color:var(--muted)}.cta-band .aside a{color:var(--ink);font-weight:600}@media (width<=560px){.cta-band{padding:40px 24px}}.site-footer{background:var(--deep2);color:oklch(80% .02 190);padding:64px 32px 32px}.footer-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:40px;max-width:1240px;margin:0 auto;display:grid}.footer-brand{grid-column:span 2;min-width:0}@media (width<=480px){.footer-brand{grid-column:auto}}.footer-brand .brand-mark{border-radius:9px;width:36px;height:36px;font-size:22px}.footer-brand p{font:400 14px/1.6 var(--sans);max-width:300px;margin:16px 0 0}.site-footer h4{font:600 12px var(--sans);color:#fff;text-transform:uppercase;letter-spacing:.1em;margin:0 0 14px}.site-footer .col p{font:400 14px/1.9 var(--sans);margin:0}.footer-links{font:400 14px var(--sans);flex-direction:column;gap:8px;display:flex}.footer-links a{color:oklch(80% .02 190);text-decoration:none}.footer-links a:hover{color:#fff}.copyright{max-width:1240px;font:400 13px var(--sans);color:oklch(65% .02 190);border-top:1px solid oklch(100% 0 0/.1);margin:48px auto 0;padding-top:24px}@media (width<=640px){.container{padding:0 20px}.section-pad{padding-top:72px;padding-bottom:72px}.hero{gap:48px;padding-top:48px;padding-bottom:72px}.site-footer{padding:56px 20px 28px}.mobile-menu[data-open=true]{padding-left:20px;padding-right:20px}}.auth-wrap{background:var(--paper);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;animation:.3s fadeIn;display:flex}.auth-card{background:var(--white);border:1px solid var(--line);border-radius:20px;width:100%;max-width:440px;padding:40px 36px}.auth-card .brand{margin-bottom:32px}.auth-card h1{font:400 34px/1.1 var(--serif);letter-spacing:-.01em;margin:0 0 8px}.auth-card .sub{font:400 15px var(--sans);color:var(--muted);margin:0 0 24px}.auth-foot{font:400 14px var(--sans);color:var(--muted);text-align:center;margin:20px 0 0}.auth-foot a{font-weight:600}.demo-note{font:400 12px var(--sans);color:var(--subtle);text-align:center;margin:16px 0 0}@media (width<=480px){.auth-card{padding:32px 22px}}.field{margin-bottom:16px;display:block}.label,.kv-k{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;display:block}.input,.textarea,.select{border:1px solid var(--line);border-radius:var(--r-btn);width:100%;font:400 15px var(--sans);color:var(--ink);background:var(--white);padding:12px 14px;transition:border-color .15s}.input:hover,.textarea:hover{border-color:oklch(80% .012 200)}.input:focus,.textarea:focus{border-color:var(--pri);outline-offset:0;outline:2px solid oklch(44% .08 180/.18)}.textarea{resize:vertical;min-height:80px;line-height:1.5}.input-sm,.textarea-sm{padding:10px 12px;font-size:14px}.checkbox{cursor:pointer;font:400 13px/1.5 var(--sans);color:var(--muted);align-items:flex-start;gap:10px;margin-bottom:22px;display:flex}.checkbox input{accent-color:var(--pri);flex:none;width:16px;height:16px;margin-top:3px}.row{flex-wrap:wrap;gap:12px;display:flex}.row>*{flex:160px;min-width:0}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{border-radius:var(--r-btn);border:1px solid var(--line);background:var(--white);color:var(--muted);font:600 14px var(--sans);padding:10px 18px;transition:border-color .15s,background .15s,color .15s}.chip:hover{color:var(--ink);border-color:oklch(78% .02 180)}.chip[aria-pressed=true]{border-color:var(--pri);background:var(--tint);color:var(--pri);box-shadow:inset 0 0 0 1px var(--pri)}.chip:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.chip-sm{padding:7px 12px;font-size:13px;font-weight:500}.chip-sm[aria-pressed=true]{font-weight:600}.segmented{background:var(--paper-2);border-radius:10px;gap:4px;margin-bottom:24px;padding:4px;display:flex}.segmented button{font:600 14px var(--sans);color:var(--muted);background:0 0;border:none;border-radius:7px;flex:1;padding:10px 12px}.segmented button[aria-pressed=true]{background:var(--white);color:var(--ink);box-shadow:0 1px 3px oklch(20% .02 200/.12)}.app{background:var(--paper);min-height:100vh;animation:.3s fadeIn}.app-header{z-index:30;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);background:oklch(98.5% .006 85/.94);position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1180px;min-height:68px;margin:0 auto;padding:0 32px;display:flex}.app-header-left{align-self:stretch;align-items:stretch;gap:36px;min-width:0;display:flex}.app-header .brand{align-self:center}.app-header .brand-mark{border-radius:9px;width:34px;height:34px;font-size:20px}.app-header .brand-name strong{font-size:16px}.app-tabs{scrollbar-width:none;gap:28px;display:flex;overflow-x:auto}.app-tabs::-webkit-scrollbar{display:none}.app-tab{font:600 14px var(--sans);color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;margin-bottom:-1px;padding:0 2px;text-decoration:none;transition:color .15s;display:flex}.app-tab:hover{color:var(--ink)}.app-tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--pri)}.app-user{flex:none;align-items:center;gap:12px;display:flex}.app-user .name{font:600 14px var(--sans);color:var(--ink)}.app-user button{font:500 13px var(--sans);color:var(--muted);background:0 0;border:none;padding:6px 4px}.app-user button:hover{color:var(--ink)}@media (width<=860px){.app-header-inner{flex-wrap:wrap;row-gap:8px;min-height:0;padding:12px 20px 0}.app-header-left{display:contents}.app-header .brand{order:1}.app-user{order:2}.app-user .name{display:none}.app-tabs{order:3;gap:22px;width:100%}.app-tab{padding:12px 2px}}.avatar{background:var(--tint);width:44px;height:44px;color:var(--pri);font:600 15px var(--sans);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.avatar-sm{width:34px;height:34px;font-size:13px}.avatar-lg{width:56px;height:56px;font-size:18px}.avatar-warm{background:var(--warm-tint);color:var(--warm-ink)}.page{max-width:1180px;margin:0 auto;padding:48px 32px 80px}.page-narrow{max-width:920px}.page-mid{max-width:1000px}@media (width<=640px){.page{padding:32px 20px 64px}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;display:flex}.page-title{font:400 clamp(32px, 3.4vw, 42px)/1.1 var(--serif);letter-spacing:-.01em;color:var(--ink);margin:0}.page-sub{font:400 15px/1.55 var(--sans);color:var(--muted);max-width:640px;margin:8px 0 0}.back-link{font:600 14px var(--sans);color:var(--muted);align-items:center;gap:6px;margin-bottom:24px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--ink)}.section-title{font:400 26px/1.2 var(--serif);color:var(--ink);margin:0}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);padding:24px}.card-lg{padding:28px}.card-flush{padding:0;overflow:hidden}.stack{gap:var(--gap,16px);flex-direction:column;display:flex}.between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.kv-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px 24px;display:grid}.kv-v{font:500 15px/1.5 var(--sans);color:var(--ink);white-space:pre-line;margin:0}.kv-v-light{font-weight:400}.small{font:400 13px/1.5 var(--sans);color:var(--muted);margin:0}.empty{font:400 14px/1.55 var(--sans);color:var(--subtle);margin:0}.empty-card{text-align:center;padding:48px 24px}.badge{font:600 12px var(--sans);white-space:nowrap;background:var(--neutral-bg);color:var(--neutral);border-radius:999px;padding:4px 12px;display:inline-block}.badge-confirmed,.badge-done{background:var(--tint);color:var(--pri)}.badge-cancelled{background:var(--danger-bg);color:var(--danger)}.badge-intro{background:var(--info-bg);color:var(--info)}.badge-active{background:var(--warm-tint);color:var(--warm-ink)}.badge-plain{background:var(--paper-2);color:var(--muted);padding:4px 10px}.doc-row{background:var(--paper-2);border-radius:var(--r-btn);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 12px;text-decoration:none;display:flex}.doc-row .tag{color:var(--pri);letter-spacing:.04em;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.doc-row .name{font:500 14px var(--sans);color:var(--ink);flex:170px;min-width:0}.doc-row .date{font:400 12px var(--sans);color:var(--muted);white-space:nowrap}.doc-inline{flex:none;display:inline-flex}.note-box{background:var(--tint-soft);border:1px solid oklch(92% .025 175);border-radius:10px;padding:14px 16px}.note-box .k{font:600 11px var(--sans);color:var(--pri);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px}.note-box .t{font:400 14px/1.6 var(--sans);color:var(--ink);white-space:pre-line;margin:0}.note-box.pinned{background:var(--tint);border-color:oklch(85% .04 175)}.child-card{flex-direction:column;gap:16px;display:flex}.child-card h3{font:400 24px/1.15 var(--serif);margin:0}.child-card .meta{font:400 14px var(--sans);color:var(--muted);margin:0}.child-card .facts{font:400 14px var(--sans);color:var(--muted);flex-direction:column;gap:4px;display:flex}.child-card .facts strong{color:var(--ink);font-weight:500}.child-card .actions{gap:10px;margin-top:auto;display:flex}.child-card .actions .btn{flex:1}.person-row{align-items:center;gap:14px;display:flex}.list-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 20px;padding:20px 24px;display:flex}.list-row+.list-row{border-top:1px solid var(--line-soft)}.list-row h3{font:600 16px var(--sans);color:var(--ink);margin:0 0 4px}.list-row .when{flex:1 1 0;align-items:baseline;gap:16px;min-width:min(100%,300px);display:flex}.date-block{text-align:center;flex:none;width:54px}.date-block .d{font:400 30px/1 var(--serif);color:var(--ink);display:block}.date-block .m{font:600 11px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.list-row .right{flex:none;align-items:center;gap:14px;display:flex}.price-tag{font:600 14px var(--sans);color:var(--ink);white-space:nowrap}.group-label{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:32px 0 12px}.group-label:first-child{margin-top:0}.stage-pills{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;margin-bottom:28px;display:grid}.stage-pill{text-align:left;border:1px solid var(--line);background:var(--white);color:var(--muted);border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:flex}.stage-pill .k{font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase}.stage-pill .t{font:400 20px var(--serif);color:var(--ink)}.stage-pill.done{background:var(--tint-soft);color:var(--pri);border-color:oklch(88% .035 175)}.stage-pill.current{background:var(--warm-tint);border-color:var(--warm-line);color:var(--warm-ink)}.stage-pill.next .t{color:var(--subtle)}.stage-pill[aria-pressed=true]{border-color:currentColor;box-shadow:inset 0 0 0 1px}.stage-pill.next[aria-pressed=true]{color:var(--muted)}.step-card{align-items:flex-start;gap:18px;display:flex}.step-num{background:var(--white);width:32px;height:32px;color:var(--muted);font:600 14px var(--sans);border:1px solid oklch(82% .012 200);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.step-num.done{background:var(--pri);border-color:var(--pri);color:#fff}.step-body{flex:1;min-width:0}.step-body h3{font:400 22px/1.2 var(--serif);color:var(--ink);margin:2px 0 4px}.step-body>p.desc{font:400 14px/1.5 var(--sans);color:var(--muted);text-wrap:pretty;margin:0 0 18px}.step-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.btn-step{padding:10px 18px;font-size:14px}.btn-step.todo{background:var(--warm);color:#fff}.btn-step.todo:hover{color:#fff;background:oklch(54% .14 45)}.advance{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.advance span{font:400 13px var(--sans);color:var(--muted)}.exam-day{border:1px solid var(--line-soft);background:var(--paper);border-radius:12px;flex-wrap:wrap;gap:12px;padding:14px;display:flex}.exam-day .d{flex-direction:column;flex:0 170px;gap:6px;display:flex}.exam-day .d span{font:600 13px var(--sans);color:var(--ink)}.exam-day textarea{flex:260px;width:auto}.lesson{border:1px solid var(--line-soft);border-radius:12px;flex-direction:column;gap:12px;padding:18px;display:flex}.lesson h4{font:600 15px var(--sans);color:var(--ink);margin:0}.info-strip{background:var(--warm-tint);font:500 13px var(--sans);color:var(--warm-ink);border-radius:10px;flex-wrap:wrap;gap:6px 16px;margin-bottom:20px;padding:12px 14px;display:flex}.saving{font:500 12px var(--sans);color:var(--subtle)}.table{width:100%;overflow-x:auto}.table-inner{min-width:720px}.t-row{border-bottom:1px solid var(--line-soft);font:400 14px var(--sans);color:var(--ink);grid-template-columns:minmax(0,1.3fr) 70px minmax(0,1.2fr) 60px minmax(0,2fr);align-items:center;gap:16px;padding:14px 20px;display:grid}.t-head{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}a.t-row{text-decoration:none;transition:background .15s}a.t-row:hover{background:var(--paper);color:var(--ink)}a.t-row:last-child{border-bottom:none}.stat-tile .v{font:400 38px/1 var(--serif);color:var(--ink);margin:0 0 8px}.stat-tile .l{font:500 13px var(--sans);color:var(--muted);margin:0}.avail-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;display:grid}.avail-grid h4{font:400 22px var(--serif);color:var(--ink);margin:0 0 12px}.slot{border-radius:var(--r-btn);border:1px solid var(--pri);background:var(--tint);width:100%;color:var(--pri);font:600 13px var(--sans);text-align:center;padding:10px 6px;transition:all .15s}.slot:hover{background:oklch(91% .035 175)}.slot.busy{border-color:var(--line);background:var(--paper-2);color:var(--subtle);font-weight:500;text-decoration:line-through}.slot.busy:hover{border-color:oklch(80% .012 200)}.legend{font:500 13px var(--sans);color:var(--muted);flex-wrap:wrap;gap:20px;margin-bottom:24px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:8px;display:inline-block}.modal-backdrop{z-index:50;background:oklch(20% .02 200/.45);justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:18px;width:100%;max-width:520px;max-height:90vh;padding:32px;overflow:auto;box-shadow:0 30px 80px -30px oklch(20% .03 200/.5)}.modal-wide{max-width:580px}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.modal-head h2{font:400 30px/1.1 var(--serif);color:var(--ink);margin:0}.modal-head .sub{font:400 14px var(--sans);color:var(--muted);margin:6px 0 0}.modal-close{border:1px solid var(--line);background:var(--white);width:36px;height:36px;font:400 20px/1 var(--sans);color:var(--muted);border-radius:50%;flex:none}.modal-close:hover{color:var(--ink);border-color:var(--ink)}.modal h3{font:400 21px var(--serif);color:var(--ink);margin:0 0 14px}@media (width<=560px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:18px 18px 0 0;max-height:92vh;padding:26px 20px}}.progress{background:var(--line-soft);border-radius:4px;height:4px;margin-bottom:28px}.progress div{background:var(--pri);border-radius:4px;height:100%;transition:width .25s}.step-label{font:600 12px var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px}.select-card{text-align:left;border:1px solid var(--line);background:var(--white);border-radius:12px;width:100%;padding:16px 18px;transition:border-color .15s,background .15s;display:block}.select-card:hover{border-color:oklch(78% .02 180)}.select-card[aria-pressed=true]{border-color:var(--pri);background:var(--tint-soft);box-shadow:inset 0 0 0 1px var(--pri)}.select-card .n{font:600 15px var(--sans);color:var(--ink);display:block}.select-card .r{font:600 12px var(--sans);color:var(--pri);margin:3px 0 6px;display:block}.select-card .s{font:400 13px/1.5 var(--sans);color:var(--muted)}.summary{background:var(--paper-2);border-radius:12px;margin-bottom:24px;padding:18px 20px}.summary dl{font:400 14px var(--sans);grid-template-columns:auto 1fr;gap:6px 16px;margin:0;display:grid}.summary dt{color:var(--muted)}.summary dd{color:var(--ink);margin:0;font-weight:600}.summary .total{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-top:14px;padding-top:14px;display:flex}.summary .total span{font:500 14px var(--sans);color:var(--muted)}.summary .total strong{font:400 28px var(--serif);color:var(--pri)}.wizard-nav{gap:10px;margin-top:28px;display:flex}.wizard-nav .btn-primary{margin-left:auto}.app-user-link{border-radius:999px;align-items:center;gap:12px;text-decoration:none;display:flex}.app-user-link:hover .name{color:var(--pri)}.danger-zone{border-color:oklch(88% .05 25)}.consequences{background:var(--paper-2);border-radius:12px;flex-direction:column;gap:10px;margin:0 0 22px;padding:16px 18px 16px 34px;display:flex}.consequences li{font:400 14px/1.55 var(--sans);color:var(--muted)}.consequences strong{color:var(--ink);font-weight:600}.toast{background:var(--deep2);color:#fff;font:500 14px var(--sans);z-index:60;text-align:center;border-radius:10px;max-width:calc(100vw - 32px);padding:14px 24px;animation:.25s toastIn;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px -8px oklch(20% .03 200/.4)}.toast.error{background:oklch(42% .14 25)}.legal-wrap{background:var(--paper);min-height:100vh}.legal-top{border-bottom:1px solid var(--line);z-index:30;-webkit-backdrop-filter:blur(10px);background:oklch(98.5% .006 85/.94);position:sticky;top:0}.legal-top-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;max-width:920px;margin:0 auto;padding:14px 32px;display:flex}.legal-top .brand-mark{border-radius:9px;width:34px;height:34px;font-size:20px}.legal-top nav{gap:22px;display:flex}.legal-top nav a{font:600 14px var(--sans);color:var(--muted);border-bottom:2px solid #0000;padding:6px 0;text-decoration:none}.legal-top nav a:hover{color:var(--ink)}.legal-top nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--pri)}.legal{max-width:760px;margin:0 auto;padding:56px 32px 40px}.legal h1{font:400 clamp(32px, 4.4vw, 46px)/1.1 var(--serif);letter-spacing:-.01em;text-wrap:balance;margin:0 0 12px}.legal-meta{font:500 13px var(--sans);color:var(--muted);margin:0 0 28px}.legal-intro p{font:400 17px/1.65 var(--sans);color:var(--muted);text-wrap:pretty;margin:0 0 12px}.legal section{padding-top:36px;scroll-margin-top:80px}.legal h2{font:400 26px/1.2 var(--serif);color:var(--ink);margin:0 0 14px}.legal h2 .n{color:var(--pri)}.legal h3{font:600 15px var(--sans);color:var(--ink);margin:20px 0 6px}.legal p,.legal li{font:400 15.5px/1.7 var(--sans);color:oklch(32% .018 200)}.legal p{text-wrap:pretty;margin:0 0 12px}.legal ul{flex-direction:column;gap:8px;margin:0 0 12px;padding-left:20px;display:flex}.legal strong{color:var(--ink);font-weight:600}.legal code{background:var(--paper-2);border-radius:5px;padding:2px 6px;font:500 13.5px ui-monospace,SFMono-Regular,Menlo,monospace}.legal-draft{background:var(--warm-tint);border:1px solid var(--warm-line);border-radius:10px;padding:14px 16px;color:oklch(38% .08 45)!important;margin:0 0 32px!important;font-size:14px!important}.legal-draft strong{color:var(--warm-ink)}.legal-todo{color:oklch(38% .08 80);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:oklch(95% .07 95);border-radius:4px;padding:1px 5px;font-size:.94em;font-weight:500}.legal-table{border:1px solid var(--line);background:var(--white);border-radius:12px;margin:0 0 14px;overflow-x:auto}.legal-table table{border-collapse:collapse;width:100%;min-width:620px}.legal-table th,.legal-table td{text-align:left;vertical-align:top;font:400 14px/1.55 var(--sans);border-bottom:1px solid var(--line-soft);color:oklch(32% .018 200);padding:12px 16px}.legal-table th{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--paper)}.legal-table tr:last-child td{border-bottom:none}.legal-foot{border-top:1px solid var(--line);max-width:760px;margin:0 auto;padding:24px 32px 72px}.legal-foot a{font:600 14px var(--sans);color:var(--muted);text-decoration:none}.legal-foot a:hover{color:var(--ink)}.checkbox a{font-weight:600}@media (width<=640px){.legal-top-inner,.legal,.legal-foot{padding-left:20px;padding-right:20px}.legal{padding-top:36px}}
