:root{--bg: #f4f6fb;--bg-accent: #eef1f8;--surface: #ffffff;--surface-elevated: #ffffff;--border: #e4e8f0;--border-strong: #d0d7e2;--text: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--primary: #4f46e5;--primary-hover: #4338ca;--primary-soft: #eef2ff;--success: #059669;--success-soft: #ecfdf5;--warning: #d97706;--warning-soft: #fffbeb;--error: #dc2626;--error-soft: #fef2f2;--shadow-sm: 0 1px 2px rgba(17, 24, 39, .05);--shadow-md: 0 4px 16px rgba(17, 24, 39, .08);--shadow-lg: 0 12px 40px rgba(17, 24, 39, .12);--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--font: "Inter", system-ui, -apple-system, sans-serif;--sidebar-width: 240px;--topbar-height: 64px}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}body.modal-open{overflow:hidden}body.is-authenticated #guest-section{display:none!important}body:not(.is-authenticated) #app-section,body:not(.is-authenticated):not(.schedule-page) #topbar-actions{display:none!important}.app{min-height:100vh}.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:var(--topbar-height);padding:0 1.5rem;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:.625rem;color:inherit}.topbar-start{display:flex;align-items:center;gap:1rem;min-width:0}.topbar-nav{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.topbar-nav .btn{white-space:nowrap}.topbar-nav-link.is-active{background:var(--primary-soft);color:var(--primary);pointer-events:none}.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;font-weight:700;font-size:.95rem}.brand-name{font-weight:700;font-size:1.125rem;letter-spacing:-.02em}.topbar-actions{display:flex;align-items:center;gap:.5rem}.topbar-actions .btn.is-active{background:var(--primary-soft);color:var(--primary)}.btn-icon{min-width:2rem;padding:.25rem .5rem;font-size:1.25rem;line-height:1}.user-chip{display:flex;align-items:center;gap:.625rem;padding:.375rem .75rem .375rem .375rem;background:var(--bg);border-radius:999px;border:1px solid var(--border)}.user-chip-avatar{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:.8rem;text-transform:uppercase}.user-chip-info{display:flex;flex-direction:column;line-height:1.2}.user-chip-email{font-size:.8125rem;font-weight:500}.user-chip-role{font-size:.75rem;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.625rem 1rem;border:1px solid transparent;border-radius:var(--radius-sm);font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{background:#dc2626;color:#fff;border:none}.btn-danger:hover:not(:disabled){background:#b91c1c}.modal-message{margin:0 0 1.25rem;color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.modal-dialog--confirm .form-actions{justify-content:flex-end}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg);color:var(--text)}.btn-sm{padding:.375rem .625rem;font-size:.8125rem}.btn-block{width:100%}.auth-layout{display:grid;place-items:center;min-height:calc(100vh - var(--topbar-height));padding:2rem 1rem 3rem;background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(79,70,229,.12),transparent),var(--bg)}.auth-card{width:100%;max-width:440px;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-header{margin-bottom:1.75rem;text-align:center}.auth-header h1{margin:0 0 .375rem;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.auth-header p{margin:0;color:var(--text-secondary);font-size:.9375rem}.auth-tabs{display:flex;gap:.25rem;padding:.25rem;margin-bottom:1.5rem;background:var(--bg);border-radius:var(--radius)}.auth-tab{flex:1;padding:.5rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.auth-tab:hover{color:var(--text)}.auth-tab.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.auth-panel{display:none}.auth-panel.active{display:block}.auth-switch{margin:1rem 0 0;text-align:center;color:var(--text-secondary);font-size:.875rem}.btn-link{padding:0;border:none;background:none;color:var(--primary);font:inherit;font-size:inherit;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--primary-hover, #1d4ed8)}.panel-desc{margin:0 0 1rem;color:var(--text-secondary);font-size:.875rem}.form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.375rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.field label{font-size:.8125rem;font-weight:500;color:var(--text-secondary)}.field input,.field textarea,.field select{width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:.9375rem;color:var(--text);transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.ui-select-wrap{position:relative;width:100%}.ui-select-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-select{position:relative;width:100%}.ui-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:.9375rem;color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.ui-select-trigger:hover:not(:disabled){border-color:var(--border-strong);background:var(--bg-accent)}.ui-select.is-open .ui-select-trigger,.ui-select-trigger:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e526}.ui-select.is-disabled .ui-select-trigger{opacity:.6;cursor:not-allowed;background:var(--bg)}.ui-select-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-value.is-placeholder{color:var(--text-muted)}.ui-select-chevron{width:.5rem;height:.5rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .2s ease;flex-shrink:0;margin-top:-.15rem}.ui-select.is-open .ui-select-chevron{transform:rotate(-135deg);margin-top:.15rem}.ui-select-panel{position:absolute;z-index:200;top:calc(100% + .375rem);left:0;right:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-lg);animation:ui-select-in .15s ease}@keyframes ui-select-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ui-select-search-wrap{padding:.5rem;border-bottom:1px solid var(--border);background:var(--bg)}.ui-select-search{width:100%;padding:.5rem .625rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:.875rem;color:var(--text)}.ui-select-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.ui-select-list{list-style:none;margin:0;padding:.375rem;max-height:16rem;overflow-y:auto}.ui-select-group{padding:.5rem .625rem .25rem;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none}.ui-select-option{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .625rem;border-radius:6px;font-size:.875rem;color:var(--text);cursor:pointer;transition:background .1s ease}.ui-select-option:hover,.ui-select-option.is-active{background:var(--bg-accent)}.ui-select-option.is-selected{background:var(--primary-soft);color:var(--primary);font-weight:500}.ui-select-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-check{flex-shrink:0;font-size:.75rem;font-weight:700}.ui-select-empty{padding:.75rem;text-align:center;font-size:.875rem;color:var(--text-muted)}.field textarea{resize:vertical;min-height:5rem}.field-hint{font-size:.75rem;color:var(--text-muted)}.form-inline{display:grid;grid-template-columns:1fr auto;align-items:end;gap:1rem}#menu-item-form.field-row,#menu-item-form .field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.menu-catalog-wrap{margin-top:1rem}.menu-catalog{display:flex;flex-direction:column;gap:.5rem}.menu-category-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}.menu-category-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;font-weight:600;color:var(--text);background:var(--bg);transition:background .15s ease}.menu-category-toggle::-webkit-details-marker{display:none}.menu-category-group[open]>.menu-category-toggle{border-bottom:1px solid var(--border);background:var(--bg-accent)}.menu-category-toggle:hover{background:var(--bg-accent)}.menu-category-name{font-size:.9375rem}.menu-category-meta{display:inline-flex;align-items:center;gap:.625rem}.menu-category-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border)}.menu-category-chevron{width:.5rem;height:.5rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .2s ease}.menu-category-group[open] .menu-category-chevron{transform:rotate(-135deg);margin-top:.25rem}.menu-category-panel{overflow:hidden}.menu-category-panel .data-table{border:none;box-shadow:none}.menu-category-panel .data-table th:first-child,.menu-category-panel .data-table td:first-child{padding-left:1.25rem}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.form-actions .checkbox-label{margin-right:auto}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;margin:0;padding:0;flex-shrink:0}.invite-banner{margin-bottom:1.25rem;padding:1rem 1.125rem;border-radius:var(--radius-sm);background:var(--primary-soft);border:1px solid rgba(79,70,229,.15)}.invite-banner-title{margin:0 0 .25rem;font-size:1rem;font-weight:600;color:var(--primary)}.invite-banner p{margin:.25rem 0 0;font-size:.875rem;color:var(--text-secondary)}.subscription-banner{margin-bottom:1rem;padding:.875rem 1rem;border-radius:var(--radius-sm);background:#fff7ed;border:1px solid #fed7aa}.subscription-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.subscription-banner-title{margin:0;font-size:.9375rem;font-weight:600;color:#c2410c}.subscription-banner-text{margin:.25rem 0 0;font-size:.875rem;color:var(--text-secondary)}.subscription-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem 1.5rem;margin-bottom:1rem}.subscription-profile-renew{margin-top:.5rem}.billing-options{display:grid;gap:.75rem;margin-bottom:.75rem}.billing-hint{margin:0}.payment-integrations-grid{display:grid;gap:1rem}.payment-integration-card .payment-integration-header,.payment-integration-toggle{margin-bottom:1rem}.payment-webhook-row{display:flex;gap:.5rem;align-items:center}.payment-webhook-row input{flex:1}.booking-payments-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.booking-online-pay-field input{width:7.5rem}display: flex; align-items: center; gap: .5rem; } .schedule-wrap{padding:0;overflow:hidden}.schedule-controls .schedule-date-actions .form-actions{margin:0}.schedule-meta{padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border)}.schedule-meta p{margin:0}.schedule-meta-sub{margin-top:.25rem!important;font-size:.875rem;color:var(--text-secondary)}.schedule-scroll{overflow:auto}.schedule-layout{--slot-width: 3.25rem;min-width:max-content}.schedule-time-ruler,.schedule-row{display:grid;grid-template-columns:12rem 1fr}.schedule-time-ruler{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--border)}.schedule-time-ruler-track,.schedule-row-grid{display:grid;grid-template-columns:repeat(var(--slot-count),var(--slot-width))}.schedule-time-ruler-slot{font-size:.6875rem;color:var(--text-muted);text-align:center;padding:.5rem .125rem;border-left:1px solid var(--border)}.schedule-row{border-bottom:1px solid var(--border)}.schedule-row:last-child{border-bottom:none}.schedule-space-head{padding:.75rem 1rem;border-right:1px solid var(--border);background:var(--bg)}.schedule-space-head--spacer{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.schedule-space-code{display:block;font-weight:600;font-size:.875rem}.schedule-space-name{display:block;font-size:.8125rem;color:var(--text-secondary)}.schedule-space-capacity{display:block;font-size:.75rem;color:var(--text-muted)}.schedule-row-track{position:relative;min-height:4.5rem}.schedule-row-grid{position:relative;min-height:4.5rem;--slot-width: 3.25rem}.schedule-slot-grid{display:contents}.schedule-slot{border-left:1px solid rgba(148,163,184,.25);min-height:4.5rem;cursor:pointer;transition:background .15s ease}.schedule-slot:hover,.schedule-slot:focus-visible{background:var(--primary-soft);outline:none}.schedule-slot--drop-target{background:#4f46e52e;box-shadow:inset 0 0 0 2px var(--primary)}.schedule-drag-active .schedule-slot{cursor:copy}.schedule-booking{position:absolute;top:.375rem;bottom:.375rem;left:calc((var(--start) - 1) * var(--slot-width));width:calc(var(--span) * var(--slot-width) - .25rem);border:1px solid rgba(79,70,229,.25);border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);padding:.375rem .5rem;text-align:left;cursor:grab;overflow:hidden;z-index:1;touch-action:none}.schedule-booking[draggable=true]:active{cursor:grabbing}.schedule-booking--dragging{opacity:.45;z-index:3}.schedule-booking[draggable=false]{cursor:pointer}.schedule-booking-name{display:block;font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-booking-time,.schedule-booking-meta{display:block;font-size:.6875rem;opacity:.85}.schedule-booking--new{background:#f8fafc;border-color:var(--border);color:var(--text-secondary)}.schedule-booking--cancelled{background:#fee2e2;border-color:#fecaca;color:#b91c1c;text-decoration:line-through}.schedule-booking--completed{background:var(--success-soft);border-color:#16a34a33;color:var(--success)}.schedule-booking--paid{background:#dcfce7;border-color:#86efac;color:#15803d}.schedule-booking--paid .schedule-booking-time,.schedule-booking--paid .schedule-booking-meta{color:#16a34a}.venue-hours-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.card-subtitle{margin:0 0 1rem;font-size:.9375rem;font-weight:600}.venue-hours-fields{display:grid;gap:.625rem;margin-bottom:1rem}.venue-hours-row{display:grid;grid-template-columns:2.5rem 7rem 1fr auto 1fr;gap:.75rem;align-items:center}.venue-hours-day{font-weight:600;font-size:.875rem}.venue-hours-closed{font-size:.8125rem}.venue-hours-sep{color:var(--text-muted)}.booking-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;padding:.25rem;border-radius:var(--radius-sm);background:var(--bg)}.booking-tab{flex:1;padding:.625rem .875rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.booking-tab:hover{color:var(--text)}.booking-tab.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.booking-tab-panel{display:none}.booking-tab-panel.active{display:block}.booking-items-hint{margin:0 0 .75rem}.reports-controls .field-row{align-items:end}.reports-load-field .btn{width:100%}.reports-actions{display:flex;gap:.5rem;width:100%}.reports-actions .btn{flex:1;white-space:nowrap}.reports-meta{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary)}.reports-wrap{overflow-x:auto}.reports-table th,.reports-table td{white-space:nowrap}.table-subtext{font-size:.8125rem;color:var(--text-muted)}.orders-row{cursor:pointer}.orders-row:hover{background:var(--bg)}.orders-row.is-active{background:var(--primary-soft)}.orders-detail{margin-top:1rem}.orders-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.orders-detail-subtitle{margin:0 0 .5rem;font-size:.9375rem}.orders-detail-notes{margin-top:.5rem;white-space:pre-wrap}.orders-detail-table-wrap{overflow-x:auto;margin-bottom:1rem}.form-section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.legal-effective-grid{display:grid;gap:.875rem}.legal-effective-item dt{font-size:.8125rem;color:var(--text-muted);margin-bottom:.25rem}.legal-effective-item dd{margin:0;font-size:.9375rem;line-height:1.45}.legal-source-badge{display:inline-block;margin-left:.5rem;padding:.125rem .375rem;border-radius:var(--radius-sm);background:var(--bg);color:var(--text-muted);font-size:.75rem;vertical-align:middle}.form-actions #booking-contract-download-btn{margin-right:auto}.btn-danger-text{color:var(--danger, #c62828)}.reports-table .report-money{text-align:right;font-variant-numeric:tabular-nums}.reports-total-row td{border-top:2px solid var(--border);background:var(--bg)}.report-status{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.report-status--paid{background:#dcfce7;color:#15803d}.report-status--new{background:#f1f5f9;color:#475569}.report-status--cancelled{background:#fee2e2;color:#b91c1c}.report-status--completed{background:#dbeafe;color:#1d4ed8}.booking-section-title{margin:0;font-size:.9375rem;font-weight:600;color:var(--text)}.booking-payments-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1.25rem 0 .75rem}.booking-payment-open-btn{width:2rem;height:2rem;padding:0;border:1px solid #86efac;border-radius:6px;background:#f0fdf4;color:#15803d;font-size:1.25rem;line-height:1;flex-shrink:0}.booking-payment-open-btn:hover{background:#dcfce7}.booking-payments-section{margin-top:.25rem}.booking-payments-empty{margin:0 0 .75rem;font-size:.875rem;color:var(--text-muted)}.booking-payments-table{margin-bottom:.5rem}.booking-payments-table th,.booking-payments-table td{font-size:.8125rem}.booking-payments-total{display:flex;justify-content:flex-end;gap:.375rem;font-size:.875rem;color:var(--text-secondary)}.booking-payments-total strong{color:#15803d}.booking-order-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:1rem;min-height:24rem}.booking-order-left,.booking-order-right{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.booking-order-left{overflow:hidden}.booking-items-content{flex:1;overflow-y:auto;padding:.75rem}.booking-order-empty,.booking-menu-empty{margin:0;padding:1.5rem .75rem;text-align:center;color:var(--text-muted);font-size:.875rem}.booking-order-line{display:flex;align-items:center;gap:.5rem;min-width:0;padding:.5rem 0;border-bottom:1px solid var(--border)}.booking-order-line:last-child{border-bottom:none}.booking-order-line-name{flex:0 1 28%;min-width:3.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:500;line-height:1.35}.booking-order-line-qty{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.booking-order-qty-btn{width:1.75rem;height:1.75rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:1rem;line-height:1;cursor:pointer}.booking-order-qty-btn--plus{color:#15803d;border-color:#86efac;background:#f0fdf4}.booking-order-qty-btn:hover{background:var(--surface-hover, #f8fafc)}.booking-order-qty-value{min-width:1.25rem;text-align:center;font-size:.875rem;font-weight:600}.booking-order-line-price{flex-shrink:0;min-width:4.5rem;text-align:right;font-size:.875rem;font-weight:600;white-space:nowrap}.booking-order-line-remove{flex-shrink:0;width:1.75rem;height:1.75rem;border:none;border-radius:4px;background:transparent;color:#dc2626;font-size:1.125rem;line-height:1;cursor:pointer}.booking-order-line-remove:hover{background:#fef2f2}.booking-order-line-notes{flex:1 1 6rem;min-width:0;margin:0;padding:.375rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font:inherit;font-size:.8125rem;box-sizing:border-box}.booking-order-line-notes:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.booking-order-line--service-fee{background:#f8fafc;border-radius:var(--radius-sm);padding:.5rem .625rem;margin-top:.25rem}.booking-order-line--service-fee .booking-order-line-name{flex:1;font-style:italic;color:var(--text-secondary)}.booking-order-line--service-fee .booking-order-line-price{flex-shrink:0}.booking-total-row{display:flex;align-items:center;justify-content:flex-end;gap:1.5rem;padding:.875rem 1rem;border-top:1px solid var(--border);background:var(--bg);font-size:1rem}.booking-subtotal-wrap{display:flex;align-items:center;gap:.5rem;margin-right:auto;font-size:.875rem;color:var(--text-secondary)}.booking-subtotal-wrap[hidden]{display:none}.booking-total-label{color:var(--text-secondary);font-size:.875rem}.booking-total-row strong{font-size:1.125rem;color:var(--primary)}.booking-menu-search-wrap{padding:.75rem;border-bottom:1px solid var(--border)}.booking-menu-search{width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font:inherit;font-size:.875rem}.booking-menu-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.booking-menu-tree{flex:1;overflow-y:auto;padding:.375rem 0}.booking-menu-category-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:var(--text);font:inherit;font-size:.875rem;text-align:left;cursor:pointer}.booking-menu-category-toggle:hover{background:var(--bg)}.booking-menu-category-caret{width:.625rem;height:.625rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg);transition:transform .15s ease;flex-shrink:0}.booking-menu-category.is-expanded .booking-menu-category-caret{transform:rotate(45deg)}.booking-menu-category-icon{width:1rem;height:.875rem;border-radius:2px 2px 0 0;background:linear-gradient(180deg,#facc15,#eab308);position:relative;flex-shrink:0}.booking-menu-category-icon:before{content:"";position:absolute;top:-.25rem;left:.125rem;width:.75rem;height:.375rem;border-radius:2px 2px 0 0;background:#fde047}.booking-menu-category-label{font-weight:500}.booking-menu-category-items{padding:0 .75rem .375rem 2rem}.booking-menu-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0}.booking-menu-item-name{flex:1;min-width:0;font-size:.8125rem;line-height:1.35}.booking-menu-item-price{font-size:.8125rem;color:var(--text-muted);white-space:nowrap}.booking-menu-item-add{width:1.5rem;height:1.5rem;border:1px solid #86efac;border-radius:4px;background:#f0fdf4;color:#15803d;font-size:1rem;line-height:1;cursor:pointer;flex-shrink:0}.booking-menu-item-add:hover{background:#dcfce7}@media(max-width:768px){.booking-order-layout{grid-template-columns:1fr;min-height:auto}.booking-order-left,.booking-order-right{min-height:14rem}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:1rem}.modal--stacked{z-index:210}.modal[hidden]{display:none!important}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73}.modal-backdrop--blocking{cursor:default}.modal--blocking .modal-dialog{width:min(100%,36rem)}.news-modal-meta{margin:0 0 .5rem;font-size:.875rem;color:var(--text-secondary)}.news-modal-counter{margin:0 0 .75rem;font-size:.8125rem;color:var(--text-muted)}.news-modal-body{margin:0 0 1.25rem;white-space:pre-wrap;line-height:1.6;max-height:50vh;overflow:auto}.schedule-main.is-news-blocked{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.45}.modal-dialog{position:relative;width:min(100%,28rem);padding:1.25rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg, 0 20px 40px rgba(15, 23, 42, .18))}.modal-dialog.modal-dialog--wide{width:min(64rem,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.modal-title{margin:0;font-size:1.125rem;font-weight:600}.table-actions{display:flex;flex-wrap:wrap;gap:.375rem}.dashboard{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:calc(100vh - var(--topbar-height))}.sidebar{padding:1.25rem .75rem;background:var(--surface);border-right:1px solid var(--border)}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font:inherit;font-size:.875rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,color .15s}a.nav-item{text-decoration:none}.schedule-page{background:var(--bg)}.schedule-app{min-height:100vh;display:flex;flex-direction:column}.schedule-topbar{justify-content:space-between}.schedule-topbar-start{display:flex;align-items:center;gap:1rem;min-width:0;flex:1}.schedule-topbar-start .topbar-nav{flex:1}.brand-link{display:inline-flex;align-items:center;gap:.625rem;text-decoration:none;color:inherit}.schedule-topbar-title{margin:0;font-size:1.125rem;font-weight:600}.schedule-main{flex:1;width:min(100%,90rem);margin:0 auto;padding:1.5rem}.nav-item:hover{background:var(--bg);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary)}.nav-icon{font-size:.875rem;opacity:.7}.nav-group{display:flex;flex-direction:column;gap:.125rem}.nav-group-toggle{justify-content:flex-start}.nav-group-toggle .nav-label{flex:1}.nav-chevron{width:.45rem;height:.45rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.5;transition:transform .2s ease;margin-right:.125rem}.nav-group.open .nav-chevron{transform:rotate(-135deg);margin-top:.2rem}.nav-submenu{display:none;flex-direction:column;gap:.125rem;padding-left:.5rem;margin-left:.75rem;border-left:1px solid var(--border)}.nav-group.open .nav-submenu{display:flex}.nav-subitem{padding-left:.625rem;font-size:.8125rem}.nav-subitem.active{background:var(--primary-soft);color:var(--primary)}.content{padding:2rem;max-width:960px}.page{display:none}.page.active{display:block}.page-header{margin-bottom:1.5rem}.page-header h2{margin:0 0 .25rem;font-size:1.375rem;font-weight:700;letter-spacing:-.02em}.page-header p{margin:0;color:var(--text-secondary);font-size:.9375rem}.page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-form{padding:1.5rem;margin-bottom:1rem}.card-title{margin:0 0 1rem;font-size:.9375rem;font-weight:600}.info-card{padding:1.25rem 1.5rem}.info-card-label{margin:0 0 .25rem;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.info-card-value{margin:0;font-size:1rem;font-weight:600;word-break:break-word}.info-card-sub{margin:.25rem 0 0;font-size:.8125rem;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.badge-primary{background:var(--primary-soft);color:var(--primary)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:#fee2e2;color:#b91c1c}.badge-muted{background:var(--bg);color:var(--text-secondary)}.card-table-wrap{overflow:hidden;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}.data-table{width:100%;border-collapse:collapse;font-size:.875rem}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:var(--bg);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-accent)}.table-empty{padding:2.5rem 1rem;text-align:center;color:var(--text-muted);font-size:.9375rem}.toast-container{position:fixed;top:calc(var(--topbar-height) + .75rem);right:1rem;z-index:200;display:flex;flex-direction:column;gap:.5rem;max-width:360px;pointer-events:none}.toast{padding:.875rem 1rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:.875rem;pointer-events:auto;animation:toast-in .25s ease}.toast-success{border-color:#a7f3d0;background:var(--success-soft);color:#065f46}.toast-error{border-color:#fecaca;background:var(--error-soft);color:#991b1b}@keyframes toast-in{0%{opacity:0;transform:translate(1rem)}to{opacity:1;transform:translate(0)}}@media(max-width:768px){.dashboard{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);padding:.75rem}.sidebar-nav{flex-direction:row;overflow-x:auto}.nav-item{white-space:nowrap;flex-shrink:0}.content{padding:1.25rem}.form-inline,.field-row{grid-template-columns:1fr}.user-chip-info{display:none}.topbar{padding:0 1rem}}.dashboard-controls .field-row{align-items:end}.dashboard-custom-dates{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.dashboard-period-tabs{display:flex;flex-wrap:wrap;gap:.375rem}.dashboard-period-btn.is-active{background:var(--primary-soft);color:var(--primary);border-color:#2563eb33}.dashboard-kpi-grid{margin-bottom:1rem}.dashboard-kpi-value{font-size:1.5rem}.dashboard-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.dashboard-chart-card{padding:1.25rem 1.5rem}.dashboard-chart-title{margin:0 0 1rem;font-size:.9375rem;font-weight:600}.dashboard-donut-wrap{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.dashboard-donut{width:9rem;height:9rem;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.dashboard-donut-hole{width:5.5rem;height:5.5rem;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px var(--border)}.dashboard-donut-total{font-size:1.375rem;font-weight:700;line-height:1.1}.dashboard-donut-label{font-size:.6875rem;color:var(--text-secondary)}.dashboard-legend{display:grid;gap:.5rem;flex:1;min-width:10rem}.dashboard-legend-item{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;font-size:.875rem}.dashboard-legend-swatch{width:.75rem;height:.75rem;border-radius:999px}.dashboard-bars{display:grid;gap:.75rem}.dashboard-bar-row{display:grid;grid-template-columns:minmax(6rem,8rem) 1fr auto;gap:.75rem;align-items:center}.dashboard-bar-label{font-size:.8125rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-bar-track{height:.625rem;background:var(--bg);border-radius:999px;overflow:hidden}.dashboard-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:999px}.dashboard-bar-value{font-size:.8125rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.dashboard-trend{display:flex;align-items:end;gap:.5rem;min-height:10rem;padding-top:.5rem;overflow-x:auto}.dashboard-trend-col{display:flex;flex-direction:column;align-items:center;gap:.375rem;flex:1;min-width:2.5rem}.dashboard-trend-bar-wrap{height:8rem;width:100%;display:flex;align-items:end}.dashboard-trend-bar{width:100%;background:linear-gradient(180deg,#60a5fa,#2563eb);border-radius:.25rem .25rem 0 0;min-height:0}.dashboard-trend-label{font-size:.6875rem;color:var(--text-secondary);text-align:center}.dashboard-empty-chart{padding:2rem 1rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.dashboard-table-wrap{padding:1.25rem 1.5rem}.dashboard-table th,.dashboard-table td{white-space:nowrap}.knowledge-layout{display:grid;grid-template-columns:minmax(260px,300px) minmax(0,1fr);gap:1rem;align-items:start}.knowledge-sidebar{padding:1.25rem 1.5rem;position:sticky;top:1rem;max-height:calc(100vh - 8rem);overflow:auto}.knowledge-subtitle{margin:1.25rem 0 .75rem;font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.knowledge-categories{display:grid;gap:.375rem}.knowledge-category-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid transparent;border-radius:.5rem;background:transparent;color:var(--text);text-align:left;cursor:pointer}.knowledge-category-item:hover{background:var(--bg)}.knowledge-category-item.is-active{background:var(--primary-soft);border-color:#2563eb26;color:var(--primary)}.knowledge-category-count{font-size:.75rem;color:var(--text-secondary)}.knowledge-category-manager{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.knowledge-category-list{display:grid;gap:.5rem;margin-bottom:1rem}.knowledge-category-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.875rem}.knowledge-toolbar{margin-bottom:1rem}.knowledge-search-field{flex:1}.knowledge-main,.knowledge-article-view{min-width:0}.knowledge-article-card{padding:1.5rem 2rem;min-height:20rem}.knowledge-article-placeholder{display:flex;align-items:center;justify-content:center}.knowledge-articles-list{display:grid;gap:.375rem;max-height:24rem;overflow:auto;padding-right:.25rem}.knowledge-article-item{display:grid;gap:.125rem;width:100%;padding:.625rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);text-align:left;cursor:pointer}.knowledge-article-item:hover{border-color:#2563eb40}.knowledge-article-item.is-active{border-color:var(--primary);background:var(--primary-soft)}.knowledge-article-item-title{font-size:.8125rem;font-weight:600;line-height:1.35}.knowledge-article-item-meta{display:flex;flex-wrap:wrap;gap:.375rem;font-size:.75rem;color:var(--text-secondary)}.knowledge-article-header{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.knowledge-article-header h3{margin:0 0 .375rem}.knowledge-article-meta{margin:0;font-size:.8125rem;color:var(--text-secondary)}.knowledge-article-content{white-space:pre-wrap;line-height:1.7;font-size:1rem;max-width:72ch}.knowledge-article-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-danger-text{color:#dc2626}.btn-danger-text:hover:not(:disabled){background:#fee2e2}@media(max-width:960px){.knowledge-layout{grid-template-columns:1fr}.knowledge-sidebar{position:static;max-height:none}.knowledge-articles-list{max-height:12rem}}.chat-toolbar{margin-bottom:1rem}.chat-panel{display:flex;flex-direction:column;min-height:32rem;max-height:calc(100vh - 14rem);padding:0;overflow:hidden}.chat-messages{flex:1;overflow:auto;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:.875rem;background:linear-gradient(180deg,#f8fafc,#fff)}.chat-empty{margin:auto}.chat-message{display:flex;align-items:flex-end;gap:.625rem;max-width:85%}.chat-message--own{align-self:flex-end;flex-direction:row-reverse}.chat-message-avatar{width:2rem;height:2rem;border-radius:999px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;font-size:.6875rem;font-weight:700;flex-shrink:0}.chat-message--own .chat-message-avatar{background:#dcfce7;color:#15803d}.chat-message-bubble{background:var(--surface);border:1px solid var(--border);border-radius:1rem 1rem 1rem .25rem;padding:.625rem .875rem;min-width:0}.chat-message--own .chat-message-bubble{background:#eff6ff;border-color:#2563eb26;border-radius:1rem 1rem .25rem}.chat-message-head{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.chat-message-author{font-size:.75rem;font-weight:600}.chat-message-time{font-size:.6875rem;color:var(--text-secondary)}.chat-message-body{white-space:pre-wrap;line-height:1.5;font-size:.9375rem;word-break:break-word}.chat-compose{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:end;padding:1rem 1.25rem;border-top:1px solid var(--border);background:var(--surface)}.chat-compose textarea{resize:vertical;min-height:3rem;max-height:8rem}
