:root{--font-family:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--color-primary:#5a7a66;--color-primary-hover:#4c6b57;--color-primary-disabled:#9db3a5;--color-primary-soft:#d5e0da;--color-on-primary:#fff;--color-bg:#f3ede6;--color-surface:#f6f1ed;--color-border:#dccdb7;--color-text:#212121;--color-text-muted:#757575;--color-overlay:#0006;--color-focus-ring:#5a7a6633;--color-today:#fff;--color-today-border:#5a7a66;--color-past-text:#9a948c;--color-past-bg:#ebe7e1;--color-stol:#212121;--color-stol-bg:#ede6db;--color-stol-border:#dccdb7;--color-stol-label:#212121;--color-kruh:#212121;--color-kruh-bg:#e5daca;--color-kruh-border:#dccdb7;--color-kruh-label:#212121;--color-workshop:#212121;--color-workshop-bg:#dccdb7;--color-workshop-border:#dccdb7;--color-workshop-label:#212121;--color-full:#dccdb7;--color-full-bg:#f3efe8;--color-mine:#5a7a66;--color-mine-bg:#abbcb2;--color-blocked:#94a3b8;--color-clayground:#b5654a;--color-clayground-bg:#f0d9cd;--color-admin:#dc2626;--color-credit:#5a7a66;--color-credit-bg:#abbcb2;--color-credit-border:#abbcb2;--color-success:#5a7a66;--color-success-bg:#abbcb2;--color-warning:#212121;--color-warning-bg:#dccdb7;--color-warning-border:#c4b399;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-bg:#fee2e2;--color-danger-border:#f5c6c2;--radius:6px;--shadow:0 1px 3px #00000014;--shadow-lg:0 10px 25px #0000001f}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.5}.booking-widget{max-width:1800px;margin:0 auto;padding:16px 24px}.widget-loading{min-height:200px;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.widget-header{border-bottom:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 0;display:flex}.widget-header h1{font-size:1.4rem;font-weight:900}.header-right{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.user-info{color:var(--color-text);align-items:baseline;gap:6px;font-size:.85rem;font-weight:500;display:inline-flex}.user-code{color:var(--color-text-muted);font-weight:500}.tab-nav{gap:4px;display:flex}.tab-btn{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius);cursor:pointer;color:var(--color-text-muted);padding:6px 14px;font-size:.85rem;transition:all .15s}.tab-btn.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn{border-radius:var(--radius);cursor:pointer;-webkit-tap-highlight-color:transparent;color:var(--color-text);border:none;padding:8px 16px;font-size:.9rem;font-weight:500;transition:background-color .15s,opacity .15s}.btn:disabled{cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.btn-primary:disabled{background:var(--color-primary-disabled);color:var(--color-on-primary);opacity:.85}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:disabled{color:var(--color-text-muted)}.btn-small{padding:4px 12px;font-size:.8rem}.btn-icon{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;padding:4px 10px;font-size:1rem}.btn-outline{border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0}.btn-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.link-btn{color:var(--color-primary);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.calendar{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);padding:16px}.cal-nav{top:var(--sticky-top,0px);z-index:5;background:var(--color-surface);align-items:center;gap:8px;margin:-16px -16px 0;padding:16px 16px 12px;display:flex;position:sticky}.cal-week-label{text-align:center;flex:1;font-size:.95rem;font-weight:700}.empty-week{text-align:center;color:var(--color-text-muted);padding:40px 16px;font-size:.95rem}.cal-grid{overflow-x:clip}.cal-grid thead th{top:calc(var(--sticky-top,0px) + var(--cal-nav-h,0px));z-index:4;background:var(--color-surface);position:sticky}.cal-grid table{border-collapse:collapse;border-spacing:0;table-layout:fixed;width:100%;font-size:.8rem}.cal-corner{width:70px}.cal-resource-corner{width:120px}.cal-resource-label{color:var(--color-text);white-space:nowrap;vertical-align:middle;text-align:left;background:var(--color-surface);padding:18px 10px 18px 4px;font-size:.8rem;font-weight:700}.cal-time-header{text-align:center;color:var(--color-text-muted);white-space:nowrap;border-bottom:1px solid var(--color-border);padding:8px 4px 6px;font-size:.75rem;font-weight:500}.cal-day-label{vertical-align:middle;background-image:linear-gradient(var(--color-border), var(--color-border));background-position:top;background-repeat:no-repeat;background-size:100% 2px;border-top:10px solid #0000;padding:0 8px}.cal-day-label .day-name{align-items:center;gap:6px;font-size:.85rem;font-weight:700;display:flex}.cal-day-label .day-date{color:var(--color-text-muted);font-size:.75rem}.row-today td{background-clip:padding-box;background-color:var(--color-today)!important}.row-today.row-kruh>td,.row-today.row-workshop>td,.row-today.row-stol>.cal-day-label{border-bottom:10px solid var(--color-today)}.row-today:not(.row-stol)>td{border-top-color:var(--color-today)}.row-today .cell-available,.row-today .cell-full{background:0 0}.cal-cell{text-align:center;vertical-align:middle;background:0 0;border-top:1px solid #0000;height:48px;padding:18px 2px;transition:all .1s;overflow:hidden}.row-stol>.cal-cell,.row-stol>.cal-resource-label{background-image:linear-gradient(var(--color-border), var(--color-border));background-position:top;background-repeat:no-repeat;background-size:100% 2px;border-top:10px solid #0000}.cell-resource-tag{color:var(--color-text-muted);font-size:.65rem;line-height:1;display:block}.cell-avail{border-radius:8px;justify-content:center;align-items:center;height:36px;margin:0 2px;font-size:.8rem;font-weight:500;display:flex}.cell-full .cell-avail{background:var(--color-full-bg);color:var(--color-full)}.row-stol .cell-available .cell-avail{background:var(--color-stol-bg);color:var(--color-stol)}.row-kruh .cell-available .cell-avail{background:var(--color-kruh-bg);color:var(--color-kruh)}.row-past .cal-day-label,.row-past .ws-cell-title{color:var(--color-past-text)}.row-past .cell-available .cell-avail,.row-past .cell-full .cell-avail,.row-past .cell-workshop-span .ws-pill{background:var(--color-past-bg);color:var(--color-past-text);border-color:var(--color-past-bg)}.cell-workshop,.cell-empty{background:0 0}.cell-mine{opacity:1!important;background-color:#0000!important}.cell-mine .cell-avail{border:2.5px solid var(--color-mine);font-weight:700;background:var(--color-mine-bg)!important;color:var(--color-mine)!important}.cell-mine-check{color:var(--color-primary);margin-bottom:1px;font-size:.6rem;font-weight:900;line-height:1;display:block}.mine-badge{color:var(--color-mine);background:var(--color-mine-bg);white-space:nowrap;border-radius:3px;padding:1px 6px;font-size:.7rem;font-weight:900}.chip-mine{background:var(--color-mine-bg)!important;color:var(--color-mine)!important;border-color:var(--color-mine)!important}.dot-mine{background:var(--color-mine-bg);border-color:var(--color-mine)}.clickable{cursor:pointer}.clickable:hover{filter:brightness(.95)}.cell-workshop-row{background:var(--color-bg);text-align:left;padding:6px 8px}.cell-workshop-span{background:0 0;border:none;max-width:0;padding:4px 2px}.cell-workshop-span .ws-pill{background:var(--color-workshop-bg);border-radius:8px;justify-content:center;align-items:center;gap:4px;height:36px;padding:0 10px;display:flex;overflow:hidden}.ws-cell-title{color:var(--color-workshop);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.ws-cell-avail{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem;font-weight:500}.cell-workshop-span.cell-mine .ws-pill{background:var(--color-mine-bg);border:2.5px solid var(--color-mine)}.cell-workshop-span.cell-mine .ws-cell-title{color:var(--color-mine)}.cell-avail-blocked{background:repeating-linear-gradient(-45deg, var(--color-full-bg), var(--color-full-bg) 3px, var(--color-border) 3px, var(--color-border) 4px)!important}.row-stol .cal-resource-label{color:var(--color-stol-label)}.row-kruh .cal-resource-label{color:var(--color-kruh-label)}.cal-resource-label-ws{color:var(--color-workshop-label)}.row-past .cal-resource-label,.row-past .cal-resource-label-ws{color:var(--color-past-text)}.workshop-chip{background:var(--color-surface);color:var(--color-workshop);border:1px solid var(--color-workshop);cursor:pointer;border:none;border-radius:20px;align-items:center;gap:8px;margin:2px 4px;padding:4px 12px;font-size:.78rem;font-weight:500;transition:all .15s;display:inline-flex}.workshop-chip:hover:not(:disabled){filter:brightness(.85)}.workshop-chip.chip-full{opacity:.5}.chip-time{opacity:.85;font-size:.7rem}.cal-legend{color:var(--color-text-muted);flex-wrap:wrap;gap:16px;margin-top:12px;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:4px;display:flex}.legend-dot{border:1px solid var(--color-border);border-radius:3px;width:12px;height:12px}.dot-full{background:var(--color-full-bg)}.dot-clayground{background:var(--color-clayground);border-color:var(--color-clayground)}.cal-cell.cell-clayground .cell-avail{box-shadow:inset 4px 0 0 var(--color-clayground);padding-left:4px}.cell-clayground-mark{display:none}.day-slot-card.cell-clayground{box-shadow:inset 5px 0 0 var(--color-clayground)}.day-slot-clayground,.clayground-tag{background:var(--color-clayground-bg);color:var(--color-clayground);letter-spacing:.02em;vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.7rem;font-weight:600;display:inline-block}.popup-clayground{color:var(--color-clayground);font-weight:500}.btn-clayground{background:var(--color-clayground);color:var(--color-on-primary)}.btn-clayground:hover:not(:disabled){background:#9e563d}.view-toggle{border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:row;flex-shrink:0;display:flex;overflow:hidden}.view-toggle-btn{background:var(--color-surface);cursor:pointer;color:var(--color-text-muted);border:none;justify-content:center;align-items:center;padding:5px 10px;transition:all .15s;display:flex}.view-toggle-btn+.view-toggle-btn{border-left:1px solid var(--color-border)}.view-toggle-btn.active{background:var(--color-primary);color:var(--color-on-primary)}.view-toggle-btn:hover:not(.active){background:var(--color-bg)}.view-toggle-btn svg{width:16px;height:16px}.day-tabs{top:calc(var(--sticky-top,0px) + var(--cal-nav-h,0px));z-index:4;background:var(--color-surface);gap:4px;margin-bottom:12px;padding-bottom:4px;display:flex;position:sticky;overflow-x:auto}.day-tab{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;color:var(--color-text);flex-direction:column;flex-shrink:0;align-items:center;padding:6px 10px;transition:all .15s;display:flex;position:relative}.day-tab.active{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.day-tab.tab-past:not(.active){background:var(--color-past-bg);color:var(--color-past-text);border-color:var(--color-past-bg)}.day-tab.tab-today:not(.active){border-color:var(--color-today-border);border-width:2px}.tab-today-dot{background:var(--color-today-border);border-radius:50%;width:5px;height:5px;position:absolute;bottom:2px}.day-tab.active .tab-today-dot{background:var(--color-on-primary)}.tab-day{font-size:.7rem;font-weight:700}.tab-date{font-size:.85rem}.day-slots{flex-direction:column;gap:6px;display:flex}.day-slot-card{border-radius:var(--radius);border:1px solid var(--color-border);align-items:center;gap:12px;padding:10px 12px;font-size:.85rem;display:flex}.day-slot-card.res-stol.cell-available{background:var(--color-stol-bg);border-color:var(--color-stol-border)}.day-slot-card.res-stol.cell-available .day-slot-type{color:var(--color-stol-label)}.day-slot-card.res-stol.cell-available .day-slot-avail{color:var(--color-stol)}.day-slot-card.res-kruh.cell-available{background:var(--color-kruh-bg);border-color:var(--color-kruh-border)}.day-slot-card.res-kruh.cell-available .day-slot-type{color:var(--color-kruh-label)}.day-slot-card.res-kruh.cell-available .day-slot-avail{color:var(--color-kruh)}.day-slot-card.cell-full{background:var(--color-full-bg);border-color:var(--color-border);opacity:.6}.day-slot-card.cell-full .day-slot-type,.day-slot-card.cell-full .day-slot-avail{color:var(--color-full)}.day-slot-card.cell-workshop{background:var(--color-workshop-bg);border-color:var(--color-workshop-border)}.day-slot-card.cell-workshop .day-slot-type{color:var(--color-workshop-label)}.day-slot-card.cell-workshop .day-slot-avail{color:var(--color-workshop)}.day-slots-past .day-slot-card{background:var(--color-past-bg);border-color:var(--color-past-bg);opacity:1}.day-slots-past .day-slot-card .day-slot-type,.day-slots-past .day-slot-card .day-slot-avail,.day-slots-past .day-slot-card .day-slot-time,.day-slots-past .day-slot-card .day-slot-price{color:var(--color-past-text)}.day-slot-card.cell-mine{border-width:2px;background:var(--color-mine-bg)!important;border-color:var(--color-mine)!important}.day-slot-card.cell-mine .day-slot-type,.day-slot-card.cell-mine .day-slot-avail{color:var(--color-mine)!important}.day-slot-time{min-width:50px;font-weight:700}.day-slot-type{flex:1}.day-slot-avail{text-align:center;min-width:35px;font-weight:700}.day-slot-price{color:var(--color-text-muted);text-align:right;min-width:35px;font-size:.8rem}.cal-day-view .day-tabs{justify-content:center;gap:8px;margin-bottom:20px}.cal-day-view .day-tab{padding:8px 16px}.cal-day-view .day-tab .tab-day{font-size:.8rem}.cal-day-view .day-tab .tab-date{font-size:1rem}.cal-day-view .day-slots{gap:8px;max-width:800px;margin:0 auto}.cal-day-view .day-slot-card{padding:14px 20px;font-size:.95rem}.cal-day-view .day-slot-time{min-width:70px;font-size:1rem}.cal-day-view .day-slot-price{font-size:.9rem}.notification{background:var(--color-primary);color:var(--color-on-primary);border-radius:var(--radius);text-align:center;margin-bottom:12px;padding:10px 16px;font-size:.9rem;font-weight:500;animation:.3s fadeIn}.login-hint{text-align:center;color:var(--color-text-muted);padding:16px;font-size:.9rem}.loading{text-align:center;color:var(--color-text-muted);padding:40px}.auth-modal-overlay{background:var(--color-overlay);z-index:100;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.auth-form{background:var(--color-surface);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border-radius:12px;margin:16px;padding:32px}.auth-form-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.auth-form-header h2{margin:0;font-size:1.3rem}.form-field{margin-bottom:14px}.form-field label{color:var(--color-text-muted);margin-bottom:4px;font-size:.85rem;font-weight:500;display:block}.form-field input[type=text],.form-field input[type=email],.form-field input[type=password]{border:1px solid var(--color-border);border-radius:var(--radius);width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.form-field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.form-field.checkbox label{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.form-field.checkbox input[type=checkbox]{margin-top:3px}.form-field.checkbox a{color:var(--color-primary);text-decoration:underline}.form-error{color:var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius);margin-bottom:12px;padding:8px 12px;font-size:.85rem}.form-success{color:var(--color-success);background:var(--color-success-bg);border-radius:var(--radius);margin-bottom:12px;padding:8px 12px;font-size:.85rem}.auth-form .btn-primary{width:100%;padding:10px;font-size:.95rem}.auth-forgot{text-align:center;margin-top:8px;font-size:.85rem}.auth-switch{text-align:center;color:var(--color-text-muted);margin-top:16px;font-size:.85rem}.popup-overlay{background:var(--color-overlay);z-index:100;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.popup{background:var(--color-surface);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:12px;margin:16px;padding:28px}.popup h3{margin-bottom:16px;font-size:1.2rem}.popup-head{border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;padding-bottom:14px;display:flex}.popup-head h3{margin:0}.popup-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-size:.7rem}.popup-sub{color:var(--color-text-muted);font-size:.9rem}.popup-grid{grid-template-columns:6.5em 1fr;align-items:center;gap:10px 12px;margin:0;padding:14px 0;font-size:.95rem;display:grid}.popup-grid dt{color:var(--color-text-muted);font-size:.85rem}.popup-grid dd{margin:0}.popup-grid .time-select,.popup-grid .person-select{margin-left:0}.popup-occupancy{color:var(--color-text-muted);align-items:center;gap:10px;font-size:.9rem;display:flex}.popup-bar{background:var(--color-border);border-radius:2px;flex:1;height:3px;overflow:hidden}.popup-bar-fill{background:var(--color-primary);height:100%;display:block}.popup-sum{border-top:1px solid var(--color-border);row-gap:6px;margin-bottom:20px}.popup-sum dd{text-align:right}.popup-sum dt{align-self:start;padding-top:2px}.popup-sum .price-detail{white-space:nowrap;margin-top:2px;font-size:.8rem;font-weight:500;display:block}.popup-total{font-size:1.15rem;font-weight:900}.popup-credit,.popup-discount{color:var(--color-credit)}.popup-discount .link-btn{font-size:inherit}.popup-discount-code{margin:-8px 0 16px;font-size:.9rem}.popup-discount-row{gap:8px;display:flex}.popup-discount-row input{border:1px solid var(--color-border);border-radius:var(--radius);letter-spacing:1px;text-transform:uppercase;background:var(--color-surface);flex:1;min-width:0;padding:8px 10px;font-size:.9rem}.popup-discount-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.popup-discount-code .form-error{margin-top:6px}.popup-due{font-weight:700}.popup-full{color:var(--color-text-muted);border-top:1px solid var(--color-border);margin:0;padding:14px 0 16px}.time-select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;margin-left:4px;padding:4px 8px;font-size:.95rem}.time-select:focus{border-color:var(--color-primary);outline:none}.person-select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;margin-left:4px;padding:4px 8px;font-size:.95rem}.person-select:focus{border-color:var(--color-primary);outline:none}.price-detail{color:var(--color-text-muted);font-size:.85rem}.popup-login-hint{text-align:center;background:var(--color-bg);border-radius:var(--radius);color:var(--color-text-muted);margin-bottom:16px;padding:10px;font-size:.9rem}.popup-actions{justify-content:flex-end;gap:10px;display:flex}.my-bookings{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);padding:20px}.my-bookings h2{margin-bottom:8px;font-size:1.2rem}.my-bookings h3{color:var(--color-text-muted);margin:16px 0 8px;font-size:.95rem}.customer-code{color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius);margin-bottom:12px;padding:8px 12px;font-size:.9rem}.profile-box{background:var(--color-bg);border-radius:var(--radius);border:1px solid var(--color-border);margin-bottom:16px;padding:14px 16px}.profile-name{margin-bottom:2px;font-size:1.05rem;font-weight:700}.profile-email{color:var(--color-text-muted);margin-bottom:6px;font-size:.85rem}.profile-code{color:var(--color-text-muted);font-size:.85rem}.profile-credit{border-top:1px solid var(--color-border);color:var(--color-credit);margin-top:8px;padding-top:8px;font-size:.9rem}.booking-list{flex-direction:column;gap:6px;display:flex}.booking-table{border-top:1px solid var(--color-border);gap:0}.booking-card{border-bottom:1px solid var(--color-border);grid-template-columns:1.6em 3.6em 3.1em .6em 3.1em 6em minmax(0,1fr) 4em 5em 11.5em;grid-template-areas:"wd date start dash end kind type persons price actions";align-items:center;column-gap:20px;padding:9px 12px;font-size:.85rem;display:grid}.booking-card-upcoming{border-bottom:none}.booking-card-upcoming .booking-type{white-space:normal;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.booking-hours{color:var(--color-text-muted)}.booking-actions{grid-area:actions;justify-content:flex-end;align-items:center;gap:8px;display:flex}.booking-weekday{grid-area:wd}.booking-date{text-align:right;grid-area:date}.booking-time-start{text-align:right;color:var(--color-text-muted);grid-area:start}.booking-time-dash{text-align:center;color:var(--color-text-muted);grid-area:dash}.booking-time-end{color:var(--color-text-muted);grid-area:end}.booking-kind{color:var(--color-text-muted);white-space:nowrap;grid-area:kind;margin-left:12px}.booking-type{text-overflow:ellipsis;white-space:nowrap;grid-area:type;overflow:hidden}.booking-persons{color:var(--color-text-muted);white-space:nowrap;text-align:right;grid-area:persons}.booking-price{grid-area:price}.credit-balance-heading{justify-content:space-between;align-items:baseline;padding:0 calc(9.775rem + 32px) 0 12px;display:flex}.credit-balance-heading strong{color:var(--color-credit);font-size:1.1rem;font-weight:900}.credit-note{color:var(--color-text-muted);margin:0 0 10px 12px;font-size:.8rem}.booking-card-credit{grid-template-areas:"wd date type type type type type type price actions"}.booking-card-credit .booking-type{white-space:normal;flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.credit-amount.positive{color:var(--color-success)}.credit-amount.negative{color:var(--color-past-text)}@media (width<=600px){.booking-card{grid-template-columns:1.6em 3.6em 3.1em .6em 3.1em minmax(0,1fr) 4.2em;grid-template-areas:"wd date start dash end persons price""kind kind type type type type type""actions actions actions actions actions actions actions";gap:2px 8px}.booking-kind{margin-left:0}.booking-actions:not(:empty){margin-top:6px}.booking-card-credit .booking-type{flex-direction:column;align-items:flex-start;gap:0}.booking-card-credit{grid-template-areas:"wd date. . . .price""type type type type type type type"}.credit-balance-heading{padding-right:12px}.booking-type{margin-left:0}}.booking-price{color:var(--color-text-muted);text-align:right;white-space:nowrap;font-weight:700}.booking-discount{color:var(--color-primary);margin-left:8px;font-size:.8rem;font-weight:500}.empty{color:var(--color-text-muted);padding:8px 0;font-size:.85rem}.desktop-only{display:block}.desktop-only.view-toggle{display:flex}.mobile-only{display:none}@media (width<=1000px){.desktop-only,.desktop-only.view-toggle{display:none}.mobile-only{display:block}.widget-header{flex-direction:column;align-items:flex-start}.header-right{justify-content:space-between;width:100%}.cal-nav{flex-wrap:wrap;justify-content:center}}@media (width>=1200px){.booking-widget{padding:24px 40px}.widget-header h1{font-size:1.6rem}.cal-grid table{font-size:.9rem}.cal-time-header{padding:6px 4px;font-size:.85rem}.cal-day-label .day-name{font-size:.95rem}.cal-day-label .day-date{font-size:.85rem}.cal-cell{padding:10px 4px}.cell-avail{font-size:.85rem}.cal-resource-label{padding:10px 12px 10px 4px;font-size:.85rem}.cal-corner{width:110px;min-width:110px}.cal-nav{font-size:1rem}.cal-week-label{font-size:1.05rem}.view-toggle-btn{padding:6px 12px}.view-toggle-btn svg{width:18px;height:18px}.cal-day-view .day-slots{max-width:900px}.cal-day-view .day-slot-card{padding:16px 24px;font-size:1rem}}@media (width>=1600px){.booking-widget{padding:32px 60px}.cal-grid table{font-size:.95rem}.cal-cell{padding:10px 6px}.cal-corner{width:100px}.cal-day-label{padding:10px 8px}.widget-header h1{font-size:1.75rem}.popup{max-width:480px}.auth-form{max-width:440px}.cal-day-view .day-slots{max-width:1000px}}.admin-badge{background:var(--color-admin);color:var(--color-on-primary);text-transform:uppercase;letter-spacing:.5px;border-radius:4px;margin-left:6px;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.tab-btn-admin{border-color:var(--color-admin);color:var(--color-admin)}.tab-btn-admin.active{background:var(--color-admin);color:var(--color-on-primary);border-color:var(--color-admin)}.admin-card{max-width:600px}.admin-card h3{margin-bottom:16px;font-size:1.15rem}.admin-card .form-field{margin-bottom:14px}.admin-card .form-field label{color:var(--color-text-muted);margin-bottom:4px;font-size:.85rem;font-weight:500;display:block}.admin-card .form-field input[type=text],.admin-card .form-field input[type=date],.admin-card .form-field input[type=time],.admin-card .form-field input[type=number],.admin-card .form-field select{box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius);width:100%;height:40px;padding:0 12px;font-family:inherit;font-size:.9rem}.admin-card .form-field select{background:var(--color-surface)}.admin-card .form-field input:focus,.admin-card .form-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.form-row{gap:12px;display:flex}.resource-picker{gap:8px;margin-bottom:4px;display:flex}.resource-pick-btn{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer;color:var(--color-text-muted);padding:8px 16px;font-size:.9rem;transition:all .15s}.resource-pick-btn.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary);font-weight:700}.resource-pick-btn:hover:not(.active){background:var(--color-bg)}.form-hint{color:var(--color-text-muted);margin-top:2px;font-size:.78rem;display:block}.form-row .form-field{flex:1}.admin-schedule-info{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:14px;padding:14px}.admin-schedule-info h4{color:var(--color-text-muted);margin-bottom:8px;font-size:.85rem}.schedule-table{border-collapse:collapse;width:auto;margin-bottom:8px;font-size:.85rem}.schedule-table td{white-space:nowrap;padding:2px 6px 2px 0}.schedule-label{font-weight:700;padding-right:12px!important}.schedule-select{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:4px;padding:4px 6px;font-size:.85rem}.schedule-select:focus{border-color:var(--color-primary);outline:none}.schedule-dash{text-align:center;color:var(--color-text-muted);padding:0 6px!important}.schedule-count{color:var(--color-text-muted);white-space:nowrap;padding-left:12px;font-size:.8rem}.schedule-types{color:var(--color-text-muted);border-top:1px solid var(--color-border);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;font-size:.85rem;display:flex}.resource-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.resource-row label{align-items:center;gap:4px;display:flex}.resource-label{min-width:60px;font-weight:700}.resource-input{border:1px solid var(--color-border);background:var(--color-surface);text-align:center;border-radius:4px;width:52px;padding:3px 6px;font-size:.85rem}.resource-input:focus{border-color:var(--color-primary);outline:none}.admin-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius);color:var(--color-warning);margin-bottom:14px;padding:10px 14px;font-size:.85rem}.admin-result{border-radius:var(--radius);flex-direction:column;gap:4px;margin-top:12px;padding:10px 14px;font-size:.85rem;display:flex}.admin-result.success{background:var(--color-surface);color:var(--color-success)}.admin-result.warning{background:var(--color-warning-bg);color:var(--color-warning)}.cell-blocked-icon{display:none}.chip-blocked{opacity:.7;background:var(--color-blocked)!important}.cal-cell{position:relative}.day-slot-blocked-label{color:var(--color-blocked);margin-left:auto;font-size:.8rem;font-style:italic}.day-slot-badge{color:var(--color-primary);white-space:nowrap;font-size:.75rem;font-weight:700}.dot-blocked{background:var(--color-blocked)}.admin-popup{max-width:460px}.blocked-tag{color:var(--color-danger);margin-left:8px;font-size:.7rem;font-weight:700;display:inline-block}.admin-confirm-warning{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:var(--radius);color:var(--color-warning);margin-bottom:12px;padding:12px;font-size:.85rem}.admin-confirm-actions{gap:8px;margin-top:8px;display:flex}.btn-danger{background:var(--color-danger);color:var(--color-on-primary);border:none}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-danger:disabled,.btn-clayground:disabled{opacity:.45}.capacity-edit{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.capacity-input{border:1px solid var(--color-border);border-radius:var(--radius);text-align:center;width:60px;padding:4px 8px;font-size:.85rem}.capacity-edit-btn{flex:none;margin-left:2px;padding:2px 8px;font-size:.75rem}.admin-bookings-section{border-top:1px solid var(--color-border);margin-top:16px;padding-top:16px}.admin-bookings-section h4{color:var(--color-text-muted);margin-bottom:8px;font-size:.9rem}.admin-booking-list{flex-direction:column;gap:6px;display:flex}.admin-booking-item{background:var(--color-bg);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 12px;font-size:.8rem;display:flex}.admin-booking-info{flex-direction:column;gap:1px;display:flex}.admin-booking-name{font-weight:700}.admin-booking-email{color:var(--color-text-muted);font-size:.75rem}.admin-booking-code{color:var(--color-primary);font-size:.75rem;font-weight:500}.admin-booking-group-badge{color:var(--color-today-border);font-size:.75rem;font-weight:500}.admin-booking-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.loading-small{color:var(--color-text-muted);padding:8px;font-size:.85rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.credit-badge{color:var(--color-credit);white-space:nowrap;margin-left:10px;font-size:.85rem;font-weight:700;display:inline-block}.credit-summary{background:var(--color-credit-bg);border:1px solid var(--color-credit-border);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:.95rem;display:flex}.credit-summary strong{color:var(--color-credit)}.sub-tab-nav{border-bottom:1px solid var(--color-border);gap:16px;margin:16px 0 12px;display:flex}.sub-tab-btn{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 2px 8px;font-size:.9rem;transition:all .15s}.sub-tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:700}.credit-history{margin-bottom:20px}.credit-history h3{margin-bottom:8px}.redeem-voucher-page{max-width:520px}.redeem-voucher-page h2{margin-bottom:8px}.redeem-voucher-intro{color:var(--color-text-muted);margin:0 0 16px;font-size:.9rem}.redeem-voucher{background:var(--color-credit-bg);border-radius:var(--radius);padding:16px}.redeem-voucher-label{margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.redeem-voucher-row{gap:8px;display:flex}.redeem-voucher-row input{border:1px solid var(--color-border);border-radius:var(--radius);letter-spacing:1px;text-transform:uppercase;flex:1;min-width:0;padding:10px 12px;font-size:.9rem}.redeem-voucher-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.redeem-voucher .form-error,.redeem-voucher .form-success{margin:8px 0 0}.redeem-workshop-choice{margin-top:20px}.redeem-workshop-choice h3{margin:0 0 8px}.redeem-workshop-empty{color:var(--color-text-muted);font-size:.9rem}.redeem-workshop-list{border-top:1px solid var(--color-border)}.redeem-workshop-item{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"when action""title action""free action";align-items:center;gap:2px 12px;padding:10px 4px;font-size:.9rem;display:grid}.redeem-workshop-when{grid-area:when}.redeem-workshop-title{color:var(--color-text-muted);grid-area:title}.redeem-workshop-free{color:var(--color-text-muted);grid-area:free;font-size:.8rem}.redeem-workshop-item .btn{grid-area:action}.credit-deduction-row{background:var(--color-credit-bg);color:var(--color-credit);border-radius:6px;margin-top:8px;padding:8px 12px;font-size:.9rem}.credit-covered{color:var(--color-success);font-weight:700}.booking-cancel-btn{border:1px solid var(--color-danger);color:var(--color-danger);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-size:.8rem;transition:all .15s}.booking-cancel-btn:hover:not(:disabled){background:var(--color-danger);color:var(--color-on-primary)}.booking-cancel-btn:disabled{border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.booking-cancel-locked{cursor:not-allowed;display:inline-block;position:relative}.booking-cancel-locked:after{content:attr(data-tooltip);background:var(--color-text);width:max-content;max-width:260px;color:var(--color-surface);white-space:normal;text-align:left;opacity:0;pointer-events:none;z-index:20;border-radius:6px;padding:6px 10px;font-size:.78rem;line-height:1.3;transition:opacity .1s;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 2px 8px #00000026}.booking-cancel-locked:hover:after,.booking-cancel-locked:focus-within:after{opacity:1}.cancel-confirm{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:8px;margin-top:8px;padding:12px}.cancel-confirm p{color:var(--color-danger);margin:0 0 8px;font-size:.9rem}.cancel-confirm-actions{gap:8px;display:flex}.popup-eyebrow-mine{color:var(--color-mine);font-weight:700}.credit-notification{color:var(--color-success);font-weight:700}.booking-group-card{border-bottom:1px solid var(--color-border)}.booking-group-card>.credit-notification,.booking-group-card>.booking-pay-hint,.booking-group-card>.booking-pay-error{padding:0 12px 9px}.booking-group-card>.credit-notification{padding-top:9px}.booking-group-card>.cancel-confirm{margin:0 12px 10px}.admin-credits h2{margin-bottom:16px}.admin-credit-search{margin-bottom:20px}.admin-credit-search input{flex:1}.admin-customer-list-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 0;font-size:.8rem}.admin-customer-list{flex-direction:column;gap:4px;margin-top:12px;display:flex}.admin-customer-item{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:.9rem;transition:all .15s;display:flex}.admin-customer-item:hover{border-color:var(--color-primary)}.admin-customer-item.selected{border-color:var(--color-primary);background:var(--color-primary-soft)}.customer-name{font-weight:700}.customer-email{color:var(--color-text-muted);font-size:.85rem}.customer-code-tag{background:var(--color-border);border-radius:4px;margin-left:auto;padding:2px 6px;font-size:.75rem;font-weight:700}.admin-credit-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:20px}.admin-credit-detail h3{align-items:center;gap:8px;margin-bottom:4px;display:flex}.customer-email-display{color:var(--color-text-muted);margin-bottom:16px;font-size:.9rem}.admin-credit-balance{background:var(--color-credit-bg);border-radius:6px;margin-bottom:16px;padding:12px;font-size:1.1rem}.admin-credit-balance strong{color:var(--color-credit);font-size:1.2rem}.admin-adjust-form{background:var(--color-bg);border-radius:8px;margin-bottom:20px;padding:16px}.admin-adjust-form .form-field{margin-bottom:10px}.admin-adjust-actions{gap:8px;margin-top:12px;display:flex}.admin-credit-history h4{margin-bottom:8px}.admin-tx-list{flex-direction:column;gap:4px;display:flex}.admin-tx-item{border-bottom:1px solid var(--color-border);grid-template-columns:140px 80px 80px 1fr;align-items:center;gap:8px;padding:6px 8px;font-size:.85rem;display:grid}.admin-tx-date{color:var(--color-text-muted)}.admin-tx-type{text-transform:uppercase;font-size:.75rem;font-weight:700}.admin-tx-amount.positive{color:var(--color-success);font-weight:700}.admin-tx-amount.negative{color:var(--color-danger);font-weight:700}.admin-tx-desc{color:var(--color-text-muted);font-size:.8rem}.booking-pay-hint{color:var(--color-text-muted);margin-top:6px;font-size:.85rem}.booking-pay-error{color:var(--color-danger);margin-top:6px;font-size:.85rem}.pending-badge{background:var(--color-warning-bg);color:var(--color-warning);border-radius:4px;margin-left:8px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-block}.pin-badge{border-radius:4px;margin-left:8px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.pin-badge.pin-active{background:var(--color-success-bg);color:var(--color-success)}.pin-badge.pin-missing{background:var(--color-danger-bg);color:var(--color-danger)}.pin-badge.pin-unpaid{background:var(--color-warning-bg);color:var(--color-warning)}.pin-waiting-badge{background:var(--color-warning-bg);color:var(--color-warning);cursor:help;border-radius:4px;margin-left:8px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.payment-banner{border-radius:8px;justify-content:space-between;align-items:center;margin:0 1rem;padding:.75rem 1rem;font-size:.95rem;display:flex}.payment-banner.success{background:var(--color-success-bg);color:var(--color-success)}.payment-banner.warning{background:var(--color-warning-bg);color:var(--color-warning)}.banner-close{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;padding:0 .25rem;font-size:1.2rem}.banner-close:hover{opacity:1}.admin-vouchers h2{margin-bottom:16px}.admin-vouchers .admin-card{margin-bottom:20px}.admin-vouchers .input-invalid{border-color:var(--color-danger)}.admin-voucher-list{flex-direction:column;gap:6px;margin-top:12px;display:flex}.admin-voucher-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:10px 12px;font-size:.9rem}.admin-voucher-item.status-void{opacity:.6}.admin-voucher-main{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-voucher-code{letter-spacing:1px;font-weight:700}.admin-voucher-value{color:var(--color-credit);font-weight:700}.admin-voucher-status{background:var(--color-border);border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:700}.admin-voucher-status.status-active{background:var(--color-success-bg);color:var(--color-success)}.admin-voucher-status.status-redeemed{background:var(--color-primary-soft)}.admin-voucher-source{color:var(--color-text-muted);margin-left:auto;font-size:.8rem}.admin-voucher-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:.8rem;display:flex}.admin-voucher-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.admin-discount-edit{margin-top:8px}.admin-voucher-confirm{font-size:.85rem}
