:root{--color-primary:#1d5fbf;--color-primary-light:#4c86d9;--color-primary-dark:#123f86;--color-primary-subtle:#eaf2ff;--color-primary-hover:#1250ab;--color-success:#10b981;--color-success-bg:#ecfdf5;--color-warning:#f6c343;--color-warning-bg:#fff8e4;--color-warning-text:#9a6700;--color-warning-text-strong:#b45309;--color-error:#ef4444;--color-error-bg:#fef2f2;--color-danger:var(--color-error);--color-info-bg:#e8f2ff;--color-info:#1d5fbf;--color-white:#fff;--color-black:#0f172a;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-300:#b2bdcd;--color-gray-400:#64748b;--color-gray-500:#526071;--color-gray-600:#404e60;--color-gray-700:#334155;--color-gray-800:#1e293b;--color-gray-900:#0f172a;--color-brand-meituan:#ffcd00;--color-brand-meituan-text:#333;--color-brand-wechat:#07c160;--color-brand-wechat-bg:#e8f9ef;--color-brand-alipay:#1677ff;--color-brand-alipay-bg:#e6f1ff;--color-brand-voucher:#ff6b6b;--color-brand-card:#6b7280;--color-brand-yellow:#ffc400;--color-brand-blue:#1d5fbf;--color-bg-primary:var(--color-white);--color-bg-secondary:#f6f8fc;--color-bg-tertiary:var(--color-gray-100);--color-bg-elevated:var(--color-white);--color-bg-disabled:var(--color-gray-100);--color-bg-page:#f3f6fa;--color-bg-card:var(--color-bg-primary);--color-bg-dark:var(--color-gray-900);--color-text-primary:var(--color-gray-900);--color-text-secondary:var(--color-gray-600);--color-text-tertiary:var(--color-gray-400);--color-text-disabled:var(--color-gray-300);--color-text-muted:var(--color-gray-500);--color-text-inverse:var(--color-white);--color-border-primary:var(--color-gray-200);--color-border-secondary:var(--color-gray-100);--color-border-default:var(--color-border-primary);--color-border-card:#0f172a12;--color-border-subtle:var(--color-border-secondary);--color-border-focus:var(--color-primary-light);--color-border-error:var(--color-error);--color-overlay:#0f172a73;--color-primary-rgb:29, 95, 191;--color-success-rgb:16, 185, 129;--color-warning-rgb:246, 195, 67;--color-danger-rgb:239, 68, 68;--color-error-rgb:239, 68, 68;--color-bg-primary-rgb:255, 255, 255;--color-text-secondary-rgb:64, 78, 96;--badge-bg:var(--color-bg-tertiary);--badge-text:var(--color-text-secondary);--badge-border:transparent;--badge-bg-soft:var(--badge-bg);--badge-text-soft:var(--badge-text);--badge-border-soft:transparent;--badge-bg-solid:var(--badge-text);--badge-text-solid:var(--color-text-inverse);--badge-border-solid:transparent;--badge-text-outline:var(--badge-text);--badge-border-outline:var(--badge-text);--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-5:1.25rem;--spacing-6:1.5rem;--spacing-7:1.75rem;--spacing-8:2rem;--spacing-10:2.5rem;--spacing-12:3rem;--spacing-16:4rem;--spacing-20:5rem;--spacing-24:6rem;--stack-gap:var(--spacing-6);--stack-gap-inner:var(--spacing-4);--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--radius-full:9999px;--border-radius-sm:var(--radius-sm);--border-radius-md:var(--radius-md);--border-radius-lg:var(--radius-lg);--border-radius-xl:var(--radius-xl);--border-width-hairline:1px;--border-width-base:2px;--border-width-md:3px;--border-width-thick:4px;--border-width-accent:6px;--shadow-sm:0 1px 4px #0f172a09;--shadow-md:0 4px 11px -4px #0f172a1c, 0 1px 4px -2px #0f172a0d;--shadow-lg:0 9px 22px -7px #0f172a29, 0 4px 9px -6px #0f172a14;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--shadow-brand:0 7px 17px -7px #1d5fbf52;--shadow-floating:0 -4px 14px #0f172a0e;--shadow-card:0 3px 10px #0f172a0b;--shadow-glass:var(--shadow-card);--shadow-elevated:var(--shadow-lg);--shadow-primary-soft:0 4px 11px #1d5fbf24;--shadow-primary-medium:0 6px 12px -4px #1d5fbf3d;--shadow-success-action:0 4px 11px #10b98147;--shadow-inset-white-soft:inset 0 0 0 1px #fff6;--card-shadow-sm:var(--shadow-sm);--card-shadow-md:var(--shadow-md);--card-shadow-lg:var(--shadow-lg);--card-shadow-xl:var(--shadow-xl);--card-shadow-float:0 8px 30px -4px #0000001f;--card-shadow-interactive:0 10px 20px -5px #0000001a;--font-family-base:-apple-system, "PingFang SC", "Helvetica Neue", Arial, sans-serif;--font-family-sans:var(--font-family-base);--font-family-display:var(--font-family-base);--font-family-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.5rem;--font-size-5xl:3.5rem;--font-size-6xl:4.5rem;--font-size-hero:3rem;--font-size-stat:2rem;--font-size-display:2.25rem;--font-size-label:.75rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-light:300;--font-weight-black:900;--line-height-tight:1.25;--line-height-snug:1.35;--line-height-normal:1.5;--line-height-cozy:1.65;--line-height-relaxed:1.75;--line-height-loose:2;--size-brand-logo-width:12.5rem;--size-brand-logo-height:4rem;--size-avatar:3rem;--size-avatar-sm:2.5rem;--size-avatar-lg:4rem;--size-touch-min:2.75rem;--size-touch-lg:3rem;--size-icon-xs:1rem;--size-icon-sm:1.5rem;--size-icon-md:2rem;--size-input-height:3rem;--size-fab:3.5rem;--size-cover-height-md:10rem;--size-cover-height-lg:12rem;--size-cover-height-xl:14rem;--size-card-min-hero:16rem;--size-badge-md:1.25rem;--size-page-max:60rem;--size-page-max-compact:55rem;--size-page-min-loading:24rem;--size-footer-reserve-lg:12rem;--size-tab-min-width:4rem;--size-action-min-sm:9rem;--height-xs:1.5rem;--height-sm:2rem;--height-lg:3rem;--height-xl:3.5rem;--control-height-xs:var(--height-xs);--control-height-sm:var(--height-sm);--control-height-field:var(--height-lg);--control-height-md:var(--height-lg);--control-height-picker:var(--height-lg);--control-height-lg:var(--height-lg);--control-height-xl:var(--height-xl);--control-height-2xs:var(--height-xs);--z-base:1;--z-raised:5;--z-sticky:10;--z-dropdown:50;--z-overlay:100;--z-modal:1000;--z-loading:10000;--z-index-dropdown:var(--z-dropdown);--z-index-sticky:var(--z-sticky);--z-index-fixed:1030;--z-index-modal:var(--z-modal);--z-index-popover:1060;--z-index-tooltip:1070;--z-index-skip-link:9999;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-spring:.34s cubic-bezier(.34, 1.56, .64, 1);--transition-smooth:.3s cubic-bezier(.25, .1, .25, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-colors:color .2s cubic-bezier(.4, 0, .2, 1), background-color .2s cubic-bezier(.4, 0, .2, 1), border-color .2s cubic-bezier(.4, 0, .2, 1);--transition-all:all .2s cubic-bezier(.4, 0, .2, 1);--blur-xs:4px;--blur-sm:6px;--blur-md:10px;--blur-lg:12px;--status-pending:#a16207;--status-pending-bg:#fef9c3;--status-confirmed:#185ac6;--status-confirmed-bg:#e8f2ff;--status-active:#10b981;--status-active-bg:#ecfdf5;--status-completed:#526071;--status-completed-bg:#f1f5f9;--status-cancelled:#ef4444;--status-cancelled-bg:#fef2f2;--color-status-pending-bg:var(--status-pending-bg);--color-status-pending-text:var(--status-pending);--color-status-pending-border:#f6c26b;--color-status-confirmed-bg:var(--status-confirmed-bg);--color-status-confirmed-text:var(--status-confirmed);--color-status-confirmed-border:#6ee7b7;--color-status-completed-bg:var(--status-completed-bg);--color-status-completed-text:var(--status-completed);--color-status-completed-border:#a5b4fc;--color-status-cancelled-bg:var(--status-cancelled-bg);--color-status-cancelled-text:var(--status-cancelled);--color-status-cancelled-border:#fca5a5;--color-status-neutral-bg:#f3f4f6;--color-status-neutral-text:#6b7280;--color-status-neutral-border:#d1d5db;--letter-spacing-readable:.01em;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.025em;--letter-spacing-wider:.05em;--letter-spacing-widest:.1em;--gradient-brand:linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);--gradient-primary:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);--gradient-success:linear-gradient(135deg, var(--color-success) 0%, #0ea572 100%);--gradient-surface-brand:linear-gradient(135deg, #fffffff5 0%, #eaf2ffe6 100%);--gradient-warning-surface:linear-gradient(135deg, #f59e0b24, #f59e0b14);--gradient-member-card:linear-gradient(135deg, #eaf2ff 0%, #d6e8ff 52%, #c7defa 100%);--gradient-member-card-orb:radial-gradient(circle at 30% 30%, #ffffffe6, #fff0);--gradient-app-background:linear-gradient(180deg, #f8fafd 0%, var(--color-bg-page) 100%);--gradient-page-sheen:linear-gradient(180deg, rgba(var(--color-primary-rgb), .03) 0%, transparent 100%);--gradient-empty-state:linear-gradient(180deg, var(--color-bg-card) 0%, var(--color-bg-secondary) 100%);--gradient-booking-image-overlay:linear-gradient(180deg, #0f172a14 0%, #0f172a42 44%, #0f172aad 100%);--gradient-booking-image-overlay-brand:linear-gradient(180deg, #1d5fbf14 0%, #123f8642 44%, #0f172ab8 100%);--gradient-booking-content-fade:linear-gradient(180deg, transparent, #0f172a57);--color-primary-tint:#1d5fbf14;--color-primary-soft:var(--color-primary-tint);--color-primary-tint-subtle:#1d5fbf0e;--color-primary-focus-ring:#1d5fbf1f;--color-primary-focus-border:#1d5fbf59;--color-error-tint:#ef44441a;--color-success-tint:#10b9811f;--color-warning-tint:#ffc4001f;--surface-danger-soft:linear-gradient(135deg, #ef44440d 0%, #fffffff2 100%);--surface-success-page:linear-gradient(135deg, #22c55e0d 0%, #3b82f60d 100%);--surface-error-page:linear-gradient(135deg, #ef44440d 0%, #f973160d 100%);--surface-primary-soft:linear-gradient(135deg, #1d5fbf0e 0%, #fffffff5 100%);--surface-warning-page:linear-gradient(135deg, #f59e0b11 0%, #fffffff5 100%);--border-primary-soft:#1d5fbf33;--border-neutral-soft:#94a3b81a;--border-danger-soft:#ef44441a;--border-success-soft:#10b98133;--border-warning-soft:#f59e0b38;--border-dark-subtle:#0f172a0f;--color-skeleton-base:#e2e8f0cc;--color-skeleton-highlight:#fffc;--glass-bg:#fffffffa;--glass-bg-strong:#fffffff5;--glass-bg-subtle:#f8fafcf0;--glass-border:#0f172a14;--glass-border-subtle:#ffffff38;--gradient-category-blue:linear-gradient(135deg, var(--color-primary-subtle) 0%, #e0f0ff 100%);--gradient-category-purple:linear-gradient(135deg, #f8f7ff 0%, #f0eeff 100%);--gradient-category-green:linear-gradient(135deg, #f2fbf7 0%, #e4f8ee 100%);--color-white-95:#fffffff2;--color-white-96:#fffffff5;--color-white-82:#ffffffd1;--color-white-78:#ffffffc7;--color-white-72:#ffffffb8;--color-white-70:#ffffffb3;--color-white-42:#ffffff6b;--color-white-28:#ffffff47;--color-white-22:#ffffff38;--color-white-18:#ffffff2e;--color-white-10:#ffffff1a;--color-white-80:#fffc;--color-black-02:#00000005;--color-bg-blue:#f8fbff;--color-bg:var(--color-bg-tertiary);--color-border:var(--color-border-primary);--color-border-light:var(--color-gray-100);--color-border-lighter:var(--color-gray-50);--overlay-light:#0f172a4d;--overlay-mid:#0f172a6b;--overlay-strong:#0f172a73;--color-mask-light:#f8fafcd1;--shadow-text-dark-sm:0 1px 4px #00000026;--text-shadow-sm:0 1px 2px #0000000d;--text-shadow-md:0 2px 4px #0000001a;--text-shadow-lg:0 4px 8px #00000026;--duration-skeleton:1.2s;--duration-spinner-rotate:.8s;--duration-enter:.42s;--duration-enter-fast:.28s;--duration-marquee:16s;--active-scale:.97;--active-opacity:.9;--active-transform:scale(.97);--container-max-width:var(--size-page-max);--container-width-xl:1200px;--header-height:4rem;--sidebar-width:16rem;--focus-ring-color:var(--color-primary-light);--outline-width-base:2px;--outline-offset-base:2px;--card-padding-sm:var(--spacing-4);--card-padding-md:var(--spacing-6);--card-padding-lg:var(--spacing-8);--card-padding-xl:var(--spacing-10);--card-radius-sm:var(--radius-lg);--card-radius-md:var(--radius-xl);--card-radius-lg:var(--radius-2xl);--card-radius-xl:var(--radius-3xl);--color-secondary:#64748b;--color-secondary-light:#94a3b8;--color-secondary-dark:#334155;--color-accent-yellow:#ffc400;--color-accent-gold:#ffb800;--color-accent-amber:#f59e0b;--color-accent-blue:#3b82f6;--color-accent-indigo:#6366f1;--color-accent-purple:#8b5cf6;--color-accent-pink:#ec4899;--color-accent-red:#ef4444;--color-accent-green:#10b981;--color-accent-cyan:#06b6d4;--color-accent-teal:#14b8a6;--color-accent-orange:#f97316;--color-accent-sky:#60a5fa;--color-accent-gray:#6b7280;--color-accent-terracotta:#e07856;--color-accent-terracotta-rgb:224, 120, 86;--color-accent-pink-dark:#db2777;--color-accent-amber-dark:#d97706;--color-accent-teal-dark:#0f766e;--color-accent-sky-dark:#0369a1;--color-medal-gold:gold;--color-medal-gold-text:#7a4f00;--color-medal-silver:silver;--color-medal-silver-text:#444;--color-medal-bronze:#cd7f32;--color-medal-bronze-text:#fff;--color-star-rating:#f7ba2a;--teacher-accent:var(--color-primary);--teacher-accent-soft:var(--color-primary-tint);--teacher-ink:#1e293b;--teacher-line:var(--color-gray-200);--teacher-muted:#94a3b8;--teacher-panel:#fff;--category-accent:#6366f1;--category-soft:#6366f114;--payment-wechat-color:#07c160;--payment-wechat-header-start:#07c160;--payment-wechat-header-end:#06ad56;--payment-alipay-color:#1677ff;--payment-alipay-header-start:#1677ff;--payment-alipay-header-end:#0e5fd9;--payment-icon-contrast:#fff;--spacing-0_25:.0625rem;--spacing-0_5:.125rem;--spacing-0_75:.1875rem;--spacing-1_25:.3125rem;--spacing-1_5:.375rem;--spacing-2_5:.625rem;--spacing-3_5:.875rem;--color-primary-50:#eef4ff;--color-success-light:#34d399;--color-success-bg-soft:#f0f9f1;--color-warning-bg-strong:#fff3e0;--color-warning-bg-soft:#fffdf5;--color-error-bg-strong:#fce8e8;--color-error-bg-soft:#fff8f8;--color-info-bg-strong:#e8f0fe;--color-info-bg-soft:#f5f8ff;--color-danger-bg:var(--color-error-bg);--color-meituan-dark:#8b6000;--color-brand-kicker-start:#e53935;--color-brand-kicker-end:#c62828;--color-brand-kicker-border:#ffcdd2;--shadow-brand-kicker:0 1px 4px #e539354d;--size-skeleton-motion:750px;--size-skeleton-bg:800px}@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}}@layer base{:root{--scrollbar-width:8px;--scrollbar-radius:4px}html{font-family:var(--font-family-base);font-size:16px;line-height:var(--line-height-normal);scroll-behavior:smooth}body{min-width:320px;min-height:100vh;color:var(--color-text-primary);background-color:var(--color-bg-secondary);font-family:var(--font-family-base);line-height:var(--line-height-normal)}main{display:block}img,picture,video,canvas,svg{max-width:100%;height:auto}button,input,textarea,select{font:inherit}button{cursor:pointer}fieldset{border:0;margin:0;padding:0}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{color:var(--color-text-secondary);line-height:var(--line-height-normal)}a{font-weight:var(--font-weight-medium);color:var(--color-primary);transition:var(--transition-colors);text-decoration:none}a:hover{color:var(--color-primary-dark);text-decoration:underline}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--color-border-secondary);border-radius:var(--scrollbar-radius)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}}@layer accessibility{:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--outline-width-base) solid var(--focus-ring-color);outline-offset:var(--outline-offset-base)}@supports not selector(:focus-visible){:focus{outline:var(--outline-width-base) solid var(--focus-ring-color);outline-offset:var(--outline-offset-base)}}.skip-link{top:var(--spacing-2);left:var(--spacing-2);background-color:var(--color-primary);color:var(--color-white);padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);transition:transform var(--transition-fast);z-index:var(--z-index-skip-link);position:absolute;transform:translateY(-200%)}.skip-link:focus{outline:var(--outline-width-base) solid var(--color-border-focus);outline-offset:var(--outline-offset-base);transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@layer utilities{.w-full,.full-width{width:100%}.flex{display:flex}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.flex-col{flex-direction:column}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.mr-1{margin-right:var(--spacing-1)}.mr-2{margin-right:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-2{margin-bottom:var(--spacing-2)}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-8{margin-top:var(--spacing-8)}.p-4{padding:var(--spacing-4)}.pl-5{padding-left:var(--spacing-5)}.py-12{padding-top:var(--spacing-12);padding-bottom:var(--spacing-12)}.text-secondary{color:var(--color-text-secondary)}.text-primary{color:var(--color-primary)}.text-gray-300{color:var(--color-gray-300)}.text-sm{font-size:var(--font-size-sm)}.text-xl{font-size:var(--font-size-xl)}.text-center{text-align:center}.font-mono{font-family:var(--font-family-mono)}.font-medium{font-weight:var(--font-weight-medium)}.font-bold{font-weight:var(--font-weight-bold)}.leading-relaxed{line-height:var(--line-height-relaxed)}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:solid;border-width:1px}.bg-gray-50{background-color:var(--color-bg-tertiary)}.border-gray-100{border-color:var(--color-border-secondary)}.flex-1{flex:1}.animate-in{animation-fill-mode:forwards}.fade-in{animation:.5s ease-out fadeIn}.slide-in-from-bottom{animation:.5s ease-out slideInFromBottom}.scale-in{animation:.4s ease-out scaleIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}}:root{--page-padding-inline:clamp(var(--spacing-4), 3vw, var(--spacing-10));--page-padding-block:clamp(var(--spacing-5), 4vh, var(--spacing-12));--page-section-gap:clamp(var(--spacing-5), 3vw, var(--spacing-12));--page-card-padding:clamp(var(--spacing-4), 2vw, var(--spacing-8));--page-card-radius:var(--radius-xl);--page-grid-gap:clamp(var(--spacing-4), 2vw, var(--spacing-8))}.app-shell,.page-layout{background-color:var(--color-bg-secondary);flex-direction:column;min-height:100vh;display:flex}.app-shell__main,.page-layout__main{flex-direction:column;flex:1 0 auto;display:flex}.page-layout__content{gap:var(--page-section-gap);flex-direction:column;flex:1 0 auto;width:100%;display:flex}.shell-container{width:100%;max-width:calc(var(--container-max-width) + (var(--page-padding-inline) * 2));padding-left:var(--page-padding-inline);padding-right:var(--page-padding-inline);margin:0 auto}.admin-shell{background-color:var(--color-bg-secondary);min-height:100vh;display:flex}.admin-shell__sidebar{width:var(--sidebar-width);background-color:var(--color-bg-primary);border-right:1px solid var(--color-border-secondary);gap:var(--spacing-6);padding:var(--spacing-6) var(--spacing-5);flex-direction:column;display:flex}.admin-shell__brand{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);cursor:pointer}.admin-shell__nav{gap:var(--spacing-2);flex-direction:column;display:flex}.admin-shell__nav-item{text-align:left;padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:var(--transition-colors);background:0 0;border:none}.admin-shell__nav-item.is-active,.admin-shell__nav-item:hover{background-color:var(--color-primary-subtle);color:var(--color-primary)}.admin-shell__main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-shell__header{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-6) var(--spacing-8);border-bottom:1px solid var(--color-border-secondary);background-color:var(--color-bg-primary);flex-wrap:wrap;display:flex}.admin-shell__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);margin:0}.admin-shell__subtitle{color:var(--color-text-tertiary);margin:0}.admin-shell__actions{align-items:center;gap:var(--spacing-3);display:flex}.admin-shell__user{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.admin-shell__content{padding:var(--page-padding-block) var(--page-padding-inline);background-color:var(--color-bg-secondary);flex:1}.admin-shell__footer{text-align:center;padding:var(--spacing-4);font-size:var(--font-size-sm);color:var(--color-text-tertiary);border-top:1px solid var(--color-border-secondary);background-color:var(--color-bg-primary)}@media (width<=1024px){.admin-shell{flex-direction:column}.admin-shell__sidebar{align-items:stretch;gap:var(--spacing-4);width:100%;padding:var(--spacing-4);flex-direction:column}.admin-shell__nav{gap:var(--spacing-2);scrollbar-width:thin;padding-bottom:var(--spacing-1);flex-flow:wrap;overflow-x:auto}.admin-shell__nav-item{white-space:nowrap;flex:none}.admin-shell__header{padding:var(--spacing-4) var(--spacing-5)}}@media (width<=768px){.shell-container{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.admin-shell__brand{font-size:var(--font-size-lg)}.admin-shell__sidebar{padding:var(--spacing-3) var(--spacing-4)}.admin-shell__header{padding:var(--spacing-4)}.admin-shell__title{font-size:var(--font-size-xl)}.admin-shell__actions{flex-wrap:wrap;justify-content:space-between;width:100%}.admin-shell__content{padding:var(--spacing-4)}.admin-shell__footer{padding:var(--spacing-3) var(--spacing-4)}}.page-shell{width:100%;max-width:calc(var(--container-max-width) + (var(--page-padding-inline) * 2));padding:var(--page-padding-block) var(--page-padding-inline);gap:var(--page-section-gap);flex-direction:column;flex:1 0 auto;margin:0 auto;display:flex}.page-shell--narrow{max-width:720px}.page-shell--full{max-width:none}.page-shell--flush{padding:0}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--page-section-gap);flex-wrap:wrap;display:flex}.header-left{gap:var(--spacing-1);flex-direction:column;display:flex}.header-actions{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.page-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.filters-bar{gap:var(--spacing-3);margin-bottom:var(--spacing-5);flex-wrap:wrap;display:flex}.pagination-wrapper{margin-top:var(--spacing-5);justify-content:flex-end;display:flex}.page-header__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.page-header__subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin:0}:where(.fiscal-header,.bus-header,.hub-header,.canvas-header,.matrix-header,.alliance-header,.ops-header,.orchestrator-header){justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--page-section-gap);flex-wrap:wrap;display:flex}:where(.fiscal-header-actions,.bus-header-actions,.hub-header-actions,.canvas-header-actions,.matrix-header-actions,.alliance-header-actions,.ops-status-tag,.protocol-status-badge,.header-status){align-items:center;gap:var(--spacing-3);flex-wrap:wrap;display:flex}:where(.fiscal-header,.bus-header,.hub-header,.canvas-header,.matrix-header,.alliance-header,.ops-header,.orchestrator-header) h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}:where(.fiscal-subtitle,.bus-subtitle,.hub-subtitle,.canvas-subtitle,.matrix-subtitle,.alliance-subtitle,.ops-subtitle,.header-subtitle){margin:var(--spacing-2) 0 0;font-size:var(--font-size-base);color:var(--color-text-secondary)}.section-stack{gap:var(--page-section-gap);flex-direction:column;display:flex}.section-stack--tight{gap:var(--spacing-4)}.section-card{background-color:var(--color-bg-primary);border-radius:var(--page-card-radius);padding:var(--page-card-padding);border:1px solid var(--color-border-primary);box-shadow:var(--shadow-md)}.section-card--muted{background-color:var(--color-bg-secondary);border-color:#0000}.section-card--flat{box-shadow:none}.page-heading{gap:var(--spacing-2);flex-direction:column;display:flex}.page-heading__title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.page-heading__subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0}.page-heading--split{justify-content:space-between;align-items:center;gap:var(--spacing-3);flex-flow:wrap}.responsive-grid{gap:var(--page-grid-gap);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.responsive-grid--compact{gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.responsive-grid--wide{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media (width<=1024px){.page-shell{padding:var(--spacing-6);gap:var(--spacing-5)}}@media (width<=768px){.page-shell{padding:var(--spacing-5) var(--spacing-4);gap:var(--spacing-4)}.page-header{gap:var(--spacing-3)}.page-heading__title{font-size:var(--font-size-2xl)}.page-heading--split{flex-direction:column;align-items:flex-start}:where(.fiscal-header,.bus-header,.hub-header,.canvas-header,.matrix-header,.alliance-header,.ops-header,.orchestrator-header){gap:var(--spacing-3)}}@media (width<=480px){.page-shell{padding:var(--spacing-4) var(--spacing-3)}.page-heading__title{font-size:var(--font-size-xl)}}.admin-mobile-only{display:none}.admin-desktop-only{display:block}@media (width<=1024px){.admin-shell__content{overflow-x:hidden}.admin-shell__guide{margin-bottom:var(--spacing-4)}:where(.actions-toolbar,.page-header,.fiscal-header,.bus-header,.hub-header,.canvas-header,.hero-panel,.workspace-header){gap:var(--spacing-3)}:where(.header-actions,.toolbar-left,.toolbar-right,.fiscal-header-actions,.bus-header-actions,.hub-header-actions,.canvas-header-actions,.hero-actions){flex-wrap:wrap}:where(.el-row){--el-row-gutter:16px}}@media (width<=768px){.admin-mobile-only{display:block}.admin-desktop-only{display:none}.admin-shell__content>*{min-width:0}:where(.page-shell,.dashboard-container,.user-management,.role-management,.module-management,.system-settings-container,.booking-management,.fiscal-central,.audit-logs,.meituan-management,.iot-page,.teacher-hub-global,.activity-canvas-global,.dispatch-bus,.cms-management,.notify-management,.coupon-management,.referral-management,.alliance-management,.partnership-management,.content-management,.study-buddy-management,.admin-search,.site-module-manager,.teaching-admin,.teacher-management,.course-templates,.course-instances,.class-groups,.sessions-calendar,.package-management,.teaching-students,.student-detail,.student-balances,.teaching-enrollments,.teacher-income,.teaching-settlements){gap:var(--spacing-4)}:where(.actions-toolbar,.page-header,.fiscal-header,.bus-header,.hub-header,.canvas-header,.hero-panel,.workspace-header,.nexus-toolbar){flex-direction:column;align-items:stretch}:where(.header-actions,.toolbar-left,.toolbar-right,.fiscal-header-actions,.bus-header-actions,.hub-header-actions,.canvas-header-actions,.hero-actions){justify-content:flex-start;align-items:stretch;gap:var(--spacing-2);width:100%}:where(.header-actions .el-button,.header-actions .el-dropdown,.header-actions>*,.toolbar-left .el-input,.toolbar-left .el-select,.toolbar-left .el-date-editor,.toolbar-right .el-button,.toolbar-right .el-dropdown,.toolbar-right>*,.fiscal-header-actions .el-button,.fiscal-header-actions .el-dropdown,.bus-header-actions .el-button,.bus-header-actions .el-dropdown,.hub-header-actions .el-button,.hub-header-actions .el-dropdown,.hub-header-actions .el-input,.hub-header-actions .el-select,.canvas-header-actions .el-button,.hero-actions .el-button){width:100%}:where(.search-input,.role-filter,.filter-input,.filter-select,.summary-range-select,.pattern-input,.status-select-vessel,.search-vessel,.filter-control--sm,.filter-control--lg,.filters-bar .el-input,.filters-bar .el-select,.filters-bar .el-date-editor){width:100%;min-width:0}:where(.content-card,.table-card,.filter-card,.ledger-monolith,.nexus-monolith,.workspace-card,.hub-monolith,.canvas-monolith){min-width:0}:where(.content-card>.el-card__body,.table-card>.el-card__body,.filter-card>.el-card__body,.nexus-monolith>.el-card__body,.ledger-monolith>.el-card__body,.hub-monolith>.el-card__body,.canvas-monolith>.el-card__body,.workspace-card>.el-card__body,.table-vessel){-webkit-overflow-scrolling:touch;overflow-x:auto}:where(.content-card .el-table,.table-card .el-table,.nexus-monolith .el-table,.ledger-monolith .el-table,.hub-monolith .el-table,.canvas-monolith .el-table,.workspace-card .el-table,.el-table),.el-table .el-table__inner-wrapper{min-width:600px}:where(.content-card,.table-card,.filter-card,.ledger-monolith,.nexus-monolith,.workspace-card,.hub-monolith,.canvas-monolith,.summary-card,.metric-card){border-radius:var(--radius-lg)}:where(.metric-content,.resource-activity-card__header,.resource-activity-card__meta,.avatar-field,.setting-row,.bus-info-banner,.commission-control-vessel,.fac-data-matrix){flex-direction:column;align-items:flex-start}:where(.row-actions,.action-group,.expertise-tags,.hero-tags,.toolbar-left,.toolbar-right){flex-wrap:wrap}:where(.summary-grid,.overview-grid,.payment-check__providers,.workspace-tab-picker,.fac-stats-vessel,.fiscal-ledger-canvas,.admin-shell__guide-grid){grid-template-columns:1fr}:where(.fiscal-ledger-canvas){flex-direction:column;display:flex}:where(.fiscal-detail-panel){border-left:none;border-top:1px solid var(--color-border-secondary);width:100%;max-width:100%;position:static}:where(.pagination-wrapper,.modal-footer-actions,.adjustment-footer,.dialog-footer){justify-content:stretch;gap:var(--spacing-2);flex-wrap:wrap}:where(.pagination-wrapper){padding:var(--spacing-3) 0}:where(.el-pagination){justify-content:center;gap:var(--spacing-1);flex-wrap:wrap}:where(.el-dialog){width:92vw;max-width:min(92vw,560px);margin-top:6vh}:where(.el-dialog__body){padding:var(--spacing-4);max-height:60vh;overflow-y:auto}:where(.el-dialog__header){padding:var(--spacing-4) var(--spacing-4) 0}:where(.el-dialog__footer){padding:var(--spacing-3) var(--spacing-4) var(--spacing-4)}:where(.el-drawer){max-width:100vw}:where(.el-drawer.rtl),:where(.el-drawer){width:100%!important}:where(.el-drawer__body){padding:var(--spacing-4)}:where(.el-card__body){padding:var(--spacing-4);min-width:0}:where(.el-card__header){padding:var(--spacing-4) var(--spacing-4) 0}:where(.el-tabs__nav-wrap){-webkit-overflow-scrolling:touch;overflow-x:auto}:where(.el-tabs__nav){flex-wrap:nowrap}:where(.el-form-item .el-input),:where(.el-form-item .el-select),:where(.el-form-item .el-input-number),:where(.el-form-item .el-date-editor){width:100%}:where(.el-form-item__content){flex-wrap:wrap}:where(.drawer-actions){grid-template-columns:1fr}:where(.drawer-action-btn){width:100%}:where(.drawer-user-identity){text-align:center;flex-direction:column}:where(.el-col){margin-bottom:var(--spacing-3)}:where(.el-empty){padding:var(--spacing-8) 0}:where(.el-empty__image){max-width:100%}}@media (width<=560px){.admin-shell__title{font-size:var(--font-size-lg)}:where(.page-title,.bus-title,.hub-title,.canvas-title,.hero-title){font-size:var(--font-size-xl);line-height:1.2}:where(.page-subtitle,.fiscal-subtitle,.bus-subtitle,.hub-subtitle,.canvas-subtitle,.hero-subtitle){font-size:var(--font-size-sm)}:where(.el-radio-group.view-mode-toggle){grid-template-columns:1fr;width:100%;display:grid}:where(.view-mode-option,.view-mode-toggle .el-radio-button__inner),:where(.bus-stats-pill,.hero-tags){width:100%}:where(.bus-stats-pill){align-items:flex-start}:where(.hero-tags){flex-wrap:wrap;display:flex}:where(.el-dialog){border-radius:0;width:100vw;max-width:100vw;margin:0;position:fixed;inset:0}:where(.el-dialog__body){max-height:calc(100vh - 120px)}:where(.metric-value){font-size:var(--font-size-xl)}:where(.metric-icon){width:40px;height:40px}:where(.content-card .el-table,.table-card .el-table,.el-table){min-width:480px;font-size:var(--font-size-sm)}:where(.el-pagination .el-pagination__total),:where(.el-pagination .el-pagination__sizes){display:none}:where(.el-pagination button){padding:var(--spacing-1) var(--spacing-2)}:where(.admin-shell__sidebar){width:100vw;max-width:100vw}}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-brand{color:var(--color-primary)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-inverse{color:var(--color-text-inverse)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.flex-wrap{flex-wrap:wrap}.gap-1{gap:var(--spacing-1)}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-6{gap:var(--spacing-6)}.gap-8{gap:var(--spacing-8)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.px-4{padding-left:var(--spacing-4);padding-right:var(--spacing-4)}.px-6{padding-left:var(--spacing-6);padding-right:var(--spacing-6)}.px-8{padding-left:var(--spacing-8);padding-right:var(--spacing-8)}.py-3{padding-top:var(--spacing-3);padding-bottom:var(--spacing-3)}.py-4{padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.py-6{padding-top:var(--spacing-6);padding-bottom:var(--spacing-6)}.py-8{padding-top:var(--spacing-8);padding-bottom:var(--spacing-8)}.pt-4{padding-top:var(--spacing-4)}.pt-6{padding-top:var(--spacing-6)}.pb-4{padding-bottom:var(--spacing-4)}.pb-6{padding-bottom:var(--spacing-6)}.m-0{margin:0}.mt-2{margin-top:var(--spacing-2)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-2{margin-bottom:var(--spacing-2)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.ml-3{margin-left:var(--spacing-3)}.ml-4{margin-left:var(--spacing-4)}.mr-3{margin-right:var(--spacing-3)}.mr-4{margin-right:var(--spacing-4)}.mx-auto{margin-left:auto;margin-right:auto}.card{background:var(--color-bg-card);border-radius:var(--radius-2xl);border:1px solid var(--color-border-card);box-shadow:var(--shadow-card);transition:all var(--transition-smooth);overflow:hidden}.card:active{transform:scale(var(--active-scale));box-shadow:var(--shadow-sm)}.card-body{padding:var(--spacing-6)}.surface-glass{background:var(--glass-bg);border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md))}.surface-subtle{background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-xl);box-shadow:none}.surface-solid{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-2xl);box-shadow:none}.surface-elevated{box-shadow:var(--shadow-elevated)}.btn{border-radius:var(--radius-full);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);padding:0 var(--spacing-8);height:var(--size-input-height);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:var(--active-transform);opacity:var(--active-opacity)}.btn-primary{background:var(--gradient-brand);color:var(--color-text-inverse);box-shadow:var(--shadow-brand), var(--shadow-inset-white-soft);border:none}.btn-primary:hover{box-shadow:var(--shadow-primary-medium), var(--shadow-inset-white-soft)}.btn-secondary{background:var(--color-primary-tint);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.btn-neutral{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.btn-outline{color:var(--color-primary);border:var(--border-width-md) solid var(--color-primary-light);background:0 0}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-text{color:var(--color-primary);padding-left:var(--spacing-3);padding-right:var(--spacing-3);height:auto;min-height:var(--size-touch-min);box-shadow:none;background:0 0}.btn-danger{background:var(--color-error);color:var(--color-text-inverse)}.btn-success-tint{background:var(--color-success-bg);color:var(--color-success)}.btn-warning-tint{background:var(--status-pending-bg);color:var(--status-pending)}.btn-danger-tint{background:var(--status-cancelled-bg);color:var(--color-error)}.btn-success{background:var(--color-success);color:var(--color-text-inverse)}.btn-sm{height:var(--size-touch-min);font-size:var(--font-size-sm);padding:0 var(--spacing-6);border-radius:var(--radius-full)}.btn-lg{height:var(--control-height-lg);font-size:var(--font-size-lg)}.btn-block{width:100%;display:flex}.btn-disabled,.btn:disabled{opacity:.5;filter:grayscale(.6);pointer-events:none}button[disabled].btn-primary{background:var(--color-text-disabled);color:var(--color-white);box-shadow:none;opacity:1}.btn-chip{height:var(--size-touch-min);padding:0 var(--spacing-4);font-size:var(--font-size-xs);border-radius:var(--radius-full)}.btn-icon{width:var(--size-input-height);padding:0}.btn-icon-sm{width:var(--size-touch-min);height:var(--size-touch-min);padding:0}.btn-row{gap:var(--spacing-3);align-items:stretch;display:flex}.btn-row>.btn{flex:1;width:100%;min-width:0}.tab-pill-list{padding:var(--spacing-2);background:var(--color-bg-card);border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);gap:var(--spacing-2);box-shadow:var(--shadow-sm);display:flex}.tab-pill-list-solid{background:var(--color-white-96);border-color:var(--color-border-card);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:none;backdrop-filter:none}.tab-pill-item{justify-content:center;align-items:center;gap:var(--spacing-1);min-height:var(--control-height-md);padding:var(--spacing-2) var(--spacing-2);border-radius:var(--radius-xl);font-size:var(--font-size-sm);color:var(--color-text-muted);transition:all var(--transition-base);text-align:center;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;display:flex}.tab-pill-item:active{transform:scale(var(--active-scale));background:var(--color-black-02)}.tab-pill-item-active{background:var(--gradient-brand);font-weight:var(--font-weight-bold);box-shadow:var(--shadow-primary-medium);color:var(--color-white)}.tab-chip-list{gap:var(--spacing-3);padding:var(--spacing-2) 0;display:flex}.tab-chip-item{padding:var(--spacing-3) var(--spacing-5);min-height:var(--size-touch-min);font-size:var(--font-size-sm);color:var(--color-text-muted);border-radius:var(--radius-full);background:var(--color-bg-card);border:1px solid var(--color-border-card);white-space:nowrap;transition:all var(--transition-fast);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.tab-chip-item:active{transform:scale(var(--active-scale))}.tab-chip-item-active{color:var(--color-primary);font-weight:var(--font-weight-semibold);background:var(--color-primary-tint);border-color:var(--color-primary-tint)}.input-group{gap:var(--spacing-2);flex-direction:column;display:flex}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.input-error-text{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--spacing-1);display:block}.form-section{gap:var(--spacing-2);margin-bottom:var(--spacing-5);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-required{color:var(--color-error)}.form-picker-row{padding:var(--spacing-4);background:var(--color-bg-secondary);border:1px solid var(--color-border-card);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;display:flex}.form-picker-half{flex:1}.form-picker-value{font-size:var(--font-size-sm);color:var(--color-text-primary)}.form-picker-placeholder{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.form-picker-arrow{font-size:var(--font-size-base);color:var(--color-text-muted)}.form-time-row{align-items:center;gap:var(--spacing-3);display:flex}.form-time-sep{font-size:var(--font-size-base);color:var(--color-text-muted);flex-shrink:0}.form-submit-btn{width:100%;height:var(--size-input-height);text-align:center;background:var(--gradient-brand);color:var(--color-white);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border-radius:var(--radius-xl);margin-top:var(--spacing-6);box-shadow:var(--shadow-brand), var(--shadow-inset-white-soft);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.form-submit-btn:active{transform:var(--active-transform);opacity:var(--active-opacity)}.form-submit-btn[disabled]{background:var(--color-text-disabled);box-shadow:none;opacity:1}.badge{box-sizing:border-box;min-height:var(--size-badge-md);padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);white-space:nowrap;background:var(--badge-bg,var(--color-bg-tertiary));color:var(--badge-text,var(--color-text-secondary));border:1px solid var(--badge-border,var(--color-border-secondary));justify-content:center;align-items:center;display:inline-flex}.badge-size-sm{padding:0 var(--spacing-2);min-height:var(--control-height-xs);font-size:var(--font-size-xs)}.badge-size-md{min-height:var(--control-height-2xs)}.badge-soft{background:var(--badge-bg-soft,var(--badge-bg,var(--color-bg-tertiary)));color:var(--badge-text-soft,var(--badge-text,var(--color-text-secondary)));border-color:var(--badge-border-soft,transparent)}.badge-solid{background:var(--badge-bg-solid,var(--badge-text,var(--color-text-primary)));color:var(--badge-text-solid,var(--color-text-inverse));border-color:var(--badge-border-solid,transparent)}.badge-outline{color:var(--badge-text-outline,var(--badge-text,var(--color-text-secondary)));border-color:var(--badge-border-outline,var(--badge-text,var(--color-text-secondary)));background:0 0}.badge-primary{--badge-bg-soft:var(--color-primary-tint);--badge-text-soft:var(--color-primary);--badge-bg-solid:var(--color-primary);--badge-border-outline:var(--color-primary-tint);--badge-text-outline:var(--color-primary)}.badge-success{--badge-bg-soft:var(--color-success-bg);--badge-text-soft:var(--color-success);--badge-bg-solid:var(--color-success);--badge-border-outline:var(--border-success-soft);--badge-text-outline:var(--color-success)}.badge-warning{--badge-bg-soft:var(--color-warning-bg);--badge-text-soft:var(--color-warning-text);--badge-bg-solid:var(--color-warning);--badge-border-outline:var(--border-warning-soft);--badge-text-outline:var(--color-warning-text-strong)}.badge-danger{--badge-bg-soft:var(--color-error-bg);--badge-text-soft:var(--color-error);--badge-bg-solid:var(--color-error);--badge-border-outline:var(--border-danger-soft);--badge-text-outline:var(--color-error)}.badge-info{--badge-bg-soft:var(--color-info-bg);--badge-text-soft:var(--color-primary);--badge-bg-solid:var(--color-primary);--badge-border-outline:var(--color-primary-tint);--badge-text-outline:var(--color-primary)}.badge-pending{--badge-bg-soft:var(--status-pending-bg);--badge-text-soft:var(--status-pending);--badge-bg-solid:var(--status-pending);--badge-border-outline:var(--border-warning-soft);--badge-text-outline:var(--status-pending)}.badge-confirmed{--badge-bg-soft:var(--status-confirmed-bg);--badge-text-soft:var(--status-confirmed);--badge-bg-solid:var(--status-confirmed);--badge-border-outline:var(--color-primary-tint);--badge-text-outline:var(--status-confirmed)}.badge-active{--badge-bg-soft:var(--status-active-bg);--badge-text-soft:var(--status-active);--badge-bg-solid:var(--status-active);--badge-border-outline:var(--border-success-soft);--badge-text-outline:var(--status-active)}.badge-completed{--badge-bg-soft:var(--status-completed-bg);--badge-text-soft:var(--status-completed);--badge-bg-solid:var(--status-completed);--badge-border-outline:var(--color-border-default);--badge-text-outline:var(--status-completed)}.badge-cancelled{--badge-bg-soft:var(--status-cancelled-bg);--badge-text-soft:var(--color-error);--badge-bg-solid:var(--color-error);--badge-border-outline:var(--border-danger-soft);--badge-text-outline:var(--color-error)}.badge-approved{--badge-bg-soft:var(--status-active-bg);--badge-text-soft:var(--status-active);--badge-bg-solid:var(--status-active);--badge-border-outline:var(--border-success-soft);--badge-text-outline:var(--status-active)}.badge-rejected{--badge-bg-soft:var(--status-cancelled-bg);--badge-text-soft:var(--color-error);--badge-bg-solid:var(--color-error);--badge-border-outline:var(--border-danger-soft);--badge-text-outline:var(--color-error)}.badge-scheduled{--badge-bg-soft:var(--status-confirmed-bg);--badge-text-soft:var(--status-confirmed);--badge-bg-solid:var(--status-confirmed);--badge-border-outline:var(--color-primary-tint);--badge-text-outline:var(--status-confirmed)}.badge-leave{--badge-bg-soft:var(--status-completed-bg);--badge-text-soft:var(--status-completed);--badge-bg-solid:var(--status-completed);--badge-border-outline:var(--color-border-default);--badge-text-outline:var(--status-completed)}.badge-neutral{--badge-bg-soft:var(--color-bg-tertiary);--badge-text-soft:var(--color-text-tertiary);--badge-bg-solid:var(--color-text-secondary);--badge-border-outline:var(--color-border-default);--badge-text-outline:var(--color-text-secondary)}.divider{background:var(--color-border-primary);height:1px;margin:var(--spacing-4) 0}.divider-offset-icon{margin-left:var(--size-input-height)}.date-row{align-items:stretch;gap:var(--spacing-2);display:flex}.date-chip{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-2xl);background:var(--color-bg-card);border:1px solid var(--color-border-card);box-shadow:var(--shadow-sm);transition:all var(--transition-base);cursor:pointer;flex-direction:column;flex:1;align-items:center;display:flex}.date-chip:hover{background:var(--color-primary-tint-subtle)}.date-chip-active{background:var(--color-primary-tint);border-color:var(--color-primary-tint);box-shadow:var(--shadow-primary-soft)}.date-chip-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.date-chip-active .date-chip-label{color:var(--color-primary)}.date-chip-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-1)}.date-chip-active .date-chip-sub{color:var(--color-primary-light)}.search-entry{align-items:center;gap:var(--spacing-3);padding:0 var(--spacing-4);height:var(--control-height-md);background:var(--color-bg-card);border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);display:flex}.search-entry-input{padding-right:var(--spacing-4)}.search-entry-control{min-width:0;height:100%;font-size:var(--font-size-base);color:var(--color-text-primary);outline-offset:2px;background:0 0;border:none;outline:3px solid #0000;flex:1}.search-entry-control:focus-visible{outline-color:var(--color-primary-focus-ring)}.search-entry-clear{font-size:var(--font-size-base);color:var(--color-text-tertiary);width:var(--size-touch-min);height:var(--size-touch-min);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.search-entry-text{min-width:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);flex:1}.search-entry-arrow{font-size:var(--font-size-base);color:var(--color-text-muted);flex-shrink:0}.page-container{background:0 0;min-height:100vh;position:relative;overflow-x:hidden}.page-shell{width:100%;max-width:var(--size-page-max);padding:0 var(--spacing-6);box-sizing:border-box;margin-left:auto;margin-right:auto}.page-content{padding-top:var(--stack-gap)}.page-state{width:100%;min-height:var(--size-page-min-loading);box-sizing:border-box;justify-content:center;align-items:center;display:flex}.page-stack{gap:var(--stack-gap);flex-direction:column;display:flex}.content-stack{gap:var(--stack-gap-inner);flex-direction:column;display:flex}.field{gap:var(--spacing-2);flex-direction:column;min-width:0;display:flex}.field-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);display:block}.field-required{color:var(--color-error)}.field-control{width:100%;min-width:0;min-height:var(--size-input-height);height:var(--size-input-height);padding:0 var(--spacing-4);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);transition:all var(--transition-base)}.field-control:focus{background:var(--color-white);border-color:var(--color-primary-focus-border);box-shadow:0 0 0 4px var(--color-primary-focus-ring);outline:3px solid var(--color-primary-focus-ring);outline-offset:1px}.field-control.is-error,.field-control[aria-invalid=true]{background:var(--color-white);border-color:var(--color-error)}.field-control[disabled],.field-control.is-disabled,.field-control[readonly]{color:var(--color-text-disabled);background:var(--color-bg-disabled);border-color:var(--color-border-secondary);box-shadow:none;opacity:1}textarea.field-control{height:auto;min-height:7rem;padding:var(--spacing-4);line-height:var(--line-height-normal)}.field-grid{gap:var(--spacing-4);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}@media screen and (width<=360px){.field-grid{grid-template-columns:minmax(0,1fr)}}.option-card{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-5);background:var(--color-bg-card);border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-card);transition:all var(--transition-base);cursor:pointer;display:flex}.option-card:active{transform:var(--active-transform)}.option-card-active{background:var(--color-primary-tint-subtle);border-color:var(--color-primary-focus-border);box-shadow:var(--shadow-primary-soft)}.app-fab{right:var(--spacing-5);bottom:var(--spacing-8);min-width:var(--size-action-min-sm);height:var(--control-height-lg);padding:0 var(--spacing-5);border-radius:var(--radius-full);background:var(--gradient-brand);color:var(--color-white);border:1px solid var(--color-white-22);box-shadow:var(--shadow-brand);justify-content:center;align-items:center;gap:var(--spacing-2);z-index:var(--z-overlay);cursor:pointer;display:inline-flex;position:fixed}.app-fab:active{transform:var(--active-transform);opacity:var(--active-opacity)}.app-fab-icon{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-white);line-height:1}.app-fab-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-white);line-height:var(--line-height-tight)}.chip-list{gap:var(--spacing-3);flex-wrap:wrap;display:flex}.chip{padding:var(--spacing-2) var(--spacing-5);border-radius:var(--radius-full);background:var(--color-primary-tint-subtle);border:1px solid var(--color-primary-tint);color:var(--color-text-secondary);font-size:var(--font-size-sm);align-items:center;display:inline-flex}.detail-list{flex-direction:column;display:flex}.detail-row{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) 0;border-bottom:1px solid var(--color-border-secondary);display:flex}.detail-row:last-child{border-bottom:none}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.detail-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);text-align:right}.section{box-sizing:border-box;width:100%;margin:0;padding:0}.section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-4)}.section-kicker{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.02em;color:var(--color-primary);background:var(--color-primary-tint);border-radius:var(--radius-full);padding:var(--spacing-2) var(--spacing-5);margin-bottom:var(--spacing-3);display:inline-block}.floating-bar{background:var(--glass-bg-strong);border-top:1px solid var(--color-border-secondary);box-shadow:var(--shadow-floating);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md))}.action-bar{padding:var(--spacing-4) var(--spacing-6)}.action-bar-row{align-items:center;gap:var(--spacing-3);display:flex}.bottom-action-bar{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));border-top:1px solid var(--color-border-secondary);padding:var(--spacing-4) var(--spacing-6);align-items:center;gap:var(--spacing-4);box-shadow:var(--shadow-floating);z-index:var(--z-sticky);flex-wrap:wrap;display:flex;position:fixed;bottom:0;left:0;right:0}.list-group{gap:var(--spacing-4);flex-direction:column;display:flex}.list-header{padding:0 var(--spacing-2) var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.list-header-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.02em}.list-header-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.skeleton{background:linear-gradient(90deg, var(--color-skeleton-base) 25%, var(--color-skeleton-highlight) 50%, var(--color-skeleton-base) 75%);background-size:var(--size-skeleton-bg) 100%;animation:shimmer var(--duration-skeleton) infinite}.skeleton-card{border-radius:var(--radius-2xl);height:12rem;margin-bottom:var(--spacing-4)}.skeleton-row{border-radius:var(--radius-xl);height:5rem}@keyframes shimmer{0%{background-position:calc(var(--size-skeleton-motion) * -1) 0}to{background-position:var(--size-skeleton-motion) 0}}.loading-mask{background:var(--color-mask-light);z-index:var(--z-loading);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.w-full{width:100%}.h-full{height:100%}.relative{position:relative}.absolute{position:absolute}.overflow-hidden{overflow:hidden}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.break-words{overflow-wrap:break-word;word-break:break-word}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.touch-target{min-width:var(--size-touch-min);min-height:var(--size-touch-min)}.avatar-md{width:var(--size-avatar);height:var(--size-avatar);border-radius:var(--radius-2xl);justify-content:center;align-items:center;display:flex}@keyframes fadeInUp{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes premiumIn{0%{opacity:0;filter:blur(4px);transform:translateY(1rem)scale(.96)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes springIn{0%{opacity:0;transform:translateY(3rem)}60%{transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@keyframes maskIn{0%{opacity:0}to{opacity:1}}.animate-in{animation:premiumIn var(--duration-enter) cubic-bezier(.25, 1, .5, 1) both}.animate-in-fast{animation:premiumIn var(--duration-enter-fast) cubic-bezier(.25, 1, .5, 1) both}.animate-scale{animation:scaleIn var(--duration-enter-fast) cubic-bezier(.25, 1, .5, 1) both}.animate-spring{animation:.5s cubic-bezier(.34,1.56,.64,1) both springIn}.animate-mask{animation:.3s both maskIn}.animate-slide-right{animation:slideInRight var(--duration-enter-fast) cubic-bezier(.25, 1, .5, 1) both}.delay-1{animation-delay:40ms}.delay-2{animation-delay:80ms}.delay-3{animation-delay:.12s}.delay-4{animation-delay:.16s}.delay-5{animation-delay:.2s}.delay-6{animation-delay:.24s}.delay-7{animation-delay:.28s}.delay-8{animation-delay:.32s}.press-spring{transition:transform var(--transition-spring), opacity var(--transition-fast)}.press-spring:active{transform:scale(var(--active-scale));opacity:.95}.text-gradient{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-light) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #ffffff4d}.glass-dark{-webkit-backdrop-filter:blur(16px);background:#0f172acc;border:1px solid #ffffff1a}.content-card{background:var(--color-bg-elevated);border-radius:var(--radius-xl);border:1px solid var(--color-border-secondary);box-shadow:var(--shadow-sm)}.stats-grid{gap:var(--spacing-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--color-bg-elevated);border-radius:var(--radius-xl);border:1px solid var(--color-border-secondary);padding:var(--spacing-5);gap:var(--spacing-2);flex-direction:column;display:flex}.stat-value{font-family:var(--font-family-mono);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.section-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-4);margin-bottom:var(--spacing-6);flex-wrap:wrap;display:flex}.section-header__title{font-size:var(--font-size-2xl);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin:0}.section-header__subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-1)}.accent-bar{padding-left:var(--spacing-4);position:relative}.accent-bar:before{content:"";border-radius:var(--radius-full);background:linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-light) 100%);width:3px;position:absolute;top:0;bottom:0;left:0}.empty-state{padding:var(--spacing-16) var(--spacing-6);text-align:center;justify-content:center;align-items:center;gap:var(--spacing-4);flex-direction:column;display:flex}.empty-state__icon{color:var(--color-text-tertiary);opacity:.5;font-size:3rem}.empty-state__title{font-size:var(--font-size-xl);color:var(--color-text-secondary)}.empty-state__description{font-size:var(--font-size-sm);color:var(--color-text-tertiary);max-width:360px}.table-wrapper{background:var(--color-bg-elevated);border:1px solid var(--color-border-secondary);border-radius:var(--radius-xl);overflow:hidden}.table-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--color-border-secondary);flex-wrap:wrap;display:flex}.table-footer{padding:var(--spacing-3) var(--spacing-5);border-top:1px solid var(--color-border-secondary);justify-content:flex-end;align-items:center;display:flex}.actions-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-4);flex-wrap:wrap;display:flex}.divider-elegant{background:linear-gradient(90deg, transparent, var(--color-border-primary), transparent);height:1px;margin:var(--spacing-8) 0}.divider-vertical{background:var(--color-border-primary);width:1px;height:100%}.card-ghost{border-radius:var(--radius-lg);padding:var(--spacing-4);transition:var(--transition-all);background:0 0;border:1px solid #0000}.card-ghost:hover{background:var(--color-bg-secondary);border-color:var(--color-border-secondary);box-shadow:var(--shadow-sm)}.number-highlight{font-family:var(--font-family-mono);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight);tabular-nums:tabular-nums}.number-highlight--positive{color:var(--color-success)}.number-highlight--negative{color:var(--color-error)}.teacher-panel{background:var(--teacher-panel);border:1px solid var(--teacher-line);border-radius:var(--radius-xl)}.teacher-accent-text{color:var(--teacher-accent)}.teacher-accent-bg{background:var(--teacher-accent-soft)}.payment-header-wechat{background:linear-gradient(135deg, var(--payment-wechat-header-start) 0%, var(--payment-wechat-header-end) 100%)}.payment-header-alipay{background:linear-gradient(135deg, var(--payment-alipay-header-start) 0%, var(--payment-alipay-header-end) 100%)}@media screen and (width>=768px){.page-shell{max-width:var(--size-page-max-compact)}}@media screen and (width>=1024px){.page-shell{max-width:var(--size-page-max)}}@media (width<=768px){.hide-mobile{display:none!important}.container-custom{padding:0 var(--spacing-4)}.section-spacing{padding:var(--spacing-8) 0}}@media (width>=769px){.hide-desktop{display:none!important}}::selection{background:var(--color-primary-subtle);color:var(--color-primary-dark)}::selection{background:var(--color-primary-subtle);color:var(--color-primary-dark)}.public-app{min-height:100vh;color:var(--color-text-primary);background:var(--gradient-app-background);font-family:var(--font-family-base)}.public-app .app-shell__main{background:var(--gradient-app-background);flex:1 0 auto}.public-app .page-layout{background:radial-gradient(circle at 12% 0%, #1d5fbf12, transparent 30rem), var(--gradient-app-background)}.public-app .page-layout__content{gap:24px;width:100%;max-width:72rem;padding:28px 24px 48px}.public-app .shell-container,.public-app .container-custom{width:min(100% - 40px,72rem);max-width:72rem;margin-inline:auto}.public-app .page-shell{width:100%;max-width:72rem;margin-inline:auto;padding-inline:0}.public-app .app-shell__main>.page-shell{padding-block:28px 48px}.public-app.app-shell .navbar-wrapper{border-bottom:1px solid var(--color-border-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;box-shadow:0 8px 28px #0f172a0a}.public-app.app-shell .navbar-content{min-height:68px}.public-app.app-shell .navbar-brand-logo{height:42px}.public-app.app-shell .primary-nav{border:1px solid var(--color-border-card);border-radius:var(--radius-full);background:var(--color-bg-secondary);padding:5px}.public-app.app-shell .primary-nav__item{border-radius:var(--radius-full);min-height:38px;font-size:var(--font-size-xs);padding:0 15px}.public-app.app-shell .primary-nav__item:hover,.public-app.app-shell .primary-nav__item.is-active{background:var(--color-bg-primary);color:var(--color-primary);box-shadow:var(--shadow-sm)}.public-app.app-shell .primary-nav__item.is-active:after{display:none}.public-app.app-shell .navbar-button--login,.public-app.app-shell .language-switcher-button,.public-app.app-shell .navbar-menu-trigger{border-color:var(--color-border-card);border-radius:var(--radius-full);background:var(--color-bg-primary);min-height:40px}.public-app .page-header{isolation:isolate;border-radius:var(--radius-2xl);background:var(--gradient-brand);min-height:126px;box-shadow:var(--shadow-brand), var(--shadow-inset-white-soft);border:1px solid #ffffff2e;align-items:flex-end;padding:26px 28px;position:relative;overflow:hidden}.public-app .page-header:after{z-index:-1;content:"";background:#ffffff1f;border-radius:50%;width:180px;height:180px;position:absolute;top:-58px;right:8%}.public-app .page-header__title,.public-app .page-header h1,.public-app .page-header h2{color:var(--color-white);font-size:clamp(1.7rem,3vw,2.35rem);font-weight:var(--font-weight-bold);letter-spacing:-.03em}.public-app .page-header__description,.public-app .page-header p{color:#ffffffc2;font-size:var(--font-size-sm)}.public-app .page-header__actions .el-button:not(.el-button--primary){color:var(--color-white);background:#ffffff24;border-color:#ffffff52}.public-app .card,.public-app .surface-glass,.public-app .content-card,.public-app .el-card,.public-app .auth-card,.public-app .form-card,.public-app .detail-card,.public-app .stat-card{border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);background:var(--glass-bg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md))}.public-app .el-card{--el-card-border-color:var(--color-border-card);--el-card-border-radius:var(--radius-2xl);--el-card-padding:24px}.public-app .card:hover,.public-app .el-card.is-always-shadow:hover,.public-app .el-card.is-hover-shadow:hover{border-color:var(--color-primary-focus-border);box-shadow:var(--shadow-md)}.public-app .surface-subtle,.public-app .info-box,.public-app .summary-box,.public-app .form-section{border:1px solid var(--color-border-secondary);border-radius:var(--radius-xl);background:var(--color-bg-secondary);box-shadow:none}.public-app .btn,.public-app .el-button{border-radius:var(--radius-full);min-height:44px;font-weight:var(--font-weight-semibold);transition:transform var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base), background-color var(--transition-base)}.public-app .el-button--primary,.public-app .btn-primary{background:var(--gradient-brand);box-shadow:var(--shadow-brand), var(--shadow-inset-white-soft);color:var(--color-white);border-color:#0000}.public-app .el-button--primary:hover,.public-app .btn-primary:hover{box-shadow:var(--shadow-primary-medium), var(--shadow-inset-white-soft);transform:translateY(-1px)}.public-app .btn-secondary,.public-app .el-button.is-plain{border-color:var(--border-primary-soft);background:var(--color-primary-tint);color:var(--color-primary)}.public-app .el-input__wrapper,.public-app .el-select__wrapper,.public-app .el-textarea__inner,.public-app .el-date-editor.el-input__wrapper,.public-app .field-control{border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);background:var(--color-bg-secondary);min-height:48px;box-shadow:none}.public-app .el-input__wrapper:hover,.public-app .el-select__wrapper:hover,.public-app .el-textarea__inner:hover{border-color:var(--color-primary-focus-border)}.public-app .el-input__wrapper.is-focus,.public-app .el-select__wrapper.is-focused,.public-app .el-textarea__inner:focus,.public-app .field-control:focus-visible{border-color:var(--color-primary);outline:3px solid var(--color-primary-focus-ring);outline-offset:1px;box-shadow:none}.public-app .el-tag,.public-app .badge,.public-app .status-badge,.public-app .chip{border-radius:var(--radius-full);min-height:28px;font-weight:var(--font-weight-medium)}.public-app .el-tabs__nav-wrap{border:1px solid var(--color-border-card);border-radius:var(--radius-2xl);background:var(--color-bg-card);box-shadow:var(--shadow-sm);padding:5px}.public-app .el-tabs__active-bar,.public-app .el-tabs__nav-wrap:after{display:none}.public-app .el-tabs__item{border-radius:var(--radius-xl);min-height:42px}.public-app .el-tabs__item.is-active{background:var(--gradient-brand);color:var(--color-white)}.public-app .menu-row,.public-app .list-item,.public-app .setting-item,.public-app .notif-item{border-bottom-color:var(--color-border-secondary);min-height:64px}.public-app .section-title,.public-app h2,.public-app h3,.public-app h4{letter-spacing:-.015em}.public-app .empty-state-wrapper,.public-app .async-state,.public-app .loading-state{border-radius:var(--radius-2xl)}.public-app.app-shell .footer-wrapper{border-top:1px solid var(--color-border-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffbd;margin-top:24px}.public-app.app-shell .footer-content{gap:20px;padding-block:28px}.public-app.app-shell .footer-main{grid-template-columns:1.3fr 1fr 1fr;gap:28px}.public-app.app-shell .footer-bottom{font-size:var(--font-size-xs);padding-top:16px}.public-app .mini-responsive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.public-app .mini-responsive-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.public-app .mini-menu-card{padding:0;overflow:hidden}.public-app .mini-menu-row{border-bottom:1px solid var(--color-border-secondary);min-height:72px;color:inherit;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;text-decoration:none;display:flex}.public-app .mini-menu-row:last-child{border-bottom:0}.public-app .mini-menu-row:hover{background:var(--color-primary-tint-subtle);color:inherit;text-decoration:none}.public-app .mini-menu-row__copy{min-width:0}.public-app .mini-menu-row__copy strong,.public-app .mini-menu-row__copy span{display:block}.public-app .mini-menu-row__copy span{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:4px}@media (width<=768px){.public-app .page-layout__content{gap:12px;max-width:32rem;padding:16px 12px 36px}.public-app .app-shell__main>.page-shell{max-width:32rem;padding:16px 12px 36px}.public-app .shell-container,.public-app .container-custom{width:min(100% - 24px,32rem)}.public-app.app-shell .navbar-content{width:calc(100% - 24px);min-height:60px}.public-app.app-shell .navbar-brand-logo{height:34px}.public-app .page-header{border-radius:var(--radius-2xl);min-height:118px;padding:22px 20px}.public-app .page-header__title,.public-app .page-header h1,.public-app .page-header h2{font-size:1.65rem}.public-app .mini-responsive-grid,.public-app .mini-responsive-grid--three,.public-app .footer-main{grid-template-columns:minmax(0,1fr)}.public-app .card,.public-app .surface-glass,.public-app .content-card,.public-app .el-card{border-radius:var(--radius-2xl)}.public-app .el-card{--el-card-padding:20px}.public-app.app-shell .footer-main{grid-template-columns:minmax(0,1fr);gap:22px}.public-app.app-shell .footer-content{width:calc(100% - 32px)}}@media (prefers-reduced-motion:reduce){.public-app *,.public-app :before,.public-app :after{scroll-behavior:auto}}:root{--layout-gap-md:16px}.language-switcher-button .el-button__text{align-items:center;gap:var(--spacing-1);padding:0;line-height:1;display:inline-flex}.wizard-steps .el-step__icon{background-color:var(--color-bg-secondary);width:36px;height:36px;color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.wizard-steps .el-step__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.wizard-steps .el-step__description{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.booking-wizard__login-modal .el-dialog__body{padding-top:var(--spacing-2)}.room-image .el-image{width:100%}.wizard-confirmation__fields .el-form-item{margin-bottom:16px}
