@import url("tokens.css");
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px var(--font-body)}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}aside{width:246px;position:fixed;height:100dvh;border-right:1px solid var(--line);padding:42px 28px;display:flex;flex-direction:column}.brand{font:36px var(--font-heading);letter-spacing:-1.8px;white-space:nowrap}.brand span{display:block;font:9px var(--font-body);letter-spacing:2px;margin-top:9px}nav{display:grid;gap:10px;margin-top:68px}nav button{border:0;background:none;text-align:left;padding:15px 16px;border-radius:10px;display:flex;gap:14px;align-items:center;font-size:14px}nav button.active{background:var(--green);color:var(--white)}nav button:hover:not(.active){background:var(--pale)}.nav-icon{font-size:21px;width:24px;text-align:center}.side-bottom{margin-top:auto}.side-bottom p{font:23px/1.3 var(--font-heading)}.side-bottom a{font-size:11px;border-bottom:1px solid}.side-bottom small{display:block;color:var(--muted);font-size:10px;margin-top:20px}.sun{font-size:46px;color:var(--accent)}main{margin-left:246px;padding:28px 48px;max-width:1600px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.profile{border:1px solid var(--line);border-radius:50%;height:40px;width:40px;background:transparent;font-size:12px}h1{font:46px/1.1 var(--font-heading);letter-spacing:-1.5px;margin:12px 0 16px}h2{font:31px/1.2 var(--font-heading);letter-spacing:-.6px;margin:0}h3{font-size:17px;margin:14px 0 8px}p{line-height:1.7}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1.02fr 1fr;min-height:410px;background:var(--pale);border-radius:20px;overflow:hidden}.hero-copy{padding:40px;display:flex;align-items:flex-start;flex-direction:column;justify-content:center}.hero h1{font-size:54px;max-width:390px}.hero p{max-width:310px;margin:0 0 25px;color:var(--muted);font-size:14px}.hero-image{position:relative;min-height:360px}.hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;object-position:50% 46%}.photo-caption{position:absolute;bottom:20px;left:20px;background:var(--tone-ffffffed);border-radius:12px;padding:12px 16px;font-size:12px}.photo-caption span{font-size:10px;display:block;color:var(--muted);margin-top:5px}.btn{background:var(--green);color:var(--white);border:1px solid var(--green);border-radius:9px;padding:14px 22px;font-weight:600;font-size:13px;display:inline-flex;gap:24px;align-items:center;justify-content:center}.btn:hover{background:var(--brand-hover)}.btn.secondary{background:transparent;color:var(--ink);border-color:var(--line)}.btn:disabled{opacity:.45;cursor:not-allowed}.caption{font-size:10px;color:var(--muted);margin-top:14px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:32px 0 20px;gap:20px}.text-btn{border:0;background:none;font-size:12px;text-decoration:underline;text-underline-offset:5px}.moods{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 22px}.chip{border:1px solid var(--line);background:transparent;border-radius:30px;padding:10px 16px;font-size:12px}.chip.active{background:var(--green);border-color:var(--green);color:var(--white)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{min-width:0}.card-photo{height:185px;position:relative;overflow:hidden;border-radius:13px;background:var(--tone-e2ddcf);cursor:pointer;border:0;width:100%;display:block;padding:0}.card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.card-photo:hover img{transform:scale(1.04)}.tag{position:absolute;top:12px;left:12px;background:var(--tone-fffef7e8);padding:6px 9px;border-radius:5px;font-size:10px}.play{position:absolute;bottom:13px;right:13px;display:grid;place-items:center;background:var(--tone-fffefa);width:34px;height:34px;border-radius:50%;font-size:12px}.card h3 button{border:0;padding:0;background:transparent;text-align:left;font-weight:700}.meta{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:8px}.bookmark{border:0;background:transparent;font-size:19px;color:var(--green)}.invitation{display:flex;justify-content:space-between;align-items:center;gap:25px;background:var(--invitation);padding:25px 30px;border-radius:14px;margin-top:32px}.invitation h2{font-size:25px}.invitation p{font-size:12px;margin:7px 0 0;color:var(--invitation-ink)}footer{border-top:1px solid var(--line);margin-top:40px;padding:20px 0;font-size:10px;color:var(--muted);display:flex;justify-content:space-between;gap:15px}.filters{display:flex;gap:12px;margin:25px 0;flex-wrap:wrap}input,select{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}input{flex:1;min-width:150px}.empty{padding:60px 15px;text-align:center;grid-column:1/-1}.intro{max-width:620px;margin:25px auto 50px}.question-title{font-size:38px;margin:35px 0 25px}.options{display:grid;gap:12px}.option{border:1px solid var(--line);padding:20px;text-align:left;background:var(--surface-option);border-radius:12px}.option.selected{border-color:var(--green);background:var(--pale);box-shadow:inset 0 0 0 1px var(--green)}.option span{float:right}.wizard-actions{display:flex;justify-content:space-between;margin-top:28px}.bar{height:5px;background:var(--invitation);border-radius:9px;overflow:hidden}.bar>div{background:var(--green);height:100%}.plan-row{display:flex;align-items:center;border-bottom:1px solid var(--line);padding:20px 0;gap:20px}.plan-row .num{font:28px var(--font-heading);color:var(--tone-a58a9e);width:35px}.plan-row h3{margin:0 0 5px}.plan-row .btn{margin-left:auto}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0}.stat{background:var(--pale);padding:28px;border-radius:13px}.stat b{font:45px var(--font-heading);display:block}.stat span{font-size:12px;color:var(--muted)}.price{max-width:580px;background:var(--pale);border-radius:20px;padding:35px;margin:30px auto}.price h2{font-size:36px}.price li{padding:10px 0;font-size:14px}.price .btn{width:100%;margin-top:20px}.notice{font-size:12px;padding:15px;border:1px solid var(--line);border-radius:9px;line-height:1.6;background:var(--surface)}.lesson-image{width:100%;max-height:310px;object-fit:cover;border-radius:12px}.lesson-placeholder{text-align:center;padding:24px;background:var(--pale);border-radius:12px;margin:20px 0}.lesson-placeholder h3{margin-top:0}dialog{border:0;border-radius:18px;padding:35px;max-width:650px;width:calc(100% - 30px);background:var(--bg);color:var(--ink);max-height:90dvh}dialog::backdrop{background:var(--tone-1820179c);backdrop-filter:blur(5px)}.close{position:absolute;right:12px;top:8px;font-size:26px;background:var(--bg);border:0;border-radius:50%;z-index:1;width:32px;height:32px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--green);color:var(--white);padding:14px 22px;border-radius:10px;z-index:5;display:none;font-size:13px}button:disabled{cursor:not-allowed}.progress-list{margin:25px 0}.small{font-size:12px}.quote{font:25px/1.5 var(--font-heading);max-width:500px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:30px}.about-grid img{width:100%;border-radius:15px}.home-intro{margin-bottom:26px}.home-intro h2{font-size:28px}.home-intro p{margin:5px 0 0;font-size:12px;color:var(--muted)}
@media(min-width:1600px){main{margin-right:auto}}@media(max-width:1150px){aside{width:205px;padding:35px 20px}main{margin-left:205px;padding:24px}.hero-copy{padding:28px}.hero h1{font-size:44px}.hero{min-height:360px}.card-photo{height:160px}}@media(max-width:760px){aside{position:fixed;bottom:0;width:100%;height:76px;padding:0 8px calc(env(safe-area-inset-bottom));z-index:3;border:0;border-top:1px solid var(--line);background:var(--bg)}aside .brand,aside .side-bottom{display:none}nav{display:flex;justify-content:space-around;margin:0;height:68px;gap:0}nav button{display:flex;flex-direction:column;gap:2px;padding:8px 5px;font-size:9px;border-radius:0;justify-content:center;flex:1}nav button.active{background:transparent;color:var(--green);font-weight:800;box-shadow:inset 0 3px var(--green)}.nav-icon{font-size:22px}main{margin:0;padding:18px 18px 85px}header{margin-bottom:23px}.eyebrow{font-size:8px;letter-spacing:1.4px}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:27px}.hero h1{font-size:43px;margin:15px 0}.hero p{font-size:13px;margin-bottom:20px;max-width:100%}.hero-image{height:260px;min-height:0}.hero-image img{object-position:50% 43%}.hero .caption{margin-top:10px}.grid{grid-template-columns:repeat(2,1fr);gap:20px 12px}.card-photo{height:165px}.card h3{font-size:14px;margin:12px 0 6px}.meta{font-size:10px;flex-wrap:wrap}.section-head{margin:26px 0 18px}.section-head h2{font-size:26px}.section-head .text-btn{font-size:11px}.invitation{padding:24px;align-items:flex-start;flex-direction:column;gap:18px}.invitation .btn{width:100%}.chip{padding:9px 12px;font-size:11px}h1{font-size:37px}.stats{gap:8px}.stat{padding:20px 12px}.stat b{font-size:34px}.stat span{font-size:10px}.price{padding:25px}.plan-row{gap:10px}.plan-row h3{font-size:14px}.plan-row .btn{padding:10px;font-size:11px}.about-grid{grid-template-columns:1fr}.question-title{font-size:32px}.intro{margin-top:10px}footer{font-size:9px;flex-direction:column;gap:8px}dialog{padding:30px 20px}#toast{bottom:90px;width:max-content;max-width:90%}.home-intro{margin-bottom:20px}.home-intro h2{font-size:25px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.hero-image img{object-position:50% 22%}}
/* Telegram-first layout. The browser is currently only a preview surface. */
body{background:var(--canvas)}.shell{max-width:560px;margin:auto;min-height:100dvh;background:var(--bg)}aside{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:560px;height:auto;min-height:72px;padding:0 8px max(env(safe-area-inset-bottom,0px),var(--tg-safe-bottom,0px));z-index:3;border:0;border-top:1px solid var(--line);background:var(--bg)}aside .brand,aside .side-bottom{display:none}nav{display:flex;justify-content:space-around;margin:0;height:68px;gap:0}nav button{display:flex;flex-direction:column;gap:3px;padding:8px 3px;font-size:9px;border-radius:0;justify-content:center;flex:1}nav button.active{background:transparent;color:var(--green);font-weight:800;box-shadow:inset 0 3px var(--green)}.nav-icon{font-size:22px}main{margin:0;padding:20px 22px calc(88px + var(--tg-safe-bottom,0px));padding-top:calc(20px + var(--tg-safe-top,0px))}header{margin-bottom:28px;border-bottom:1px solid var(--line);padding-bottom:20px}.app-brand{font:28px var(--font-heading);letter-spacing:-1px}.app-brand span{font:8px var(--font-body);display:block;letter-spacing:1.8px;margin-top:7px}.home-intro h1{font-size:42px;line-height:1.08;margin:16px 0 13px;letter-spacing:-1.5px}.home-intro p{font-size:13px;line-height:1.5}.home-intro em{color:var(--green)}.hero{display:block;min-height:0;border-radius:14px}.hero-image{height:250px;min-height:0}.hero-image img{object-position:50% 19%}.photo-caption{bottom:14px;left:14px;padding:10px 13px;background:var(--tone-fbfaf7e8)}.daily-plan{background:var(--pale);border:1px solid var(--border-soft);padding:21px;border-radius:14px;margin-top:17px}.daily-plan h2{font-size:25px;margin:11px 0 8px}.daily-plan p{font-size:12px;color:var(--muted);margin:0 0 17px}.daily-plan .btn{width:100%;justify-content:space-between}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.card-photo{height:160px}.card h3{font-size:14px}.meta{font-size:10px;flex-wrap:wrap}.section-head h2{font-size:27px}.moods{gap:7px}.chip{padding:9px 11px;font-size:11px}.teachers{display:flex;gap:15px;align-items:center;border-top:1px solid var(--line);padding-top:24px;margin-top:30px}.teacher-avatar{background:var(--pale);width:45px;height:45px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font:25px var(--font-heading);color:var(--green)}.teachers h3{font-size:14px;margin:0}.teachers p{font-size:11px;color:var(--muted);margin:5px 0}.teachers .text-btn{margin-left:auto}.about-grid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:20px 12px}.stat b{font-size:34px}.stat span{font-size:10px}.price{padding:25px}footer{flex-direction:column;font-size:9px}.eyebrow{font-size:9px;letter-spacing:1.6px}dialog{max-width:520px}#toast{bottom:95px}.bookmark{min-height:32px;min-width:32px}.tag{font-size:9px}@media(max-width:380px){main{padding-left:16px;padding-right:16px}.home-intro h1{font-size:37px}.hero-image{height:220px}.card-photo{height:140px}.section-head h2{font-size:25px}}
.category-0{background:var(--tone-e5dce7)}.category-1{background:var(--tone-eeded0)}.category-2{background:var(--tone-dde5df)}.category-3{background:var(--tone-dedfe9)}.cover-symbol{display:block;font:76px var(--font-heading);color:var(--tone-77567077)}.profile{overflow:hidden;padding:0}.profile img,.account-avatar img{width:100%;height:100%;object-fit:cover}.account-head{text-align:center;padding:20px 0}.account-head h1{font-size:34px;overflow-wrap:anywhere}.account-avatar{margin:0 auto;width:86px;height:86px;border-radius:50%;overflow:hidden;background:var(--pale);display:grid;place-items:center;font:29px var(--font-heading)}.account-links{display:grid;gap:12px}.account-links button,.account-links a{border:1px solid var(--line);background:var(--surface-card);display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;padding:19px 15px;border-radius:11px;font-size:14px}.account-links span{color:var(--muted);font-size:12px}.editor-link{display:block;margin-top:28px;color:var(--muted);font-size:11px}.booking{display:flex;gap:12px;align-items:center;flex-wrap:wrap;width:100%;font-size:12px}.booking span{margin-right:auto}.booking a{border:1px solid var(--border-strong);padding:11px 13px;border-radius:8px}.invitation{flex-direction:column;align-items:stretch}.instructions{padding-left:22px;line-height:1.8}.instructions li{padding:8px 0}.video-frame{position:relative;aspect-ratio:16/9;background:var(--video-bg);border-radius:12px;overflow:hidden}video{width:100%;display:block;max-height:60dvh}.video-frame video{height:100%;object-fit:contain}.video-empty{position:absolute;inset:0 0 36px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--video-ink);pointer-events:none}.video-empty>span{font-size:32px}.video-empty strong{font-size:14px}.video-empty small{font-size:11px;color:var(--video-muted)}.playback-note{padding:18px;background:var(--pale);border-radius:10px;font-size:12px}.playback-note p{margin-bottom:0;color:var(--muted)}.editor-shell{max-width:900px;background:var(--bg);min-height:100dvh;margin:auto;padding:30px 25px}.editor-toolbar{display:flex;gap:20px;flex-wrap:wrap;align-items:center;margin:25px 0}.editor-toolbar label{font-size:13px}.editor-toolbar input{min-width:0}.editor-row{padding:20px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.editor-row h3{margin-top:0}.editor-row p{font-size:12px;margin:6px 0}.row-actions{display:flex;gap:16px;align-items:center;flex-shrink:0}.editor-shell #editor-message{font-size:13px;color:var(--green)}#edit-form{display:grid;gap:18px}#edit-form>label,.form-pair label{display:grid;gap:7px;font-size:12px}#edit-form input:not([type=checkbox]),#edit-form select,#edit-form textarea{width:100%;min-width:0}textarea{font:inherit;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface);resize:vertical;color:var(--ink)}input[type=checkbox]{min-width:0;accent-color:var(--green)}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}fieldset{border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;font-size:13px;padding:15px}legend{font-size:12px}#poster-preview{max-height:180px;max-width:100%;border-radius:8px}#form-error{color:var(--error);font-size:12px;margin:0}#edit-form .caption{margin:0}#editor-video[hidden],#poster-preview[hidden]{display:none}@media(max-width:500px){.editor-row{flex-direction:column}.row-actions{justify-content:flex-end}.editor-shell{padding:22px 18px}.editor-shell h1{font-size:34px}}

/* Shared mobile controls and readable supporting text. */
html{scroll-padding-bottom:100px}body{font-size:var(--text-body)}
button,input,select,textarea,a{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.btn,.chip,.text-btn,.bookmark,.close,.profile,.booking a{min-height:var(--touch-target);min-width:var(--touch-target)}
.btn,.chip,input,select,textarea{font-size:var(--text-body)}
.btn,input,select,textarea{border-radius:var(--radius-control)}
.text-btn{display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-small)}
.bookmark{flex-shrink:0}.close{top:4px;right:4px}.profile{width:44px;height:44px}
.caption,.notice,.small,.meta,.tag,.teachers p,.daily-plan p,.photo-caption,.photo-caption span,footer,.account-links span,.editor-link,#form-error,#edit-form>label,.form-pair label,legend,.editor-row p,.editor-row .small{font-size:var(--text-small);line-height:1.55}
.eyebrow{font-size:11px;letter-spacing:.7px}.card h3{font-size:16px;line-height:1.4}.home-intro p{font-size:15px}
nav button{font-size:11px;min-width:0}nav{height:76px}.nav-icon{font-size:23px}
h1,h2,h3,.editor-row>div,.plan-row>div{min-width:0;overflow-wrap:anywhere}
.filters{gap:var(--space-3)}.filters input{flex-basis:100%;font-size:16px}.filters select{flex:1;min-width:0;font-size:16px}.filters #saved-filter{width:100%}
input:not([type=checkbox]),select,textarea{min-height:var(--touch-target)}
#edit-form input:not([type=checkbox]),#edit-form select,#edit-form textarea{font-size:16px}
fieldset label,.editor-toolbar label{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target)}
input[type=checkbox]{width:20px;height:20px;flex:none}
.btn:active:not(:disabled),.chip:active{transform:translateY(1px)}
[aria-busy=true]{cursor:progress}.btn:disabled{opacity:.6}
.load-state{grid-column:1/-1;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--pale);line-height:1.6}
.load-state p{margin:0 0 var(--space-3)}.load-state.error{border-color:var(--error)}
.result-count{font-size:var(--text-small);color:var(--muted);margin:0 0 var(--space-4)}
.empty .btn{margin-top:var(--space-4)}.editor-row{overflow-wrap:anywhere}.row-actions{flex-wrap:wrap}
#media-status{font-size:var(--text-small);color:var(--muted);margin:0}
#form-error:empty,#media-status:empty{display:none}
@media(max-width:380px){.grid{grid-template-columns:minmax(0,1fr)}.card-photo{height:190px}.form-pair{grid-template-columns:minmax(0,1fr)}.section-head{align-items:flex-start}.section-head h2{font-size:24px}nav button{font-size:10px}.plan-row{flex-wrap:wrap}.plan-row .btn{margin-left:0}}
@media(prefers-reduced-motion:reduce){.btn:active:not(:disabled),.chip:active{transform:none}}

[hidden]{display:none!important}

/* Keep keyboard focus visible inside the dialog, without an overflowing ring. */
dialog .close{top:10px;right:10px;border-radius:8px;width:44px;height:44px;padding:0;display:grid;place-items:center;line-height:1}
dialog .close svg{display:block;width:20px;height:20px;pointer-events:none}
dialog .close:focus-visible{outline:2px solid var(--focus);outline-offset:-5px}
.admin-entry{background:var(--pale);border-radius:14px;padding:20px;margin-top:24px;display:grid;gap:12px}
.admin-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.admin-row{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;align-items:center}.admin-row>div{min-width:0;overflow-wrap:anywhere}.admin-row p{margin:4px 0}.admin-search{display:flex;flex-wrap:wrap;gap:10px}.admin-search input{flex:1;min-width:160px}.admin-table{overflow:auto}.admin-table table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}
