@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap";@layer components;@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-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-semibold:600;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-font-family:"DM Sans", sans-serif;--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,ui-sans-serif, system-ui, 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{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 utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.static{position:static}.m-0{margin:0}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-20{height:calc(var(--spacing) * 20)}.w-full{width:100%}.min-w-0{min-width:0}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.rounded-lg{border-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.bg-muted{background-color:hsl(var(--muted))}.p-0{padding:0}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.text-destructive{color:hsl(var(--destructive))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-success{color:hsl(var(--success))}}:root{--background:36 35% 97%;--foreground:28 19% 22%;--card:40 40% 99%;--card-foreground:28 19% 22%;--popover:40 40% 99%;--popover-foreground:28 19% 22%;--primary:14 27% 40%;--primary-foreground:35 50% 98%;--secondary:25 37% 93%;--secondary-foreground:18 23% 34%;--muted:32 27% 94%;--muted-foreground:25 10% 43%;--accent:17 38% 92%;--accent-foreground:14 27% 36%;--destructive:0 50% 42%;--destructive-foreground:35 50% 98%;--success:149 22% 32%;--success-foreground:40 40% 99%;--warning:30 46% 33%;--warning-foreground:40 40% 99%;--info:174 22% 34%;--info-foreground:40 40% 99%;--border:30 22% 88%;--input:28 22% 84%;--ring:14 27% 40%;--rose:15 37% 89%;--rose-foreground:15 25% 37%;--sage:118 16% 92%;--sage-foreground:149 22% 32%;--sand:37 46% 91%;--sand-foreground:30 46% 33%;--hero:27 43% 92%;--hero-foreground:26 24% 28%;--overlay:28 19% 15%;--overlay-foreground:35 50% 98%;--radius:.875rem;--shadow-sm:0 2px 5px hsl(var(--foreground) / .025);--shadow-md:0 6px 18px hsl(var(--foreground) / .07);--shadow-lg:0 18px 60px hsl(var(--foreground) / .17);--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition:.2s cubic-bezier(.4, 0, .2, 1);--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1)}.dark{--background:25 15% 12%;--foreground:32 29% 92%;--card:25 14% 16%;--card-foreground:32 29% 92%;--popover:25 14% 18%;--popover-foreground:32 29% 92%;--primary:15 34% 72%;--primary-foreground:25 20% 15%;--secondary:25 16% 23%;--secondary-foreground:30 30% 90%;--muted:25 12% 21%;--muted-foreground:28 15% 68%;--accent:15 20% 25%;--accent-foreground:15 40% 79%;--destructive:0 46% 61%;--destructive-foreground:25 15% 10%;--success:142 26% 65%;--success-foreground:25 15% 10%;--warning:36 52% 69%;--warning-foreground:25 15% 10%;--info:175 28% 65%;--info-foreground:25 15% 10%;--border:25 14% 27%;--input:25 14% 32%;--ring:15 34% 72%;--rose:15 22% 26%;--rose-foreground:15 40% 79%;--sage:135 13% 23%;--sage-foreground:142 26% 72%;--sand:36 23% 24%;--sand-foreground:36 52% 76%;--hero:23 22% 22%;--hero-foreground:28 34% 88%;--overlay:25 20% 7%;--overlay-foreground:32 29% 92%}*{box-sizing:border-box}body{background:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{text-decoration:none}:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:3px}input,textarea,select{border:1px solid hsl(var(--input));background:hsl(var(--card));width:100%;color:hsl(var(--card-foreground));border-radius:calc(var(--radius) - 2px);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:12px}input:focus,textarea:focus,select:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring) / .15)}input[aria-invalid=true]{border-color:hsl(var(--destructive))}input::placeholder,textarea::placeholder{color:hsl(var(--muted-foreground))}.field-label{margin-bottom:8px;font-size:14px;font-weight:500;display:block}.field-error{color:hsl(var(--destructive));margin-top:12px;font-size:14px}.button{border-radius:calc(var(--radius) - 4px);white-space:nowrap;min-height:40px;transition:background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:500;display:inline-flex}.button:active{transform:scale(.98)}.button:disabled{opacity:.45;pointer-events:none;cursor:not-allowed}.button-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.button-primary:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.button-secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-color:hsl(var(--border))}.button-secondary:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.button-ghost{color:hsl(var(--primary));background:0 0}.button-ghost:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.button-destructive{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.button-destructive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.icon-button{width:36px;min-height:36px;padding:8px}.card{border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--card-foreground));border-radius:var(--radius);box-shadow:var(--shadow-sm)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:5px 9px;font-size:12px;font-weight:500;line-height:16px;display:inline-flex}.badge-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge-rose{background:hsl(var(--rose));color:hsl(var(--rose-foreground))}.badge-green{background:hsl(var(--sage));color:hsl(var(--sage-foreground))}.badge-warning{background:hsl(var(--sand));color:hsl(var(--sand-foreground))}.app-layout{min-height:100vh;display:flex}.sidebar{background:hsl(var(--card));width:248px;color:hsl(var(--card-foreground));border-right:1px solid hsl(var(--border));z-index:30;flex-direction:column;padding:36px 20px 20px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{color:hsl(var(--primary));align-items:center;gap:8px;margin:0 8px 52px;display:flex}.brand>span{letter-spacing:-1px;font-family:Manrope,sans-serif;font-size:22px;font-weight:800;line-height:1.2}.brand-light{font-weight:500}.brand small{letter-spacing:1.5px;color:hsl(var(--muted-foreground));margin-top:8px;font-family:DM Sans,sans-serif;font-size:10px;font-weight:500;display:block}.nav-caption{letter-spacing:1.8px;color:hsl(var(--muted-foreground));margin:0 16px 16px;font-size:12px;font-weight:500}.desktop-nav{gap:8px;display:grid}.nav-item{border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));transition:background var(--transition-fast);align-items:center;gap:12px;padding:14px 16px;font-size:14px;font-weight:500;display:flex}.nav-item:hover{background:hsl(var(--muted))}.nav-item.active{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.nav-chevron{visibility:hidden;margin-left:auto}.active .nav-chevron{visibility:visible}.sidebar-bottom{margin-top:auto;padding-top:56px}.studio-note{background:hsl(var(--background));color:hsl(var(--foreground));border-radius:var(--radius);text-align:center;border:1px solid hsl(var(--border));margin:0 8px 28px;padding:28px 16px}.studio-note>svg{width:32px;height:32px;color:hsl(var(--primary));opacity:.65;margin:auto}.studio-note p{margin:12px 0;font-family:Playfair Display,serif;font-size:20px;line-height:1.55}.studio-note em{color:hsl(var(--primary))}.studio-note>span{color:hsl(var(--muted-foreground));font-size:12px}.admin-link{border-top:1px solid hsl(var(--border));border-radius:0;margin-top:24px;padding-top:24px;font-size:13px}.admin-link>svg:last-child{margin-left:auto}.sidebar-foot{text-align:center;color:hsl(var(--muted-foreground));padding-top:24px;font-size:12px}.main-shell{flex:1;min-width:0;margin-left:248px}.topbar{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));height:80px;color:hsl(var(--card-foreground));justify-content:space-between;align-items:center;gap:16px;padding:0 40px;display:flex}.breadcrumb,.desktop-breadcrumb{align-items:center;gap:12px;font-size:13px;display:flex}.desktop-breadcrumb{color:hsl(var(--muted-foreground))}.header-actions{align-items:center;gap:16px;display:flex}.header-date{color:hsl(var(--muted-foreground));font-size:12px}.header-login{min-height:36px;padding:8px 12px;font-size:12px}.mobile-brand,.mobile-admin{display:none}.page-content{max-width:1360px;margin:0 auto;padding:24px 40px 40px}.demo-banner{color:hsl(var(--muted-foreground));justify-content:space-between;align-items:center;gap:8px;margin-bottom:24px;font-size:12px;display:flex}.demo-banner>span{align-items:center;gap:6px;display:flex}.demo-banner i{background:hsl(var(--primary));opacity:.55;border-radius:50%;width:6px;height:6px}.demo-banner .button{min-height:24px;color:hsl(var(--muted-foreground));padding:4px 8px;font-size:12px}.page-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.eyebrow{letter-spacing:1.8px;color:hsl(var(--muted-foreground));margin-bottom:8px;font-size:12px;font-weight:500}.page-heading h1{letter-spacing:-.9px;margin:0 0 8px;font-family:Manrope,sans-serif;font-size:28px;font-weight:600;line-height:1.4}.page-heading p{color:hsl(var(--muted-foreground));max-width:660px;margin:0;font-size:13px;line-height:1.7}.welcome-tag{color:hsl(var(--primary));white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex}.hero-card{background:hsl(var(--hero));color:hsl(var(--hero-foreground));border-radius:calc(var(--radius) + 4px);grid-template-columns:1.05fr 1fr;min-height:300px;display:grid;overflow:hidden}.hero-copy{padding:36px 32px;position:relative}.hero-eyebrow{letter-spacing:1.6px;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;font-weight:500;display:flex}.hero-eyebrow>span{background:hsl(var(--primary));width:16px;height:1px}.hero-copy h2{letter-spacing:-.8px;margin:0 0 12px;font-family:Playfair Display,serif;font-size:32px;font-weight:500;line-height:1.4}.hero-copy h2 em{color:hsl(var(--primary));font-weight:500}.hero-copy>p{color:hsl(var(--hero-foreground) / .8);margin:0 0 20px;font-size:13px;line-height:1.8}.hero-copy .button{font-size:12px}.hero-caption{color:hsl(var(--hero-foreground) / .75);align-items:center;gap:8px;margin-top:24px;font-size:12px;display:flex}.little-line{background:hsl(var(--primary) / .5);width:20px;height:1px}.hero-image{background:hsl(var(--rose));color:hsl(var(--rose-foreground));min-height:300px;position:relative}.hero-image>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-image:after{content:"";background:linear-gradient(90deg, hsl(var(--hero) / .15), transparent 40%);pointer-events:none;position:absolute;inset:0}.hero-image-label{z-index:1;border:1px solid hsl(var(--card) / .7);background:hsl(var(--card) / .88);color:hsl(var(--card-foreground));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:calc(var(--radius) - 2px);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 16px;font-size:12px;font-weight:500;display:flex;position:absolute;bottom:24px;right:24px}.hero-image-label small{color:hsl(var(--muted-foreground));margin-top:4px;font-size:12px;font-weight:400;display:block}.label-icon{color:hsl(var(--primary));background:hsl(var(--accent));border-radius:50%;place-items:center;width:32px;height:32px;display:grid}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0;display:grid}.stat-card{align-items:flex-start;gap:12px;padding:20px;display:flex;position:relative}.stat-icon{border-radius:calc(var(--radius) - 2px);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.stat-icon.rose{background:hsl(var(--rose) / .55);color:hsl(var(--rose-foreground))}.stat-icon.green{background:hsl(var(--sage));color:hsl(var(--sage-foreground))}.stat-icon.sand{background:hsl(var(--sand));color:hsl(var(--sand-foreground))}.stat-card>div{min-width:0}.stat-card p{color:hsl(var(--muted-foreground));margin:0 0 6px;font-size:12px}.stat-card strong{letter-spacing:-.6px;font-family:Manrope,sans-serif;font-size:28px;font-weight:600;line-height:1.3;display:block}.stat-card strong small{color:hsl(var(--muted-foreground));letter-spacing:0;font-family:DM Sans,sans-serif;font-size:12px;font-weight:400}.stat-card .stat-date{letter-spacing:-.3px;font-family:DM Sans,sans-serif;font-size:17px;line-height:1.6}.stat-card>div>span{color:hsl(var(--muted-foreground));margin-top:6px;font-size:12px;display:block}.stat-card>a{color:hsl(var(--muted-foreground));position:absolute;top:16px;right:16px}.dashboard-middle{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px;display:grid}.package-summary,.next-class{padding:24px}.section-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.section-top h2,.section-top>h2{letter-spacing:-.3px;margin:0;font-family:Manrope,sans-serif;font-size:15px;font-weight:600}.section-top svg{color:hsl(var(--primary))}.package-main{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.package-main h3{letter-spacing:-.4px;margin:0 0 4px;font-family:Manrope,sans-serif;font-size:20px;font-weight:600}.package-main p{color:hsl(var(--muted-foreground));margin:0;font-size:12px}.package-symbol{color:hsl(var(--primary) / .45);margin-right:4px}.remaining-number{margin-right:4px;font-family:Manrope,sans-serif;font-size:30px;font-weight:600}.session-progress{gap:6px;margin:12px 0 20px;display:flex}.session-progress>span{border-radius:calc(var(--radius) - 4px);background:hsl(var(--rose));flex:1;height:8px}.session-progress>span.used{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.session-progress svg{display:none}.package-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));justify-content:space-between;align-items:center;gap:8px;padding-top:16px;font-size:12px;display:flex}.package-footer>a{color:hsl(var(--primary));align-items:center;gap:4px;font-weight:500;display:flex}.next-class .section-top{margin-bottom:32px}.next-class-body{align-items:center;gap:20px;margin-bottom:32px;display:flex}.date-tile{background:hsl(var(--accent));width:64px;min-height:80px;color:hsl(var(--accent-foreground));border-radius:calc(var(--radius) - 2px);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;display:flex}.date-tile>strong{font-family:Manrope,sans-serif;font-size:28px;font-weight:600}.date-tile>span{font-size:12px}.next-class-body h3{letter-spacing:-.4px;margin:10px 0 4px;font-family:Manrope,sans-serif;font-size:19px;font-weight:600}.next-class-body p{color:hsl(var(--muted-foreground));margin:0 0 8px;font-size:12px}.inline-icon{color:hsl(var(--muted-foreground));align-items:center;gap:6px;font-size:12px;display:inline-flex}.next-class-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));justify-content:space-between;align-items:center;gap:8px;padding-top:16px;font-size:12px;display:flex}.next-class-footer>a{color:hsl(var(--primary));align-items:center;gap:4px;font-weight:500;display:flex}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.section-heading h2{letter-spacing:-.5px;margin:0 0 4px;font-family:Manrope,sans-serif;font-size:20px;font-weight:600}.section-heading p{color:hsl(var(--muted-foreground));margin:0;font-size:12px}.section-heading>a{color:hsl(var(--primary));white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.lesson-card{transition:box-shadow var(--transition), transform var(--transition);overflow:hidden}.lesson-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.lesson-image{background:hsl(var(--muted));height:152px;position:relative}.lesson-image>img{object-fit:cover;width:100%;height:100%}.lesson-image>.badge{box-shadow:var(--shadow-sm);font-size:12px;position:absolute;top:12px;left:12px}.image-time{color:hsl(var(--card-foreground));background:hsl(var(--card) / .9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:calc(var(--radius) - 6px);padding:4px 8px;font-size:13px;font-weight:500;position:absolute;bottom:12px;left:12px}.lesson-body{padding:16px 16px 4px}.lesson-body h3{letter-spacing:-.3px;margin:0 0 8px;font-family:Manrope,sans-serif;font-size:15px;font-weight:600}.lesson-meta{color:hsl(var(--muted-foreground));align-items:center;gap:16px;font-size:12px;display:flex}.lesson-meta>span{align-items:center;gap:4px;display:flex}.lesson-bottom{border-top:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:4px;margin-top:16px;padding-top:4px;display:flex}.lesson-bottom>span{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.lesson-bottom>span>i{background:currentColor;border-radius:50%;width:5px;height:5px}.lesson-bottom .button{min-height:36px;padding:8px 0 8px 8px;font-size:12px}.schedule-note{color:hsl(var(--muted-foreground));align-items:center;gap:6px;margin-top:20px;font-size:12px;display:flex}.status-dot{background:hsl(var(--success));border-radius:50%;width:5px;height:5px}.page-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));justify-content:space-between;gap:16px;margin:0 40px;padding:20px 0;font-size:12px;display:flex}.bottom-nav{display:none}.schedule-controls{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--card-foreground));margin-bottom:28px;padding:24px}.day-picker{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;display:grid}.day-picker .button{color:hsl(var(--muted-foreground));border:1px solid hsl(var(--border));flex-direction:column;gap:4px;min-height:92px;position:relative}.day-picker .button>strong{font-size:23px;font-weight:600}.day-picker .button>span,.day-picker .button>small{font-size:12px}.day-picker .selected{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.schedule-filter{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.schedule-filter h2{letter-spacing:-.4px;margin:0 0 4px;font-family:Manrope,sans-serif;font-size:20px;font-weight:600}.schedule-filter p{color:hsl(var(--muted-foreground));margin:0;font-size:12px}.segmented{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--muted));color:hsl(var(--muted-foreground));align-items:center;gap:4px;max-width:100%;padding:4px;display:inline-flex}.segmented>svg{margin:0 8px}.segmented .button{min-height:32px;color:hsl(var(--muted-foreground));padding:6px 12px;font-size:12px}.segmented .selected{background:hsl(var(--card));color:hsl(var(--primary));box-shadow:var(--shadow-sm)}.quiet-note{background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);padding:16px;font-size:12px;line-height:1.8}.package-summary>.quiet-note{margin-top:24px}.reservation-tabs{margin-bottom:24px}.reservation-list{gap:12px;display:grid}.reservation-row{align-items:center;gap:20px;padding:20px 24px;display:flex}.reservation-date{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-radius:calc(var(--radius) - 2px);flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.reservation-info{flex:1}.reservation-info h2{margin:0 0 8px;font-family:Manrope,sans-serif;font-size:15px;font-weight:600}.reservation-info>div{color:hsl(var(--muted-foreground));flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.account-prompt{border:1px solid hsl(var(--border));border-radius:var(--radius);justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:20px;font-size:13px;display:flex}.account-prompt>a{color:hsl(var(--primary));white-space:nowrap;font-weight:500}.membership-grid{grid-template-columns:1.4fr 1fr;gap:24px;margin-bottom:36px;display:grid}.session-overview{padding:24px}.session-overview h2{margin:0;font-family:Manrope,sans-serif;font-size:15px;font-weight:600}.session-ring{background:conic-gradient(hsl(var(--primary)) var(--progress), hsl(var(--rose)) 0deg);border-radius:50%;width:160px;height:160px;margin:24px auto;padding:12px;transform:rotate(-90deg)}.session-ring>div{background:hsl(var(--card));width:100%;height:100%;color:hsl(var(--card-foreground));border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;transform:rotate(90deg)}.session-ring strong{font-family:Manrope,sans-serif;font-size:40px;font-weight:600}.session-ring span{color:hsl(var(--muted-foreground));font-size:12px}.session-legend{justify-content:center;gap:24px;display:flex}.session-legend>span{color:hsl(var(--muted-foreground));align-items:center;gap:6px;font-size:12px;display:flex}.session-legend strong{color:hsl(var(--foreground));margin-left:4px}.session-legend i{background:hsl(var(--rose));border-radius:50%;width:8px;height:8px}.session-legend .used{background:hsl(var(--primary))}.package-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.catalog-card{padding:24px 20px;position:relative}.catalog-card .badge{font-size:12px;position:absolute;top:24px;right:12px}.catalog-card h3{letter-spacing:-.4px;margin:20px 0 8px;font-family:Manrope,sans-serif;font-size:17px;font-weight:600}.catalog-card>p{color:hsl(var(--muted-foreground));min-height:40px;margin:0 0 20px;font-size:12px;line-height:1.7}.catalog-card.current{border-color:hsl(var(--primary) / .45);background:hsl(var(--accent) / .3)}.catalog-details{gap:12px;font-size:12px;display:grid}.catalog-details>span{align-items:center;gap:6px;display:flex}.catalog-details svg{color:hsl(var(--primary))}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:36px 16px;display:flex}.empty-icon{background:hsl(var(--muted));width:52px;height:52px;color:hsl(var(--primary));border-radius:50%;place-items:center;display:grid}.empty-state h3{margin:0;font-size:18px;font-weight:600}.empty-state>p{max-width:400px;color:hsl(var(--muted-foreground));margin:0;font-size:13px;line-height:1.8}.dialog-overlay{background:hsl(var(--overlay) / .45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;animation:fade-in var(--transition);position:fixed;inset:0}.dialog-content{background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);width:calc(100% - 32px);max-width:480px;max-height:90dvh;box-shadow:var(--shadow-lg);z-index:101;animation:fade-in var(--transition);padding:28px;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dialog-title{letter-spacing:-.5px;margin:0;font-family:Manrope,sans-serif;font-size:22px;font-weight:600}.dialog-description{color:hsl(var(--muted-foreground));margin:12px 0 24px;font-size:13px;line-height:1.8}.dialog-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:24px;display:flex}.booking-preview{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-radius:calc(var(--radius) - 2px);margin-bottom:24px;padding:20px}.booking-preview h3{margin:0 0 12px;font-size:17px;font-weight:600}.booking-preview span{align-items:center;gap:6px;font-size:12px;display:flex}.toast{z-index:120;max-width:calc(100% - 32px);box-shadow:var(--shadow-lg);background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);animation:fade-in var(--transition);align-items:center;gap:12px;padding:16px 12px 16px 20px;font-size:13px;display:flex;position:fixed;bottom:24px;right:24px}.toast>svg{color:hsl(var(--success));flex-shrink:0}.toast-error>svg{color:hsl(var(--destructive))}.error-banner{border:1px solid hsl(var(--destructive) / .2);background:hsl(var(--destructive) / .06);color:hsl(var(--destructive));border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:16px;padding:12px;font-size:12px;display:flex}.error-banner>span{flex:1}.error-banner .button{padding:6px 8px;font-size:12px}.auth-layout{grid-template-columns:1fr 1fr;align-items:start;gap:64px;max-width:960px;padding-top:12px;display:grid}.auth-card{padding:32px}.auth-card h2{margin:0 0 12px;font-family:Manrope,sans-serif;font-size:22px;font-weight:600}.auth-note{color:hsl(var(--muted-foreground));margin:24px 0 0;font-size:12px;line-height:1.8}.auth-aside{padding-top:40px}.auth-aside h2{margin:16px 0 24px;font-family:Playfair Display,serif;font-size:32px;font-weight:500;line-height:1.5}.auth-aside em{color:hsl(var(--primary))}.auth-aside ul{gap:20px;padding:0;list-style:none;display:grid}.auth-aside li{color:hsl(var(--muted-foreground));align-items:center;gap:12px;font-size:14px;display:flex}.auth-aside svg{color:hsl(var(--primary))}.profile-account{color:hsl(var(--muted-foreground));overflow-wrap:anywhere;margin:12px 0;font-size:12px}.signed-in{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.signed-in>svg{color:hsl(var(--success))}.signed-in>p{color:hsl(var(--muted-foreground));font-size:13px;line-height:1.8}.admin-access{align-items:center;gap:20px;margin-bottom:24px;padding:24px;display:flex}.admin-access>div{flex:1}.admin-access h2{margin:0 0 8px;font-size:17px;font-weight:600}.admin-access p{color:hsl(var(--muted-foreground));margin:0;font-size:12px;line-height:1.8}.admin-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:24px 0;display:flex}.search-field{width:260px;position:relative}.search-field>svg{color:hsl(var(--muted-foreground));position:absolute;top:12px;left:12px}.search-field>input{padding:10px 12px 10px 36px;font-size:12px}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%}th{background:hsl(var(--muted));color:hsl(var(--muted-foreground));text-align:left;padding:16px 20px;font-size:12px;font-weight:500}td{border-top:1px solid hsl(var(--border));padding:16px 20px;font-size:12px}tr:hover td{background:hsl(var(--muted) / .5)}.numeric{text-align:right}.member-cell{align-items:center;gap:12px;display:flex}.member-avatar{background:hsl(var(--accent));width:36px;height:36px;color:hsl(var(--accent-foreground));border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;display:grid}.member-cell strong{font-size:13px;font-weight:500}.member-cell small{color:hsl(var(--muted-foreground));margin-top:4px;font-size:12px;display:block}td .button{min-height:32px;padding:6px 10px;font-size:12px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (width>=1280px){.hero-card{min-height:320px}.hero-copy{padding:36px 40px}.hero-copy h2{font-size:36px}.lesson-image{height:168px}}@media (width<=1279px){.sidebar{width:220px;padding-left:16px;padding-right:16px}.main-shell{margin-left:220px}.brand>span{font-size:20px}.topbar{padding:0 24px}.page-content{padding:24px}.page-footer{margin:0 24px}.stat-card{padding:16px}.stat-card .stat-date{font-size:15px}.stat-card>div>span{font-size:12px}.stat-icon{width:36px;height:36px}.stat-card>a{top:12px;right:8px}.welcome-tag{display:none}.package-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy h2{font-size:28px}.hero-copy{padding:28px 24px}.hero-caption{font-size:12px}.next-class-body{gap:12px}.next-class-body h3{font-size:17px}.next-class-footer{flex-wrap:wrap}.lesson-bottom{flex-wrap:wrap;padding-top:8px}.lesson-bottom .button{margin-left:auto}.lesson-meta{gap:8px}}@media (width<=1023px){.sidebar{display:none}.main-shell{margin-left:0}.page-content{padding:20px 24px 100px}.topbar{height:68px;padding:0 24px}.breadcrumb>span{display:none}.mobile-brand{color:hsl(var(--primary));letter-spacing:-.7px;font-family:Manrope,sans-serif;font-size:20px;font-weight:700;display:block}.mobile-admin{color:hsl(var(--primary));place-items:center;display:grid}.header-date{display:none}.header-actions{gap:12px}.bottom-nav{background:hsl(var(--card) / .97);color:hsl(var(--card-foreground));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid hsl(var(--border));z-index:50;padding:8px 12px calc(8px + env(safe-area-inset-bottom));grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:48px;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.bottom-nav a.active{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.page-footer{display:none}.toast{bottom:calc(84px + env(safe-area-inset-bottom))}.lesson-bottom{flex-wrap:nowrap}.hero-card{min-height:300px}.hero-copy h2{font-size:32px}.hero-copy{padding:32px}.stat-card .stat-date{font-size:17px}.demo-banner{margin-bottom:20px}}@media (width<=767px){.page-content{padding:16px 16px 100px}.topbar{gap:8px;padding:0 16px}.mobile-brand{font-size:19px}.header-actions{gap:4px}.header-login{padding:8px 10px;font-size:12px}.header-login svg{display:none}.demo-banner{align-items:flex-start;gap:4px;font-size:12px}.demo-explanation{display:none}.demo-banner .button{font-size:12px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:24px}.page-heading h1{font-size:25px;line-height:1.4}.page-heading p{font-size:12px;line-height:1.8}.eyebrow{letter-spacing:1.3px;font-size:12px}.page-heading>.button{padding:8px 10px;font-size:12px}.hero-card{grid-template-columns:1fr}.hero-copy{padding:28px 24px}.hero-copy h2{font-size:30px}.hero-copy>p{font-size:13px}.hero-image{min-height:180px}.hero-image-label{padding:10px 12px;bottom:16px;right:16px}.hero-caption{margin-top:20px;font-size:12px}.stats-grid{grid-template-columns:1fr;gap:12px;margin:20px 0}.stat-card{align-items:center;gap:16px;padding:16px}.stat-icon{width:44px;height:44px}.stat-card strong{font-size:26px}.stat-card>div>span{font-size:12px}.stat-card .stat-date{font-size:18px}.stat-card>a{top:20px;right:16px}.dashboard-middle{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.package-summary,.next-class{padding:20px}.next-class-footer{flex-wrap:nowrap}.next-class-body{gap:20px}.section-heading h2{font-size:20px}.section-heading p{font-size:12px;line-height:1.7}.section-heading>a{gap:4px;font-size:12px}.lesson-grid{grid-template-columns:1fr;gap:16px}.lesson-image{height:180px}.lesson-body{padding:20px 20px 8px}.lesson-body h3{font-size:17px}.lesson-meta{gap:16px;font-size:12px}.lesson-bottom{padding-top:8px}.lesson-bottom>span{font-size:12px}.lesson-bottom .button{padding:8px;font-size:12px}.schedule-note{align-items:flex-start;font-size:12px;line-height:1.8}.schedule-note .status-dot{flex-shrink:0;margin-top:6px}.schedule-controls{margin-bottom:24px;padding:16px}.schedule-controls .section-top{margin-bottom:16px}.schedule-controls .section-top h2{font-size:13px}.schedule-controls .section-top>span{font-size:12px}.day-picker{gap:4px}.day-picker .button{min-height:84px;padding:8px 4px}.day-picker .button>span{font-size:12px}.day-picker .button>strong{font-size:19px}.day-picker .button>small{font-size:12px}.schedule-filter{flex-direction:column;align-items:flex-start}.schedule-filter h2{font-size:20px}.segmented{width:100%}.segmented .button{flex:1}.reservation-row{flex-wrap:wrap;gap:12px;padding:16px}.reservation-date{width:40px;height:40px}.reservation-info{flex-basis:calc(100% - 56px)}.reservation-info h2{font-size:14px}.reservation-info>div{gap:8px;font-size:12px}.reservation-row>.badge{margin-left:52px}.reservation-row>.button{margin-left:auto}.account-prompt{flex-direction:column;align-items:flex-start;padding:16px;font-size:12px}.membership-grid{grid-template-columns:1fr;gap:16px}.package-grid{grid-template-columns:1fr 1fr;gap:12px}.catalog-card{padding:20px 16px}.catalog-card h3{font-size:16px}.catalog-card>p{min-height:60px;font-size:12px}.catalog-details{font-size:12px}.catalog-card .badge{margin-top:12px;font-size:12px;position:static}.catalog-card .badge+h3{margin-top:12px}.dialog-content{padding:24px 20px}.dialog-title{font-size:20px}.dialog-actions{flex-wrap:wrap;gap:8px}.dialog-actions .button{padding:10px 12px;font-size:12px}.auth-layout{grid-template-columns:1fr;gap:24px}.auth-card{padding:24px 20px}.auth-aside{padding:12px 8px}.auth-aside h2{font-size:28px}.admin-access{flex-wrap:wrap;align-items:flex-start;gap:12px;padding:20px}.admin-access>div{flex-basis:calc(100% - 64px)}.admin-access>.button{margin-left:56px}.admin-toolbar{flex-direction:column;align-items:stretch}.search-field{width:100%}.table-scroll{margin:0}th,td{padding:12px 16px}.admin-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.admin-stats .stat-card{flex-direction:column;align-items:flex-start;gap:12px;padding:12px}.admin-stats .stat-icon{width:32px;height:32px}.admin-stats .stat-card p{font-size:12px}.admin-stats .stat-card>div>span{display:none}.error-banner{flex-wrap:wrap}.error-banner>span{flex-basis:100%}.toast{padding:12px;font-size:12px;right:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;transition-duration:0s;animation-duration:0s}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
