@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.block{display:block}.hidden{display:none}.table{display:table}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.rdp-root{--rdp-accent-color:blue;--rdp-accent-background-color:#f0f0ff;--rdp-day-height:44px;--rdp-day-width:44px;--rdp-day_button-border-radius:100%;--rdp-day_button-border:2px solid transparent;--rdp-day_button-height:42px;--rdp-day_button-width:42px;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-disabled-opacity:.5;--rdp-outside-opacity:.75;--rdp-today-color:var(--rdp-accent-color);--rdp-dropdown-gap:.5rem;--rdp-months-gap:2rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2.25rem;--rdp-nav_button-width:2.25rem;--rdp-nav-height:2.75rem;--rdp-range_middle-background-color:var(--rdp-accent-background-color);--rdp-range_middle-color:inherit;--rdp-range_start-color:white;--rdp-range_start-background:linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%);--rdp-range_start-date-background-color:var(--rdp-accent-color);--rdp-range_end-background:linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%);--rdp-range_end-color:white;--rdp-range_end-date-background-color:var(--rdp-accent-color);--rdp-week_number-border-radius:100%;--rdp-week_number-border:2px solid transparent;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weeknumber-text-align:center;--rdp-weekday-opacity:.75;--rdp-weekday-padding:.5rem 0rem;--rdp-weekday-text-align:center;--rdp-gradient-direction:90deg;--rdp-animation_duration:.3s;--rdp-animation_timing:cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity:unset}.rdp-root{box-sizing:border-box;position:relative}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{cursor:pointer;font:inherit;color:inherit;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:relative}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-accent-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-size:large;font-weight:700;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{height:var(--rdp-nav-height);inset-inline-start:0;display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{height:var(--rdp-nav-height);inset-inline-end:0;justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse}.rdp-nav{height:var(--rdp-nav-height);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-size:large;font-weight:700}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}:root{--background:#fbf7ed;--surface:#fffcf6;--foreground:var(--tg-theme-text-color,#34342f);--muted:var(--tg-theme-hint-color,#77776f);--accent:#ddea48;--accent-foreground:#25251f}:root[data-telegram-theme=dark]{--background:var(--tg-theme-bg-color,#20201d);--surface:var(--tg-theme-secondary-bg-color,#292925)}*{box-sizing:border-box}html{background:var(--background)}body{background:var(--background);min-height:100dvh;color:var(--foreground);text-rendering:optimizelegibility;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-content{min-height:100dvh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.page-shell{width:min(100%,720px);min-height:calc(100dvh - 64px - env(safe-area-inset-bottom));padding:calc(24px + env(safe-area-inset-top)) 16px 32px;margin:0 auto}.page-header{margin-bottom:24px}.page-header h1,.section-card h2,.empty-card h1,.empty-card h2{color:var(--foreground);margin:0}.page-header h1{margin-top:4px;font-size:28px;line-height:1.2}.eyebrow{color:var(--muted);margin:0;font-size:14px;font-weight:600}.bottom-nav{z-index:30;height:calc(64px + env(safe-area-inset-bottom));padding:0 max(12px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(12px, env(safe-area-inset-right));border-top:1px solid var(--foreground);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.bottom-nav{border-top:1px solid color-mix(in srgb, var(--foreground) 12%, transparent)}}.bottom-nav{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.bottom-nav{background:color-mix(in srgb, var(--background) 94%, transparent)}}.bottom-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}html[data-home-role=student] .bottom-nav{grid-template-columns:1fr}html[data-home-role=student] .bottom-nav-item:not(:first-child){display:none}.bottom-nav-item{min-width:44px;min-height:64px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.bottom-nav-item[data-active]{color:var(--foreground)}.bottom-nav-item[data-active] svg{color:#91a713}.section-card,.empty-card,.loading-card{border:1px solid var(--foreground);margin-bottom:16px}@supports (color:color-mix(in lab, red, red)){.section-card,.empty-card,.loading-card{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.section-card,.empty-card,.loading-card{background:var(--surface);border-radius:18px}.section-card{padding:18px}.empty-card,.loading-card{text-align:center;padding:40px 24px}.empty-card p,.section-heading p,.inline-empty p{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.6}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{font-size:19px}.course-list{gap:8px;display:grid}.course-row{border:1px solid var(--foreground);justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:64px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.course-row{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.course-row{color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border-radius:14px;text-decoration:none}.course-row>span:first-child{gap:5px;min-width:0;display:grid}.course-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.course-status{background:var(--foreground);border-radius:999px;flex:none;padding:5px 9px}@supports (color:color-mix(in lab, red, red)){.course-status{background:color-mix(in srgb, var(--foreground) 8%, transparent)}}.course-status{color:var(--muted);font-size:12px}.course-status[data-active]{color:#277667;background:#e5f4ef}.form-stack,.field{display:grid}.form-stack{gap:14px}.field{color:var(--foreground);gap:7px;font-size:14px;font-weight:600}.field input,.field textarea{border:1px solid var(--foreground);width:100%;min-height:44px;padding:10px 12px}@supports (color:color-mix(in lab, red, red)){.field input,.field textarea{border:1px solid color-mix(in srgb, var(--foreground) 16%, transparent)}}.field input,.field textarea{background:var(--background);color:var(--foreground);border-radius:12px;outline:none;font-weight:400}.field textarea{resize:vertical}.field input:focus,.field textarea:focus{border-color:#9bb51d;box-shadow:0 0 0 3px #bfdc3438}.checkbox-field{align-items:center;gap:10px;min-height:44px;font-size:14px;display:flex}.primary-button,.secondary-button,.small-primary-button,.icon-button{cursor:pointer;border:0}.primary-button,.secondary-button{border-radius:13px;min-height:46px;font-weight:700}.primary-button,.small-primary-button{background:var(--accent);color:var(--accent-foreground)}.secondary-button{border:1px solid var(--foreground);padding:0 16px}@supports (color:color-mix(in lab, red, red)){.secondary-button{border:1px solid color-mix(in srgb, var(--foreground) 16%, transparent)}}.secondary-button{color:var(--foreground);background:0 0}.small-primary-button{white-space:nowrap;border-radius:12px;align-items:center;gap:6px;min-height:44px;padding:0 13px;font-size:14px;font-weight:700;display:inline-flex}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.55}.dialog-overlay{z-index:50;background:#14141273;animation:.15s ease-out fade-in;position:fixed;inset:0}.dialog-content{z-index:51;border:1px solid var(--foreground);width:calc(100vw - 32px);max-width:420px;max-height:80dvh;padding:20px;position:fixed;top:50%;left:50%;overflow-y:auto}@supports (color:color-mix(in lab, red, red)){.dialog-content{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent)}}.dialog-content{background:var(--surface);border-radius:20px;outline:none;animation:.16s ease-out dialog-in;transform:translate(-50%,-50%);box-shadow:0 18px 60px #14141238}.dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.dialog-title{margin:0;font-size:21px;font-weight:700}.dialog-description{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.5}.icon-button{background:var(--foreground);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.icon-button{background:color-mix(in srgb, var(--foreground) 7%, transparent)}}.icon-button{color:var(--foreground)}.icon-button svg{width:20px;height:20px}.form-error{color:#b64235;margin:0;font-size:14px}.form-error a{color:inherit;margin-left:8px;font-weight:700}.form-message{color:#277667;margin:0;font-size:14px}.inline-empty{padding:16px 4px 4px}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(8px - 50%))scale(.98)}}@media (prefers-reduced-motion:reduce){.dialog-overlay,.dialog-content{animation:none}}.schedule-page-header,.week-navigation,.exception-heading,.calendar-page-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-page-actions{flex:none;gap:6px;display:flex}.calendar-page-actions .icon-button{width:40px;height:40px}.schedule-page-header .small-primary-button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.4}.primary-link-button,.inline-button{background:var(--accent);min-height:46px;color:var(--accent-foreground);cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;margin-top:20px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.selection-note,.calendar-timezone{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.time-ranges{gap:8px;display:grid}.time-range{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) 40px;align-items:center;gap:8px;display:grid}.time-select-trigger{border:1px solid var(--foreground);justify-content:center;align-items:center;gap:8px;width:100%;min-width:0;min-height:48px;padding:8px 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.time-select-trigger{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent)}}.time-select-trigger{background:var(--background);color:var(--foreground);border-radius:12px;outline:none}.time-select-trigger:focus-visible{border-color:#91a713;box-shadow:0 0 0 3px #bfdc3438}.time-select-trigger svg{width:18px;height:18px}.time-select-content{z-index:80;width:var(--radix-select-trigger-width);max-height:min(300px, var(--radix-select-content-available-height));border:1px solid var(--foreground);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.time-select-content{border:1px solid color-mix(in srgb, var(--foreground) 14%, transparent)}}.time-select-content{background:var(--surface);border-radius:14px;box-shadow:0 14px 40px #14141233}.time-select-viewport{padding:5px}.time-select-item{min-height:40px;color:var(--foreground);font-variant-numeric:tabular-nums;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9px;outline:none;justify-content:center;align-items:center;padding:0 30px;display:flex;position:relative}.time-select-item[data-highlighted]{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){.time-select-item[data-highlighted]{background:color-mix(in srgb, var(--accent) 45%, var(--surface))}}.time-select-item[data-state=checked]{background:var(--accent);color:var(--accent-foreground);font-weight:700}.time-select-indicator{place-items:center;display:inline-grid;position:absolute;left:9px}.time-select-scroll{background:var(--surface);height:28px;color:var(--muted);place-items:center;display:grid}.mini-icon-button{color:#ad5046;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:40px;height:40px;display:inline-grid}.mini-icon-button svg{width:18px;height:18px}.mini-icon-button:active{background:#d46b5f1f}.text-button{color:#697b12;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;min-height:44px;padding:0;font-size:13px;font-weight:700;display:inline-flex}.text-button:disabled{cursor:not-allowed;opacity:.4}.summary-list{gap:14px;margin:18px 0;font-size:14px;display:grid}.summary-list>div{gap:4px;display:grid}.summary-list strong{color:var(--foreground)}.summary-list span{color:var(--muted);overflow-wrap:anywhere;line-height:1.55}.alert-overlay{z-index:60}.alert-content{z-index:61}.alert-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.share-link{overflow-wrap:anywhere;color:var(--muted);background:#ddf2f08c;border-radius:12px;padding:12px;font-size:13px}.centered-button{justify-self:center}.calendar-card{padding:16px 8px;overflow:hidden}.calendar-page-header{align-items:flex-start;margin:0 6px 14px}.calendar-page-header>div{gap:3px;display:grid}.calendar-page-header span,.calendar-page-header small{color:var(--muted);font-size:12px}.page-tabs{flex-wrap:wrap;gap:6px;margin:0 6px 14px;display:flex}.page-tabs button{border:1px solid var(--foreground);min-height:36px;padding:0 12px}@supports (color:color-mix(in lab, red, red)){.page-tabs button{border:1px solid color-mix(in srgb, var(--foreground) 14%, transparent)}}.page-tabs button{color:var(--foreground);background:0 0;border-radius:999px}.page-tabs button[data-selected]{background:var(--accent);border-color:#91a713;font-weight:700}.week-swipe-surface{touch-action:pan-y}.week-navigation{margin-bottom:12px;padding:0 4px;font-size:14px}.week-calendar{min-width:0}.week-header{grid-template-columns:42px repeat(7,minmax(0,1fr));margin-bottom:6px;display:grid}.week-header>div{border-radius:8px;justify-items:center;gap:2px;min-width:0;padding:5px 0;font-size:12px;display:grid}.week-header>div[data-exception]{background:#edf5bf}.week-header>div[data-rest]{color:var(--muted);background:#f1eee8}.week-header small{color:var(--muted);font-size:9px}.week-chart{grid-template-columns:42px minmax(0,1fr);display:grid}.time-axis{color:var(--muted);font-size:9px;position:relative}.time-axis span{position:absolute;right:5px;transform:translateY(-50%)}.week-days{border-top:1px solid var(--foreground);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}@supports (color:color-mix(in lab, red, red)){.week-days{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.week-days{border-left:1px solid var(--foreground)}@supports (color:color-mix(in lab, red, red)){.week-days{border-left:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.week-day-column{border-right:1px solid var(--foreground);min-width:0;position:relative}@supports (color:color-mix(in lab, red, red)){.week-day-column{border-right:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.week-day-column{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), var(--foreground) calc(100% - 1px))}@supports (color:color-mix(in lab, red, red)){.week-day-column{background-image:linear-gradient(to bottom, transparent calc(100% - 1px), color-mix(in srgb, var(--foreground) 9%, transparent) calc(100% - 1px))}}.week-day-column[data-rest]{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.week-day-column[data-rest]{background-color:color-mix(in srgb, var(--foreground) 4%, transparent)}}.rest-day-label{z-index:1;color:var(--muted);writing-mode:vertical-rl;font-size:9px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.calendar-block{z-index:2;border-radius:6px;min-height:18px;padding:3px;font-size:8px;line-height:1.2;position:absolute;left:2px;right:2px;overflow:hidden}.availability-block{color:#277667;background:#ddf2f0;border:1px solid #afd8d3}.availability-block[data-past]{opacity:.4}.booking-block{z-index:4;color:#705a32;text-align:left;cursor:pointer;background:#fff1d7;border:1px solid #ebd2a5;display:grid}.booking-block strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-timezone{margin-top:10px;padding-left:42px}.calendar-loading{min-height:240px;color:var(--muted);place-items:center;font-size:14px;display:grid}.flow-page{width:min(100%,720px);min-height:100dvh;padding:calc(20px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.flow-header{align-items:center;gap:14px;margin-bottom:20px;display:flex}.flow-header h1,.success-page h1{margin:2px 0 0;font-size:26px}.flow-card{padding:20px}.flow-intro{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.6}.flow-section{border:1px solid var(--foreground);min-width:0;margin-bottom:16px;padding:18px}@supports (color:color-mix(in lab, red, red)){.flow-section{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.flow-section{background:var(--surface);border-radius:18px}.flow-section-heading{align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.flow-section-heading>span{background:var(--accent);width:28px;height:28px;color:var(--accent-foreground);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:800;display:grid}.flow-section-heading h2{margin:0;font-size:18px}.flow-section-heading p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.5}.switch-row{background:#ddf2f08c;border-radius:13px;justify-content:space-between;align-items:center;gap:12px;min-height:60px;margin-top:12px;padding:10px 12px;display:flex}.switch-row>span{gap:3px;display:grid}.switch-row small{color:var(--muted);font-size:12px}.switch-row input{accent-color:#91a713;width:22px;height:22px}.date-selection-group{gap:5px;min-width:0;margin-top:14px;display:grid}.date-selection-group>strong{font-size:14px}.date-picker-button{border:1px solid var(--foreground);align-items:center;gap:10px;width:100%;min-height:50px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.date-picker-button{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent)}}.date-picker-button{background:var(--background);color:var(--foreground);text-align:left;border-radius:13px}.date-picker-button svg{color:#81960e;flex:none}.date-picker-button span{overflow-wrap:anywhere;min-width:0;line-height:1.45}.date-picker-button.compact{min-height:44px;font-size:13px}.schedule-preview{border-top:1px solid var(--foreground);margin-top:16px;padding-top:16px}@supports (color:color-mix(in lab, red, red)){.schedule-preview{border-top:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.schedule-preview-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.schedule-preview-heading span{color:var(--muted);font-size:11px}.schedule-preview .rdp-root{--rdp-accent-color:#91a713;--rdp-accent-background-color:#edf5bf;--rdp-day-height:36px;--rdp-day-width:36px;width:100%;margin:0 auto 8px}.schedule-preview .rdp-months{margin-inline:auto}.schedule-preview .rdp-month,.schedule-preview .rdp-month_grid{width:100%}.schedule-preview .rdp-weekday,.schedule-preview .rdp-day{text-align:center}.schedule-preview .rdp-preview-range .rdp-day_button{color:var(--foreground);background:#f0f6c5;border-color:#0000;border-radius:0}.schedule-preview .rdp-preview-range-start .rdp-day_button{border-radius:999px 0 0 999px}.schedule-preview .rdp-preview-range-end .rdp-day_button{border-radius:0 999px 999px 0}.schedule-preview .rdp-preview-range-start.rdp-preview-range-end .rdp-day_button{border-radius:999px}.schedule-preview .rdp-rest-day .rdp-day_button{color:#756f68;background:#eee9e1;border-color:#0000;border-radius:999px;position:relative}.schedule-preview .rdp-rest-day .rdp-day_button:after{content:"休";color:#9b9187;font-size:8px;line-height:1;position:absolute;bottom:0;right:2px}.schedule-preview .rdp-special-day .rdp-day_button{box-shadow:inset 0 -3px #d4a13d}.schedule-preview-legend,.schedule-preview-summary{color:var(--muted);flex-wrap:wrap;gap:8px 14px;font-size:11px;line-height:1.5;display:flex}.schedule-preview-legend span{align-items:center;gap:5px;display:inline-flex}.schedule-preview-legend i{background:var(--accent);border-radius:50%;width:9px;height:9px}.schedule-preview-legend i[data-kind=rest]{background:#c9c2b8}.schedule-preview-legend i[data-kind=special]{background:#d4a13d}.schedule-preview-summary{gap:2px;margin-top:8px;display:grid}.date-dialog .rdp-root{--rdp-accent-color:#91a713;--rdp-accent-background-color:#edf5bf;--rdp-day-height:42px;--rdp-day-width:42px;width:100%;margin:0 auto 18px}.date-calendar-swipe{touch-action:pan-y}.date-dialog .rdp-month,.date-dialog .rdp-month_grid{width:100%}.date-dialog .rdp-weekday,.date-dialog .rdp-day{text-align:center}.date-dialog-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.date-dialog-actions>:only-child{grid-column:1/-1}.date-dialog-actions .primary-button,.date-dialog-actions .secondary-button{width:100%}.special-rule{border:1px solid var(--foreground);gap:12px;min-width:0;margin-bottom:14px;padding:14px;display:grid}@supports (color:color-mix(in lab, red, red)){.special-rule{border:1px solid color-mix(in srgb, var(--foreground) 9%, transparent)}}.special-rule{background:#fff1d780;border-radius:15px}.add-special-button{justify-content:center;align-items:center;gap:7px;text-decoration:none;display:inline-flex}.schedule-editor-page{padding-bottom:calc(32px + env(safe-area-inset-bottom))}.sticky-submit{z-index:10;bottom:calc(12px + env(safe-area-inset-bottom));width:100%;position:sticky;box-shadow:0 8px 28px #28281c26}.success-page{text-align:center;align-content:center;justify-items:stretch;gap:14px;max-width:480px;display:grid}.success-page>svg{color:#91a713;justify-self:center}.success-page p{color:var(--muted);margin:0}.full-width-button{width:100%;margin-top:0}.student-booking-page{padding-bottom:calc(32px + env(safe-area-inset-bottom))}.student-page-header{margin-bottom:18px}.student-page-header h1{margin:4px 0 8px;font-size:28px;line-height:1.2}.student-page-header>p:last-child{color:var(--muted);margin:0;font-size:14px}.week-header>div[data-outside]{opacity:.4}.student-availability{z-index:2;text-align:left;cursor:pointer;border:1px solid #afd8d3}.student-availability:disabled{cursor:not-allowed;opacity:.35}.student-unavailable{z-index:5;color:var(--muted);pointer-events:auto;background:#ece9e3;border:1px solid #d8d4ce;place-items:center;font-size:7px;display:grid}.student-message{margin:10px 42px 0}.role-switch-row,.booking-home-row{justify-content:flex-end;display:flex}.role-switch-button{border:1px solid var(--foreground);min-height:32px;padding:0 12px}@supports (color:color-mix(in lab, red, red)){.role-switch-button{border:1px solid color-mix(in srgb, var(--foreground) 14%, transparent)}}.role-switch-button{background:var(--surface);color:var(--muted);border-radius:999px;font-size:12px;font-weight:700}.booking-home-row{margin-bottom:8px}.telegram-username{width:fit-content;color:var(--accent-strong);background:0 0;border:0;padding:0;font-size:14px;font-weight:700;text-decoration:none}.booking-fields,.booking-fields label{gap:8px;display:grid}.booking-fields{gap:16px;margin:18px 0}.booking-fields label>span{font-size:13px;font-weight:700}.booking-fields label>span small{color:var(--muted);font-weight:400}.booking-note-input{resize:vertical;border:1px solid var(--foreground);width:100%}@supports (color:color-mix(in lab, red, red)){.booking-note-input{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent)}}.booking-note-input{background:var(--surface);color:var(--foreground);border-radius:12px;padding:12px;line-height:1.5}.booking-note-input:focus{outline:2px solid var(--accent);border-color:#ab2}@supports (color:color-mix(in lab, red, red)){.booking-note-input:focus{outline:2px solid color-mix(in srgb, var(--accent) 35%, transparent)}}.character-count{color:var(--muted);justify-self:end;font-size:11px}.booking-detail-summary{margin:18px 0}.course-preview{background:#fff1d78c;border-radius:12px;gap:5px;padding:12px;display:grid}.course-preview span,.course-preview p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.success-check{color:#91a713;border:4px solid #91a713;border-radius:50%;justify-self:center;place-items:center;width:56px;height:56px;font-size:30px;font-weight:800;display:grid}.booking-success-details{background:var(--surface);border-radius:14px;gap:6px;padding:16px;display:grid}.contact-link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.booking-tabs{background:var(--foreground);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:16px;padding:4px;display:grid}@supports (color:color-mix(in lab, red, red)){.booking-tabs{background:color-mix(in srgb, var(--foreground) 7%, transparent)}}.booking-tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:11px;font-weight:700}.booking-tabs button[aria-selected=true]{background:var(--surface);color:var(--foreground);box-shadow:0 2px 10px #14141214}.booking-list{gap:12px;display:grid}.booking-card{border:1px solid var(--foreground);gap:14px;padding:16px;display:grid}@supports (color:color-mix(in lab, red, red)){.booking-card{border:1px solid color-mix(in srgb, var(--foreground) 10%, transparent)}}.booking-card{background:var(--surface);border-radius:17px}.booking-card[data-cancelled]{opacity:.7}.booking-card-heading,.booking-card-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.booking-card-heading>div,.booking-card-details{gap:4px;display:grid}.booking-card-actions-end{justify-content:flex-end}.booking-card-heading span,.booking-card-details{color:var(--muted);font-size:13px;line-height:1.5}.danger-text{color:#ad5046}.danger-button{color:#fff;background:#c75b50}@media (max-width:420px){.date-dialog .rdp-root{--rdp-day-height:36px;--rdp-day-width:36px}.flow-section{padding:14px}.week-chart{grid-template-columns:36px minmax(0,1fr)}.week-header{grid-template-columns:36px repeat(7,minmax(0,1fr))}.calendar-timezone{padding-left:36px}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
