.appointment-panel{border:1px solid hsl(var(--border,204 21% 87%));border-radius:22px;background:hsl(var(--card,0 0% 100%));padding:26px;margin-bottom:24px;color:hsl(var(--foreground,209 55% 12%));box-shadow:0 12px 32px #173c5a05}.appointment-heading{display:flex;align-items:center;gap:16px;margin-bottom:24px}.appointment-heading>svg{flex-shrink:0;color:#009d94}.appointment-heading small{font-size:12px;font-weight:750;letter-spacing:1.5px;color:#008e8a}.appointment-heading h2{margin:5px 0;font-size:24px;letter-spacing:-.6px}.appointment-footer p,.appointment-heading p,.appointment-hint{font-size:13px;color:hsl(var(--muted-foreground,207 15% 43%));line-height:1.6}.appointment-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;border:0;padding:0;margin:0;min-width:0}.appointment-fields label,.appointment-label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:8px;min-width:0}.appointment-fields label>span{display:flex;align-items:center;gap:7px}.appointment-fields input:not([type=checkbox]),.appointment-fields select,.appointment-fields textarea{width:100%;min-width:0;padding:12px;border:1px solid hsl(var(--border,204 21% 87%));border-radius:11px;background:hsl(var(--background,204 33% 98%));font:inherit;color:inherit;box-sizing:border-box}.appointment-fields small{font-weight:400;color:hsl(var(--muted-foreground,207 15% 43%));font-size:13px;line-height:1.5}.appointment-wide{grid-column:1/-1}.appointment-weekdays{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}.appointment-weekdays label{flex-direction:row;align-items:center;padding:11px 16px;border:1px solid hsl(var(--border,204 21% 87%));border-radius:10px;cursor:pointer;background:hsl(var(--background,204 33% 98%))}.appointment-weekdays label.selected{background:#e6f6ff;border-color:#69afdf;color:#075fa1}.appointment-switch input,.appointment-weekdays input{accent-color:#009d94;width:16px;height:16px}.appointment-fields .appointment-switch{display:flex;flex-direction:row;align-items:center}.appointment-footer{margin-top:24px;border-top:1px solid hsl(var(--border,204 21% 87%));padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.appointment-footer p{max-width:470px;margin:0}.appointment-footer button{white-space:nowrap}.appointment-alert{padding:13px;border-radius:10px;background:#fff1f2;color:#a92644;font-size:13px}.appointment-alert button{text-decoration:underline;margin-left:8px}.appointment-success{padding:14px;border-radius:12px;background:#e4f8ee;color:#14754a}.appointment-date-list{display:flex;gap:10px;overflow-x:auto;padding:20px 0 12px}.appointment-date-list button{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:66px;height:88px;border:1px solid hsl(var(--border,204 21% 87%));border-radius:14px;background:hsl(var(--background,204 33% 98%));color:inherit;cursor:pointer}.appointment-date-list strong{font-size:24px;line-height:1}.appointment-date-list small,.appointment-date-list span{font-size:13px}.appointment-date-list button[aria-pressed=true]{background:#0e4775;border-color:#0e4775;color:white}.appointment-time-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.appointment-time-list button{padding:13px 6px;border:1px solid hsl(var(--border,204 21% 87%));border-radius:10px;background:hsl(var(--background,204 33% 98%));color:inherit;font-size:13px;cursor:pointer}.appointment-time-list button[aria-pressed=true]{background:#e1f8f5;color:#00786f;border-color:#00b1a5}.appointment-confirm{margin-top:20px;background:hsl(var(--background,204 33% 98%));border-radius:14px;padding:18px;border-left:3px solid #00afa1}.appointment-confirm p{margin:7px 0;font-size:13px}.appointment-confirm small{color:hsl(var(--muted-foreground,207 15% 43%))}.appointment-panel button:focus-visible,.appointment-panel input:focus-visible,.appointment-panel select:focus-visible{outline:3px solid #00afa160;outline-offset:3px}.appointment-panel button:disabled{opacity:.5;cursor:default}@media (max-width:640px){.appointment-panel{padding:18px;border-radius:18px}.appointment-heading{align-items:flex-start;gap:12px}.appointment-heading h2{font-size:20px}.appointment-fields{grid-template-columns:1fr}.appointment-footer{align-items:stretch;flex-direction:column}.appointment-footer button{justify-content:center}.appointment-weekdays{gap:6px}.appointment-weekdays label{padding:10px}}.appointment-closed-add{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.appointment-closed-add input{flex:1 1 180px;width:auto!important}.appointment-note{display:block;margin-top:6px;font-weight:400;color:hsl(var(--muted-foreground,207 15% 43%));font-size:13px}.appointment-closed-list{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0;padding:0;list-style:none}.appointment-closed-list li{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 10px;border:1px solid #d7e2e6;border-radius:999px;background:#eef2f4;color:#5c717e;font-size:12px;font-weight:600}.appointment-closed-list button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:15px;line-height:1;cursor:pointer}.appointment-closed-list button:hover{background:#d7e2e6;color:#092c3c}.seat-booking{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;margin-top:22px}.seat-calendar,.seat-times{min-width:0;padding:18px;border:1px solid hsl(var(--border,204 21% 87%));border-radius:18px;background:hsl(var(--background,204 33% 98%))}.seat-calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.seat-calendar-head strong{font-size:15px}.seat-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.seat-weekday{padding:4px 0;text-align:center;font-size:12.5px;font-weight:700;letter-spacing:.4px;color:hsl(var(--muted-foreground,207 15% 43%));text-transform:uppercase}.seat-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:54px;padding:4px 2px;border:1.5px solid transparent;border-radius:12px;font:inherit;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease}.seat-day strong{font-size:15px;line-height:1.1}.seat-day small{font-size:12px;font-weight:700;line-height:1.1}.seat-day.blank{visibility:hidden}.seat-day.available{border-color:#15c8bd73;background:#e6faf7;color:#075e58}.seat-day.available:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px -8px #0c8f87}.seat-day.available.few{border-color:#f2b13a;background:#fff6e2;color:#8a5a00}.seat-day.full{border-color:#f1a7a7;background:#fde8e8;color:#b42318}.seat-day.unavailable{border-color:transparent;background:#eef1f3;color:#a3b0b8;cursor:not-allowed}.seat-day.unavailable strong{font-weight:500}.seat-day.selected{box-shadow:0 0 0 2.5px #092c3c}.seat-day:focus-visible{outline:2px solid hsl(var(--ring,178 94% 38%));outline-offset:2px}.seat-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:14px 0 0;padding:0;list-style:none;font-size:13px;color:hsl(var(--muted-foreground,207 15% 43%))}.seat-legend li{display:inline-flex;align-items:center;gap:6px}.seat-legend i{width:12px;height:12px;border-radius:4px;border:1.5px solid}.seat-legend i.available{border-color:#15c8bd;background:#e6faf7}.seat-legend i.few{border-color:#f2b13a;background:#fff6e2}.seat-legend i.full{border-color:#f1a7a7;background:#fde8e8}.seat-legend i.unavailable{border-color:#dfe5e8;background:#eef1f3}.seat-times header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.seat-times header strong{font-size:15px}.seat-badge{flex-shrink:0;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700}.seat-badge.available{background:#e6faf7;color:#075e58}.seat-badge.full{background:#fde8e8;color:#b42318}.seat-badge.unavailable{background:#eef1f3;color:#7a8a94}.seat-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:12px;max-height:340px;overflow-y:auto;padding:2px}.seat-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:1.5px solid #15c8bd73;border-radius:12px;background:#fff;color:#092c3c;font:inherit;cursor:pointer}.seat-slot strong{font-size:14px}.seat-slot small{font-size:12.5px;font-weight:600;color:#0c8f87}.seat-slot.available:hover:not(:disabled){background:#e6faf7}.seat-slot.selected{border-color:#092c3c;background:#092c3c;color:#fff}.seat-slot.selected small{color:#9ff0e9}.seat-slot.full{border-color:#f1a7a7;background:#fde8e8;color:#b42318;cursor:not-allowed}.seat-slot.full small{color:#b42318}.seat-slot.unavailable{border-color:#e2e8eb;background:#eef1f3;color:#a3b0b8;cursor:not-allowed}.seat-slot.unavailable small{color:#a3b0b8}.appointment-instructions{margin:16px 0 0;padding:12px 14px;border-left:3px solid #15c8bd;border-radius:0 10px 10px 0;background:#f1fbf9;font-size:13px;line-height:1.6;white-space:pre-line}@media (max-width:760px){.seat-booking{grid-template-columns:1fr}.seat-calendar,.seat-times{padding:12px}.seat-day{min-height:46px;border-radius:10px}.seat-day strong{font-size:13px}.seat-day small{font-size:11px}}.dark .seat-slot{background:hsl(var(--card));color:inherit}.dark .seat-day.unavailable,.dark .seat-slot.unavailable{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}