:root{--bg: #f7f6f3;--surface: #ffffff;--surface-2: #f3f1ec;--ink: #1c1b19;--ink-soft: #807a72;--ink-faint: #a8a29a;--line: #ece8e1;--line-strong: #ddd8cf;--brand: #9a7b5f;--brand-dark: #7c6149;--brand-tint: color-mix(in srgb, var(--brand) 10%, transparent);--green: #5d9b78;--amber: #c19a4e;--red: #c66f69;--violet: #8a78ad;--radius: 16px;--radius-sm: 10px;--radius-xs: 8px;--shadow-sm: 0 1px 2px rgba(28, 27, 25, .04);--shadow: 0 1px 2px rgba(28, 27, 25, .04), 0 14px 32px -16px rgba(28, 27, 25, .16);--shadow-lg: 0 24px 60px -20px rgba(28, 27, 25, .28);--font: "Pretendard Variable", Pretendard, system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-weight:650;letter-spacing:-.02em;line-height:1.25}h1{font-size:1.6rem}p{line-height:1.6}a{color:var(--brand-dark);text-underline-offset:2px}::selection{background:var(--brand-tint)}.muted{color:var(--ink-soft)}:focus-visible{outline:2px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:2px;border-radius:4px}.btn{font:inherit;font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);padding:.6rem 1.1rem;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .06s ease,box-shadow .18s ease;background:var(--surface);color:var(--ink)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--brand);color:#fff;box-shadow:0 1px 2px #7c614940}.btn--primary:hover:not(:disabled){background:var(--brand-dark)}.btn--ghost{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-faint)}.btn--danger{background:var(--surface);border-color:color-mix(in srgb,var(--red) 45%,var(--line));color:var(--red)}.btn--danger:hover:not(:disabled){background:var(--red);border-color:var(--red);color:#fff}.btn--block{width:100%}.btn--sm{padding:.4rem .75rem;font-size:.85rem;border-radius:var(--radius-xs)}.demo-login{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:var(--radius-sm);padding:1rem;margin-bottom:1.25rem}.demo-login__badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-dark);margin-bottom:.7rem}.demo-login__row{display:flex;gap:.6rem}.demo-login__row .btn{flex:1}.auth-page{min-height:100%;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(900px 500px at 85% -15%,#efe9df 0%,transparent 55%),radial-gradient(700px 500px at 0% 110%,#eef0ec 0%,transparent 55%),var(--bg)}.auth-card{width:100%;max-width:410px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:2.25rem 2rem}.auth-card--narrow{max-width:360px;text-align:center}.auth-card__brand{text-align:center;margin-bottom:1.75rem}.auth-card__brand h1{margin:.6rem 0 .3rem;font-size:1.45rem}.auth-card__logo,.navbar__logo{display:inline-grid;place-items:center;color:var(--brand)}.auth-card__logo{font-size:2.1rem}.auth-card__tagline{color:var(--ink-soft);margin:0;font-size:.92rem}.auth-card__footer{margin-top:1.5rem;font-size:.82rem;color:var(--ink-soft);text-align:center;line-height:1.6}.auth-form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--ink-soft)}.field input{font:inherit;font-weight:500;color:var(--ink);padding:.7rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.field input::placeholder{color:var(--ink-faint)}.field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.field__input-wrap{position:relative;display:flex}.field__input-wrap input{flex:1;padding-right:4rem}.field__toggle{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);border:none;background:none;padding:.25rem .4rem;font:inherit;font-size:.78rem;font-weight:600;color:var(--brand);cursor:pointer;border-radius:var(--radius-sm)}.field__toggle:hover{background:var(--brand-tint)}.auth-divider{display:flex;align-items:center;text-align:center;color:var(--ink-faint);font-size:.78rem;margin:1.4rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-divider span{padding:0 .85rem}.oauth{display:flex;flex-direction:column;gap:.55rem}.oauth__btn{display:flex;align-items:center;gap:.7rem;font:inherit;font-weight:600;font-size:.92rem;padding:.65rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .15s ease,border-color .15s ease}.oauth__btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-faint)}.oauth__btn:disabled{opacity:.55;cursor:not-allowed}.oauth__icon{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;font-size:.78rem;font-weight:800;color:#fff;flex:none}.oauth__btn--google .oauth__icon{background:#4285f4}.oauth__btn--kakao .oauth__icon{background:#fee500;color:#3c1e1e}.oauth__btn--naver .oauth__icon{background:#03c75a}.layout{min-height:100%;display:flex;flex-direction:column}.navbar{display:flex;align-items:center;gap:1.5rem;padding:.85rem 1.75rem;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.navbar__brand{display:flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:-.01em}.navbar__logo{font-size:1.35rem}.navbar__links{display:flex;gap:.2rem;margin-left:auto}.navbar__link{text-decoration:none;color:var(--ink-soft);font-weight:600;font-size:.9rem;padding:.45rem .85rem;border-radius:999px;transition:background .15s ease,color .15s ease}.navbar__link:hover{background:var(--surface-2);color:var(--ink)}.navbar__link.active{background:var(--brand-tint);color:var(--brand-dark)}.navbar__user{display:flex;align-items:center;gap:.85rem}.navbar__email{font-size:.88rem;color:var(--ink-soft);font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout__main{flex:1}.page{max-width:1080px;margin:0 auto;padding:2.5rem 1.75rem 4rem}.page__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem}.page__header h1{margin:0 0 .3rem}.empty{padding:3rem 2.5rem;text-align:center;color:var(--ink-soft);background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:1.25rem}.card__title{margin:0 0 1rem;font-size:1rem;font-weight:650}.card__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.card__header .card__title{margin:0}.section-title{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:2rem 0 .9rem}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.section-title-row .section-title{margin-bottom:.4rem}.avatar{display:grid;place-items:center;border-radius:999px;object-fit:cover;background:var(--brand);color:#fff;font-weight:700;text-transform:uppercase;overflow:hidden;flex-shrink:0}.avatar--sm{width:1.9rem;height:1.9rem;font-size:.78rem}.avatar--lg{width:4rem;height:4rem;font-size:1.4rem}.navbar__profile{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;padding:.2rem .45rem;border-radius:var(--radius-sm)}.navbar__profile:hover{background:var(--surface-2)}.profile-head{display:flex;align-items:center;gap:1.1rem}.profile-head__name{font-size:1.1rem;font-weight:700;color:var(--ink)}.form-card{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.form-card .field{flex:1;min-width:220px}.form-card>p{flex:1;min-width:220px;margin:0}.usual{margin-top:1.5rem;padding:1rem 1.1rem;border:1px solid var(--brand);border-radius:var(--radius-md, 12px);background:var(--brand-tint)}.usual__head{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--ink-soft);margin-bottom:.75rem}.usual__tag{flex-shrink:0;padding:.15rem .5rem;border-radius:999px;background:var(--brand);color:#fff;font-size:.72rem;font-weight:700}.usual__slots{display:flex;flex-wrap:wrap;gap:.5rem}.usual__slot{font:inherit;font-size:.83rem;font-weight:600;color:var(--ink);padding:.5rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.usual__slot:hover:not(:disabled){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.usual__slot:disabled{cursor:not-allowed;opacity:.7}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.segmented__btn{font:inherit;font-size:.82rem;font-weight:600;border:none;background:transparent;color:var(--ink-soft);padding:.4rem .85rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.segmented__btn:hover{color:var(--ink)}.segmented__btn--active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented__count{font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink-faint);border-radius:999px;padding:.05rem .15rem;min-width:1.1rem;text-align:center}.segmented__btn--active .segmented__count{color:var(--brand-dark)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1rem}.stat-card{--accent: var(--line-strong);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.35rem;transition:box-shadow .2s ease,transform .2s ease}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat-card--green{--accent: var(--green)}.stat-card--amber{--accent: var(--amber)}.stat-card--red{--accent: var(--red)}.stat-card--violet{--accent: var(--violet)}.stat-card__label{display:flex;align-items:center;gap:.45rem;font-size:.8rem;color:var(--ink-soft);font-weight:600}.stat-card__label:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.stat-card__value{font-size:2rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:.35rem 0 .15rem}.stat-card__hint{font-size:.78rem;color:var(--ink-faint)}.chart-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.25rem;margin-bottom:1.25rem}.chart-grid .card{margin-bottom:0}@media(max-width:860px){.chart-grid{grid-template-columns:1fr}}.table-wrap{overflow-x:auto;margin:0 -.25rem}.table{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}.table th{text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:.6rem .85rem;border-bottom:1px solid var(--line)}.table td{padding:.8rem .85rem;border-bottom:1px solid var(--line)}.table tbody tr{transition:background .12s ease}.table tbody tr:hover{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:none}.table__actions{text-align:right;white-space:nowrap}.table__actions .btn{margin-left:.4rem}.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:.22rem .6rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-soft)}.badge--green,.badge--open{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent);border-color:transparent}.badge--amber,.badge--closed{color:color-mix(in srgb,var(--amber) 80%,#000 10%);background:color-mix(in srgb,var(--amber) 16%,transparent);border-color:transparent}.badge--red,.badge--cancelled{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent);border-color:transparent}.day-list{display:flex;flex-direction:column;gap:.75rem}.day-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s ease}.day-card--open{box-shadow:var(--shadow);border-color:var(--line-strong)}.day-card__header{width:100%;display:flex;align-items:center;gap:.75rem;padding:1.1rem 1.35rem;background:none;border:none;font:inherit;text-align:left;color:var(--ink);cursor:pointer;transition:background .15s ease}.day-card__header:hover{background:var(--surface-2)}.day-card__tag{font-size:.72rem;font-weight:700;color:var(--brand-dark);background:var(--brand-tint);border-radius:999px;padding:.15rem .55rem;flex:none}.day-card__title{font-weight:650;font-size:.98rem}.day-card__summary{margin-left:auto;font-size:.85rem;font-weight:600;color:var(--green);white-space:nowrap}.day-card__summary--full{color:var(--ink-faint)}.day-card__chevron{flex:none;color:var(--ink-faint);font-size:1.1rem;line-height:1;transition:transform .22s ease}.day-card--open .day-card__chevron{transform:rotate(180deg)}.day-card__body{padding:0 1.35rem 1.35rem;animation:day-expand .2s ease-out}@keyframes day-expand{0%{opacity:0;transform:translateY(-4px)}}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.slot{display:flex;flex-direction:column;gap:.25rem;padding:.8rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font:inherit;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,transform .06s ease}.slot--open:hover:not(:disabled){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);transform:translateY(-2px)}.slot:disabled{cursor:not-allowed}.slot--closed,.slot--cancelled{opacity:.5;background:var(--surface-2);border-style:dashed}.slot--booked{background:color-mix(in srgb,var(--green) 12%,transparent);border-color:var(--green);border-style:solid}.slot--booked .slot__status{color:var(--green);font-weight:600}@keyframes slot-pop{0%{transform:scale(1)}40%{transform:scale(1.04);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 30%,transparent)}to{transform:scale(1)}}.slot--just-booked{animation:slot-pop .5s ease}.slot__time{font-weight:700;font-variant-numeric:tabular-nums}.slot__class{font-size:.83rem;font-weight:600;color:var(--ink)}.slot__instructor{font-size:.72rem;color:var(--ink-faint)}.slot__status{font-size:.75rem;color:var(--ink-soft);margin-top:.15rem}.slot--open .slot__status{color:var(--green);font-weight:600}.tier-badge{align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem;border-radius:999px;font-size:.82rem;font-weight:700;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink-soft)}.tier-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.tier-badge--bronze{color:#a9744f;background:color-mix(in srgb,#a9744f 12%,transparent);border-color:transparent}.tier-badge--silver{color:#7e8896;background:color-mix(in srgb,#7e8896 14%,transparent);border-color:transparent}.tier-badge--gold{color:#b8902f;background:color-mix(in srgb,#b8902f 14%,transparent);border-color:transparent}.tier-badge--platinum{color:#6b6f86;background:color-mix(in srgb,#6b6f86 14%,transparent);border-color:transparent}.booking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.booking-row{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.2rem;transition:border-color .15s ease,box-shadow .15s ease}.booking-row:hover{box-shadow:var(--shadow-sm)}.booking-row--muted{opacity:.65}.booking-row__date{font-weight:650;margin-bottom:.4rem}.inline-form{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1rem}.inline-form input{font:inherit;padding:.6rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}.inline-form input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.chip-list{list-style:none;padding:0;margin:0 0 1.25rem;display:flex;flex-wrap:wrap;gap:.5rem}.chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:.3rem .4rem .3rem .8rem;font-size:.82rem;font-weight:500}.chip button{border:none;background:var(--line-strong);color:var(--ink);border-radius:999px;width:18px;height:18px;cursor:pointer;line-height:1;transition:background .15s ease}.chip button:hover{background:var(--red);color:#fff}.modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c1a1766;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:1rem;z-index:50;animation:fade-in .15s ease-out}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow-lg);overflow:hidden;animation:modal-in .2s cubic-bezier(.16,1,.3,1)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.15rem 1.4rem;border-bottom:1px solid var(--line)}.modal__header h3{margin:0;font-size:1.05rem}.modal__close{border:none;background:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--ink-faint);transition:color .15s ease}.modal__close:hover{color:var(--ink)}.modal__body{padding:1.4rem;display:flex;flex-direction:column;gap:1rem}.modal__footer{display:flex;justify-content:flex-end;gap:.6rem;padding:1.15rem 1.4rem;border-top:1px solid var(--line)}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}@keyframes fade-in{0%{opacity:0}}.toast-stack{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.6rem;z-index:100}.toast{display:flex;align-items:center;gap:.75rem;padding:.8rem .9rem .8rem 1.1rem;border-radius:var(--radius-sm);color:#fff;font-weight:600;font-size:.9rem;box-shadow:var(--shadow-lg);max-width:340px;animation:toast-in .22s cubic-bezier(.16,1,.3,1)}.toast__msg{flex:1}.toast__close{flex-shrink:0;display:grid;place-items:center;width:1.5rem;height:1.5rem;border:none;border-radius:999px;background:#ffffff2e;color:inherit;font:inherit;font-size:1.1rem;line-height:1;cursor:pointer;transition:background .15s ease}.toast__close:hover{background:#ffffff52}.toast--success{background:var(--green)}.toast--error{background:var(--red)}.toast--info{background:var(--ink)}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.route-loading{display:grid;place-items:center;padding:4rem}.spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.btn-spinner{display:inline-block;width:.85em;height:.85em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite;vertical-align:-.12em;margin-right:.45em}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,color-mix(in srgb,var(--line) 60%,var(--surface-2)) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.hero-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.35rem;border-radius:var(--radius);margin-bottom:1.25rem;color:#fff;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-dark) 100%);box-shadow:var(--shadow)}.hero-banner__label{font-size:.75rem;font-weight:600;opacity:.85}.hero-banner__value{font-size:1.25rem;font-weight:700;margin-top:.1rem}.hero-banner__badge{background:#ffffff38;border-radius:999px;padding:.4rem .9rem;font-weight:800;font-size:.95rem;white-space:nowrap}.nudge{padding:.85rem 1.1rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;margin-bottom:1.25rem}.nudge--warn{color:color-mix(in srgb,var(--amber) 78%,#000 12%);background:color-mix(in srgb,var(--amber) 14%,transparent);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent)}.sched-controls{display:flex;gap:.6rem;flex-wrap:wrap}.adm-slot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.adm-slot{display:flex;align-items:center;gap:.85rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.adm-slot__info{display:flex;flex-direction:column;min-width:0}.adm-slot__time{font-weight:700;font-variant-numeric:tabular-nums}.adm-slot__class{font-size:.8rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-slot__seats{font-size:.82rem;color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.adm-slot__actions{margin-left:auto;display:flex;gap:.4rem;flex:none}.day-card__summary.muted-count{color:var(--ink-soft)}.infinite-sentinel{padding:1rem;text-align:center;font-size:.82rem;color:var(--ink-faint)}.booking-row__class{font-size:.85rem;color:var(--ink-soft);margin-bottom:.4rem}.booking-row__actions{display:flex;gap:.4rem;flex:none}.slot-picker{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:320px;overflow-y:auto}.slot-picker__item{width:100%;display:flex;flex-direction:column;gap:.15rem;text-align:left;font:inherit;padding:.7rem .85rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.slot-picker__item:hover:not(:disabled){border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.slot-picker__item:disabled{opacity:.55;cursor:not-allowed}.slot-picker__when{font-weight:650;font-variant-numeric:tabular-nums}.slot-picker__class{font-size:.8rem;color:var(--ink-soft)}.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.search-wrap{position:relative;display:flex;flex:1;min-width:220px}.search-wrap__clear{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);display:grid;place-items:center;width:1.4rem;height:1.4rem;border:none;border-radius:999px;background:var(--surface-2);color:var(--ink-soft);font-size:1rem;line-height:1;cursor:pointer}.search-wrap__clear:hover{color:var(--ink)}.search-input{font:inherit;flex:1;min-width:0;padding:.65rem 2.2rem .65rem .9rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input::placeholder{color:var(--ink-faint)}.search-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.toolbar__count{font-size:.85rem}.member-name{font-weight:650}.member-email{font-size:.78rem}.bulk-bar{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;margin-bottom:.85rem;border-radius:var(--radius-sm);background:var(--brand-tint);font-size:.88rem;font-weight:600;color:var(--brand-dark);flex-wrap:wrap}.bulk-bar .btn{margin-left:auto}.bulk-bar .btn+.btn{margin-left:0}.table__check{width:36px;text-align:center}.table__check input{width:16px;height:16px;accent-color:var(--brand);cursor:pointer}.table tbody tr.row--selected{background:var(--brand-tint)}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:340px;overflow-y:auto}.roster__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .8rem;border:1px solid var(--line);border-radius:var(--radius-sm)}.roster__name{font-weight:600;margin-bottom:.3rem}.roster__actions{display:flex;gap:.4rem;flex:none}.navbar__icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:1rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.navbar__icon-btn:hover{background:var(--surface-2);border-color:var(--ink-faint)}@media(max-width:720px){.page{padding:1.75rem 1.15rem 3rem}.page__header{flex-wrap:wrap;margin-bottom:1.5rem}.chart-grid{gap:1rem}}@media(max-width:600px){body{font-size:14px}h1{font-size:1.3rem}.page{padding:1.5rem 1rem 2.5rem}.navbar{flex-wrap:wrap;gap:.6rem;padding:.7rem 1rem}.navbar__links{order:3;width:100%;margin-left:0;justify-content:space-between;gap:.2rem}.navbar__link{flex:1;text-align:center;padding:.5rem .4rem;font-size:.85rem}.navbar__user{margin-left:auto}.navbar__email{display:none}.stat-grid{grid-template-columns:repeat(2,1fr);gap:.7rem}.stat-card{padding:1rem 1.05rem}.stat-card__value{font-size:1.55rem}.card{padding:1.15rem}.auth-card{padding:1.75rem 1.4rem}.card__header{align-items:stretch}.segmented{width:100%}.segmented__btn{flex:1;justify-content:center}.slot-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.day-card__header{padding:1rem 1.1rem;gap:.5rem}.day-card__summary{font-size:.78rem}.day-card__body{padding:0 1.1rem 1.1rem}.adm-slot{flex-wrap:wrap;gap:.5rem .75rem}.adm-slot__actions{width:100%}.adm-slot__actions .btn{flex:1}.hero-banner__value{font-size:1.1rem}.booking-row{flex-direction:column;align-items:stretch;gap:.75rem}.booking-row__actions .btn{flex:1}.sched-controls,.sched-controls .segmented{width:100%}.table th,.table td{padding:.6rem .55rem}.table__actions .btn{margin:.15rem 0 .15rem .3rem}.toast-stack{left:1rem;right:1rem;bottom:1rem}.toast{max-width:none}}@media(max-width:380px){.stat-grid{grid-template-columns:1fr}}[data-theme=dark]{--bg: #1a1714;--surface: #221f1b;--surface-2: #2b2620;--ink: #f1ede6;--ink-soft: #a8a097;--ink-faint: #6f685f;--line: #322d26;--line-strong: #423b32;--brand: #c2a07f;--brand-dark: #d3b491;--brand-tint: color-mix(in srgb, var(--brand) 18%, transparent);--green: #6cb38c;--amber: #d4ad62;--red: #d68580;--violet: #a596c9;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 14px 32px -16px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 60px -20px rgba(0, 0, 0, .7)}[data-theme=dark] .auth-page{background:radial-gradient(900px 500px at 85% -15%,#2a2620 0%,transparent 55%),radial-gradient(700px 500px at 0% 110%,#20231f 0%,transparent 55%),var(--bg)}[data-theme=dark] .toast--info{background:#3a352d}[data-theme=dark] .oauth__btn--google,[data-theme=dark] .oauth__btn--naver{color:var(--ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
