:root{--primary: #2ea043;--primary-dark: #248a38;--danger: #ff5d5d;--warning: #f7b500;--accent: #61dafb;--text: #e6edf3;--muted-text: #a9b4c0;--border: #20283a;--bg: #0b0d12;--panel: #121623;--card: #0f1320;--chip: #1b2234;--white: #ffffff;--black: #000000;--highlight: #ffd966;--success: var(--primary);--error: var(--danger);--info: var(--accent);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 2px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .55);--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 12px;--radius-pill: 999px;--transition-fast: .15s ease;--transition-base: .25s ease;--font-family: "Inter", "Noto Sans TC", "Segoe UI", system-ui, sans-serif;--fw-normal: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.3;--lh-base: 1.6;--shadow-focus: 0 0 0 2px rgba(59, 130, 246, .35);--panel-bg: var(--panel);--dialog-bg: var(--panel);--card-bg: var(--card);--muted: var(--muted-text);--shadow-card: var(--shadow-md);--text-muted: var(--muted-text);--text-primary: var(--text);--border-color: var(--border);--accent-color: var(--accent);--surface: var(--card);--interactive: #2563eb;--interactive-hover: #1d4ed8;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 48px;--text-xs: .75rem;--text-sm: .85rem;--text-base: 1rem;--text-lg: 1.1rem;--text-xl: 1.25rem;--sat: env(safe-area-inset-top, 0px);--sar: env(safe-area-inset-right, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--surface-alt: #1c2b45;--input-bg: #1a2338;--surface-tint: rgba(255, 255, 255, .04);--text-dark-bg: #f0f4fa;--text-light-bg: #000;--status-created-bg: rgba(251, 191, 36, .32);--status-created-border: #f59e0b;--status-created-chip-bg: rgba(251, 191, 36, .42);--status-created-chip-text: #fcd34d;--status-confirmed-bg: rgba(59, 130, 246, .3);--status-confirmed-border: #60a5fa;--status-confirmed-chip-bg: rgba(59, 130, 246, .42);--status-confirmed-chip-text: #93c5fd;--status-checkedout-bg: rgba(34, 197, 94, .28);--status-checkedout-border: #22c55e;--status-checkedout-chip-bg: rgba(34, 197, 94, .4);--status-checkedout-chip-text:#6ee7b7;--status-cancelled-bg: rgba(107, 114, 128, .22);--status-cancelled-border: #6b7280;--status-cancelled-chip-bg: rgba(107, 114, 128, .32);--status-cancelled-chip-text: #9ca3af;--status-cancelled-fee-border: #f59e0b;--status-cancelled-fee-ring: rgba(245, 158, 11, .55);--status-cancelled-fee-bg: rgba(245, 158, 11, .1);--z-base: 10;--z-dropdown: 100;--z-modal: 1000;--z-overlay: 2000;--z-toast: 9999;--table-bg: #06052e;--table-head-start: #2c2c3e;--table-head-end: #343449;--table-head-text: #ffd966;--table-head-text-light: #d7e1ed;--table-head-light: #1a2030;--table-border-inner: #3a3a4d;--table-input-bg: #2b2b3e;--table-border-h: rgba(255, 255, 255, .1);--table-border-v: rgba(255, 255, 255, .07);--table-row-odd: rgba(255, 255, 255, .03);--table-row-even: rgba(255, 255, 255, .06);--table-row-hover: rgba(73, 120, 255, .16);--row-selected-bg: rgba(97, 218, 251, .22);--row-overdue-bg: #3a1f1f;--row-overdue-text: #ffd5d5;--row-coach-bg: #163a2c;--row-coach-text: #d4ffe6;--row-mixed-bg: #3a2c1f;--row-mixed-text: #fff3d4;--ticker-bg-start: #431407;--ticker-bg-mid: #7c2d12;--ticker-border: #9a3412;--ticker-text: #fed7aa;--ticker-urgent-start: #450a0a;--ticker-urgent-mid: #7f1d1d;--ticker-urgent-border: #b91c1c;--ticker-urgent-text: #fca5a5;--day-num-text: #c1cede}[data-theme=light]{--bg: #f0ece5;--panel: #f7f3ee;--card: #eceae6;--chip: #e3ddd5;--surface-alt: #e6dfd5;--text: #1a2030;--muted-text: #6b7280;--border: #d8d0c4;--primary: #16a34a;--primary-dark: #15803d;--interactive: #2563eb;--interactive-hover: #1d4ed8;--accent: #0891b2;--warning: #d97706;--danger: #dc2626;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 8px rgba(0, 0, 0, .12);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .16);--highlight: #374151;--day-num-text: #1f2937;--status-created-bg: rgba(245, 158, 11, .09);--status-created-chip-bg: rgba(245, 158, 11, .15);--status-created-chip-text: #b45309;--status-confirmed-bg: rgba(37, 99, 235, .08);--status-confirmed-chip-bg: rgba(37, 99, 235, .12);--status-confirmed-chip-text: #1d4ed8;--status-checkedout-bg: rgba(22, 163, 74, .08);--status-checkedout-chip-bg: rgba(22, 163, 74, .14);--status-checkedout-chip-text:#15803d;--status-cancelled-bg: rgba(107, 114, 128, .06);--status-cancelled-chip-bg: rgba(107, 114, 128, .12);--status-cancelled-chip-text: #6b7280;--status-cancelled-fee-border: #92400e;--status-cancelled-fee-ring: rgba(146, 64, 14, .45);--status-cancelled-fee-bg: rgba(245, 158, 11, .14);--table-bg: #f3efe9;--table-head-light: #e2d9cc;--table-head-text-light: #374151;--table-head-start: #e2d9cc;--table-head-end: #cec5b8;--table-head-text: #374151;--table-border-inner: #ddd5cb;--table-input-bg: #eee9e1;--table-border-h: rgba(0, 0, 0, .08);--table-border-v: rgba(0, 0, 0, .06);--table-row-odd: rgba(0, 0, 0, .02);--table-row-even: rgba(0, 0, 0, .04);--table-row-hover: rgba(37, 99, 235, .07);--row-selected-bg: rgba(37, 99, 235, .12);--input-bg: #ebe8e2;--surface-tint: rgba(0, 0, 0, .03);--row-overdue-bg: rgba(220, 38, 38, .08);--row-overdue-text: #991b1b;--row-coach-bg: rgba(22, 163, 74, .08);--row-coach-text: #166534;--row-mixed-bg: rgba(245, 158, 11, .1);--row-mixed-text: #92400e}.view-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);margin:var(--space-3) 0;color:var(--text);box-shadow:var(--shadow-sm)}.view-title{font-family:var(--font-family);font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text);margin:0 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);line-height:var(--lh-tight)}.section-title{font-family:var(--font-family);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--highlight);margin:0 0 var(--space-3);padding-bottom:var(--space-1);border-bottom:1px solid var(--border);line-height:var(--lh-tight)}.field-label{font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--highlight);margin-bottom:var(--space-1);display:block;line-height:var(--lh-tight)}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.stat-card__label{font-size:var(--text-xs);color:var(--muted-text);font-weight:var(--fw-medium);margin-bottom:var(--space-1)}.stat-card__value{font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text);line-height:1.2}.stat-card__value--primary{color:var(--primary)}.stat-card__value--danger{color:var(--danger)}.stat-card__value--warning{color:var(--warning)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--fw-semibold);background:var(--chip);color:var(--muted-text);border:none;white-space:nowrap}.chip--primary{background:#2ea0432e;color:var(--primary)}.chip--danger{background:#ff5d5d2e;color:var(--danger)}.chip--warning{background:#f7b5002e;color:var(--warning)}.chip--info{background:#61dafb2e;color:var(--accent)}.section-divider{height:1px;background:var(--border);border:none;margin:var(--space-3) 0}.data-value{font-size:var(--text-base);font-weight:var(--fw-bold);color:var(--text)}.data-value--large{font-size:var(--text-xl)}.data-value--muted{color:var(--muted-text);font-weight:var(--fw-medium)}.empty-state{text-align:center;padding:var(--space-6) var(--space-4);color:var(--muted-text);font-size:var(--text-base)}.info-row{display:flex;gap:var(--space-2);align-items:baseline;font-size:var(--text-sm);margin:var(--space-1) 0}.info-row__label{color:var(--highlight);font-weight:var(--fw-semibold)}.info-row__value{color:var(--text)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{font-size:12px;line-height:1.5;-webkit-text-size-adjust:100%}body{font-family:system-ui,Segoe UI,Noto Sans TC,sans-serif;font-size:1rem;font-weight:400;letter-spacing:.1px;color:inherit;background:transparent}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}@layer reset;@layer reset{input,textarea,select,button{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit}button,input,select,textarea{margin:0}}:focus-visible{outline:2px solid var(--accent, #61dafb);outline-offset:2px;transition:outline-color var(--transition-fast, .15s ease)}h1,h2,h3,h4,h5,h6{margin:0;font-weight:inherit}p,ul,ol,figure{margin:0;padding:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}table{border-collapse:collapse;border-spacing:0}.hidden,[hidden]{display:none!important}.message-block{padding:8px;border-radius:6px;line-height:1.5}.message-block--warning{background:#f7b5001f;color:var(--warning);border:1px solid rgba(247,181,0,.25)}.message-block--error{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.25)}.message-block--success{background:#2ea0431f;color:var(--primary);border:1px solid rgba(46,160,67,.25)}.message-text--warning{color:var(--warning)}.message-text--error{color:var(--danger)}.coach-list__item{line-height:1.6;padding:4px 0}.coach-list__head{font-weight:600}.coach-list__amount,.coach-list__average{font-weight:500}.coach-list__amount{color:var(--accent)}.coach-list__average{color:var(--warning)}.info-block{background:var(--chip);padding:8px;border-radius:6px;line-height:1.5;color:var(--text);font-size:.95rem;border:1px solid var(--border)}.info-block__label{font-weight:600;margin-bottom:4px;display:block}.info-block--muted{opacity:.8}.info-block--warning{color:var(--warning);background:#f7b5001a;border:1px solid rgba(247,181,0,.3)}.info-block--error{color:var(--danger);background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.info-block--muted{opacity:.75}.info-block__title{font-weight:600;margin-bottom:4px}.info-block__list{display:flex;flex-direction:column;gap:2px}.info-block__list-item{font-size:.9rem;color:inherit}.checkbox-group{display:flex;flex-wrap:wrap;gap:8px}.checkbox-group__item{display:flex;align-items:center;gap:4px}.checkbox-group__item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-color, #007aff)}.checkbox-group__label{font-size:.9rem;color:#eee}dialog,.dialog{border:none;border-radius:var(--radius-lg, 10px);background:var(--panel, #121623);color:var(--text, #e6edf3);padding:1.5rem;line-height:1.5;box-shadow:var(--shadow-lg, 0 4px 12px rgba(0,0,0,.55));width:min(480px,95vw);max-height:calc(100dvh - var(--sat, 0px) - var(--sab, 0px) - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch}dialog::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog--wide{width:min(760px,96vw)}.dialog__title{margin:0 0 .5rem;font-weight:700;font-size:var(--text-xl, 1.25rem);color:var(--text, #e6edf3)}.dialog__desc{margin:0 0 1rem;font-size:var(--text-sm, .85rem);color:var(--muted-text, #a9b4c0)}.dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-2, 8px);margin-top:1.2rem;padding-bottom:var(--sab, 0px)}.dialog__btn{min-height:44px;padding:0 var(--space-4, 16px);border-radius:var(--radius-md, 6px);cursor:pointer;border:none;font-weight:600;font-size:var(--text-sm, .85rem);transition:opacity var(--transition-fast, .15s ease),background var(--transition-fast, .15s ease)}.dialog__btn:hover{opacity:.85}.dialog__btn:active{opacity:.7;transform:scale(.98)}.dialog__btn--confirm{background:var(--interactive, #2563eb);color:#fff}.dialog__btn--confirm:hover{background:var(--interactive-hover, #1d4ed8);opacity:1}.dialog__btn--danger{background:var(--danger, #ff5d5d);color:#fff}.dialog__btn--cancel{background:var(--surface-alt, #1c2b45);color:var(--muted-text, #a9b4c0);border:1px solid var(--border, #20283a)}@media(max-width:390px){dialog,.dialog{width:100vw;max-width:100vw;border-radius:var(--radius-lg, 10px) var(--radius-lg, 10px) 0 0;position:fixed;bottom:0;left:0;margin:0;padding-bottom:calc(1.5rem + var(--sab, 0px))}}.hx-link-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px}.hx-link-card{width:min(440px,100%);max-height:calc(100vh - 32px);overflow-y:auto;display:grid;gap:12px;padding:20px 22px;background:var(--surface, #1b1f27);color:var(--text, #e8ecf3);border:1px solid var(--border, #333b47);border-radius:var(--radius-lg, 10px);box-shadow:0 18px 48px #0000008c}.hx-link-card h3{margin:0;font-size:1rem}.hx-link-card__who{font-size:.86rem;opacity:.85;line-height:1.6}.hx-link-card__who code{font-family:monospace;opacity:.8}.hx-link-card__cands{font-size:.8rem;color:#fa4;line-height:1.5}.hx-link-card__label{display:grid;gap:6px;font-size:.86rem}.hx-link-card__input{font-family:monospace;font-size:1rem;padding:9px 11px;border-radius:var(--radius, 6px);border:1px solid var(--border, #333b47);background:var(--surface-alt, #12151b);color:inherit;width:100%}.hx-link-card__hint{margin:0;font-size:.76rem;opacity:.72;line-height:1.65}.hx-link-card__actions{display:flex;gap:8px;justify-content:flex-end}.hx-link-card__result{font-size:.78rem;line-height:1.6;white-space:pre-wrap;min-height:1.2em;padding:6px 8px;border-radius:var(--radius-md, 6px);background:color-mix(in srgb,var(--muted-text, #94a3b8) 12%,transparent)}.hx-link-card__result:empty{display:none}.hx-link-cell{cursor:pointer;text-decoration:underline dotted}.hx-link-cell:hover{filter:brightness(1.3)}.form-control,input[type=text],input[type=email],input[type=number],input[type=tel],textarea{background-color:var(--card, #0f1320);color:var(--text, #e6edf3);border:1px solid var(--border, #20283a);border-radius:6px;padding:6px 8px;font-size:14px;box-sizing:border-box;transition:border .2s,box-shadow .2s,background .2s;width:100%}.form-control:focus,input[type=text]:focus,input[type=email]:focus,textarea:focus{border-color:var(--accent, #3b82f6);box-shadow:0 0 0 2px #3b82f640;outline:none}.form-select,select{background-color:var(--card);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:14px;box-sizing:border-box;transition:border .2s,box-shadow .2s,background .2s;width:100%;appearance:none}.form-select option{background-color:var(--card, #0f1320);color:var(--text, #e6edf3)}.form-select:focus,select:focus{border-color:var(--accent, #3b82f6);box-shadow:0 0 0 2px #3b82f666;outline:none}.form-control:disabled,.form-select:disabled{opacity:.6;background-color:var(--chip);color:var(--muted-text);cursor:not-allowed}.form-select:invalid{color:var(--muted-text)}.form-label,label{color:var(--highlight, #ffe68b);font-size:13px;font-weight:600;margin-bottom:4px;display:block}.form-select:invalid{color:var(--muted-text, #9bb2c9)}*{box-sizing:border-box}html,body{height:100%;margin:0}body{margin:0;background:var(--bg, #010d29);color:var(--text);font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif;-webkit-font-smoothing:antialiased}.title-block{background:var(--card);color:var(--text);font-weight:600;padding:4px 8px;border-radius:4px;display:inline-block}.brand{display:flex;align-items:center;gap:10px}.logo-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#8bc34a,#2ea043);pointer-events:none}#logoTitle{cursor:pointer;pointer-events:auto;z-index:10}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.user-area{display:flex;gap:8px;align-items:center}.badge{background:var(--chip);border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:999px;font-size:12px}.bulk-controls{display:flex;gap:.5rem;margin:10px 0 .5rem;align-items:center}.upload-label{cursor:pointer}.filters{display:flex;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:160px}.filter-group select,.filter-group input{background:var(--card);color:var(--text);border:1px solid var(--border);padding:8px;border-radius:8px}.filter-group .grow{flex:1}.filter-column{background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;padding:12px 16px;min-width:180px;transition:all .25s ease;box-shadow:0 1px 3px #00000040}.filter-column label{color:var(--text);font-size:13px;font-weight:700;letter-spacing:.2px}.filters-bar:after{content:"";flex-basis:100%;height:1px;margin-top:6px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}.app-main{padding:16px;max-width:100%;margin:0}.grid{display:grid;gap:8px;grid-template-columns:repeat(7,1fr)}.day-header,.day-cell{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px}.day-header{font-weight:700;text-align:center;color:var(--text);letter-spacing:.2px;background:var(--chip);border-radius:8px}.day-meta{display:flex;justify-content:space-between;align-items:center}.day-num{font-weight:700;color:var(--text)}.holiday-badge{background:#ef44441f;color:var(--danger);border:1px solid rgba(239,68,68,.3);padding:2px 6px;border-radius:999px;font-size:11px}.book-btn{margin-top:8px;width:100%}.booking-list{display:flex;flex-direction:column;gap:0px;margin-top:8px}.booking-card{display:flex;gap:8px;background:var(--card);border:1px solid var(--border);padding:8px;border-radius:10px;align-items:flex-start;width:100%;flex-direction:row;flex-wrap:wrap}.color-strip{width:6px;border-radius:6px;flex:0 0 6px}.booking-main{display:flex;flex-direction:column;gap:4px;flex:1}.booking-title{font-weight:600}.booking-sub{color:var(--muted);font-size:12px}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;background:var(--chip);border:none;font-size:11px;color:var(--muted-text)}.section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;margin:12px 0}.control-section,.staff-section{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px 16px;margin:12px 0;color:var(--text)}.control-section h3{font-size:16px;margin:0 0 8px;font-weight:600;color:var(--text)}.control-section .form-inline{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}:where(.form-grid,.booking-card,.section) label{font-weight:600;color:inherit}:where(input,select,textarea,editable-select,.editable-textarea){color-scheme:dark;background:var(--card, #0f1320);color:var(--text, #e6edf3);border:1px solid var(--border, #20283a);padding:8px;border-radius:8px;width:auto;min-height:36px;transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease),background var(--transition-fast, .15s ease)}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{background:var(--autofill-bg, #10172a);color:var(--text, #e6edf3);border-color:var(--border, #20283a);box-shadow:0 0 0 1000px var(--autofill-bg, #10172a) inset}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}::placeholder{color:var(--muted-text, #9bb2c9);opacity:.8}:where(input,select,textarea):disabled{opacity:.6;cursor:not-allowed;background:var(--disabled-bg, var(--surface-alt));color:var(--muted-text, #888);border-color:color-mix(in srgb,var(--border, #20283a),#000 15%)}.control-section input.white-bg,.control-section select.white-bg,.control-section textarea.white-bg{background:var(--card);color:var(--text)}.form-grid label,.booking-card label,.section label{font-weight:600}.app-footer{padding:12px 16px;padding-bottom:calc(12px + var(--sab, 0px));border-top:1px solid var(--border);color:var(--muted-text);display:flex;justify-content:space-between;background:var(--panel);position:sticky;bottom:0}.section-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:12px}.controls{display:flex;gap:8px;flex-wrap:wrap}.controls .spacer{flex:1}@media(max-width:768px){.section,.control-section{overflow-x:auto;-webkit-overflow-scrolling:touch}.app-table,.table,.report-table{min-width:480px}}.leave-form select,.leave-form input,.leave-form textarea{all:unset;appearance:none;font-family:inherit;font-size:.9rem;border:1px solid var(--border, #20283a);border-radius:4px;padding:.45rem .5rem;background:var(--card, #0f1320);color:var(--text, #e6edf3);color-scheme:dark;box-sizing:border-box}.section.patient-enquiry select{width:unset}[data-theme=light] :where(input,select,textarea,editable-select,.editable-textarea),[data-theme=light] .leave-form select,[data-theme=light] .leave-form input,[data-theme=light] .leave-form textarea{color-scheme:light}.app-shell{display:flex;height:100dvh;overflow:hidden;background:var(--bg)}.app-sidebar{width:220px;min-width:220px;height:100dvh;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;transition:transform .25s ease,width .25s ease,min-width .25s ease;z-index:var(--z-base)}.sidebar__brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar__logo-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#8bc34a,#2ea043);flex-shrink:0}.sidebar__brand-text{display:flex;flex-direction:column;min-width:0}.sidebar__app-name{font-size:.92rem;font-weight:700;color:var(--text);white-space:nowrap;line-height:1.2}.sidebar__app-version{font-size:10px;color:var(--muted-text)}.sidebar__clinic-name{padding:6px 16px 0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex-shrink:0}.sidebar__clinic-name-text{font-size:11px;color:var(--accent);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.clinic-tz-chip{display:inline-block;font-size:9px;font-weight:500;color:var(--muted-text);background:var(--chip);border:1px solid var(--border);border-radius:var(--radius-pill);padding:1px 5px;margin-left:4px;vertical-align:middle;letter-spacing:.3px}.sidebar__nav{flex:1;overflow-y:auto;padding:6px 0 8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidebar__group{padding:8px 0 4px}.sidebar__group+.sidebar__group{border-top:1px solid var(--border);margin-top:4px}.sidebar__group-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted-text);padding:2px 16px 5px;-webkit-user-select:none;user-select:none}.sidebar__item{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:7px 16px 7px 14px;font-size:12px;font-weight:500;color:var(--text);cursor:pointer;border-left:3px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);box-sizing:border-box;white-space:nowrap;line-height:1.3}.sidebar__item:hover{background:var(--chip);color:var(--accent)}.sidebar__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sidebar__item--active{background:#2ea0431f;color:var(--primary);font-weight:600;border-left-color:var(--primary)}.sidebar__user{padding:10px 12px 14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;flex-shrink:0;padding-bottom:calc(14px + var(--sab, 0px))}.sidebar__role-badge{font-size:11px;color:var(--muted-text);padding:0 4px}.sidebar__btn{all:unset;display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-md);font-size:11px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);box-sizing:border-box;width:100%}.sidebar__btn--login{background:var(--interactive);color:#fff;justify-content:center}.sidebar__btn--login:hover{background:var(--interactive-hover)}.sidebar__btn--logout{background:transparent;color:var(--muted-text);border:1px solid var(--border);justify-content:center}.sidebar__btn--logout:hover{background:var(--chip);color:var(--danger);border-color:var(--danger)}.app-body{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.app-topbar{height:52px;background:var(--panel);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;padding:0 14px 0 12px;flex-shrink:0;z-index:var(--z-base)}.app-topbar__hamburger{all:unset;cursor:pointer;font-size:1.15rem;padding:5px 8px;border-radius:var(--radius-md);color:var(--muted-text);transition:background var(--transition-fast),color var(--transition-fast);display:none;line-height:1}.app-topbar__hamburger:hover{background:var(--chip);color:var(--text)}#btnSidebarPeek{display:none}[data-compact=true] #btnSidebarPeek{display:flex;align-items:center}.app-topbar__date-nav{display:flex;align-items:center;gap:4px}.app-topbar__btn{all:unset;cursor:pointer;font-size:1.15rem;font-weight:700;color:var(--muted-text);padding:3px 8px;border-radius:var(--radius-md);line-height:1;transition:background var(--transition-fast),color var(--transition-fast)}.app-topbar__btn:hover{background:var(--chip);color:var(--text)}.app-topbar__date-label{font-size:.88rem;font-weight:600;color:var(--text);min-width:130px;text-align:center}.app-topbar__date-input{font-size:13px;padding:4px 8px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--card);color:var(--text);color-scheme:dark;height:32px}[data-theme=light] .app-topbar__date-input{color-scheme:light}.app-topbar__search{flex:1;max-width:260px;min-width:100px;height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.app-topbar__search:focus{border-color:var(--interactive);box-shadow:0 0 0 3px #2563eb2e}.app-topbar__spacer{flex:1}.app-topbar__icon-btn{all:unset;cursor:pointer;font-size:1.1rem;padding:5px 8px;border-radius:var(--radius-md);color:var(--muted-text);transition:background var(--transition-fast),color var(--transition-fast);line-height:1}.app-topbar__icon-btn:hover{background:var(--chip);color:var(--text)}.app-body .app-main{flex:1;overflow-y:auto;padding:16px;max-width:100%;margin:0;min-height:0}.app-body .app-footer{flex-shrink:0;padding:6px 16px;padding-bottom:calc(6px + var(--sab, 0px));border-top:1px solid var(--border);font-size:11px;color:var(--muted-text);display:flex;justify-content:space-between;background:var(--panel);position:static}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:calc(var(--z-modal) - 1)}.sidebar-overlay.is-visible{display:block}@media(max-width:768px){.app-sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;z-index:var(--z-modal);transform:translate(-100%);box-shadow:4px 0 24px #00000073;width:240px;min-width:240px}.app-sidebar.is-open{transform:translate(0)}.app-topbar__hamburger{display:flex}.app-body{width:100%}.app-topbar{flex-wrap:wrap;height:auto;min-height:44px;padding:calc(8px + var(--sat, 0px)) 10px 5px;gap:4px;row-gap:4px}.app-topbar__date-input{display:none}.app-topbar__date-label{min-width:72px;font-size:.78rem;text-align:center}.app-topbar__date-nav{gap:2px}.app-topbar__search{order:10;flex:1 1 100%;max-width:100%;min-width:0;height:28px;font-size:12px;padding:0 10px}.app-topbar__spacer{display:none}}.env-banner~.app-shell .app-sidebar,.env-banner~.app-shell .app-topbar{top:40px}.app-topbar__icon-btn--compact{font-size:11px;font-weight:700;letter-spacing:.5px;min-width:26px}.app-topbar__icon-btn--compact.is-active{background:var(--interactive);color:#fff;border-radius:var(--radius-sm)}@media(min-width:769px){[data-compact=true] .app-sidebar{width:0;min-width:0;overflow:hidden;border-right:none}[data-compact=true] .app-sidebar.is-open{position:fixed;top:0;left:0;bottom:0;width:220px!important;min-width:220px!important;overflow:hidden!important;border-right:1px solid var(--border)!important;z-index:var(--z-modal);transform:translate(0);box-shadow:4px 0 24px #00000073}}[data-compact=true] .app-body .app-main{padding:4px 6px}[data-compact=true] .app-body .app-footer{display:none}[data-compact=true] .section{padding:4px 6px;margin:4px 0}[data-compact=true] .calendar-grid{gap:3px}[data-compact=true] .day-cell{min-height:60px;padding:3px}[data-compact=true] .day-header{font-size:11px;padding:2px 4px;border-radius:5px}[data-compact=true] .day-meta{gap:2px;margin-bottom:1px}[data-compact=true] .day-num{font-size:11px}[data-compact=true] .holiday-badge{font-size:9px;padding:1px 3px}[data-compact=true] .leave-pill-mini{font-size:9px;padding:0 3px}[data-compact=true] .booking-list{gap:1px!important;margin-top:2px!important}[data-compact=true] .booking-card{border-radius:3px;box-shadow:none;line-height:1.25;transition:none}[data-compact=true] .booking-card:hover{transform:none;box-shadow:none}[data-compact=true] .booking-card.created,[data-compact=true] .booking-card--created,[data-compact=true] .booking-card.confirmed,[data-compact=true] .booking-card--confirmed,[data-compact=true] .booking-card.checked-out,[data-compact=true] .booking-card--checked-out,[data-compact=true] .booking-card.cancelled,[data-compact=true] .booking-card--cancelled{border-left-width:2px}[data-compact=true] .booking-card__main{padding:1px 5px 2px}[data-compact=true] .booking-card__title{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;max-width:100%}[data-compact=true] .booking-card__subtitle,[data-compact=true] .booking-card__status-chip,[data-compact=true] .booking-card__block-tag,[data-compact=true] .status-chip{display:none}[data-compact=true] .booking-card__therapist-dot,[data-compact=true] .booking-card .therapist-dot{width:7px;height:7px;top:1px;right:1px;border-width:1px}[data-compact=true] .book-btn,[data-compact=true] .book-btn-top{font-size:9px!important;padding:0 4px!important;line-height:1.4!important;margin:1px 0!important}@media(max-width:768px){[data-compact=true] .app-body .app-main{padding:4px}}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;width:100%;margin:0 auto}.day-cell{min-width:180px;min-height:200px;display:flex;flex-direction:column;justify-content:space-between}.holiday-badge{background-color:#ef5350;color:#fff;padding:2px 6px;border-radius:4px;font-size:.8em}.day-cell.is-holiday{background-color:#ffebee;border-color:#ef9a9a;color:#c62828}.is-holiday{background-color:#ffe4e4e6}.day-cell.today{border:2px solid #4fc3f7;box-shadow:0 0 8px #4fc3f74d}.day-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:4px}.day-num{font-weight:700;color:var(--day-num-text)}.leave-inline{display:flex;flex-wrap:wrap;gap:4px;margin-left:4px}.leave-mini-wrap{display:flex;flex-wrap:wrap;gap:2px 4px;margin:3px 0 4px;justify-content:flex-start}.leave-pill{background:linear-gradient(90deg,#ffa726,#ffcc80);color:#000;font-size:13px;font-weight:600;padding:3px 8px;border-radius:999px;box-shadow:0 1px 3px #0006;white-space:nowrap;line-height:1.2}.leave-pill-mini{background:linear-gradient(90deg,#ffa726,#ffcc80);color:#000;font-size:11px;font-weight:600;line-height:1.2;border-radius:6px;padding:1px 6px;white-space:nowrap;box-shadow:0 1px 2px #00000040;transition:background-color .2s ease,transform .1s ease}.is-holiday .leave-pill-mini{background:linear-gradient(90deg,#ffb74d,#ffe082)}.holiday-badge{display:inline-block;background-color:#e53935;color:#fff;font-size:12px;font-weight:600;padding:2px 6px;border-radius:8px;line-height:1.3;margin-left:4px;white-space:nowrap}.calendar-grid.compact .day-cell{min-width:140px;min-height:150px;padding:2px 4px;gap:2px}.calendar-grid.compact .day-meta{margin-bottom:2px;padding:0 2px;line-height:1.2}.calendar-grid.compact .day-num{font-size:12px;font-weight:600}.calendar-grid.compact .leave-pill,.calendar-grid.compact .holiday-badge{font-size:10px;padding:1px 4px;margin-left:2px;line-height:1.1}.calendar-grid.compact .booking-card{font-size:11px;padding:3px 4px;margin-bottom:3px;border-radius:4px;line-height:1.2}.calendar-grid.compact .booking-card .booking-title{font-size:11px;font-weight:500;line-height:1.1}.calendar-grid.compact .booking-card .booking-sub{font-size:10px;line-height:1.1}.calendar-grid.compact .status-chip{padding:0 4px;font-size:10px;line-height:1.1}.calendar-grid.compact .book-btn-top{font-size:.9rem!important;padding:.05rem .35rem!important;margin-left:3px}.calendar-grid.compact .day-cell{min-height:140px;padding:3px 4px}.calendar-grid.compact .booking-card{font-size:11px;padding:3px 4px;border-radius:4px;margin-bottom:3px;line-height:1.2}.calendar-grid.compact .leave-pill-mini{font-size:10px;padding:1px 4px;line-height:1.1}.calendar-grid.compact .holiday-badge{font-size:10px;padding:1px 4px}.leave-pill,.leave-pill-mini,.leave-mini-wrap{z-index:3}.compact-panel-overlay{display:none;position:fixed;inset:0;background:#00000073;z-index:90}.compact-panel-overlay.is-open{display:block}.compact-panel{position:fixed;top:0;left:0;bottom:0;width:240px;background:var(--bg, #010d29);border-right:1px solid var(--border, rgba(255,255,255,.12));box-shadow:4px 0 24px #00000080;z-index:91;overflow-y:auto;padding:16px 12px;transform:translate(-100%);transition:transform .22s ease}.compact-panel.is-open{transform:translate(0)}.compact-panel-btn{background:#ffffff12;color:var(--text, #e0e0e0);border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 9px;font-size:.9rem;cursor:pointer;line-height:1;transition:background .15s ease}.compact-panel-btn:hover{background:#ffffff24}.compact-panel-btn.is-open{background:var(--interactive, #2563eb);border-color:transparent;color:#fff}.compact-panel .app-filter__group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form,.form__section{display:flex;flex-direction:column;gap:.75rem;width:100%;box-sizing:border-box}.form__field{display:flex;flex-direction:column;margin-bottom:.75rem;width:100%;box-sizing:border-box}.form__label{display:block;font-weight:600;margin-bottom:.25rem;font-size:14px}.form__input,.form__select,.form__textarea{width:100%;box-sizing:border-box;padding:6px 10px;border:1px solid currentColor;border-radius:5px;font-size:14px;background:transparent;color:inherit}.form__textarea{min-height:80px;resize:vertical}.form__input:focus,.form__select:focus,.form__textarea:focus{outline:none;box-shadow:0 0 0 1px currentColor}.form__input:disabled,.form__select:disabled,.form__textarea:disabled{opacity:.6;cursor:not-allowed}.form__input--hidden{display:none}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;width:100%;box-sizing:border-box}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:.8rem}.form-check{display:flex;align-items:center;gap:6px;font-size:13px}.form-check input[type=checkbox],.form-check input[type=radio]{transform:scale(1.1)}.form__option,select option{color:inherit;background:transparent}.filters-bar,.filter-column,.filter-controls{all:unset;display:block;box-sizing:border-box;width:100%}.form *{background:unset!important;color:unset!important;border-color:unset!important}dialog .form__input,dialog .form__select{background:none;color:inherit;border:1px solid currentColor}.w-100{width:100%}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.align-center{align-items:center}.gap-sm{gap:6px}.gap-md{gap:10px}form,fieldset,legend{margin:0;padding:0;border:none}::placeholder{opacity:.6}.recurrence-section{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.staff-form-grid label,.patient-form-grid label{display:block;margin-bottom:4px;color:var(--text);font-weight:500}.leave-form-grid .row-date{display:flex;gap:1rem;grid-column:1 / -1}.leave-form-grid .half{flex:1}.leave-form-grid #l_save{margin-top:8px}.filters-bar{background:var(--surface-tint);border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:12px;box-shadow:0 2px 8px #00000040;display:flex;flex-wrap:wrap;gap:20px}.filter-column{background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;padding:10px 14px;min-width:180px;transition:all .25s ease}.filter-column:hover{background:var(--chip);transform:translateY(-1px);box-shadow:0 2px 6px #00bfff33}.filter-column label{color:var(--accent);font-size:13px;font-weight:600;margin-bottom:6px}.filter-column input[type=checkbox]{accent-color:var(--accent);transform:scale(1.1)}.filter-controls{display:flex;align-items:center;gap:6px;margin-bottom:6px}.filter-controls .btn.btn-xs{font-size:12px;line-height:1.2;padding:4px 8px;border-radius:4px;border:none;background:var(--interactive);color:#fff;cursor:pointer;transition:all .15s ease}.filter-controls .btn.btn-xs:hover{background:var(--interactive-hover)}.filter-controls .btn.btn-xs:active{filter:brightness(.9)}.date-nav{display:flex;align-items:center;gap:6px}.date-input{background:var(--card, #0f1320);color:var(--text, #e6edf3);border:1px solid var(--border, #20283a);padding:6px 8px;border-radius:6px;color-scheme:dark;cursor:pointer}#patientSearch,.patient-search-box{background:var(--input-bg);border:1px solid rgba(97,218,251,.25);color:var(--text);transition:all .2s ease}#patientSearch::placeholder{color:var(--muted-text)}.therapy-checkboxes{display:flex;flex-direction:column;gap:5px;max-height:150px;overflow-y:auto}.days-checkboxes{display:flex;gap:10px;flex-wrap:wrap}input[type=checkbox]{transform:scale(1.2);margin-right:6px}.filter-scroll-box{display:flex;flex-direction:row;flex-wrap:wrap;gap:2px 3px;overflow:visible;align-content:flex-start;padding:1px 0}.filter-scroll-box::-webkit-scrollbar{width:3px}.filter-scroll-box::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.filter-scroll-box .checkbox-item{display:inline-flex;align-items:center;gap:3px;padding:0 6px 0 4px;height:20px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--chip);white-space:nowrap;cursor:pointer;flex-shrink:0;transition:background var(--transition-fast),border-color var(--transition-fast);-webkit-user-select:none;user-select:none}.filter-scroll-box .checkbox-item:hover{background:var(--surface-alt);border-color:var(--primary)}.filter-scroll-box .checkbox-item:has(input:checked){background:#2ea0431f;border-color:var(--primary)}.filter-scroll-box .checkbox-item label{font-size:10.5px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-scroll-box .checkbox-item:has(input:checked) label{color:var(--primary)}.filter-scroll-box .checkbox-item input[type=checkbox]{width:11px;height:11px;flex-shrink:0;margin:0;accent-color:var(--primary);cursor:pointer}.checkbox-item{display:flex;align-items:center;gap:6px;white-space:nowrap}.checkbox-item label{color:var(--text);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.editable-select[data-field=paymentMethodId]{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 6px;width:140px}.editable-input[type=number]:disabled{background-color:var(--chip);color:var(--muted-text);border:1px solid var(--border)}.editable-textarea{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;width:95%;height:40px;transition:border-color .3s}.editable-input[data-field=feeBase]{background-color:var(--input-bg);color:var(--highlight);font-weight:600;border:1px solid var(--border);border-radius:6px;padding:4px 6px;width:90px;transition:border-color .2s,box-shadow .2s}.custom-select{position:relative;width:120px;background-color:#2d2d2d;color:#f1f1f1;border:1px solid #555;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-block;margin-right:6px}.custom-select .selected{padding:4px 8px}.custom-select .options{display:none;position:absolute;top:100%;left:0;width:100%;background-color:#2d2d2d;border:1px solid #555;border-radius:4px;z-index:9999}.custom-select.open .options{display:block}.custom-select .options div{padding:5px 8px}dialog input[type=time],.section input[type=time]{background-color:var(--card, #0f1320);color:var(--text, #e6edf3);color-scheme:dark;font-weight:800;border:1px solid var(--border, #20283a);border-radius:6px;padding:6px 8px}.section input[type=date]{background-color:var(--card, #0f1320);color:var(--text, #e6edf3);color-scheme:dark;border:1px solid var(--border, #20283a);border-radius:6px}dialog.section h3{color:var(--highlight);font-weight:700;margin-bottom:.8rem}dialog.section input,dialog.section select{background:var(--input-bg);border:1px solid var(--border)}dialog.section .btn.primary{background:var(--primary);color:#fff}.leave-form-grid label{color:var(--text);font-weight:500}.filters-bar,.filter-column,.filter-controls,.section label{color:inherit}input[type=text],input[type=email],input[type=number],input[type=tel],input[type=date],textarea,select{background:inherit;color:inherit;border-color:var(--border, #ccc)}.form__input,.form__textarea,.form__select{background:inherit;color:inherit;border:1px solid var(--border, #ccc)}.form__input:focus,.form__textarea:focus,.form__select:focus{outline:none;box-shadow:none;border-color:var(--accent, #3b82f6)}.form__option,select option{background:var(--card, #0f1320);color:var(--text, #e6edf3)}.app-table{width:100%;border-collapse:collapse}.app-table th,.app-table td{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;color:var(--text)}.app-table th{background:var(--table-head-light);font-weight:600;color:var(--table-head-text-light)}.app-table tr:hover td{background:var(--table-row-hover)}.table,.patient-table,.staff-table{width:100%;border-collapse:collapse}.table th,.table td,.patient-table th,.patient-table td,.staff-table th,.staff-table td{border-bottom:1px solid var(--border, #20283a);padding:8px 10px;text-align:left;color:var(--text, #e6edf3)}.section .table{width:100%;border-collapse:separate;border-spacing:0;font-family:Segoe UI,Noto Sans TC,sans-serif;background-color:var(--table-bg);color:var(--text);border-radius:10px;overflow:hidden}.section .table thead{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-size:var(--text-sm);letter-spacing:.3px}.section .table thead th{padding:10px 6px;text-align:center;border-bottom:1px solid var(--table-border-inner)}.section .table tbody tr{height:46px;transition:background-color .2s ease,box-shadow .2s ease}.section .table tbody td{border-bottom:1px solid var(--table-border-inner);padding:1px 2px;text-align:center;font-size:var(--text-sm)}.section .table select,.section .table input,.section .table textarea{background-color:var(--table-input-bg);color:var(--text);border:1px solid #555;border-radius:4px;padding:4px 6px;font-size:.85rem;transition:border-color .15s}tr[data-overdue="1"]{background-color:#ffdc6440}tr[data-overdue="2+"]{background-color:#f544148b;color:#f4f4f4;font-weight:600}.overdue-badge{display:inline-block;margin-left:4px;padding:2px 6px;border-radius:8px;font-size:11px;font-weight:600;background:var(--danger);color:#fff;box-shadow:0 1px 3px #0000004d}.past-leave{background-color:var(--surface-alt)!important;color:var(--muted-text)!important;cursor:not-allowed!important;opacity:.7}.lowbalance-badge{background-color:var(--warning);color:var(--black);font-size:11px;padding:2px 6px;margin-left:6px;border-radius:4px}.holiday-badge{font-family:Noto Sans TC,Segoe UI,sans-serif;box-shadow:0 1px 4px #00000059;color:#222;z-index:2;background-color:#e53935;color:#fff;font-weight:700}.is-holiday{border:1px solid rgba(200,0,0,.25);background-color:#ffe4e4ed}tr[data-type=individual]{background-color:#00ff000d}tr[data-type=family]{background-color:#0080ff0d}.section .table thead th,.section .table thead th *{color:var(--table-head-text)!important;background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))!important}.report-table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:10px;overflow:hidden;font-family:Noto Sans TC,Segoe UI,sans-serif;color:var(--text)}.report-table__head th{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-weight:600;text-align:center;padding:10px 6px;border-bottom:1px solid var(--border);font-size:12px}.report-table__body td{text-align:center;padding:8px 6px;border-bottom:1px solid var(--border);background:var(--surface-tint);transition:background .25s ease}.report-table__body tr:hover td{background:var(--chip)}.report-table__btn{display:inline-block;background-color:transparent;min-width:70px;padding:6px 14px;margin:0 3px;border:none;border-radius:6px;color:#fff;font-weight:700;font-size:12px;cursor:pointer;transition:background-color .2s ease,transform .1s}.report-table__btn:hover{transform:translateY(-1px)}.report-table__btn--edit{background-color:#28a745!important}.report-table__btn--edit:hover{background-color:#34c26b}.report-table__btn--delete{background-color:#dc3545!important}.report-table__btn--delete:hover{background-color:#ef4b59}.past-leave .report-table__btn{background-color:#6c757d!important;color:#ccc!important;cursor:not-allowed;opacity:.7;transform:none}.app-table th,.report-table__head th{text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:700}.table{width:100%;border-collapse:collapse;font-size:12px}.table th,.table td{padding:4px 6px;text-align:center;border-bottom:1px solid var(--border)}.booking-list__staff-divider{display:flex;align-items:center;gap:6px;margin:6px 0 0;padding:2px 6px;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:var(--muted-text, #a9b4c0);border-left:3px solid var(--staff-color, #666);background:color-mix(in srgb,var(--staff-color, #666) 12%,transparent);border-radius:3px}.booking-list__staff-divider:first-child{margin-top:0}.app-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:10;flex-wrap:wrap}.app-header__brand{display:flex;align-items:center;gap:10px}.app-header__brand-text{display:flex;flex-direction:column;gap:2px;line-height:1.2}.app-header__clinic-name{font-size:11px;font-weight:600;color:var(--accent, #61dafb);letter-spacing:.3px;opacity:.9}.app-header__logo-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#8bc34a,#2ea043)}.app-header__title{margin:0;font-size:1rem;color:var(--text);letter-spacing:.4px}.app-header__actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.app-header__btn{background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 11px;font-size:.95rem;font-weight:600;transition:background .2s ease,transform .1s ease;cursor:pointer}.app-header__btn:hover{background:var(--surface-alt);transform:translateY(-1px)}.app-header__btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.app-header__btn--primary:hover{background:var(--primary-dark)}.app-header__btn--nav{padding:4px 8px;font-weight:700}.app-header__btn--small{font-size:.88rem;padding:4px 9px}.app-header__actions .date-label,.date-label{color:var(--highlight)!important;font-weight:700!important;font-size:.9rem!important;text-align:center;letter-spacing:.4px;display:inline-block;min-width:110px}.app-header__actions #jumpDate,#jumpDate{background:var(--card, #0f1320)!important;color:var(--text, #e6edf3)!important;color-scheme:dark!important;border:1px solid var(--border, #20283a)!important;border-radius:6px!important;padding:4px 6px!important;font-size:.9rem!important;font-family:Noto Sans TC,Segoe UI,system-ui,sans-serif!important;line-height:1.4!important}.app-header__user{display:flex;align-items:center;gap:6px}.app-header__badge{background:var(--chip);border:1px solid var(--border);color:var(--accent);padding:4px 8px;border-radius:999px;font-size:13px}.app-header{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border, #20283a);box-shadow:0 2px 4px #0000004d}.app-header__brand{display:flex;align-items:center;gap:8px}.app-header__logo-dot{width:10px;height:10px;border-radius:50%;background:var(--accent)}.app-header__logo{font-weight:600;color:var(--text);font-size:1.05rem}.top-actions.app-header__actions{display:flex;flex-wrap:wrap;gap:.5rem;flex:1 1 auto;align-items:center;justify-content:flex-start}.app-header__group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;padding:6px 8px}.app-header__group--date,.app-header__group--booking,.app-header__group--staff{background:var(--surface-tint)}.app-header__btn{font-size:.95rem;white-space:nowrap}.btn.primary{background:var(--interactive);border-color:var(--interactive);color:#fff}.app-header__date-label{color:var(--text);font-size:.85rem}.app-header__date-input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 6px;font-size:.85rem}.user-area.app-header__user{display:flex;align-items:center;gap:6px}.app-header__section{background:var(--surface-tint);border-radius:8px;padding:6px 12px;margin-bottom:10px}.app-header__section-title{font-weight:700;font-size:.95rem;color:var(--highlight);margin-bottom:6px}.is-hidden{display:none!important}.is-visible{display:block!important}@media(max-width:900px){.app-header,.app-header__actions{flex-direction:column;align-items:stretch}.app-header__group{justify-content:flex-start}.btn{flex:1 1 calc(33% - 6px);min-width:90px}.app-header__user{justify-content:flex-end}}.top-actions .btn:hover,.app-header__actions .btn:hover{background:var(--surface-alt);border-color:var(--border);color:var(--text);transform:translateY(-1px);box-shadow:0 6px 10px #00000026}.top-actions .btn:active,.app-header__actions .btn:active{transform:translateY(0);box-shadow:none;opacity:.9}.app-header__btn--dev{background-color:var(--chip);color:var(--text)}.app-header__btn--dev:hover{background-color:var(--surface-alt)}.app-header__section--user{margin-top:8px}.app-header__group--user{display:flex;gap:8px;align-items:center}.app-header__badge{background-color:var(--chip);color:var(--text);padding:4px 10px;border-radius:6px;font-weight:600}.app-header__wrapper{display:grid;grid-template-columns:repeat(auto-fit,minmax(560px,1fr));gap:12px}.app-header__section{background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;padding:10px 14px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-header__section-title{font-size:.9rem;font-weight:700;color:var(--highlight);margin-bottom:6px}.app-header__btn{transition:all .2s ease-in-out}.app-header__btn:hover{transform:translateY(-1px);background-color:var(--surface-alt)}.app-header__group--system-user{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:6px 8px;background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;gap:8px}.system-tools{display:flex;align-items:center;gap:6px}.user-tools{display:flex;align-items:center;gap:8px}.user-tools .app-header__badge{background-color:var(--chip);color:var(--highlight);font-weight:700}@media(max-width:900px){.app-header__group--system-user{flex-direction:column;align-items:stretch}.system-tools,.user-tools{justify-content:space-between;width:100%}}.top-actions.app-header__actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px;align-items:stretch;justify-content:space-between;width:100%}.top-actions .app-header__section{background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;padding:8px 12px;box-shadow:0 1px 4px #0000001a}.top-actions .app-header__section-title{font-weight:700;font-size:.92rem;color:var(--highlight);margin-bottom:4px}.top-actions .app-header__group{display:flex;flex-wrap:wrap;gap:6px}@media(max-width:1100px){.top-actions.app-header__actions{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}@media(min-width:1280px){.app-header__section--system,.app-header__section--user{grid-column:span 1}}.app-secure--backdoor{position:fixed;inset:0;background-color:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center}.app-secure__box{background:var(--panel);color:var(--text);padding:16px 24px;border-radius:6px;border:1px solid var(--border);box-shadow:0 4px 20px #0000004d}.app-secure__title{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text);text-align:center}.app-secure__input{width:240px;padding:6px 8px;font-size:14px;margin-bottom:10px}.app-secure__actions{text-align:center}.app-secure__btn{margin:0 6px;padding:4px 10px}.env-banner{position:fixed;top:0;left:0;width:100%;height:36px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:600;letter-spacing:.3px;color:#fff;background:#c82800d9;border-bottom:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #00000040;z-index:9999;animation:slideDown .4s ease}.env-banner--dev{background:linear-gradient(90deg,#ff8800d9,#ff6600d9)}.env-banner--stage{background:linear-gradient(90deg,#0088ffd9,#0066ccd9)}.env-banner--test{background:linear-gradient(90deg,#ff0080cc,#cc0066d9)}.env-banner--local{background:linear-gradient(90deg,#646464d9,#3c3c3cd9)}.env-banner__icon{font-size:16px;flex-shrink:0}.env-banner__text{color:#fff;text-shadow:0 0 4px rgba(0,0,0,.3)}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.app-filter{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.app-filter__group{flex:1 1 200px;min-width:170px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-2);transition:border-color var(--transition-fast)}.app-filter__group:hover{border-color:var(--primary)}.app-filter__title{font-size:10px;font-weight:var(--fw-bold);color:var(--highlight);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1);display:flex;justify-content:space-between;align-items:center}.app-filter__controls{display:flex;gap:3px;align-items:center;height:18px;flex-shrink:0}.app-filter__btn{display:inline-flex;align-items:center;background:var(--chip);color:var(--muted-text);border:none;border-radius:var(--radius-pill);padding:0 6px;height:18px;font-size:9.5px;font-weight:var(--fw-medium);cursor:pointer;line-height:1;transition:all var(--transition-fast)}.app-filter__btn:hover{background:var(--primary);color:var(--white)}.app-filter__btn--all{background:#2ea04329;color:var(--primary)}.app-filter__btn--none{background:var(--chip);color:var(--muted-text)}.app-filter__list{display:flex;flex-direction:column;gap:2px;max-height:120px;overflow-y:auto;font-size:11px}.app-filter__list::-webkit-scrollbar{width:4px}.app-filter__list::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:2px}.app-filter__item{display:flex;align-items:center;gap:6px;color:var(--text);transition:color var(--transition-fast)}.app-filter__item:hover{color:var(--primary)}.app-filter__item input[type=checkbox]{accent-color:var(--primary)}.app-filter__search{flex:1 1 100%;max-width:240px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-2);font-size:13px;transition:border-color var(--transition-fast)}.app-filter__search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2ea04333}.app-filter__search::placeholder{color:var(--muted-text)}.app-filter__toggle{background:var(--chip);color:var(--muted-text);border:1px solid var(--border);font-size:11px;padding:2px 8px;border-radius:var(--radius-sm);cursor:pointer;font-weight:var(--fw-medium);transition:all var(--transition-fast)}.app-filter__toggle:hover{background:var(--primary);color:var(--white);border-color:transparent}.app-filter__collapsible{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-2);width:100%;transition:opacity var(--transition-base),max-height .3s ease;opacity:1;max-height:50vh;overflow-y:auto;align-items:start}@media(min-width:1100px){#invoiceFilter{grid-column:span 2}}.app-filter__collapsible--hidden{opacity:0;max-height:0;overflow:hidden;pointer-events:none}.app-filter__collapsible>div{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2) var(--space-2);display:flex;flex-direction:column;gap:3px;overflow-y:visible;max-height:none;transition:border-color var(--transition-fast)}.app-filter__collapsible>div:hover{border-color:var(--primary)}#staffFilter:before{content:"治療師"}#sessionFilter:before{content:"時段"}#statusFilter:before{content:"狀態"}#therapyFilter:before{content:"療法"}#staffFilter:before,#sessionFilter:before,#statusFilter:before,#therapyFilter:before{display:block;font-size:9px;font-weight:var(--fw-bold);color:var(--muted-text);text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid var(--border);padding-bottom:3px;margin-bottom:1px;pointer-events:none;flex-shrink:0}.staff-toggle-inactive{display:flex!important;align-items:center;gap:4px;margin:2px 0!important;cursor:pointer;flex-shrink:0}.staff-toggle-inactive input[type=checkbox]{transform:scale(.8);accent-color:var(--primary);flex-shrink:0;cursor:pointer}.staff-toggle-inactive__label,.staff-toggle-inactive span{font-size:var(--text-xs)!important;color:var(--muted-text)!important}.checkbox-item--inactive label{color:var(--muted-text);font-style:italic}@media(max-width:768px){.app-filter{padding:4px var(--space-3);border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:1px solid var(--border);box-shadow:none}.app-filter.is-open{position:fixed;inset:auto 0 0;z-index:var(--z-modal, 1000);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:none;box-shadow:0 -4px 32px #00000059;padding:var(--space-2) var(--space-3) calc(var(--space-3) + var(--sab, 0px));max-height:72vh;overflow-y:auto}.app-filter__collapsible:not(.app-filter__collapsible--hidden){grid-template-columns:repeat(2,1fr);max-height:55vh;overflow-y:auto}}.app-filter-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:calc(var(--z-modal, 1000) - 1)}.app-filter-backdrop.is-visible{display:block}.app-filter label,.app-filter span,.app-filter .app-filter__item label{color:var(--text)}.app-filter label:hover{color:var(--primary)}.app-filter__collapsible input#patientSearch{max-width:160px;height:32px;padding:6px 8px;background:var(--card);border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text);font-size:13px}.search-selector{display:inline-block;margin-left:1rem}.search-selector__input{min-width:240px;padding:.35rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text)}.app-filter__saved{flex:1 0 100%;display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:7px 11px;border-radius:8px;font-size:.8rem;color:var(--text);background:color-mix(in srgb,var(--highlight) 14%,transparent);border:1px solid color-mix(in srgb,var(--highlight) 45%,transparent)}.app-filter__saved-clear{margin-left:auto;padding:3px 10px;font-size:.75rem;cursor:pointer;white-space:nowrap;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:6px}.app-filter__saved-clear:hover{border-color:var(--highlight)}:root{--confirm-rose: #fb7185;--confirm-violet: #a78bfa;--confirm-teal: #2dd4bf}.confirm-ticker{display:flex;flex-direction:column;gap:4px;margin:0 0 8px;padding:5px 12px;border-radius:9px;font-size:.82rem;overflow:hidden;color:var(--text);background:color-mix(in srgb,var(--confirm-rose) 12%,transparent);border:1px solid color-mix(in srgb,var(--confirm-rose) 40%,transparent)}.confirm-ticker[hidden]{display:none}.confirm-ticker__row{display:flex;align-items:center;gap:10px;min-width:0}.confirm-ticker__row:not(.confirm-ticker__row--lead){opacity:.62}.confirm-ticker__row:not(.confirm-ticker__row--lead) .confirm-ticker__head{color:var(--muted-text);font-weight:600}.confirm-ticker__head{flex:0 0 auto;display:inline-flex;align-items:center;gap:2px;font-weight:700;white-space:nowrap;color:var(--confirm-rose)}.confirm-ticker__bell{display:inline-block;animation:confirm-pip-pulse 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.confirm-ticker__bell{animation:none}}.confirm-ticker__track{position:relative;flex:1 1 auto;min-width:0;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}.confirm-ticker__lane{display:flex;flex:0 0 auto;gap:22px;padding-right:22px;white-space:nowrap}.confirm-ticker__track--scroll .confirm-ticker__lane{animation:confirm-marquee 28s linear infinite}.confirm-ticker:hover .confirm-ticker__lane{animation-play-state:paused}@keyframes confirm-marquee{0%{transform:translate(0)}to{transform:translate(-100%)}}@media(prefers-reduced-motion:reduce){.confirm-ticker__track{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.confirm-ticker__lane{animation:none;flex-wrap:wrap;white-space:normal}.confirm-ticker__lane[aria-hidden=true]{display:none}}.confirm-ticker__item{display:inline-flex;align-items:center;gap:6px}.confirm-ticker__name--rose{color:var(--confirm-rose)}.confirm-ticker__name--violet{color:var(--confirm-violet)}.confirm-ticker__done{padding:1px 7px;font-size:.78rem;line-height:1.4;cursor:pointer;border-radius:5px;color:var(--confirm-teal);background:color-mix(in srgb,var(--confirm-teal) 14%,transparent);border:1px solid color-mix(in srgb,var(--confirm-teal) 45%,transparent)}.confirm-ticker__done:hover:not(:disabled){background:color-mix(in srgb,var(--confirm-teal) 28%,transparent)}.confirm-ticker__done:disabled{opacity:.45;cursor:default}.booking-row{display:flex;align-items:center;gap:4px}.booking-row>.booking-card{flex:1 1 auto;min-width:0}.confirm-pip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;font-size:.82rem;line-height:1;background:transparent}.confirm-pip--action{cursor:pointer}.confirm-pip--action:hover{filter:brightness(1.4)}.confirm-pip--rose{color:var(--confirm-rose)}.confirm-pip--violet{color:var(--confirm-violet)}.confirm-pip--teal{color:var(--confirm-teal)}@keyframes confirm-pip-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.86)}}.confirm-pip--pulse{animation:confirm-pip-pulse 1.6s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.confirm-pip--pulse{animation:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--confirm-rose) 65%,transparent)}}.booking-card.booking-card--replied{background:#38bdf833;border-color:#38bdf8;border-left-color:#38bdf8}.booking-card.booking-card--replied .booking-card__title,.booking-card.booking-card--replied .booking-card__subtitle{color:#e0f2fe}.app-secure{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#000000a6;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .25s ease}.app-secure__box{background:#1a237e;color:#fff;padding:20px 24px;border-radius:10px;width:280px;box-shadow:0 4px 20px #0006;text-align:center;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;animation:slideUp .25s ease}.app-secure__title{margin-bottom:16px;font-size:1.1rem;font-weight:700;color:var(--text-dark-bg);text-shadow:0 0 6px rgba(120,180,255,.4)}.app-secure__input{width:100%;padding:8px 10px;margin-bottom:14px;border:1px solid #3949ab;border-radius:6px;background:#e8eaf6;color:#000;font-size:.95rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.app-secure__input:focus{outline:none;border-color:var(--interactive);box-shadow:var(--shadow-focus)}.app-secure__actions{display:flex;justify-content:center;gap:10px}.app-secure__btn{padding:6px 12px;border:none;border-radius:5px;cursor:pointer;transition:all .2s ease;font-weight:600;font-size:.9rem;min-width:86px}.app-secure__btn--ok{background:var(--primary);color:var(--white)}.app-secure__btn--ok:hover{filter:brightness(1.1);box-shadow:0 0 6px #00e0b566}.app-secure__btn--cancel{background:var(--interactive);color:var(--white)}.app-secure__btn--cancel:hover{background:var(--interactive-hover)}.app-secure--backdoor .app-secure__box{background:#111a60;border:1px solid #3240a6}.app-secure--backdoor .app-secure__title:before{content:"🛠 "}.app-secure--backdoor .app-secure__btn--ok{background:var(--accent)}.app-secure--backdoor .app-secure__btn--ok:hover{filter:brightness(1.1)}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.app-secure__dialog{border:0;padding:0;background:transparent;overflow:visible}.app-secure__dialog::backdrop{background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-secure__err{margin:-6px 0 10px;font-size:12px;color:#ffb4b4}.app-dev{background:var(--panel);color:var(--text);padding:24px 32px;border-radius:10px;max-width:640px;margin:30px auto;box-shadow:0 4px 20px #00000073;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif}.app-dev__title{font-size:1.4rem;color:var(--accent);margin-bottom:6px}.app-dev__desc{color:var(--muted-text);font-size:.9rem;margin-bottom:18px}.app-dev__panel{display:flex;flex-direction:column;gap:14px;background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;padding:18px 20px}.app-dev__field{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.app-dev__label{font-weight:600;font-size:.95rem;color:var(--text);display:flex;align-items:center;gap:6px}.app-dev__select{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:.9rem;cursor:pointer}.app-dev__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.app-dev__toggle{transform:scale(1.2);accent-color:var(--primary);cursor:pointer}.app-dev__btn{align-self:flex-start;border:none;border-radius:8px;padding:8px 16px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .25s ease}.app-dev__btn--apply{background:linear-gradient(135deg,#00c6a2,#06d6a0);color:var(--black);box-shadow:0 4px 12px #00d6a04d}.app-dev__btn--apply:hover{background:linear-gradient(135deg,#0eeab0,#08ffc6);transform:translateY(-2px);box-shadow:0 6px 14px #0fc6}.app-dev__btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important;box-shadow:none!important}.app-dev__lock{text-align:center;padding:40px;background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;color:var(--muted-text)}.app-dev__lock-title{font-size:1.2rem;color:var(--danger);margin-bottom:10px}.app-dev__lock-text{color:var(--muted-text)}.app-dev__panel{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-header__btn--dev{background:linear-gradient(90deg,#00c6a240,#00c6a226);border:1px solid rgba(0,198,162,.4);color:var(--primary)}.app-header__btn--dev:hover{background:#00c6a273;color:var(--black);box-shadow:0 0 8px #00c6a266}.dev-tab-bar{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:16px}.dev-tab-bar .btn--tab{background:#ffffff0a;border-color:var(--border);color:var(--muted-text)}.dev-tab-bar .btn--tab:hover{background:#ffffff14;border-color:var(--accent);color:var(--text)}.dev-tab-bar .btn--tab.is-active{background:#00c6a226;border-color:var(--primary);color:var(--primary);box-shadow:0 0 6px #00c6a233}.app-dev__group{border:1px solid var(--border);border-radius:8px;margin-bottom:16px;overflow:hidden}.app-dev__group-summary{padding:12px 16px;background:var(--chip);font-weight:600;font-size:.95rem;color:var(--text);cursor:pointer;list-style:none;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none}.app-dev__group-summary::-webkit-details-marker{display:none}.app-dev__group-summary:before{content:"▶ ";font-size:9px;color:var(--muted-text);display:inline-block}.app-dev__group[open]>.app-dev__group-summary:before{content:"▼ "}.app-dev__group>.app-dev__panel{margin:12px}.btn,.btn-icon{background:var(--panel);color:var(--text);border:1px solid var(--border);padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,transform .15s ease;font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.section .controls .btn,.bulk-controls .btn,.dialog .btn,.app-header .btn,.sidebar .btn,.filter-bar .btn{min-height:36px}.btn:hover{background:var(--surface-alt)}.btn:focus-visible{outline:2px solid var(--interactive);outline-offset:2px}.btn-icon{padding:6px 10px;font-size:18px;line-height:1}.btn--primary,.btn.primary{background:var(--primary);color:var(--white);border:none;font-weight:600}.btn--primary:hover,.btn.primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 10px #2ea04366}.btn--secondary{background:var(--surface-alt);color:var(--text);border:1px solid var(--border)}.btn--secondary:hover{filter:brightness(1.1)}.btn--danger,.btn.danger{background:var(--danger);color:var(--white);border:none}.btn--danger:hover,.btn.danger:hover{filter:brightness(1.15)}.btn.small,.btn--sm{padding:.25rem .75rem;font-size:11px}.edit-btn,.btn-sm.edit{background:var(--interactive);color:var(--white);border:none;border-radius:6px;font-size:13px;padding:4px 10px;cursor:pointer}.edit-btn:hover,.btn-sm.edit:hover{background:var(--interactive-hover)}.delete-btn,.btn-sm.danger{background:var(--danger);color:var(--white);border:none;border-radius:6px;font-size:13px;padding:4px 10px;cursor:pointer}.delete-btn:hover,.btn-sm.danger:hover{filter:brightness(1.15)}.section .controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.section .controls button{min-width:90px;border-radius:6px;border:1px solid var(--border);padding:8px 14px;font-size:14px;font-weight:600;background:var(--surface-alt);color:var(--text);cursor:pointer;transition:background .15s ease,transform .15s ease}.section .controls button:hover{filter:brightness(1.12)}.section .controls button:focus-visible{outline:2px solid var(--interactive);outline-offset:2px}.section .controls button.primary{background:var(--primary);color:var(--white);border:none;box-shadow:0 2px 8px #2ea04359}.section .controls button.primary:hover{background:var(--primary-dark);box-shadow:0 4px 10px #2ea04380;transform:translateY(-1px)}.section .controls button.whatsapp,.section .controls button[title*=WhatsApp]{background:linear-gradient(90deg,#00c46a,#008f4c);color:var(--white);border:none;box-shadow:0 3px 10px #00b45a59}.section .controls button.whatsapp:hover,.section .controls button[title*=WhatsApp]:hover{background:linear-gradient(90deg,#00e979,#00af57);transform:translateY(-1px)}.section .controls span{color:var(--muted-text);font-size:13px;align-self:center;margin-left:6px}.btn-page,.bulk-controls button{background:var(--surface-alt);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 8px;cursor:pointer;transition:background .2s}.btn-page:hover,.bulk-controls button:hover{filter:brightness(1.12)}.filter-controls .btn.btn-xs{background:var(--interactive);color:var(--white);border-radius:6px;font-weight:600}.controls .btn-invoice{background:var(--interactive);color:var(--white);margin-left:6px}.controls .btn-invoice:hover{background:var(--interactive-hover)}.btn--primary,.btn.primary,.section .controls button.primary{background:linear-gradient(180deg,var(--primary) 0%,#1a7a32 100%);box-shadow:0 2px #00000059,0 1px 4px #2ea04340}.btn--primary:hover,.btn.primary:hover,.section .controls button.primary:hover{background:linear-gradient(180deg,#36b44a 0%,var(--primary) 100%);transform:translateY(-1px);box-shadow:0 4px #00000040,0 3px 10px #2ea04359}.btn--primary:active,.btn.primary:active,.section .controls button.primary:active{transform:translateY(1px);box-shadow:0 0 #00000059}.btn--danger,.btn.danger,.section .controls button.danger,.delete-btn,.btn-sm.danger{box-shadow:0 2px #0000004d}.btn--danger:hover,.btn.danger:hover,.section .controls button.danger:hover{transform:translateY(-1px);box-shadow:0 3px #00000040}.btn--danger:active,.btn.danger:active{transform:translateY(1px);box-shadow:none}.edit-btn,.btn-sm.edit{box-shadow:0 2px #0000004d}.edit-btn:hover,.btn-sm.edit:hover{transform:translateY(-1px);box-shadow:0 3px #00000040}.edit-btn:active,.btn-sm.edit:active,.delete-btn:active,.btn-sm.danger:active{transform:translateY(1px);box-shadow:none}.report-table__btn--edit,.report-table__btn--delete{box-shadow:0 2px #0000004d;transition:background-color .2s ease,transform .1s,box-shadow .1s}.report-table__btn--edit:hover,.report-table__btn--delete:hover{box-shadow:0 3px #00000040}.report-table__btn--edit:active,.report-table__btn--delete:active{transform:translateY(1px);box-shadow:none}.sidebar__btn--login{background:linear-gradient(180deg,var(--interactive) 0%,#1a56db 100%);box-shadow:0 2px #0000004d}.sidebar__btn--login:hover{transform:translateY(-1px);box-shadow:0 3px #00000040}.sidebar__btn--login:active{transform:translateY(1px);box-shadow:none}.main-audit__btn{box-shadow:0 2px #00000040}.main-audit__btn:hover{transform:translateY(-1px);box-shadow:0 3px #0003}.main-audit__btn:active{transform:translateY(1px)!important;box-shadow:none!important}@media(max-width:768px){.btn,.btn-icon,.dialog__btn,button{min-height:44px;min-width:44px}.btn--tiny,.report-table__btn,.control-table__btn--edit,.control-table__btn--delete{min-height:36px;min-width:36px}.btn--table{min-height:0;min-width:0}}.section--booking-form button,dialog.section--booking-form button,.section--booking-form .controls button{color:var(--text);font-weight:600;transition:all .2s ease;border-radius:6px;padding:8px 16px}.section--booking-form .controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}button.primary,.section button.primary,.section .controls button.primary{background:linear-gradient(90deg,#2ea043,#3ee47b);border:none;box-shadow:0 2px 8px #2ea04359;font-weight:700}button.primary:hover,.section button.primary:hover,.section .controls button.primary:hover{background:linear-gradient(90deg,#3ee47b,#2ea043);box-shadow:0 4px 12px #3ee47b73;transform:translateY(-1px)}.section .controls button:not(.primary):not(.danger):not([title*=WhatsApp]){background:var(--surface-alt);border:1px solid var(--border);color:var(--text)}.section .controls button:not(.primary):not(.danger):hover{filter:brightness(1.12)}.section .controls button.danger{background:var(--danger);color:var(--white);border:none}.section .controls button.danger:hover{filter:brightness(1.15)}.section .controls button:has(📱),.section .controls button[title*=WhatsApp],.section .controls button.whatsapp{background:linear-gradient(90deg,#00b862,#00964c);border:none;box-shadow:0 3px 8px #00b45a59}.section .controls button:has(📱):hover,.section .controls button[title*=WhatsApp]:hover{background:linear-gradient(90deg,#00e979,#00af57);transform:translateY(-1px);box-shadow:0 3px 10px #00c86466}.section .controls span{align-self:center;color:var(--muted-text);font-size:13px;margin-left:6px}.calendar-add-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:1rem;font-weight:700;line-height:1;color:#fff;background:linear-gradient(90deg,#4ba3ec,#0474cf);padding:.18rem .7rem;border-radius:6px;box-shadow:0 2px 4px #0000004d;transition:all .18s ease;-webkit-user-select:none;user-select:none}.calendar-add-btn:hover{background:linear-gradient(90deg,#42a5f5,#64b5f6);transform:translateY(-1px);box-shadow:0 3px 6px #64b5f659}.calendar-add-btn:active{transform:scale(.96);box-shadow:0 1px 2px #00000059}.calendar-add-btn--top{position:absolute;top:4px;right:6px;z-index:10}.calendar-add-btn--mini{font-size:.9rem;font-weight:600;padding:.15rem .4rem;border-radius:5px;box-shadow:0 1px 3px #00000040}.calendar-add-btn--mini:hover{transform:translateY(-.5px);box-shadow:0 2px 4px #64b5f640}.calendar-grid.compact .calendar-add-btn{font-size:.9rem;padding:.15rem .4rem}.control-calendar-toolbar{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px}.control-calendar-toolbar__btn{all:unset;box-sizing:border-box;padding:6px 14px;border-radius:6px;font-weight:600;font-size:.9rem;text-align:center;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.control-calendar-toolbar__btn--compact{background:linear-gradient(135deg,#1b7eff,#3db7ff);color:#fff;box-shadow:0 2px 4px #1b7eff40}.control-calendar-toolbar__btn--compact:hover{background:linear-gradient(135deg,#3694ff,#58cfff);transform:translateY(-1px)}.control-calendar-toolbar__btn--compact:focus-visible{outline:2px solid var(--accent, #61dafb);outline-offset:2px}.control-calendar-toolbar__btn--toggle{background:#555;color:#eee;box-shadow:0 2px 3px #0003}.control-calendar-toolbar__btn--toggle:hover{background:#666;transform:translateY(-1px)}.control-calendar-toolbar__btn--toggle:focus-visible{outline:2px solid var(--accent, #61dafb);outline-offset:2px}.control-calendar-toolbar__btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.leave-form select.leave-form__select,.leave-form__select{all:initial;appearance:none!important;font-family:inherit!important;font-size:.95rem!important;font-weight:900;border:1px solid var(--border)!important;border-radius:4px!important;padding:.35rem 1.6rem .35rem .5rem!important;background:var(--input-bg)!important;color:var(--text)!important;box-sizing:border-box!important;width:100%!important;transition:border-color .25s ease}.leave-form-grid{max-width:520px;margin:1rem auto}.leave-form-card{background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 12px #0000004d;padding:1rem 1.2rem 1.2rem}.leave-form__header{font-size:1.15rem;padding:8px 10px;margin-bottom:.8rem;display:flex;align-items:center;gap:.4rem;color:var(--highlight)!important;font-weight:700;letter-spacing:.4px;background:var(--surface-tint);border-bottom:1px solid var(--border);border-radius:6px}.leave-form__header:before{content:"🗓️";font-size:1.2rem}.leave-form{display:flex;flex-direction:column;gap:.5rem;padding:.3rem .2rem}.leave-form__row{display:flex;flex-direction:column;gap:.25rem}.leave-form__row--date,.leave-form__row--compact-2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}@media(max-width:480px){.leave-form__row--compact-2,.leave-form__row--date{grid-template-columns:1fr}}.leave-form__label{font-size:1rem;font-weight:700;color:var(--muted-text);padding-left:.1rem;margin-bottom:0}.leave-form__input,.leave-form__select,.leave-form__dayinfo,.leave-form__btn{width:100%;line-height:1.3;font-size:.85rem;border-radius:4px;padding:.35rem .5rem;box-sizing:border-box}.leave-form__input,.leave-form__select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease;appearance:none}.leave-form__input:focus,.leave-form__select:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.leave-form__input:disabled,.leave-form__select:disabled{background:var(--chip);color:var(--muted-text);opacity:.7;cursor:not-allowed}.leave-form__select-field{position:relative;display:flex;align-items:center;width:100%}.leave-form__select-field:after{content:"▾";font-size:11px;color:var(--muted-text);position:absolute;right:.65rem;top:50%;transform:translateY(-50%);pointer-events:none}.leave-form__select{padding-right:1.6rem;box-sizing:border-box;width:100%}.leave-form__row--compact-2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.leave-form__dayinfo{background:var(--surface-tint);border:1px dashed rgba(97,218,251,.35);color:var(--text);padding:.5rem .7rem;font-size:.85rem;border-radius:5px;line-height:1.4}.leave-form__dayinfo-text{color:var(--text)}.leave-form__dayinfo-strong{color:var(--accent);font-weight:700}.leave-form__row--actions{text-align:center;margin-top:.6rem}.leave-form__btn{background:var(--primary);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease;border:none}.leave-form__btn:hover{transform:translateY(-1px)}.leave-form__btn:disabled{opacity:.6;cursor:not-allowed}.past-leave-row{background-color:var(--surface-alt)!important;color:var(--muted-text)!important;cursor:not-allowed;opacity:.6}.past-leave-row:hover td{background-color:var(--chip)!important}.past-leave-row .report-table__btn{background-color:var(--chip)!important;color:var(--muted-text)!important;cursor:not-allowed!important;opacity:.7}.report-table__row--backdated td{background-color:#ffd70014;color:var(--primary);font-style:italic}.leave-form__label:before{margin-right:.2rem}.staff-leave__table{width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:.9rem;border-radius:6px;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}.staff-leave__head{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.staff-leave__row--head th{color:var(--table-head-text);border-bottom:1px solid var(--border);padding:6px 8px;font-weight:600;text-align:left}.staff-leave__body td{border-bottom:1px solid var(--table-border-h);padding:1px 4px;color:var(--text)}.staff-leave__body tr:hover{background:var(--table-row-hover)}.staff-leave__tab-container{background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;padding:1rem}.staff-leave__tabs{display:flex;gap:.5rem;margin-bottom:.8rem}.staff-leave__tab{background:var(--chip);border:1px solid var(--border);color:var(--highlight);border-radius:6px;padding:6px 14px;cursor:pointer}.staff-leave__tab--active{background:var(--interactive);color:#fff;border-color:transparent}.staff-leave__tab-content{display:none}.staff-leave__tab-content--active{display:block}@media(max-width:768px){.staff-leave__table{font-size:11px}.staff-leave__body td,.staff-leave__row--head th{padding:1px 4px}}.booking-form.modal{--bf-h: 32px;--bf-pad-x: 1rem;--bf-pad-y: .65rem;--bf-blue: var(--interactive)}.booking-form.modal{border:none;border-radius:var(--radius-xl);background:var(--panel);color:var(--text);padding:var(--bf-pad-y) var(--bf-pad-x);box-shadow:0 16px 48px #0000008c;width:min(660px,95vw);max-width:660px;max-height:90vh;overflow-y:auto;overscroll-behavior:contain}.booking-form.modal::backdrop{background:#080e26bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.booking-form__title{font-size:.88rem;font-weight:var(--fw-bold);color:#fff;background:linear-gradient(135deg,var(--interactive) 0%,var(--interactive-hover, #1d4ed8) 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:9px var(--bf-pad-x);margin:calc(-1 * var(--bf-pad-y)) calc(-1 * var(--bf-pad-x)) 8px;letter-spacing:.2px}.booking-form__invoice-status{font-size:12px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-tint);color:var(--muted-text);margin-bottom:6px}.booking-form__invoice-status.invoiced{color:var(--warning);border-color:var(--warning)}.booking-form__invoice-status.fully-invoiced{color:var(--primary);border-color:var(--primary)}.booking-form__migration-flag{display:inline-block;font-size:11px;padding:3px 9px;border-radius:999px;border:1px dashed var(--border);background:var(--surface-tint);color:var(--muted-text);letter-spacing:.02em;margin-bottom:6px;cursor:help}.booking-form__lock-notice{font-size:12px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--warning);background:#f7b50014;color:var(--warning);margin-bottom:6px}.booking-form__grid{display:flex;flex-direction:column;gap:6px}.booking-form__group{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-tint);padding:7px 10px 9px}.booking-form__group-label{font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--interactive);border-bottom:1.5px solid var(--interactive);padding-bottom:4px;margin-bottom:7px;opacity:.9}.booking-form__group-body{display:grid;grid-template-columns:1fr 1fr;gap:6px}.booking-form__group-col{display:flex;flex-direction:column;gap:6px}.booking-form__group--collapsible>.booking-form__group-label{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px;margin-bottom:0;border-bottom-color:transparent;transition:border-bottom-color var(--transition-fast),opacity var(--transition-fast)}.booking-form__group--collapsible:not(.booking-form__group--collapsed)>.booking-form__group-label{border-bottom-color:var(--interactive);margin-bottom:7px}.booking-form__group--collapsible>.booking-form__group-label:hover{opacity:1}.booking-form__group-chevron{font-size:8px;line-height:1;flex-shrink:0;color:var(--interactive)}.booking-form__group--collapsible.booking-form__group--collapsed>:not(.booking-form__group-label){display:none}.fee-recall-banner{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 8px;background:#f59e0b14;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);font-size:var(--text-xs)}.fee-recall-banner[hidden]{display:none}.fee-recall-banner__text{flex:1;min-width:0;color:var(--text)}.fee-recall-banner__btn{all:unset;cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);font-size:10.5px;font-weight:var(--fw-semibold);line-height:1.6;transition:background var(--transition-fast);white-space:nowrap}.fee-recall-banner__btn--apply{background:var(--primary);color:#fff}.fee-recall-banner__btn--apply:hover{background:var(--interactive-hover)}.fee-recall-banner__btn--skip{background:var(--chip);color:var(--muted-text);border:1px solid var(--border)}.fee-recall-banner__btn--skip:hover{background:var(--surface-alt);color:var(--text)}.booking-form__field{display:flex;flex-direction:column;gap:2px}.booking-form__label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text);letter-spacing:.03em;line-height:1.2}.booking-form__field input:not([type=checkbox]),.booking-form__field select{width:100%;height:var(--bf-h);box-sizing:border-box;border-radius:var(--radius-sm);border:1px solid var(--border);padding:0 8px;font-size:13px;background:var(--card);color:var(--text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.booking-form__field textarea{width:100%;box-sizing:border-box;border-radius:var(--radius-sm);border:1px solid var(--border);padding:5px 8px;font-size:13px;background:var(--card);color:var(--text);min-height:52px;resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.booking-form__field input:focus,.booking-form__field select:focus,.booking-form__field textarea:focus{outline:none;border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb26}.booking-form__field--patient{width:100%}.booking-form__input--patient{width:100%;height:var(--bf-h);box-sizing:border-box;border-radius:var(--radius-sm);border:2px solid var(--interactive);padding:0 8px;font-size:13px;font-weight:var(--fw-semibold);background:var(--card);color:var(--text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.booking-form__input--patient:focus{outline:none;border-color:var(--interactive-hover, #1d4ed8);box-shadow:0 0 0 2px #2563eb33}.booking-form__label--patient{font-size:11px;font-weight:var(--fw-bold);color:var(--interactive);letter-spacing:.03em}.booking-form__btn--add-patient{margin-top:4px;height:28px;font-size:11px;font-weight:var(--fw-bold);padding:0 10px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:#fff;cursor:pointer;transition:filter var(--transition-fast)}.booking-form__btn--add-patient:hover{filter:brightness(1.1)}.booking-form__field--staff select,.booking-form__field--therapy select{border:2px solid var(--warning);font-weight:var(--fw-semibold)}.booking-form__field--staff label,.booking-form__field--therapy label{color:var(--warning)}.booking-form .booking-form__field--staff select,.booking-form .booking-form__field--therapy select{border:2px solid var(--warning)}.booking-form__field--staff select:focus,.booking-form__field--therapy select:focus{border-color:var(--warning);box-shadow:0 0 0 2px #f7b5002e}.booking-form__field--fee input{border:2px solid var(--highlight);font-weight:var(--fw-bold);color:var(--highlight)}.booking-form__field--fee label{color:var(--highlight)}.booking-form__field--fee input:focus{border-color:var(--highlight);box-shadow:0 0 0 2px #ffd9662e}.booking-form__field--date input[type=date]{border:2px solid var(--interactive);color-scheme:dark;font-weight:var(--fw-semibold);cursor:pointer}[data-theme=light] .booking-form__field--date input[type=date],[data-theme=light] .booking-form.modal{color-scheme:light}.booking-form__label--time-start,.booking-form__label--time-end{color:var(--highlight);font-weight:var(--fw-bold)}.booking-form__coach-extra{display:none;background:var(--surface-tint);border-radius:var(--radius-sm);padding:7px 9px;border:1px solid var(--border)}.booking-form__coach-extra--visible{display:block}.booking-form__coach-label{font-size:11px;font-weight:var(--fw-bold);color:var(--highlight);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.booking-form__coach-info{background:var(--chip);padding:6px 8px;border-radius:var(--radius-sm);color:var(--text);border:1px solid var(--border);font-size:12px}.booking-form__coach-info--warning{background:var(--row-mixed-bg,rgba(247,181,0,.08));color:var(--warning)}.booking-form__coach-info--error{background:var(--row-overdue-bg,rgba(255,93,93,.08));color:var(--danger)}.booking-form__recurrence{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;background:#2ea0430f;border-radius:var(--radius-md);padding:7px 10px;border:1px solid rgba(46,160,67,.2)}.bf-recur__toggle-label{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--primary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.bf-recur__toggle-label input[type=checkbox]{accent-color:var(--primary);width:14px;height:14px;margin:0;cursor:pointer}.bf-recur__inline{display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;flex:1;min-width:0}.bf-recur__date-label{font-size:var(--text-xs);color:var(--muted-text);white-space:nowrap}.bf-recur__date-input{height:26px;padding:0 6px;font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text);min-width:100px}.bf-recur__days{display:flex;gap:3px;flex-wrap:wrap;align-items:center}.bf-recur__day{position:relative;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--chip);cursor:pointer;font-size:11px;font-weight:var(--fw-semibold);color:var(--muted-text);transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast);-webkit-user-select:none;user-select:none}.bf-recur__day input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.bf-recur__day:has(input:checked){background:#2ea04326;border-color:var(--primary);color:var(--primary);font-weight:var(--fw-bold)}.bf-recur__day:hover{border-color:var(--interactive);color:var(--text)}.bf-recur__hint{font-size:var(--text-xs);color:var(--warning);width:100%;margin-top:1px}.booking-form__invoice-notice{display:flex;align-items:flex-start;gap:8px;background:#f7b50012;border:1px solid rgba(247,181,0,.3);border-left:3px solid var(--warning);border-radius:var(--radius-sm);color:var(--warning);font-size:12px;line-height:1.55;margin:4px 0 8px;padding:8px 12px}.booking-form__invoice-notice__icon{flex-shrink:0;font-size:16px;margin-top:1px}.booking-form__invoice-notice strong{color:var(--highlight);font-family:monospace}.booking-form__locked-msg{color:var(--highlight);font-weight:var(--fw-bold);font-size:12px;margin:6px 0 3px 8px;display:inline-block}.booking-form__checkout-info{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:4px;padding:7px 9px;color:var(--text);font-size:13px}.booking-form__checkout-line{margin:2px 0}.booking-form__checkout-line b{color:var(--accent)}.booking-form__button-section{display:flex;flex-direction:column;gap:5px;margin:8px calc(-1 * var(--bf-pad-x)) calc(-1 * var(--bf-pad-y));padding:8px var(--bf-pad-x);background:var(--chip);border-top:1px solid var(--border);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.booking-form__button-group{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-start}.booking-form__button-group--top{border-bottom:1px solid var(--border);padding-bottom:5px}.booking-form__button-group--mid{padding-bottom:2px;align-items:center}.booking-form__button-group--whatsapp{justify-content:flex-start;align-items:center;gap:6px;padding-top:6px;margin-top:2px;border-top:1px solid var(--border)}.booking-form__reminder-label{font-size:11px;color:var(--muted-text, #9aa);font-weight:var(--fw-bold);margin-right:2px}.booking-form__btn{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;font-size:12px;font-weight:var(--fw-semibold);border-radius:var(--radius-sm);border:none;cursor:pointer;transition:filter var(--transition-fast),transform var(--transition-fast);background:var(--interactive);color:#fff}.booking-form__btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.booking-form__btn:active{transform:translateY(0);filter:brightness(.95)}.booking-form__btn--primary{background:linear-gradient(90deg,var(--interactive),var(--interactive-hover,#1d4ed8));color:#fff}.booking-form__btn--secondary{background:var(--surface-alt,var(--chip));color:var(--text)}.booking-form__btn--danger{background:var(--danger);color:#fff}.booking-form__btn--whatsapp{background:#25d366;color:#fff}.booking-form__btn--pending{background:var(--interactive);color:#fff}.booking-form__button-group--top .booking-form__btn{height:38px;font-size:13.5px;font-weight:var(--fw-bold);padding:0 22px}.booking-form__btn--ghost{background:var(--surface-alt, rgba(255,255,255,.08));border:1px solid var(--border);color:var(--text);height:27px;font-size:11.5px;padding:0 12px;font-weight:var(--fw-semibold, 600)}.booking-form__btn--ghost:hover{filter:brightness(1.15);transform:none}.booking-form__btn--ghost-danger{background:#ef44441f;border:1px solid rgba(239,68,68,.55);color:#ef4444;height:27px;font-size:11.5px;padding:0 12px;font-weight:var(--fw-bold, 700)}.booking-form__btn--ghost-danger:hover{filter:none;transform:none;background:#ef444438}.booking-form__btn--ghost-pending{background:#3b82f626;border:1px solid rgba(59,130,246,.5);color:#60a5fa;height:27px;font-size:11.5px;padding:0 12px;font-weight:var(--fw-semibold, 600)}.booking-form__btn--ghost-pending:hover{filter:none;transform:none;background:#3b82f642}.booking-form__button-group--whatsapp .booking-form__btn{height:27px;font-size:11.5px;padding:0 12px}.booking-form__controls{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.booking-form__status-bar{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px 9px;background:var(--surface-tint);border-radius:var(--radius-sm);border:1px solid var(--border)}.booking-form__status-row{display:flex;flex-wrap:wrap;gap:6px}.booking-form__status-row .booking-form__btn{flex:0 0 auto}@media(max-width:600px){.booking-form.modal{padding:.6rem .85rem}.booking-form__title{margin:-.6rem -.85rem 7px;padding:8px .85rem}.booking-form__button-section{margin:6px -.85rem -.6rem;padding:7px .85rem}.booking-form__group-body{grid-template-columns:1fr}.booking-form__status-row{flex-direction:column}.booking-form__status-row .booking-form__btn{width:100%}}.patient-form-layout{display:flex;flex-direction:column;gap:6px}.patient-form-layout.new-patient-form__grid{display:flex;flex-direction:column;grid-template-columns:unset}.patient-section{background:var(--surface-tint);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px 10px;box-sizing:border-box;display:flex;flex-direction:column;min-width:0}.patient-section__title{font-size:10px;font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.08em;color:var(--interactive);border-bottom:1.5px solid var(--interactive);padding-bottom:4px;margin-bottom:7px;opacity:.9}.patient-section__title--collapsible{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:space-between}.patient-section__title--collapsible:after{content:"▼";font-size:8px;opacity:.7;margin-left:4px;transition:transform var(--transition-fast)}.patient-section__title--collapsible.is-open:after{transform:rotate(180deg)}.patient-section__grid--collapsed{display:none!important}.patient-section__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;align-items:start}.new-patient-form__inner-grid{grid-template-columns:1fr 1fr}.patient-form__field--full,.patient-form__source.full{grid-column:1 / -1}.patient-section__grid input:not([type=checkbox]),.patient-section__grid select{width:100%;height:30px;box-sizing:border-box;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 8px;font-size:13px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.patient-section__grid textarea{width:100%;box-sizing:border-box;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:13px;min-height:52px;resize:vertical;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.patient-section__grid input:focus,.patient-section__grid select:focus,.patient-section__grid textarea:focus{outline:none;border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb24}.patient-section__grid label,.new-patient-form__label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text);letter-spacing:.03em}.patient-form__subwrap{display:flex;flex-direction:column;gap:3px;margin-top:5px;grid-column:1 / -1}.patient-form__subwrap label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text)}.patient-form__subwrap input,.patient-form__subwrap select{width:100%;height:30px;box-sizing:border-box;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 8px;font-size:13px;transition:border-color var(--transition-fast)}.patient-form__subwrap input:focus,.patient-form__subwrap select:focus{outline:none;border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb24}.form-actions{display:flex;justify-content:center;gap:8px;margin-top:10px}.form-actions .btn{cursor:pointer;font-weight:var(--fw-semibold);font-size:12px;border:none;border-radius:var(--radius-sm);padding:0 12px;height:30px;transition:filter var(--transition-fast),transform var(--transition-fast)}.btn.primary{background:linear-gradient(90deg,var(--interactive),var(--interactive-hover,#1d4ed8));color:#fff}.btn.primary:hover{filter:brightness(1.1)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(1.1)}.btn:focus{outline:2px solid var(--interactive);outline-offset:1px}.btn:disabled{opacity:.5;cursor:not-allowed}.form-field__select-wrap{width:100%;box-sizing:border-box;display:flex;flex-direction:column;gap:2px}.form-field__label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text)}.form-field__select{width:100%;height:30px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 8px;font-size:13px;box-sizing:border-box;transition:border-color var(--transition-fast)}.form-field__select:hover:not(:disabled){border-color:var(--interactive)}.form-field__select:focus{border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb24;outline:none}.form-field__select:disabled{opacity:.55;cursor:not-allowed}@media(max-width:480px){.patient-section__grid,.new-patient-form__inner-grid{grid-template-columns:1fr}.patient-form__field--full,.patient-form__source.full{grid-column:1}}.control-section{background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 10px #0000004d;padding:1rem 1.25rem;margin-bottom:1.5rem}.control-section__title{font-size:1.1rem;font-weight:700;color:var(--highlight);border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:.75rem;letter-spacing:.5px}.control-section__body{width:100%;overflow-x:auto}.control-section__bulk,.bulk-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.bulk-controls__btn,.control-section__bulk .btn{background:var(--interactive);color:#fff;font-weight:500}.bulk-controls__btn:hover,.control-section__bulk .btn:hover{background:var(--interactive-hover)}.control-section__export-btn{margin-top:10px}.control-section__pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:14px}.control-section__btn-page{background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:4px 10px;cursor:pointer;transition:background .15s}.control-section__btn-page:hover:not(:disabled){background:var(--surface-alt)}.control-section__btn-page.is-disabled{opacity:.5;cursor:not-allowed}.control-section__page-info{color:var(--text);font-size:13px}.control-table{width:100%;border-collapse:collapse;border-spacing:0;margin-bottom:.75rem;font-size:14px;color:var(--text)}.control-table__head{background:var(--surface-tint)}.control-table__row--head th{font-weight:600;padding:8px;text-align:left;border-bottom:1px solid var(--border)}.control-table__cell{padding:6px 10px;border-bottom:1px solid var(--table-border-h)}.control-table tr:hover{background:var(--table-row-hover)}.control-table__btn--edit{background:var(--interactive);color:#fff;border:none;border-radius:3px;padding:2px 6px;cursor:pointer;font-size:13px}.control-table__btn--delete{background:var(--danger);color:#fff;border:none;border-radius:3px;padding:2px 6px;cursor:pointer;font-size:13px;margin-left:4px}.control-section__divider{border:none;border-top:1px solid var(--border);margin:1rem 0}.control-spinner{display:flex;align-items:center;gap:6px;justify-content:center;padding:.5rem;color:var(--muted-text)}@keyframes blink{0%{opacity:.3}to{opacity:1}}.controls-tabs{display:flex;background:var(--panel);border-bottom:2px solid var(--border)}.controls-tabs__tab{flex:1;padding:10px 12px;border:none;background:none;cursor:pointer;font-size:14px;color:var(--text);transition:all .2s ease-in-out}.controls-tabs__tab:hover{background:var(--surface-alt)}.controls-tabs__tab--active{border-bottom:3px solid var(--interactive);color:var(--interactive);font-weight:600;background:var(--card)}.controls-tabs__content-wrap{width:100%;padding:1rem;background:var(--panel)}.controls-tabs__content{display:none;width:100%}.controls-tabs__content--active{display:block}@media(max-width:900px){.controls-tabs__tab{font-size:13px;padding:8px}.control-table{font-size:12px}}@media(max-width:600px){.controls-tabs{flex-wrap:wrap}.controls-tabs__tab{flex:1 1 50%}}.ctl-patient__search{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.ctl-patient__search-box{flex:1 0 240px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:14px;font-weight:900;color:var(--text)}.ctl-patient__btn{cursor:pointer}.ctl-patient__btn--add{background:var(--primary);color:#fff;border:none;padding:5px 10px;border-radius:4px}.ctl-patient__btn--add:hover{background:var(--primary-dark)}@media(max-width:768px){.control-section__body{overflow-x:auto;-webkit-overflow-scrolling:touch}}.ctl-patient__pagination{display:flex;justify-content:center;align-items:center;margin-top:10px}.ctl-patient__total{margin-left:8px;color:#ccc;font-size:13px}.ctl-therapy td[data-col=govcode]{font-family:Consolas,Courier New,monospace;font-size:11px;color:var(--muted-text)}.ctl-therapy__btn{font-size:.9rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:all .2s;padding:.5rem .9rem}.ctl-therapy__btn--edit{background:var(--interactive);color:#fff;margin-right:.4rem}.ctl-therapy__btn--edit:hover{background:var(--interactive-hover)}.ctl-therapy__btn--delete:hover{background-color:var(--danger)}.ctl-staff__btn--edit{background:var(--interactive);color:#fff;margin-right:.4rem}.ctl-staff__btn--edit:hover{background:var(--interactive-hover)}.ctl-staff__pagination button{margin:0 4px;padding:5px 10px;background:var(--chip);border-radius:5px;border:1px solid var(--border);color:var(--text);cursor:pointer}.ctl-staff__pagination button:hover{background:var(--surface-alt)}.ctl-staff__btn--delete:hover{background-color:#d92b1f}.ctl-holiday__btn{cursor:pointer}.ctl-holiday__btn--add{background:var(--primary);color:#fff;border:none;padding:5px 10px;border-radius:4px;font-weight:600}.ctl-holiday__btn--add:hover{background:var(--primary-dark)}.ctl-holiday__btn--edit{background:var(--interactive);color:#fff;margin-right:4px;border-radius:4px}.ctl-holiday__btn--edit:hover{background:var(--interactive-hover)}.ctl-holiday__btn--delete{background:var(--danger);color:#fff;border-radius:4px}.ctl-holiday__btn--delete:hover{filter:brightness(1.1)}.ctl-page-size{display:inline-flex;align-items:center;gap:3px;margin-left:auto}.ctl-page-size__label{font-size:11px;color:var(--muted-text);margin-right:2px;white-space:nowrap}.ctl-page-size__btn{min-width:34px;padding:2px 6px;font-size:11px;font-weight:600;background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm, 4px);cursor:pointer;transition:background var(--transition-fast, .15s ease),border-color var(--transition-fast, .15s ease)}.ctl-page-size__btn:hover{background:var(--surface-alt);border-color:var(--accent)}.ctl-page-size__btn--active{background:var(--interactive);color:#fff;border-color:var(--interactive)}.ctl-patient__tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:12px}.ctl-patient__tab{background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;padding:5px 14px;font-size:12px;font-weight:500;color:var(--muted-text);cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s;border-radius:4px 4px 0 0}.ctl-patient__tab:hover{color:var(--text);background:var(--surface-alt)}.ctl-patient__tab--active{color:var(--interactive);border-bottom-color:var(--interactive);font-weight:700}.ctl-patient__quality-summary{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.ctl-patient__quality-meta{margin-left:auto;font-size:11px;color:var(--muted-text)}.ctl-patient__quality-filters{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.ctl-patient__quality-empty{text-align:center;padding:40px 20px;color:var(--muted-text);font-size:13px}.quality-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:600}.quality-badge--error{background:#dc262626;color:var(--danger)}.quality-badge--warning{background:#f59e0b26;color:#d97706}.quality-badge--info{background:#3b82f626;color:var(--interactive)}.quality-filter-chip{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--chip);color:var(--text);transition:background .15s}.quality-filter-chip:hover{background:var(--surface-alt)}.quality-filter-chip--active{font-weight:700}.quality-filter-chip--error.quality-filter-chip--active{background:#dc262633;color:var(--danger);border-color:var(--danger)}.quality-filter-chip--warning.quality-filter-chip--active{background:#f59e0b33;color:#d97706;border-color:#d97706}.quality-filter-chip--info.quality-filter-chip--active{background:#3b82f633;color:var(--interactive);border-color:var(--interactive)}.quality-tag{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;white-space:nowrap}.quality-tag--error{background:var(--danger);color:#fff}.quality-tag--warning{background:#f59e0b;color:#fff}.quality-tag--info{background:var(--interactive);color:#fff}.quality-detail{color:var(--muted-text);max-width:320px;white-space:normal!important}.qa-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.qa-sortable:hover{background:var(--surface-alt)!important}.qa-sort--active{color:var(--interactive)!important}.quality-hint{font-size:10px;color:var(--muted-text);margin-top:3px;line-height:1.4;white-space:normal;font-style:italic}.qa-act-line{white-space:nowrap;font-size:10px;line-height:1.6}.qa-asset{display:inline-block;padding:0 5px;border-radius:3px;font-size:10px;font-weight:600}.qa-asset--vc{background:#10b98126;color:#059669}.qa-asset--coach{background:#8b5cf626;color:#7c3aed}.qa-asset--invoice{background:#f59e0b26;color:#d97706}.quality-row--error{background:#dc26260a}.quality-row--warning{background:#f59e0b0a}.ctl-patient__action-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}.ctl-view-toggle{margin-left:auto;background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm, 4px);padding:2px 8px;font-size:11px;cursor:pointer;white-space:nowrap;transition:background .15s}.ctl-view-toggle:hover{background:var(--surface-alt)}.ctl-view-toggle--simplified{background:var(--interactive);color:#fff;border-color:var(--interactive)}.ctl-patient[data-view=simplified] [data-col=gender],.ctl-patient[data-view=simplified] [data-col=occupation],.ctl-patient[data-view=simplified] [data-col=whatsapp],.ctl-patient[data-view=simplified] [data-col=email],.ctl-patient[data-view=simplified] [data-col=familyGroup],.ctl-patient[data-view=simplified] [data-col=source],.ctl-patient[data-view=simplified] [data-col=referrer],.ctl-patient[data-view=simplified] [data-col=refMobile],.ctl-patient[data-view=simplified] [data-col=insurance],.ctl-patient[data-view=simplified] [data-col=ageGroup],.ctl-patient[data-view=simplified] [data-col=updatedAt],.ctl-booking[data-view=simplified] [data-col=patientId],.ctl-booking[data-view=simplified] [data-col=mobile],.ctl-booking[data-view=simplified] [data-col=therapy],.ctl-booking[data-view=simplified] [data-col=funding],.ctl-booking[data-view=simplified] [data-col=startTime],.ctl-booking[data-view=simplified] [data-col=endTime],.ctl-booking[data-view=simplified] [data-col=fee],.ctl-booking[data-view=simplified] [data-col=createdAt],.ctl-staff[data-view=simplified] [data-col=alias],.ctl-staff[data-view=simplified] [data-col=short],.ctl-staff[data-view=simplified] [data-col=dept],.ctl-staff[data-view=simplified] [data-col=level],.ctl-staff[data-view=simplified] [data-col=tier],.ctl-staff[data-view=simplified] [data-col=color],.ctl-staff[data-view=simplified] [data-col=time],.ctl-therapy[data-view=simplified] [data-col=govcode],.ctl-therapy[data-view=simplified] [data-col=block],.ctl-therapy[data-view=simplified] [data-col=duration],.ctl-therapy[data-view=simplified] [data-col=time],.ctl-payment[data-view=simplified] [data-col=fee],.ctl-payment[data-view=simplified] [data-col=time],.ctl-expense[data-view=simplified] [data-col=desc],.ctl-expense[data-view=simplified] [data-col=user],.ctl-expense[data-view=simplified] [data-col=payment],.ctl-expense[data-view=simplified] [data-col=settleDate]{display:none}.form-dialog__overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000008c;display:flex;justify-content:center;align-items:flex-start;padding-top:60px;z-index:2000}.form-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);width:90%;max-height:85vh;overflow-y:auto}.form-dialog__header{background:var(--chip);padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.form-dialog__title{font-size:1.05rem;color:var(--warning);margin:0}.form-dialog__close{background:transparent;border:none;color:var(--text);font-size:1.2rem;cursor:pointer;opacity:.7;transition:opacity .15s}.form-dialog__close:hover{opacity:1}.form-dialog__body{padding:16px 20px}.form-dialog__footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;border-top:1px solid var(--border);background:transparent}.form-dialog__btn--save{background:linear-gradient(90deg,var(--primary),#3ee47b);color:var(--white);border:none}.form-dialog__btn--delete{background:var(--danger);color:var(--white);border:none}.attendance__info-box{background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin:10px 0 16px;color:var(--text);font-size:.875rem;line-height:1.6}.attendance__info-item{margin:3px 0;color:var(--text);font-weight:500}.attendance__info-item b{color:var(--highlight)}.attendance__title-block{margin-bottom:10px}.attendance__title-date{color:var(--accent);margin-bottom:3px;font-weight:600;font-size:.95rem;letter-spacing:.2px}.attendance__title-main{color:var(--highlight);font-weight:700;font-size:1.05rem;letter-spacing:.3px}.attendance-report{background:var(--panel);color:var(--text)}.attendance-report__header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid var(--interactive);margin-bottom:12px;padding-bottom:4px}.attendance-report__title{font-size:1.15rem;font-weight:700;color:var(--text)}.attendance-report__denied{color:var(--danger);font-weight:600;margin-top:8px}.attendance-report__controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.attendance-report__btn{background:var(--interactive);color:#fff;border-radius:4px;font-size:.875rem;border:none;padding:5px 12px;cursor:pointer}.attendance-report__btn:hover{background:var(--interactive-hover)}.attendance-report__nav{background:var(--chip);color:var(--accent);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer}.attendance-report__nav:hover{background:var(--surface-alt)}.attendance-report__period-label{min-width:150px;text-align:center;font-weight:600;font-size:.875rem;color:var(--text)}.attendance-report__date-input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 6px;font-size:.875rem;outline:none;transition:border-color .2s ease}.attendance-report__date-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.attendance-report__filter{margin-bottom:10px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:4px 8px;border-radius:4px;font-size:.875rem}.attendance-report__filter:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.attendance-report__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-report__table-wrap .table{min-width:900px;text-align:center;white-space:nowrap}.attendance-report__table-wrap th{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);padding:4px 8px;font-size:11.5px;font-weight:600}.attendance-report__table-wrap td{color:var(--text);padding:3px 8px;font-size:12px;line-height:1.35;border-bottom:1px solid var(--table-border-h)}.attendance .table tbody tr td{background:transparent!important;border-bottom:1px solid var(--table-border-h)!important;text-shadow:none!important}.attendance .table tbody tr:hover td{background:var(--table-row-hover)!important}.attendance__action--in{background:var(--row-coach-bg);color:var(--row-coach-text);font-weight:600}.attendance__action--out{background:var(--chip);color:var(--muted-text);font-weight:500}.attendance__status-label--in{color:var(--row-coach-text)}.attendance__status-label--out{color:var(--row-overdue-text)}.attendance__signin-label{font-weight:700;font-size:.875rem;color:var(--highlight)}.attendance__staff-selector{background:var(--interactive);color:#fff;border:2px solid var(--interactive-hover);border-radius:6px;padding:6px 10px;font-weight:700;font-size:.875rem}.attendance__filter-selector{background:var(--input-bg);color:var(--text);font-weight:600;font-size:.875rem;border:1px solid var(--border);padding:4px 8px;border-radius:4px}.attendance__filter-selector:focus{border-color:var(--accent);box-shadow:var(--shadow-focus)}.attendance__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance__table{width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:.875rem;border-radius:6px;white-space:nowrap}.attendance__thead{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.attendance__row--head .attendance__cell{color:var(--table-head-text);font-weight:600;font-size:11.5px;padding:4px 8px;border-bottom:1px solid var(--border);text-align:left}.attendance__tbody .attendance__cell{border-bottom:1px solid var(--table-border-h);padding:3px 8px;line-height:1.35}.attendance__tbody .attendance__row:hover{background:var(--table-row-hover)}.attendance__cell--action.attendance__action--in{color:var(--row-coach-text);font-weight:600}.attendance__cell--action.attendance__action--out{color:var(--warning)}.hr-override--active{color:var(--warning)!important;font-weight:600}.attendance-report__override-btn{font-size:11px;padding:2px 7px;margin-left:4px}.attendance-report__override-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;min-width:320px;box-shadow:var(--shadow-lg)}.attendance-report__override-dialog::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.attendance-report__override-title{color:var(--highlight);font-weight:700;margin-bottom:1rem;font-size:1rem}.attendance-report__override-fields{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.attendance-report__override-label{font-size:12px;color:var(--muted-text);font-weight:600}.attendance-report__override-input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:.9rem}.attendance-report__override-input:focus{border-color:var(--accent);outline:none}.attendance-report__override-preview{font-size:12px;color:var(--accent);margin:0;min-height:18px}.attendance-report__override-footer{display:flex;justify-content:flex-end;gap:8px}@media(max-width:992px){.attendance__table{font-size:11px;min-width:900px;display:block;overflow-x:auto}}@media(max-width:768px){.attendance__table{font-size:11px;min-width:800px}.attendance__table th,.attendance__table td{padding:4px 6px}}.app-bulk-checkout{padding:1.2rem;background-color:var(--panel);border-radius:10px;box-shadow:0 0 10px #0000004d;overflow-x:auto;-webkit-overflow-scrolling:touch}.app-bulk-checkout__title{font-size:1.2rem;font-weight:700;color:var(--highlight);margin-bottom:.75rem}.app-bulk-checkout__row{transition:background-color .2s ease}.app-bulk-checkout__cell{padding:2px 8px;font-size:12px;line-height:1.35;border-bottom:1px solid var(--table-border-h);color:var(--text);vertical-align:middle}.app-bulk-checkout__cell--id{font-weight:500;color:var(--highlight)}.app-bulk-checkout__cell--patient{font-weight:600;color:var(--text)}.app-bulk-checkout__cell--date,.app-bulk-checkout__cell--time{font-family:Consolas,Courier New,monospace;font-size:12px;color:var(--muted-text)}.app-bulk-checkout__cell--status{font-weight:600;color:var(--highlight)}.app-bulk-checkout__input--fee{width:80px;text-align:right}.app-bulk-checkout__header{position:sticky;top:0;z-index:10;background:var(--panel);padding:.75rem 1rem;border-bottom:1px solid var(--border);box-shadow:0 2px 6px #00000026}.app-bulk-checkout__filter-group{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:.75rem}.app-bulk-checkout__filter-group--date{flex-wrap:wrap}.app-bulk-checkout__filter-label{font-size:12px;color:var(--muted-text);white-space:nowrap}.app-bulk-checkout__filter-input,.app-bulk-checkout__filter-select{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;padding:5px 10px;transition:border-color .2s ease,box-shadow .2s ease;min-width:150px}.app-bulk-checkout__filter-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg fill='%23888' viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M70 100L15 40h110z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px;padding-right:24px}.app-bulk-checkout__filter-input:focus,.app-bulk-checkout__filter-select:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.app-bulk-checkout__filter-select:hover{border-color:var(--accent)}.app-bulk-checkout__filter-input--date{min-width:140px}.app-bulk-checkout__controls{display:flex;align-items:center;gap:10px;margin-top:8px}.app-bulk-checkout__btn{border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;background:var(--warning);color:#111;border:none}.app-bulk-checkout__btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.app-bulk-checkout__btn--none{background:var(--chip);color:var(--text);border:1px solid var(--border)}.app-bulk-checkout__btn--none:hover{background:var(--surface-alt);color:var(--text)}.app-bulk-checkout__body{overflow-x:auto;max-height:calc(100vh - 240px)}.app-bulk-checkout__table{margin-top:.75rem;width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:12px;border-radius:6px;overflow:hidden}.app-bulk-checkout__table-head{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.app-bulk-checkout__table thead th{position:sticky;top:0;background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));z-index:5}.app-bulk-checkout__table-th{white-space:nowrap;padding:4px 8px;font-size:11.5px;font-weight:600;color:var(--table-head-text);border-bottom:2px solid var(--border)}.app-bulk-checkout__table-body tr:nth-child(odd){background:var(--table-row-odd)}.app-bulk-checkout__table-body tr:nth-child(2n){background:var(--table-row-even)}.app-bulk-checkout__table-body tr:hover{background:var(--table-row-hover)}.app-bulk-checkout__table td{padding:3px 8px;font-size:12px;line-height:1.35;border-bottom:1px solid var(--table-border-h);color:var(--text);text-align:left;white-space:nowrap}.app-bulk-checkout__table td:first-child{text-align:center}@media(max-width:768px){.app-bulk-checkout__table{display:block;width:max-content;min-width:900px;font-size:11px;overflow-x:auto;-webkit-overflow-scrolling:touch}.app-bulk-checkout__table th,.app-bulk-checkout__table td{padding:4px 6px}.app-bulk-checkout__title{font-size:1.05rem}.app-bulk-checkout__row--overdue{font-size:11px}}.app-bulk-checkout__row--overdue,.app-bulk-checkout__row--coach{transition:background-color .2s ease}.app-bulk-checkout__row--overdue{background-color:var(--row-overdue-bg)!important;color:var(--row-overdue-text);font-weight:600}.app-bulk-checkout__row--coach{background-color:var(--row-coach-bg)!important;color:var(--row-coach-text);font-weight:600}.app-bulk-checkout__row--overdue.app-bulk-checkout__row--coach{background-color:var(--row-mixed-bg)!important;color:var(--row-mixed-text)}.app-bulk-checkout__badge--overdue{margin-left:6px;padding:1px 6px;font-size:10px;color:var(--row-overdue-text);background-color:var(--row-overdue-bg);border:1px solid var(--danger);border-radius:4px}.app-bulk-checkout__badge--coach{margin-left:4px;padding:1px 6px;font-size:10px;color:var(--row-coach-text);background-color:var(--row-coach-bg);border:1px solid var(--primary);border-radius:4px}.app-bulk-checkout__pkg-id{color:var(--highlight);font-weight:600;white-space:nowrap}.app-bulk-checkout__pkg-id--none{color:var(--muted-text);font-style:italic}.app-bulk-checkout__select{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12px;min-width:140px;transition:border-color .2s ease}.app-bulk-checkout__select:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.app-bulk-checkout__select--payment{min-width:140px}.app-bulk-checkout__select--vc{min-width:160px}.app-bulk-checkout__select--locked{opacity:.45;pointer-events:none;background-color:var(--chip)}.app-bulk-checkout__select--active{border-color:var(--accent)}.app-bulk-checkout__select--manual{color:var(--muted-text);border-color:var(--border)}.app-bulk-checkout__select--empty{opacity:.6;color:var(--muted-text)}.app-bulk-checkout__cell--payment{display:flex;flex-direction:row;align-items:center;gap:6px;flex-wrap:nowrap}.bulk-checkout__required-badge{font-size:10px;font-weight:600;color:#f59e0b;border:1px solid #f59e0b;border-radius:3px;padding:0 4px;vertical-align:middle;margin-left:4px}.bulk-checkout__staff-select--required{border:2px solid #f59e0b!important;box-shadow:0 0 0 2px #f59e0b33;animation:bulk-pulse 1.8s ease-in-out infinite}@keyframes bulk-pulse{0%,to{box-shadow:0 0 0 2px #f59e0b33}50%{box-shadow:0 0 0 5px #f59e0b11}}.bulk-checkout__staff-hint{font-size:11px;color:#f59e0b;font-weight:600;margin-left:6px;animation:bulk-pulse-opacity 1.8s ease-in-out infinite}@keyframes bulk-pulse-opacity{0%,to{opacity:1}50%{opacity:.4}}.app-bulk-checkout__suggest-btn{flex-shrink:0;padding:2px 7px;font-size:11px;border-radius:4px;border:1px solid #f59e0b;background:transparent;color:#f59e0b;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.app-bulk-checkout__suggest-btn:hover:not(:disabled){background:#f59e0b22}.app-bulk-checkout__suggest-btn--applied{border-color:#4caf50;color:#4caf50;cursor:default}.app-bulk-checkout__table-overlay{position:absolute;inset:0;background:#00000085;z-index:20;display:flex;align-items:center;justify-content:center;border-radius:6px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.app-bulk-checkout__table-overlay-msg{color:#f59e0b;font-size:14px;font-weight:700;padding:12px 28px;background:#000000bf;border-radius:8px;border:1px solid #f59e0b55;letter-spacing:.02em}.app-bulk-checkout__overdue-banner{margin:6px 0;padding:8px 14px;background:#ffb40014;border:1px solid rgba(255,180,0,.3);border-left:3px solid var(--warning, #ffb400);border-radius:6px;font-size:12px;font-weight:600;color:var(--warning, #ffb400);cursor:default}.app-bulk-checkout__result-banner{margin-top:4px;font-size:12px;font-weight:600;color:var(--primary)}.app-bulk-checkout__result-banner--warning{color:var(--warning)}.app-bulk-checkout__textarea,.app-bulk-checkout__input{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;padding:5px 8px;transition:border-color .2s ease,box-shadow .2s ease}.app-bulk-checkout__textarea:focus,.app-bulk-checkout__input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.app-bulk-checkout__block-section{margin-top:1.2rem;padding:.8rem 1rem;border:2px solid #7c3aed;border-radius:8px;background:repeating-linear-gradient(135deg,#1e0e4a,#1e0e4a 8px,#250f58 8px 16px)}.app-bulk-checkout__block-header{display:flex;align-items:center;gap:8px;margin-bottom:.6rem;flex-wrap:wrap}.app-bulk-checkout__block-title{font-size:13px;font-weight:700;color:#e9d5ff;letter-spacing:.03em;margin-right:4px}.app-bulk-checkout__row--block-type{background:#5b21b62e!important}.app-bulk-checkout__row--block-type td{color:#ddd6fe}.app-bulk-checkout__row--block-type:hover{background:#5b21b64d!important}.staff-report{color:var(--text);background-color:var(--panel);border-radius:8px;padding:16px}.staff-report__login{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.staff-report__label{font-weight:600;color:var(--highlight)}.staff-report__input{background:var(--card);color:var(--text);border:2px solid var(--danger);padding:6px;border-radius:6px}.staff-report__btn{background:var(--interactive);color:#fff;border-radius:4px}.staff-report__month{margin-bottom:12px}.staff-report__select{background:var(--card);color:var(--text);border-radius:4px;border:1px solid var(--border)}.staff-report__tabs{display:flex;gap:10px;margin-bottom:14px}.staff-report__tab{flex:1;background:var(--chip);border-radius:4px}.staff-report__tab--general.btn--primary{background:var(--interactive)}.staff-report__tab--coach.btn--primary{background:var(--primary)}.staff-report__result{margin-top:16px;padding:12px;background:var(--surface-tint);border:1px solid var(--border);border-radius:6px}.staff-report__table{width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:12px;border-radius:6px;overflow:hidden}.staff-report__table th,.staff-report__table td{padding:1px 4px;border-bottom:1px solid var(--table-border-h)}.staff-report__table th{background:var(--chip);color:var(--highlight);text-align:left}.staff-report__table tbody tr:hover{background:var(--table-row-hover)}.staff-report__table--thin th,.staff-report__table--thin td{padding:4px 6px;font-size:12px;line-height:1.3}.staff-report__table .nosort{background:var(--card);color:#fff;font-weight:600}@media(max-width:768px){.staff-report__table{font-size:11px;width:max-content;min-width:600px}}.staff-report__result{overflow-x:auto;-webkit-overflow-scrolling:touch}.coach-summary{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:16px 20px;box-shadow:0 2px 10px #0006;font-size:15px;line-height:1.6}.coach-summary__title{margin-top:0;font-size:1.1rem;border-left:4px solid var(--accent);padding-left:8px;font-weight:600;color:var(--text)}.coach-summary__month{color:var(--highlight);font-weight:600}.coach-summary__mode{font-size:12px;color:var(--danger);margin-left:8px}.coach-summary__tier{margin-top:8px;margin-bottom:12px}.coach-summary__tier-tag{display:inline-block;background:var(--primary);color:#fff;padding:2px 8px;border-radius:6px;font-weight:600;margin-left:6px}.coach-summary__salary{margin:6px 0}.coach-summary__row{display:flex;justify-content:space-between;font-weight:500}.coach-summary__amount{font-weight:700}.coach-summary__amount--self{color:var(--primary)}.coach-summary__amount--company{color:var(--accent)}.coach-summary__divider{border:none;border-top:1px solid var(--border);margin:12px 0}.coach-summary__worktime{font-size:12px}.coach-summary__calc{color:var(--muted-text);margin-left:4px;font-style:italic}.coach-summary__amount--hourly{color:var(--highlight);margin-left:6px;font-weight:600}.coach-summary__total{margin-top:10px;font-size:1.1rem;font-weight:700;color:var(--text);display:flex;align-items:center;justify-content:space-between}.coach-summary__amount--total{color:var(--primary);font-size:1.3rem}.coach-summary__salary,.coach-summary__worktime,.coach-summary__total{text-align:left}.coach-summary__row{display:flex;justify-content:flex-start;gap:10px}.coach-summary__amount{min-width:120px;text-align:right;display:inline-block}.coach-summary__total{justify-content:flex-start;font-size:1.2rem;margin-top:1rem}.coach-summary__amount--total{font-size:1.6rem;font-weight:800;color:var(--primary)}.coach-type--self{color:#5cffb5;font-weight:600;background:#5cffb51a;border-radius:6px;padding:2px 6px}.coach-type--company{color:#6cd3ff;font-weight:600;background:#6cd3ff1a;border-radius:6px;padding:2px 6px}.coach-source--self{color:#7affc3}.coach-source--company{color:#89d6ff}.staff-report .table td{padding:2px 6px;font-size:12px;line-height:1.35;border-bottom:1px solid var(--table-border-h);text-align:center;vertical-align:middle}.coach-override{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 16px;margin-bottom:14px}.coach-override__title{font-size:12px;font-weight:700;color:var(--highlight);margin-bottom:10px}.coach-override__fields{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.coach-override__label{display:flex;align-items:center;gap:6px;color:var(--text);font-size:12px;font-weight:600}.coach-override__select{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:13px}.coach-override__input-wrap{display:inline-flex;align-items:center;gap:3px}.coach-override__input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 6px;width:60px;font-size:13px;text-align:right}.coach-override__btn{background:var(--primary);color:#fff;border:1px solid var(--primary-dark);border-radius:4px;padding:5px 14px;font-size:12px;cursor:pointer;white-space:nowrap}.coach-override__btn:hover{background:var(--primary-dark)}.coach-summary__override-badge{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}.coach-summary__override-item{background:#f7b50026;border:1px solid rgba(247,181,0,.35);color:var(--warning);border-radius:5px;padding:2px 10px;font-size:11px;font-weight:600}.coach-summary__worktime{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.coach-summary__worktime--override{background:#f7b50014;border:1px solid rgba(247,181,0,.25);border-radius:6px;padding:4px 10px}.coach-summary__override-btn{font-size:11px;padding:2px 8px;margin-left:6px}.coach-summary__override-dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;min-width:300px;box-shadow:var(--shadow-lg)}.coach-summary__override-dialog::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.coach-summary__override-title{color:var(--highlight);font-weight:700;margin-bottom:1rem;font-size:1rem}.coach-summary__override-fields{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.coach-summary__override-label{font-size:12px;color:var(--muted-text);font-weight:600}.coach-summary__override-input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px;font-size:.9rem}.coach-summary__override-input:focus{border-color:var(--accent);outline:none}.coach-summary__override-preview{font-size:12px;color:var(--accent);margin:0;min-height:18px}.coach-summary__override-footer{display:flex;justify-content:flex-end;gap:8px}.coach-session-dialog{display:flex;flex-direction:column;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:20px 24px;width:520px;box-shadow:0 8px 20px #00000073}.coach-session-dialog__title{font-size:1.2rem;font-weight:700;color:var(--highlight);margin:0 0 1.2rem;text-align:left}.coach-session-dialog__field{display:flex;flex-direction:column;margin-bottom:.2rem}.coach-session-dialog__label{font-weight:900;color:var(--highlight);margin-bottom:2px!important}.coach-session-dialog__input{background-color:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:.95rem;transition:border-color .2s,background-color .2s;width:100%}.coach-session-dialog__input:disabled{opacity:.6}.coach-session-dialog__input[list],.coach-session-dialog__input--staff,.coach-session-dialog__input[type=number],.coach-session-dialog__input[type=time]{background-color:var(--card)}.coach-session-dialog #patientSearch,.coach-session-dialog .patient-search-box{background-color:var(--surface-tint);border:1px solid rgba(97,218,251,.25);color:var(--text);border-radius:8px;padding:8px 12px}.coach-session-dialog__controls{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.4rem}.coach-session-dialog__btn{border:none;border-radius:6px;padding:6px 12px;font-weight:600;cursor:pointer;font-size:.95rem}.coach-session-dialog__btn--save{background:var(--primary);color:#fff;transition:background .2s}.coach-session-dialog__btn--save:hover{background:var(--primary-dark)}.coach-session-dialog__btn--cancel{background:var(--chip);color:var(--text)}.coach-session-dialog__btn--cancel:hover{background:var(--surface-alt)}.coach-session-dialog select,.coach-session-dialog__input--source{background-color:var(--input-bg)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:6px!important}.coach-session-dialog select:focus,.coach-session-dialog__input--source:focus{background-color:var(--surface-alt)!important;border-color:var(--accent)!important;box-shadow:var(--shadow-focus);outline:none}.coach-session-dialog label[for=source],.coach-session-dialog__label--source{color:var(--highlight)!important}.coach-session-dialog,.coach-session-dialog *,.coach-session-dialog *:before,.coach-session-dialog *:after{box-sizing:content-box!important}dialog.coach-session-dialog{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;max-width:580px;margin:4vh auto;padding:1.25rem 1.75rem;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000073}.coach-session-dialog__title{font-size:1.1rem;font-weight:700;color:var(--highlight);margin:0 0 1rem;text-align:left;width:100%;max-width:440px}.coach-session-dialog__form-grid{display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:440px;margin-inline:auto}.coach-session-dialog__input{background-color:var(--input-bg);color:var(--text);font-weight:800;border:1px solid var(--border);border-radius:6px;padding:5px 7px;font-size:.9rem;transition:border-color .2s,background-color .2s;width:100%}.coach-session-dialog__input:focus{border-color:var(--accent);background-color:var(--surface-alt);outline:none;box-shadow:var(--shadow-focus)}.coach-session-dialog__controls{display:flex;justify-content:flex-end;width:100%;max-width:440px;margin:1.2rem auto 0;gap:.6rem}@media(max-width:768px){dialog.coach-session-dialog{max-width:92vw;padding:1rem 1.2rem}.coach-session-dialog__form-grid,.coach-session-dialog__controls,.coach-session-dialog__title{max-width:100%}}.coach-session-report{position:fixed;top:60px;left:48%;transform:translate(-50%);background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:40px;box-shadow:var(--shadow-lg);max-height:85dvh;overflow-y:auto}.coach-session-report__title{font-size:1.2rem;font-weight:600;margin-bottom:1rem;color:var(--accent);border-left:4px solid var(--accent);padding-left:8px}.coach-session-report__toolbar{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-bottom:1rem}.coach-session-report__btn{min-width:90px;font-size:.9rem}.coach-session-report__btn--reload{background:var(--primary);color:#fff}.coach-session-report__btn--export{background:var(--interactive);color:#fff}.coach-session-report__btn--close{background:var(--danger);color:#fff}.coach-session-report__table-wrapper{overflow-x:auto}.coach-session-report__table{background:var(--card);border-radius:6px;border-collapse:collapse;width:100%}.coach-session-report__thead{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.coach-session-report__th{color:var(--table-head-text);font-weight:600;padding:8px 6px;white-space:nowrap}.coach-session-report__tbody td{color:var(--text);padding:5px 6px;border-bottom:1px solid var(--table-border-h)}.coach-session-report__tbody tr:nth-child(2n){background:var(--table-row-even)}.coach-session-report__tbody tr:hover{background:var(--table-row-hover)}.coach-sessions{background:var(--panel);color:var(--text);border-radius:12px;padding:1.2rem;box-shadow:0 2px 10px #00000059}.coach-sessions__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.coach-sessions__title{color:var(--highlight)!important;font-weight:700;letter-spacing:.4px;background:var(--surface-tint);border-bottom:1px solid var(--border);padding:8px 10px;border-radius:6px}.coach-sessions__btn-add{font-size:.95rem;letter-spacing:.5px}.coach-sessions__table{width:100%;border-radius:8px;overflow:hidden;background:var(--surface-tint)}.coach-sessions__table-head th{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-size:11.5px;font-weight:600;padding:3px 8px;-webkit-user-select:none;user-select:none}.coach-sessions__table-body tr:hover{background:var(--table-row-hover)}.coach-sessions__table-body{background:var(--surface-tint)}.coach-sessions__row{transition:background .25s}.coach-sessions__row:hover{background:var(--table-row-hover)}.coach-sessions__cell{color:var(--text);font-size:12px;padding:2px 8px;line-height:1.35}.coach-sessions__cell--remaining,.coach-sessions__cell--used{font-weight:600}.coach-sessions__consumption-bar{background:var(--chip);border-radius:2px;height:4px;width:36px;margin:3px 0 0 auto}.coach-sessions__consumption-bar__fill{height:100%;border-radius:2px;transition:width .3s ease}.coach-sessions__th{color:var(--table-head-text);font-weight:600}dialog{border:none;border-radius:10px;padding:1rem}.dialog__footer{display:flex;justify-content:flex-end;margin-top:1rem;gap:.5rem}.coach-sessions__actions{text-align:center;white-space:nowrap}.coach-sessions__btn{font-size:12px;margin:0 2px}.coach-sessions__btn--report{background:var(--chip);color:var(--text)}.coach-sessions__btn--edit{background:var(--primary);color:#fff}.coach-sessions__btn--delete{background:var(--danger);color:#fff}.coach-sessions__dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:1rem;box-shadow:0 4px 18px #00000073}.coach-sessions__dialog--topup h4{color:var(--highlight);font-weight:600}.coach-sessions__dialog--topup select,.coach-sessions__dialog--topup input{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px}.coach-sessions__dialog--topup input:disabled{background:var(--chip);color:var(--muted-text);border:1px solid var(--border)}.coach-sessions__dialog--topup .dialog__footer{display:flex;justify-content:flex-end;margin-top:1rem}.coach-sessions__form{display:flex;flex-direction:column;gap:.6rem}.coach-sessions__field{display:flex;flex-direction:column;gap:.25rem}.coach-sessions__label{font-weight:600;color:var(--highlight);font-size:12px}.coach-sessions__input{background:var(--input-bg);color:var(--text)}.coach-sessions__input--readonly{background:var(--chip);color:var(--highlight);border-color:var(--border)}.coach-sessions__dialog-footer{text-align:right;margin-top:1rem}.coach-sessions__btn-saver{margin-right:.4rem}.coach-sessions__page-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px;flex-wrap:wrap}.coach-sessions__page-label{font-size:12px;color:var(--muted-text);margin-right:2px}.coach-sessions__page-btn{min-width:44px;font-size:12px;padding:3px 10px}.coach-sessions__pagination{display:flex;align-items:center;gap:10px;justify-content:center;padding:8px 0 4px}.coach-sessions__page-info{font-size:12px;color:var(--muted-text)}.coach-sessions__cell--idx{color:var(--muted-text);font-size:11px;text-align:center;min-width:28px}.coach-sessions__th--idx{min-width:28px;text-align:center;color:var(--table-head-text)}.coach-sessions__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.coach-sessions__table{width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:12px;border-radius:6px;white-space:nowrap}.coach-sessions__table th,.coach-sessions__table td{padding:1px 4px;border-bottom:1px solid var(--table-border-h);text-align:left}.coach-sessions__table th{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-weight:600}.coach-sessions__table tbody tr:hover{background:var(--table-row-hover)}@media(max-width:768px){.coach-sessions__table{font-size:11px;min-width:900px}.coach-sessions__table th,.coach-sessions__table td{padding:1px 4px}.coach-sessions__title{font-size:1.1rem}}:root{--btn-hover-opacity: .88}.control-section{background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm);padding:12px 16px;margin-bottom:20px;color:var(--text)}.control-section__title{font-size:1.1rem;font-weight:700;color:var(--highlight);margin-bottom:10px;border-bottom:1px solid var(--border);padding-bottom:4px}.control-section__body{display:flex;flex-direction:column;gap:.8rem}.control-section__divider{height:1px;background:var(--border);border:none;margin:8px 0}.control-table{width:max-content;min-width:100%;border-collapse:collapse;border-spacing:0;background:var(--card);border-radius:8px;overflow:hidden;font-size:12px;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);white-space:nowrap}.control-table__head th,.control-table__row--head .control-table__cell{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-weight:600;letter-spacing:.3px;text-align:left;padding:3px 8px;font-size:11.5px;border-bottom:1px solid var(--border);border-right:1px solid var(--table-border-v)}.control-table__head tr th:last-child{border-right:none}.control-table__body .control-table__cell{padding:2px 8px;line-height:1.35;border-bottom:1px solid var(--table-border-h);border-right:1px solid var(--table-border-v)}.control-table__body tr td:last-child{border-right:none}.control-table tr:last-child td{border-bottom:none}.control-table__body .control-table__row:nth-child(odd){background:var(--table-row-odd)}.control-table__body .control-table__row:nth-child(2n){background:var(--table-row-even)}.control-table__body .control-table__row:hover{background:var(--table-row-hover);transition:background .18s ease}.control-table__row--empty .control-table__cell{text-align:center;color:var(--muted-text);padding:10px;background:var(--surface-tint)}.control-table td[data-type=number],.control-table td:nth-child(n+12){text-align:right}.btn--table{padding:1px 7px;font-size:11px;font-weight:500;height:22px;min-height:0;border-radius:3px;gap:3px;letter-spacing:.15px;box-shadow:0 1px 1px #00000024;transition:filter .1s ease,box-shadow .1s ease}.btn--table:hover{filter:brightness(1.1);transform:none;box-shadow:0 1px 2px #0003}.btn--table:active{transform:none;filter:brightness(.92);box-shadow:none}.ctl-actions{white-space:nowrap;vertical-align:middle}.ctl-actions .btn--table+.btn--table{margin-left:4px}.control-table--compact,.control-table--compact .control-table{font-size:11px}.control-table--compact .control-table__body .control-table__cell,.control-table--compact .control-table__head th{padding:1px 5px;line-height:1.3;font-size:11px}.control-table--compact td,.control-table--compact th{padding:1px 5px;line-height:1.3;font-size:11px;vertical-align:middle;white-space:nowrap}.control-table--compact input[type=checkbox]{width:13px;height:13px;margin:0;cursor:pointer;flex-shrink:0}.control-table--compact .btn--table{height:18px;padding:0 5px;font-size:10px;border-radius:2px}.control-table--compact button:not(.btn--table),.control-table--compact .btn:not(.btn--table){min-height:0!important;height:22px;padding:0 6px;font-size:11px;border-radius:3px;line-height:1;display:inline-flex;align-items:center}.control-table__row.is-selected,.control-table__row:focus-within{background:var(--row-selected-bg)}.control-table{border-radius:6px}.btn{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:var(--radius-md);font-size:.875rem;font-weight:var(--fw-semibold);padding:6px 14px;cursor:pointer;white-space:nowrap;text-decoration:none;transition:filter var(--transition-fast),transform var(--transition-fast)}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn:active{transform:scale(.97);filter:none}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:disabled,.btn.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:none;transform:none!important;filter:none!important}.btn--sm,.btn.small{padding:4px 10px;font-size:12px}.btn--xs{padding:2px 7px;font-size:10px}.btn--primary{background:var(--interactive);color:#fff}.btn--secondary{background:var(--chip);color:var(--text);border-color:var(--border)}.btn--success{background:var(--primary);color:#fff}.btn--danger{background:var(--danger);color:#fff}.btn--warning{background:var(--warning);color:var(--black)}.btn--accent{background:var(--accent);color:var(--panel)}.btn--ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn--ghost:hover{background:var(--surface-tint);filter:none;transform:none}.btn--glow{box-shadow:0 2px 10px #0000004d}.control-section__pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:10px;font-size:.9rem;color:var(--text)}.control-section__btn-page{border-radius:4px;background:var(--chip);color:var(--text);border:1px solid var(--border)}.control-section__page-info{color:var(--highlight);font-weight:600}.bulk-controls{display:flex;gap:8px;justify-content:flex-start;margin-bottom:8px}.bulk-controls__btn{background:var(--interactive);color:#fff;border:none;border-radius:6px;padding:6px 12px;font-weight:600;cursor:pointer}.bulk-controls__btn:hover{filter:brightness(1.1)}.bulk-controls__btn:focus-visible{box-shadow:var(--shadow-focus)}.control-section__export-btn{align-self:flex-start;background:var(--accent);color:var(--panel);padding:.5rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer}.control-section__export-btn:hover{filter:brightness(1.1)}.control-section__export-btn:focus-visible{box-shadow:var(--shadow-focus)}.control-spinner{display:flex;align-items:center;gap:8px;color:var(--muted-text);font-size:.9rem}.control-spinner__dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:blink 1s infinite alternate}@keyframes blink{0%{opacity:.4}to{opacity:1}}.console-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 16px;background:var(--surface-tint);border:1px solid var(--border);border-radius:10px;padding:14px 18px;margin-top:10px}.console-form-grid label{font-weight:600;color:var(--highlight);font-size:13px;margin-bottom:4px}.console-form-grid input,.console-form-grid select{width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 8px}.console-form-grid input:focus,.console-form-grid select:focus{background:var(--surface-alt);border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}@media(max-width:640px){.bulk-controls{flex-direction:column}.control-section__pagination{flex-wrap:wrap}.console-form-grid{grid-template-columns:1fr}}.is-focused{outline:none;box-shadow:var(--shadow-focus)!important}.is-disabled{opacity:.6;cursor:not-allowed}.control-table__btn--edit{background:var(--interactive);color:#fff;border:none;border-radius:4px;padding:3px 8px;font-size:13px}.control-table__btn--edit:hover{filter:brightness(1.1)}.control-table__btn--delete{background:var(--danger);color:#fff;border:none;border-radius:4px;padding:3px 8px;font-size:13px}.control-table__btn--delete:hover{filter:brightness(1.1)}.control-table th[data-sortAsc=true],.control-table th[data-sortAsc=false]{background:var(--surface-alt)}.control-table-wrapper{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.control-table th,.control-table td{white-space:nowrap}.control-section .control-table-wrapper{border-radius:6px;overflow:hidden}.patient-form{--pf-pad-x: 1rem;--pf-pad-y: .65rem;background:var(--panel);color:var(--text);border:none;border-radius:var(--radius-xl);padding:var(--pf-pad-y) var(--pf-pad-x);width:min(620px,95vw);max-width:620px;box-shadow:0 16px 48px #0000008c;font-family:var(--font-family);max-height:92vh;overflow-y:auto;overscroll-behavior:contain}.patient-form::backdrop{background:#080e26bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.patient-form__title{font-size:.88rem;font-weight:var(--fw-bold);color:#fff;background:linear-gradient(135deg,var(--interactive) 0%,var(--interactive-hover, #1d4ed8) 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:9px var(--pf-pad-x);margin:calc(-1 * var(--pf-pad-y)) calc(-1 * var(--pf-pad-x)) 8px;letter-spacing:.2px}.patient-form__grid{display:block;width:100%;box-sizing:border-box}.patient-form__field{display:flex;flex-direction:column;gap:2px}.patient-form__field--full{grid-column:1 / -1}.patient-form__label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text);letter-spacing:.03em;line-height:1.2}.patient-form__input,.patient-form__select{width:100%;height:30px;box-sizing:border-box;padding:0 8px;font-size:13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);color:var(--text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.patient-form__input[rows],textarea.patient-form__input{height:auto;min-height:52px;padding:5px 8px;resize:vertical}.patient-form__input:focus,.patient-form__select:focus{outline:none;border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb24}.patient-form__checkbox{display:flex;align-items:center;gap:5px;font-size:12px;padding:4px 0;grid-column:1 / -1}.patient-form__checkbox label{color:var(--text);cursor:pointer}.patient-form__checkbox-input{width:14px;height:14px;accent-color:var(--interactive);cursor:pointer}.patient-form__disclaimer{color:var(--muted-text);font-size:11px;line-height:1.4;margin:6px 0 2px;border-top:1px solid var(--border);padding-top:6px}.patient-form__controls{display:flex;justify-content:flex-start;gap:6px;margin:6px calc(-1 * var(--pf-pad-x)) calc(-1 * var(--pf-pad-y));padding:8px var(--pf-pad-x);border-top:1px solid var(--border);background:var(--chip);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.patient-form__btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);padding:0 14px;font-weight:var(--fw-semibold);font-size:12px;height:30px;cursor:pointer;transition:filter var(--transition-fast),transform var(--transition-fast);color:#fff;background:var(--interactive)}.patient-form__btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.patient-form__btn:active{transform:translateY(0)}.patient-form__btn--primary{background:linear-gradient(90deg,var(--interactive),var(--interactive-hover, #1d4ed8))}.patient-form__btn--secondary{background:var(--surface-alt, var(--chip));color:var(--text)}.patient-form__btn--secondary:hover{background:var(--chip)}.patient-form__btn--danger{background:var(--danger)}.patient-form__btn--danger:hover{filter:brightness(1.1)}.patient-form__source select,.patient-form__source input{width:100%;height:30px;box-sizing:border-box;border:1px solid var(--border);background:var(--card);color:var(--text);padding:0 8px;border-radius:var(--radius-sm);font-size:13px;transition:border-color var(--transition-fast)}.patient-form__source label{font-size:11px;font-weight:var(--fw-bold);color:var(--muted-text);display:block;margin-bottom:2px}.patient-form__source select:focus,.patient-form__source input:focus{outline:none;border-color:var(--interactive);box-shadow:0 0 0 2px #2563eb24}.patient-form__ndis-section,.patient-form__epc-section,.patient-form__hicaps-section{display:flex;flex-direction:column;gap:5px;grid-column:1 / -1;padding:6px 8px;border:1px solid var(--border);border-left:3px solid var(--interactive);border-radius:var(--radius-sm);background:var(--surface-tint);margin-top:4px}.patient-form__au-section{display:flex;flex-direction:column;gap:5px;grid-column:1 / -1;padding:8px 10px;border:1px solid rgba(90,158,66,.28);border-left:3px solid #5a9e42;border-radius:var(--radius-sm);background:#5a9e4217;margin-top:8px}[data-theme=light] .patient-form__au-section{background:#f4fbf0;border-color:#b8d4a8;border-left-color:#5a9e42}.patient-form__section-header{font-size:12px;font-weight:700;color:#8fd672;letter-spacing:.02em;margin-bottom:4px}[data-theme=light] .patient-form__section-header{color:#3a7a28}.pf-tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:10px}.pf-tab{border:none;border-bottom:2px solid transparent;margin-bottom:-2px;background:none;color:var(--muted-text);font-size:12px;font-weight:var(--fw-semibold);padding:5px 14px;cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast),border-color var(--transition-fast)}.pf-tab:hover{color:var(--text)}.pf-tab--active{color:var(--interactive);border-bottom-color:var(--interactive);font-weight:var(--fw-bold)}.pf-panel{display:block}.patient-form__address .patient-form__label{margin-bottom:2px}.patient-address__grid{display:flex;flex-direction:column;gap:5px}.patient-address__grid .patient-form__input,.patient-address__grid .patient-form__select{width:100%}.patient-address__row{display:grid;grid-template-columns:1fr 110px;gap:6px}@media(max-width:380px){.patient-address__row{grid-template-columns:1fr}}.patient-form__req-star{color:var(--danger, #ef4444);margin-left:1px;font-weight:var(--fw-bold)}.is-disabled{opacity:.55;pointer-events:none}.has-error{border-color:var(--danger)!important}@media(max-width:600px){.patient-form{padding:.6rem .85rem;max-height:94vh}.patient-form__title{margin:-.6rem -.85rem 7px;padding:8px .85rem}.patient-form__controls{margin:6px -.85rem -.6rem;padding:7px .85rem}}@media(min-width:601px){.patient-form{width:min(620px,95vw)}}.main-audit{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:1rem;box-shadow:0 0 12px #00000040;font-family:system-ui,sans-serif;overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:768px){.main-audit__table{width:max-content;min-width:800px;font-size:11px}.main-audit__table th,.main-audit__table td{padding:4px 6px}.main-audit__title{font-size:1.1rem}}.main-audit__title{font-size:1.4rem;font-weight:700;color:var(--highlight, #ffd966);margin-bottom:.8rem;text-shadow:0 0 4px rgba(255,217,102,.4)}.main-audit__controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:.8rem;align-items:center}.main-audit__select{background:var(--input-bg);color:var(--text);border:1px solid var(--border);padding:4px 6px;border-radius:4px}.main-audit__select:focus{border-color:var(--accent, #61dafb);box-shadow:0 0 4px var(--accent, #61dafb)}.main-audit__btn{padding:6px 12px;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:.2s}.main-audit__btn--export{background:var(--warning);color:var(--text)}.main-audit__btn--reload{background:var(--interactive)}.main-audit__btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.main-audit__btn:disabled{opacity:.6;cursor:not-allowed}.main-audit__table{width:100%;border-collapse:collapse;background:var(--card);font-size:12px}.main-audit__table td{font-size:12px}.main-audit__table thead{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.main-audit__table th{color:var(--table-head-text);border-bottom:1px solid var(--border);padding:6px 8px;text-align:left;font-weight:600}.main-audit__table td{border-bottom:1px solid var(--table-border-h);padding:6px 8px;color:var(--text)}.main-audit__table tbody tr:hover{background:var(--table-row-hover)}.main-audit__empty{text-align:center;color:var(--muted-text);padding:12px}.main-audit__pagination{display:flex;justify-content:space-between;align-items:center;margin-top:.8rem;color:var(--muted, #9bb2c9)}.main-audit__page-btn{background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer}.main-audit__page-btn:disabled{opacity:.5;cursor:default}.main-audit__page-info{font-size:.9rem;color:var(--muted, #9bb2c9)}.main-audit__table-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;max-width:100%}.main-audit__table{width:max(100%,1200px);border-collapse:collapse;white-space:nowrap}.main-audit__table th,.main-audit__table td{padding:1px 2px;font-size:12px;border-bottom:1px solid var(--table-border-h)}.main-audit__table thead th{position:sticky;top:0;background:var(--table-head-start);z-index:5;text-align:left}@media(max-width:768px){.main-audit__table th,.main-audit__table td{font-size:11px}}.audit-summary{display:flex;flex-direction:column;gap:16px;padding-top:4px}.audit-summary__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.audit-summary__card{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.audit-summary__card-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--chip);border-bottom:1px solid var(--border)}.audit-summary__card-title{font-size:13px;font-weight:var(--fw-semibold);color:var(--text)}.audit-summary__card-total{font-size:20px;font-weight:700;color:var(--highlight, #ffd966);line-height:1}.audit-summary__card-body{padding:8px 12px}.audit-summary__row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--table-border-h)}.audit-summary__row:last-child{border-bottom:none}.audit-summary__row-label{font-size:12px;color:var(--muted-text)}.audit-summary__row-count{font-size:12px;font-weight:600;color:var(--muted-text);min-width:24px;text-align:right}.audit-summary__row-count--active{color:var(--primary)}.audit-summary__status{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.audit-summary__status-head{font-size:13px;font-weight:var(--fw-semibold);color:var(--highlight, #ffd966);margin-bottom:8px}.audit-summary__status-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.audit-summary__status-row:last-child{margin-bottom:0}.audit-summary__status-badge{font-size:12px;font-weight:600;padding:2px 10px;border-radius:var(--radius-pill, 999px);border:1px solid var(--border);white-space:nowrap}.audit-summary__status-badge--in{color:#4ade80;border-color:#4ade804d;background:#4ade8014}.audit-summary__status-badge--out{color:#f87171;border-color:#f871714d;background:#f8717114}.audit-summary__status-name{font-size:12px;padding:2px 8px;background:var(--chip);border:1px solid var(--border);border-radius:var(--radius-pill, 999px);color:var(--text)}.audit-summary__status-name--out{color:var(--muted-text);text-decoration:line-through}.audit-summary__breakdown{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.audit-summary__breakdown-head{font-size:13px;font-weight:var(--fw-semibold);color:var(--highlight, #ffd966);margin-bottom:10px}.audit-summary__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.audit-summary__table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.audit-summary__table th{padding:5px 10px;background:var(--chip);border-bottom:1px solid var(--border);text-align:left;color:var(--muted-text);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.audit-summary__table td{padding:5px 10px;border-bottom:1px solid var(--table-border-h);color:var(--text);text-align:center}.audit-summary__table td:first-child{text-align:left}.audit-summary__table tbody tr:hover{background:var(--table-row-hover)}.audit-summary__cell--active{color:var(--primary);font-weight:600}.audit-summary__empty{color:var(--muted-text);font-size:13px;text-align:center;padding:20px}.audit-summary__row-chevron{display:inline-block;font-size:8px;margin-right:5px;width:10px;text-align:center;color:var(--muted-text);transition:color .15s;vertical-align:middle}.audit-summary__row-chevron--empty{visibility:hidden}.audit-summary__row--clickable{cursor:pointer}.audit-summary__row--clickable:hover{background:var(--surface-alt);border-radius:3px}.audit-summary__row--clickable:hover .audit-summary__row-chevron{color:var(--primary)}.audit-summary__row--expanded{background:var(--surface-alt);border-radius:4px 4px 0 0}.audit-summary__drill{background:var(--bg);border:1px solid var(--border);border-top:none;border-radius:0 0 4px 4px;margin-bottom:2px;overflow:hidden}.audit-summary__drill-table{width:100%;border-collapse:collapse;font-size:11px}.audit-summary__drill-table th{padding:4px 8px;background:var(--chip);color:var(--muted-text);font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:600;text-align:left;border-bottom:1px solid var(--border)}.audit-summary__drill-table td{padding:4px 8px;border-bottom:1px solid var(--table-border-h);color:var(--text);text-align:left;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-summary__drill-table tr:last-child td{border-bottom:none}.audit-summary__drill-table tbody tr:hover td{background:var(--table-row-hover)}.value-card{color:var(--text);background:var(--panel);padding:1rem}.value-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.value-card__title{color:var(--highlight);font-weight:700;font-size:1.2rem}.value-card__btn{background:var(--interactive);color:#fff;border-radius:4px;margin-left:6px;padding:6px 12px;font-weight:800;cursor:pointer;border:none;transition:.2s all;font-size:12px}.value-card__btn:hover{filter:brightness(1.15)}.value-card__btn--primary{background:var(--interactive)}.value-card__btn--danger{background:var(--danger)}.value-card__btn--warning{background:var(--warning);color:var(--text)}.value-card__btn--light{background:var(--chip);color:var(--text)}.value-card__btn--info{background:var(--accent);color:var(--panel)}.value-card__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:.5rem}.value-card__table{width:100%;border-collapse:collapse;white-space:nowrap;border-radius:6px;background:var(--card);font-size:12px}.value-card__thead{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end))}.value-card__cell{padding:1px 4px;border-bottom:1px solid var(--table-border-h);text-align:left}.value-card__cell--right{text-align:right}.value-card__cell--th{color:var(--highlight);font-weight:600}.value-card__row:hover{background:var(--table-row-hover)}.value-card__row--low-balance{background:var(--row-overdue-bg);color:var(--row-overdue-text);font-weight:600}.value-card__pager{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0}.value-card__form{background:var(--surface-tint);border-radius:8px;padding:12px}.value-card__form-title{font-weight:600;color:var(--accent);margin-bottom:6px}.value-card__form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.value-card__label{display:block;margin-bottom:3px;color:var(--highlight)}.value-card__input,.value-card__select{width:100%;padding:6px;border:1px solid var(--border);border-radius:4px;background:var(--card);color:var(--text)}.value-card__form-row--actions{text-align:right}@media(max-width:768px){.value-card__table{font-size:11px;min-width:850px}.value-card__title{font-size:1.05rem}}.value-card__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.value-card__title{color:var(--highlight)!important;font-weight:700;letter-spacing:.4px;background:var(--surface-tint);border-bottom:1px solid var(--border);padding:8px 10px;border-radius:6px;font-size:1.15rem}.bookingform-checkoutdlg::backdrop{background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeInOverlay .25s ease-out forwards}.bookingform-checkoutdlg{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 24px #00000080;width:min(460px,90vw);max-height:90vh;overflow-y:auto;padding:1.4rem 1.6rem;animation:popupScale .3s ease-out forwards}.bookingform-checkoutdlg__title{display:flex;align-items:center;gap:.6rem;color:var(--highlight);font-size:1.2rem;font-weight:700;margin-bottom:1.2rem;padding-left:.75rem;border-left:3px solid var(--highlight)}.bookingform-checkoutdlg__body{display:flex;flex-direction:column;gap:.8rem}.bookingform-checkoutdlg__field{display:flex;flex-direction:column}.bookingform-checkoutdlg__label{font-size:.9rem;font-weight:600;color:var(--muted-text);margin-bottom:.25rem}.bookingform-checkoutdlg__input,.bookingform-checkoutdlg__select{background:var(--input-bg);border:1px solid var(--border);border-radius:6px;padding:.5rem .65rem;color:var(--text);font-size:.9rem;transition:border-color .2s ease,box-shadow .2s ease}.bookingform-checkoutdlg__input:hover,.bookingform-checkoutdlg__select:hover{background:var(--surface-alt)}.bookingform-checkoutdlg__input:focus,.bookingform-checkoutdlg__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.bookingform-checkoutdlg__input--amount{border-left:3px solid var(--warning)}.bookingform-checkoutdlg__vcinfo,.bookingform-checkoutdlg__coachpreview{background:var(--surface-tint);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;font-size:.9rem;color:var(--text);line-height:1.4}.bookingform-checkoutdlg__vcinfo label,.bookingform-checkoutdlg__coachpreview label{display:block;font-weight:700;color:var(--highlight);margin-bottom:.3rem}.bookingform-checkoutdlg__result{font-size:1rem;font-weight:600;margin-top:.6rem;color:var(--highlight);text-align:right}.bookingform-checkoutdlg__footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.4rem;padding-top:.8rem;border-top:1px solid var(--border)}.bookingform-checkoutdlg__btn{border:none;border-radius:6px;cursor:pointer;padding:.5rem 1rem;font-weight:600;font-size:.95rem;letter-spacing:.3px;transition:all .2s ease}.bookingform-checkoutdlg__btn--primary{background:var(--primary);color:#fff}.bookingform-checkoutdlg__btn--primary:hover{background:var(--primary-dark);transform:translateY(-1px)}.bookingform-checkoutdlg__btn--cancel{background:var(--chip);color:var(--text);border:1px solid var(--border)}.bookingform-checkoutdlg__btn--cancel:hover{background:var(--surface-alt)}@keyframes popupScale{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}.hidden{display:none!important}@media(max-width:480px){.bookingform-checkoutdlg{width:94vw;padding:1rem}.bookingform-checkoutdlg__footer{flex-wrap:wrap}.bookingform-checkoutdlg__btn{flex:1}}.bookingform-checkoutdlg__vcinfo.no-card{background:#ff5d5d14;border:1px dashed var(--danger);color:var(--danger);padding:.6rem .8rem;border-radius:6px;font-size:.9rem;margin-top:.5rem}.bookingform-checkoutdlg__alert{color:var(--danger)}.bookingform-checkoutdlg__select option:disabled{color:var(--muted-text)}.bookingform-checkoutdlg__vcinfo-text{line-height:1.5}.bookingform-checkoutdlg__vcinfo-text strong,.bookingform-checkoutdlg__vcinfo-text .vc-line strong{color:var(--accent);display:inline-block;margin-bottom:2px}.bookingform-checkoutdlg__vcinfo-text .next-balance{color:var(--highlight);font-weight:600}.bookingform-checkoutdlg__vcinfo-text .next-balance.insufficient{color:var(--danger);font-weight:700}.bookingform-checkoutdlg__vcinfo-text .vc-insufficient-note{color:var(--danger);font-size:.9rem;font-weight:600}.valuecarddlg__overlay{position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.valuecarddlg,.valuecarddlg--recharge{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:1.4rem 1.6rem;min-width:420px;max-width:90vw;box-shadow:0 8px 32px #00000080;animation:popIn .25s ease}@keyframes popIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.valuecarddlg__title,.valuecarddlg__title--recharge{font-size:1.15rem;font-weight:700;color:var(--highlight);margin-bottom:1rem;padding-left:.7rem;border-left:3px solid var(--highlight)}.valuecarddlg__subtitle{display:inline-block;font-size:11px;color:var(--muted-text);margin-left:6px;font-weight:400}.valuecarddlg__form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.valuecarddlg__form--recharge{display:flex;flex-direction:column;gap:12px}.valuecarddlg__field--search{grid-column:1 / -1}.valuecarddlg__label{display:block;font-weight:600;font-size:.85rem;color:var(--highlight);margin-bottom:4px}.valuecarddlg__input{width:100%;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.9rem;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.valuecarddlg__input::placeholder{color:var(--muted-text)}.valuecarddlg__input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.valuecarddlg__input--readonly{background:var(--chip);color:var(--muted-text);font-style:italic;cursor:default}.valuecarddlg__input--familyid{background:var(--surface-tint);border-color:var(--accent);font-weight:600}.valuecarddlg__input--familyid:focus{box-shadow:var(--shadow-focus)}.valuecarddlg__input--hidden{display:none}.valuecarddlg__input--select{appearance:none}.valuecarddlg__suggestions{display:none;list-style:none;margin:4px 0 0;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--card);max-height:150px;overflow-y:auto;position:relative;z-index:10}.valuecarddlg__suggestions.is-visible{display:block}.valuecarddlg__suggestion-item{padding:6px 8px;cursor:pointer;color:var(--text);font-size:.9rem;transition:background .15s}.valuecarddlg__suggestion-item:hover{background:var(--surface-alt)}.valuecarddlg__field--current,.valuecarddlg__field--after{background:var(--surface-tint);border:1px solid var(--border);border-radius:6px;padding:6px 8px}.valuecarddlg__field--payment .valuecarddlg__label{color:var(--highlight)}.valuecarddlg__dialog{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:1rem}.valuecarddlg__dialog-footer{text-align:right;margin-top:1rem}.valuecarddlg__btn--ok{background:var(--primary);color:#fff;font-weight:600;border:none;border-radius:6px;padding:6px 14px;cursor:pointer}.valuecarddlg__btn--ok:hover{background:var(--primary-dark)}.valuecarddlg__controls{margin-top:1.2rem;display:flex;justify-content:flex-end;gap:8px}.valuecarddlg__btn--save{background:var(--primary);color:#fff;font-weight:700;border:none;border-radius:6px;padding:7px 16px;cursor:pointer;transition:background .2s ease}.valuecarddlg__btn--save:hover{background:var(--primary-dark)}.valuecarddlg__btn--cancel{background:var(--chip);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 16px;cursor:pointer;font-weight:500;transition:background .2s ease}.valuecarddlg__btn--cancel:hover{background:var(--surface-alt)}@media(max-width:600px){.valuecarddlg__overlay{padding:1rem;align-items:flex-end}.valuecarddlg,.valuecarddlg--recharge{width:100%;min-width:unset;max-width:100%;padding:1rem 1.2rem;border-radius:12px 12px 8px 8px}.valuecarddlg__title,.valuecarddlg__title--recharge{font-size:1.05rem}.valuecarddlg__subtitle{display:block;margin:.2rem 0 0}.valuecarddlg__form-grid{grid-template-columns:1fr;gap:10px}.valuecarddlg__field{grid-column:1 / -1}.valuecarddlg__input{font-size:.95rem;padding:7px 9px}.valuecarddlg__suggestion-item{padding:8px 10px;font-size:.95rem}.valuecarddlg__controls{flex-direction:column;gap:10px;margin-top:1.4rem}.valuecarddlg__btn--save,.valuecarddlg__btn--cancel{width:100%;font-size:1rem;padding:10px 0;text-align:center}}.ctl-tabs{display:flex;flex-direction:column;width:100%;background:var(--panel);border-radius:8px;overflow:hidden}.ctl-tabs__nav{display:flex;flex-wrap:nowrap;background:var(--chip);border-bottom:2px solid var(--border)}.ctl-tabs__nav-btn{flex:1 1 auto;background:transparent;border:none;padding:11px 8px;color:var(--muted-text);cursor:pointer;font-size:13px;font-weight:var(--fw-medium);transition:background var(--transition-fast),color var(--transition-fast);text-align:center;white-space:nowrap}.ctl-tabs__nav-btn:hover{background:var(--surface-alt, var(--card));color:var(--text)}.ctl-tabs__nav-btn--active{background:var(--interactive);border-bottom:3px solid var(--accent);color:#fff;font-weight:var(--fw-semibold)}.ctl-tabs__body{width:100%;background:var(--card);padding:14px 18px}.ctl-tabs__panel{display:none;animation:ctlTabFadeIn .2s ease-in-out}.ctl-tabs__panel--active{display:block}@keyframes ctlTabFadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.ctl-tabs__nav{flex-wrap:wrap}.ctl-tabs__nav-btn{flex:1 1 50%;font-size:12px;padding:9px 6px}}.control-page--invoices{padding:12px 16px}.control-page--invoices .control-section__title{color:var(--highlight)!important;font-weight:700;letter-spacing:.4px;background:var(--surface-tint);border-bottom:1px solid var(--border);padding:8px 10px;border-radius:6px}.invoice-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.btn--tab{border:1px solid transparent;border-radius:6px;cursor:pointer;font-size:13px;font-weight:700;letter-spacing:.2px;padding:7px 20px;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.btn--tab[data-tab=uninvoiced]{background:#f7b50014;border-color:#f7b50059;color:var(--warning)}.btn--tab[data-tab=uninvoiced]:hover{background:#f7b50026;border-color:var(--warning);color:var(--warning)}.btn--tab[data-tab=uninvoiced].is-active{background:#f7b50038;border-color:var(--warning);box-shadow:0 0 8px #f7b50040;color:#fff}.btn--tab[data-tab=open]{background:#0891b214;border-color:#0891b259;color:var(--accent)}.btn--tab[data-tab=open]:hover{background:#0891b226;border-color:var(--accent);color:var(--accent)}.btn--tab[data-tab=open].is-active{background:#0891b238;border-color:var(--accent);box-shadow:0 0 8px #0891b240;color:#fff}.btn--tab[data-tab=closed]{background:#2ea04312;border-color:#2ea0434d;color:var(--primary)}.btn--tab[data-tab=closed]:hover{background:#2ea04324;border-color:var(--primary);color:var(--primary)}.btn--tab[data-tab=closed].is-active{background:#2ea04333;border-color:var(--primary);box-shadow:0 0 8px #2ea04333;color:#fff}.invoice-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.control-page--invoices .control-table{width:100%;border-collapse:collapse;background:var(--card);color:var(--text);font-size:12px;white-space:nowrap;min-width:820px;line-height:1.3}.control-page--invoices .control-table thead th{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text);font-weight:600;padding:3px 8px;font-size:11.5px;text-align:left}.control-page--invoices .control-table tbody td{border-bottom:1px solid var(--table-border-h);color:var(--text);padding:2px 8px;line-height:1.35;vertical-align:middle}.control-page--invoices .control-table tbody tr:hover{background:var(--table-row-hover)}.btn--inv{border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:11px;font-weight:700;margin:1px 2px;padding:2px 8px;transition:filter .15s;white-space:nowrap}.btn--inv:hover{filter:brightness(1.18)}.btn--inv:active{filter:brightness(.9)}.btn--inv--blue{background:#1565c0}.btn--inv--green{background:#1a7a3c}.btn--inv--orange{background:#c07000}.btn--inv--red{background:#b71c1c}.btn--inv--gray{background:#455a64}.btn--inv--purple{background:#6a1b9a}.btn--tiny.arrow{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--muted-text);cursor:pointer;font-size:11px;padding:2px 7px;transition:background .12s}.btn--tiny.arrow:hover{background:var(--surface-tint);color:var(--text)}.btn--tiny.arrow:disabled{opacity:.3;cursor:default}.inv-status{border-radius:4px;display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;white-space:nowrap}.inv-status--unissued{background:var(--surface-tint);color:var(--muted-text)}.inv-status--open{background:#0891b221;color:var(--accent)}.inv-status--issued{background:#0891b238;color:var(--accent)}.inv-status--follow-up{background:#f7b5002e;color:var(--warning)}.inv-status--closed,.inv-status--settled{background:#2ea04326;color:var(--primary)}.inv-status--created{background:#2563eb21;color:var(--muted-text)}.inv-status--confirmed{background:#f7b50021;color:var(--warning)}.inv-status--checked_out{background:#2ea04321;color:var(--primary)}.inv-status--cancelled{background:#dc262621;color:var(--danger)}.inv-status--cancelfee{background:#dc262621;color:var(--danger);margin-left:4px}.inv-bulk-bar{align-items:center;background:var(--surface-tint);border:1px solid var(--border);border-radius:6px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px;padding:6px 12px}.inv-bulk-label{align-items:center;color:var(--text);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:6px}.inv-bulk-count{color:var(--muted-text);flex:1;font-size:12px}.inv-send-cell{white-space:nowrap}.inv-send-status{border-radius:3px;display:block;font-size:10px;font-weight:700;margin-bottom:3px;padding:1px 6px;white-space:nowrap}.inv-send-status--pending{background:#f7b5001f;color:var(--warning)}.inv-send-status--sent{background:#0891b221;color:var(--accent)}.invoice-empty-msg{color:var(--muted-text);font-size:12px;padding:14px 8px}.uninvoiced-pending-panel{background:#f7b5000f;border:1px solid rgba(247,181,0,.2);border-left:3px solid var(--warning);border-radius:6px;margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:10px 14px}.uninvoiced-pending-panel .control-table{min-width:900px}.uninvoiced-section{background:#0891b20a;border:1px solid rgba(8,145,178,.15);border-left:3px solid var(--accent);border-radius:6px;display:flex;flex-direction:column;gap:10px;padding:12px 14px}.uninvoiced-section__title{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.4px;margin:0 0 2px;text-transform:uppercase}.uninv-fbar{align-items:flex-end;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.uninv-fbar[hidden]{display:none}.uninv-fbar__label{align-self:center;color:var(--muted-text);font-size:12px}.uninv-fbar__select,.uninv-fbar__date,.uninv-fbar__search{background:var(--input-bg);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:12px;padding:4px 8px}.uninv-fbar__date{padding:4px 6px}.uninv-fbar__search{width:170px}.uninv-clientbar{align-items:center;background:var(--surface-tint);border:1px solid var(--border);border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;padding:8px 12px}.uninv-clientbar--active{border-color:var(--accent)}.uninv-clientbar__label{color:var(--text);font-size:13px;font-weight:600}.uninv-clientbar__select{background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;min-width:260px;padding:5px 8px}.uninv-clientbar__search{background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:5px 8px;width:180px}.uninv-clientbar__clear{background:var(--chip);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;font-size:12px;padding:4px 10px}.uninv-clientbar__clear[hidden]{display:none}.uninv-clientbar__scope{color:var(--muted-text);font-size:12px}.uninv-pager{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}.uninv-pager[hidden]{display:none}.uninv-pager__btn{background:var(--chip);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;font-size:12px;min-width:30px;padding:3px 9px}.uninv-pager__btn:disabled{cursor:not-allowed;opacity:.4}.uninv-pager__btn--current{border-color:var(--accent);color:var(--accent);font-weight:700}.uninv-pager__info{color:var(--muted-text);font-size:12px}.uninv-pending__header{font-size:13px;font-weight:600;margin-bottom:8px}.uninv-pending__header--ok{color:var(--primary)}.uninv-pending__header--todo{color:var(--warning)}.uninv-bulkbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.uninv-bulkbar[hidden]{display:none}.uninv-bulkbar__selall{align-items:center;color:var(--text);cursor:pointer;display:flex;font-size:12px;gap:4px}.uninv-count{color:var(--muted-text);font-size:12px}.uninv-empty{color:var(--muted-text);font-size:12px;padding:4px 0}.uninv-divider{border:none;border-top:1px solid var(--border);margin:12px 0}.uninv-queue-summary{align-items:center;display:flex;flex-wrap:wrap;font-size:12px;gap:10px;margin:2px 0 8px}.uninvoiced-controls{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}.uninvoiced-controls button{background:var(--chip);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;font-size:12px;font-weight:600;padding:5px 14px;transition:background .15s}.uninvoiced-controls button:hover{background:var(--surface-alt);color:var(--text)}.inv-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.inv-sortable:hover{color:var(--accent, #61dafb)}.inv-sort-mark{font-size:.75em;opacity:.9}.inv-sub-sorts{display:flex;gap:6px;margin-top:3px;font-size:.68rem;font-weight:600}.inv-sortable--sub{padding:1px 5px;border-radius:4px;border:1px solid var(--border, #2b3a4a);color:var(--text-muted, #8ab);white-space:nowrap}.inv-sortable.is-sorted{color:var(--accent, #61dafb);border-color:var(--accent, #61dafb)}.uninv-override{align-items:center;border:1px solid transparent;border-radius:5px;color:var(--muted-text);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;margin-left:auto;padding:4px 9px;-webkit-user-select:none;user-select:none}.uninv-override:hover{color:var(--text)}.uninv-override:has(input:checked){background:#f7b50024;border-color:var(--warning);color:var(--warning);font-weight:600}.uninv-override input{accent-color:var(--warning);cursor:pointer;margin:0}.uninvoiced-controls .btn-primary{background:var(--interactive);border-color:transparent;color:#fff}.uninvoiced-controls .btn-primary:hover{background:var(--interactive-hover)}.uninvoiced-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.inv-null-cell{color:var(--muted-text);font-style:italic;font-size:11px}.u-right{text-align:right}.uninv-qtable{table-layout:auto}.uninvoiced-pending-panel .uninv-pending-table{min-width:720px}.uninv-queue-table{min-width:900px}.uninv-qtable th,.uninv-qtable td{white-space:nowrap}.uninv-qtable th.uninv-qcol--chk,.uninv-qtable td.uninv-qcol--chk{text-align:center;width:32px}.uninv-qtable th.uninv-qcol--date,.uninv-qtable td.uninv-qcol--date{font-variant-numeric:tabular-nums}.uninv-qtable td.uninv-qcol--text{max-width:150px;overflow:hidden;text-overflow:ellipsis}.uninv-qtable th.uninv-qcol--num,.uninv-qtable td.uninv-qcol--num{text-align:right}.uninv-qtable th.uninv-qcol--action,.uninv-qtable td.uninv-qcol--action,.uninv-qtable th.uninv-qcol--status,.uninv-qtable td.uninv-qcol--status{text-align:left}.uninv-qtable__travelfee{color:var(--warning)}.uninv-qband{background:var(--chip);border:1px solid var(--border);border-radius:3px;color:var(--muted-text);font-size:10.5px;font-weight:600;margin-left:5px;padding:0 4px;vertical-align:middle}.uninv-qband--unknown{border-color:var(--danger);color:var(--danger);cursor:help}.uninv-extbadge{background:var(--danger);border-radius:3px;color:var(--white);cursor:help;font-size:10.5px;font-weight:700;margin-left:5px;padding:1px 5px;vertical-align:middle;white-space:nowrap}.uninv-disclose__btn{background:var(--chip);border:1px solid var(--border);border-radius:3px;color:var(--muted-text);cursor:pointer;font-size:11px;line-height:1;margin-right:5px;padding:2px 6px;vertical-align:middle}.uninv-disclose__btn:hover{border-color:var(--muted-text);color:var(--text)}.uninv-disclose__btn--open{background:var(--surface-alt);color:var(--text)}.uninv-disclose__row>td{background:var(--surface-tint);color:var(--muted-text);font-size:11px;padding:4px 10px 5px 40px;white-space:normal}.uninv-disclose__label{color:var(--muted-text);letter-spacing:.4px;margin-right:8px;text-transform:uppercase}.uninv-disclose__label--ext{color:var(--danger);margin-left:18px}.uninv-disclose__id{color:var(--highlight);font-family:monospace;font-size:11.5px;-webkit-user-select:all;user-select:all}.uninv-disclose__note{color:var(--muted-text);margin-left:10px}.uninv-disclose__note--warn{color:var(--warning);font-weight:600}.nested-table{border-collapse:collapse;font-size:11.5px;line-height:1.3;margin:2px 0;width:100%}.nested-table th{background:var(--surface-tint);color:var(--table-head-text);font-weight:600;padding:3px 7px;text-align:left}.nested-table td{border-bottom:1px solid var(--table-border-h);color:var(--text);padding:2px 7px}.nested-table tr:hover td{background:var(--surface-tint)}.sub-row.hidden{display:none}.invoice-toggle{color:var(--text);font-size:13px;margin-bottom:10px}.invoice-toggle label{align-items:center;cursor:pointer;display:flex;gap:6px}.booking-form__invoice-status{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;margin-bottom:6px;padding:4px 10px}.invoice-status--na,.invoice-status--none{background:var(--surface-tint);color:var(--muted-text)}.invoice-status--pending{background:#f7b50026;color:var(--warning)}.invoice-status--open{background:#0891b226;color:var(--accent)}.invoice-status--issued{background:#0891b240;color:var(--accent)}.invoice-status--followup{background:#f7b50026;color:var(--warning)}.invoice-status--closed{background:#2ea04326;color:var(--primary)}.invoice-status--linked{background:#0891b21a;color:var(--muted-text)}.invoice-status--external{background:var(--chip);color:var(--warning);border:1px solid var(--warning);font-weight:700}.invoice-status--external-settled{background:var(--chip);color:var(--primary);border:1px solid var(--primary);font-weight:700}.booking-form__lock-notice{background:#dc26261f;border:1px solid rgba(220,38,38,.3);border-radius:5px;color:var(--danger);font-size:12px;margin-bottom:8px;padding:5px 10px}.inv-amount-cell{font-size:12px;font-weight:700;color:var(--primary);letter-spacing:.2px;white-space:nowrap}tr.inv-row--stale td{background:#f7b5001a}tr.inv-row--stale{box-shadow:inset 3px 0 0 var(--warning)}tr.inv-row--stale .inv-fu-cell:after{content:" ⚠️";font-size:10px}.inv-fu-overlay{position:fixed;inset:0;background:#000000a6;z-index:9999;display:flex;align-items:center;justify-content:center;padding:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}.inv-fu-dialog{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:24px;width:420px;max-width:90vw;box-shadow:0 20px 60px #0000008c;max-height:100%;overflow-y:auto}.inv-fu-dialog__title{font-size:13px;font-weight:700;color:var(--highlight);margin-bottom:3px}.inv-fu-dialog__sub{font-size:11px;color:var(--muted-text);margin-bottom:16px;font-family:monospace;letter-spacing:.3px}.inv-fu-label{display:block;font-size:11px;color:var(--muted-text);margin-bottom:5px;margin-top:12px;text-transform:uppercase;letter-spacing:.4px}.inv-fu-select,.inv-fu-textarea{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:7px 10px;font-size:13px;font-family:inherit;box-sizing:border-box}.inv-fu-textarea{resize:vertical}.inv-fu-select:focus,.inv-fu-textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.inv-fu-dialog__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}.inv-fu-dialog--confirm{width:460px;padding:22px 24px 20px;border-radius:14px;border-color:color-mix(in srgb,var(--border) 70%,transparent);box-shadow:0 24px 70px #0009,0 0 0 1px #ffffff08 inset}.inv-fu-dialog--confirm.has-alt{width:600px}.inv-fu-dialog--confirm .inv-fu-dialog__title{font-size:15px;line-height:1.35;margin-bottom:10px;display:flex;align-items:center;gap:8px}.inv-fu-dialog--confirm .inv-fu-dialog__title:before{content:"";width:3px;align-self:stretch;min-height:1.1em;border-radius:2px;background:var(--highlight)}.inv-fu-dialog--confirm.is-danger .inv-fu-dialog__title:before{background:var(--danger, #ef4444)}.inv-fu-confirm__body{font-size:.85rem;color:var(--text);line-height:1.7;white-space:pre-line;margin:10px 0 4px;max-height:46vh;overflow-y:auto;padding:12px 14px;border-radius:9px;background:color-mix(in srgb,var(--input-bg) 65%,transparent);border:1px solid color-mix(in srgb,var(--border) 55%,transparent)}.inv-fu-dialog--confirm .inv-fu-dialog__actions{justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--border) 45%,transparent)}.inv-fu-dialog--confirm.has-alt .inv-fu-dialog__actions{justify-content:space-between}.inv-fu-dialog--confirm.has-alt #cfm-cancel{margin-right:auto}.inv-fu-dialog--confirm .inv-fu-dialog__actions .btn{white-space:nowrap}@media(max-width:640px){.inv-fu-dialog--confirm,.inv-fu-dialog--confirm.has-alt{width:auto}.inv-fu-dialog--confirm .inv-fu-dialog__actions{flex-direction:column-reverse}.inv-fu-dialog--confirm .inv-fu-dialog__actions .btn{width:100%}.inv-fu-dialog--confirm.has-alt #cfm-cancel{margin-right:0}}.inv-fu-cell{line-height:1.5}.inv-fu-badge{display:inline-block;background:var(--chip);color:var(--accent);border-radius:10px;padding:1px 7px;font-size:10px;margin-left:5px;vertical-align:middle}.inv-fu-history{padding:10px 14px 14px;margin-top:8px;border-top:1px solid var(--border)}.inv-fu-history__title{font-size:11px;font-weight:700;color:var(--highlight);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.inv-fu-entry{padding:6px 0;border-bottom:1px solid var(--border)}.inv-fu-entry:last-child{border-bottom:none}.inv-fu-entry__meta{display:block;font-size:11px;color:var(--muted-text);margin-bottom:2px}.inv-fu-entry__text{font-size:12px;color:var(--text);white-space:pre-wrap}.btn--tab[data-tab=claims]{background:#0891b214;border-color:#0891b259;color:var(--accent)}.btn--tab[data-tab=claims]:hover{background:#0891b226;border-color:var(--accent);color:var(--accent)}.btn--tab[data-tab=claims].is-active{background:#0891b238;border-color:var(--accent);box-shadow:0 0 8px #0891b240;color:#fff}.inv-row--claims-complete{opacity:.6}.inv-row--claims-complete td{background:#22d46d0a}.inv-row--needs-collection td{background:#e08a1e0f}.inv-row--needs-collection td:first-child{box-shadow:inset 3px 0 0 var(--warning, #e08a1e)}.inv-claims-bar{background:var(--chip);border-radius:2px;height:4px;margin-top:3px;width:80px}.inv-claims-bar__fill{border-radius:2px;height:100%;transition:width .3s ease}.inv-claims-done{color:var(--primary);font-size:11px;font-weight:600}.inv-claims-spent{color:var(--warning, #e08a1e);font-size:11px;font-weight:700}.inv-claims-no-plan{color:var(--danger);font-size:11px}.btn--tab[data-tab=funding]{background:#a855f714;border-color:#a855f759;color:#c084fc}.btn--tab[data-tab=funding]:hover{background:#a855f726;border-color:#c084fc;color:#e9d5ff}.btn--tab[data-tab=funding].is-active{background:#a855f738;border-color:#c084fc;box-shadow:0 0 8px #a855f740;color:#fff}.patient-form__ndis-section{background:#0891b20d;border:1px solid rgba(8,145,178,.2);border-left:3px solid var(--accent);border-radius:6px;margin:8px 0 0;padding:10px 14px}.inv-close-notice{color:var(--muted-text);font-size:12px;margin:0 0 4px}.inv-close-txref-input{background:var(--input-bg);border:1px solid var(--border);border-radius:5px;box-sizing:border-box;color:var(--text);font-family:monospace;font-size:13px;letter-spacing:.5px;padding:8px 10px;width:100%}.inv-close-txref-input::placeholder{color:var(--muted-text);font-family:inherit;font-size:12px}.inv-close-txref-input:focus{border-color:var(--accent);outline:none;box-shadow:var(--shadow-focus)}.inv-txref-row{align-items:center;background:#2ea0430f;border:1px solid rgba(46,160,67,.2);border-radius:5px;display:flex;font-size:12px;gap:8px;margin:8px 14px 6px;padding:6px 12px}.inv-txref-label{color:var(--primary);font-weight:700;white-space:nowrap}.inv-txref-value{color:var(--text);font-family:monospace;letter-spacing:.4px;word-break:break-all}.inv-fu-dialog--fp{width:520px;max-height:85vh;overflow-y:auto}.inv-fu-legend{display:flex;align-items:center;gap:6px;margin:0 0 12px;padding:6px 10px;background:#ffffff08;border-radius:6px;border:1px solid var(--border)}.inv-fu-req-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--danger, #e53935);flex-shrink:0}.inv-fu-opt-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3a5070;flex-shrink:0}.inv-fu-label--req{color:var(--text)!important;font-weight:600}.inv-fu-req-star{color:var(--danger, #e53935);font-weight:700;margin-left:2px}.inv-fu-label--opt{color:#5a7090!important;font-weight:400}.inv-fu-opt-tag{display:inline-block;font-size:9px;font-weight:600;letter-spacing:.3px;color:#5a7090;background:#5a70901f;border:1px solid rgba(90,112,144,.25);border-radius:3px;padding:1px 5px;margin-left:5px;vertical-align:middle;text-transform:uppercase}.inv-fu-fixed-tag{display:inline-block;font-size:9px;font-weight:600;color:#4a8acc;background:#4a8acc1a;border:1px solid rgba(74,138,204,.25);border-radius:3px;padding:1px 5px;margin-left:5px;vertical-align:middle;text-transform:uppercase}.inv-close-txref-input--req{border-left:3px solid var(--accent)}.inv-close-txref-input--req:focus{border-color:var(--accent);border-left-color:var(--accent)}.inv-close-txref-input--opt{opacity:.75;border-left:3px solid #2a3a50}.inv-close-txref-input--opt:focus{opacity:1;border-color:var(--accent)}.inv-fu-select--req{border-left:3px solid var(--accent)}.inv-fu-patient-results{position:absolute;z-index:10001;background:var(--panel);border:1px solid var(--accent);border-radius:6px;box-shadow:0 8px 24px #00000080;max-height:260px;overflow-y:auto;width:100%}.inv-fu-patient-item{cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .1s}.inv-fu-patient-item:hover{background:#ffffff0f}.inv-fu-patient-sub{font-size:11px;color:var(--muted-text);font-family:monospace}.inv-fchips{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.inv-fchip{align-items:center;background:var(--surface-tint);border:1px solid var(--border);border-radius:999px;color:var(--muted-text);cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:600;gap:5px;padding:4px 10px;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.inv-fchip:hover{background:#ffffff12;color:var(--text)}.inv-fchip__icon{font-size:12px;line-height:1}.inv-fchip__count{background:#ffffff14;border-radius:999px;font-size:10px;font-weight:700;min-width:16px;padding:0 5px;text-align:center}.inv-fchip--active{background:#0891b22e;border-color:var(--accent);color:var(--accent)}.inv-fchip--active .inv-fchip__count{background:#0891b24d}.uninv-group>td{background:var(--surface-tint);border-top:1px solid var(--border);padding:7px 10px}.uninv-group__inner{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.uninv-group__name{color:var(--text);font-size:12.5px;font-weight:700}.uninv-group__sub{color:var(--muted-text);font-family:monospace;font-size:11px}.uninv-group__spacer{flex:1}.uninv-group__tag{border-radius:4px;font-size:10.5px;font-weight:700;padding:2px 7px;white-space:nowrap}.uninv-group__tag--ok{background:#2ea04326;color:var(--primary)}.uninv-group__tag--blocked{background:#dc262629;color:var(--danger)}.uninv-group__tag--merge{background:#0891b229;color:var(--accent)}.uninv-group__tag--warn{background:#f7b50029;color:var(--warning)}.uninv-group__age{border-radius:4px;font-size:10.5px;font-weight:800;padding:2px 7px;white-space:nowrap;letter-spacing:.2px}.uninv-group__age--m2{background:#dc26262e;color:var(--danger);border:1px solid rgba(220,38,38,.45)}.uninv-group__age--m1{background:#f7b50033;color:var(--warning);border:1px solid rgba(247,181,0,.45)}.uninv-group__age--w3,.uninv-group__age--w2{background:#f7b5001f;color:var(--warning);border:1px solid rgba(247,181,0,.3)}.uninv-group__age--w1{background:var(--chip);color:var(--muted-text)}.uninv-group--age-m2>td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.uninv-group--age-m1>td:first-child{box-shadow:inset 3px 0 0 var(--warning)}.uninv-group--age-w3>td:first-child,.uninv-group--age-w2>td:first-child{box-shadow:inset 3px 0 #f7b50073}.uninv-sortbar{display:flex;gap:6px;margin:4px 0 8px;flex-wrap:wrap}.uninv-sortbtn{background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--muted-text);cursor:pointer;font-size:11.5px;font-weight:600;padding:3px 11px}.uninv-sortbtn:hover{border-color:var(--interactive);color:var(--text)}.uninv-sortbtn.is-active{background:var(--interactive);border-color:var(--interactive);color:#fff}.uninv-row--ok>td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.uninv-row--blocked>td{background:#dc26260b;box-shadow:inset 3px 0 0 transparent;color:var(--muted-text);opacity:.62}.uninv-row--blocked>td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.uninv-row--blocked input[type=checkbox]{cursor:not-allowed}.inv-plan-row--spent>td{color:var(--muted-text)}.inv-plan-row--spent{background:#8080800f}.inv-plan-row--spent .inv-plan-id-btn,.inv-plan-row--spent .inv-status,.inv-plan-row--spent .btn--inv{opacity:.6}.inv-plan-row--spent:hover{background:#8080801f}.inv-plan-row--spent:hover>td{color:var(--text)}.inv-plan-row--spent:hover .inv-plan-id-btn,.inv-plan-row--spent:hover .inv-status,.inv-plan-row--spent:hover .btn--inv{opacity:1}@media(max-width:768px){.control-page--invoices .control-table{font-size:11px}.invoice-tabs{gap:4px}.btn--tab{font-size:11px;padding:5px 12px}.btn--inv{font-size:10px;padding:2px 6px}.inv-fchip{font-size:10.5px;padding:3px 8px}.uninv-group__inner{gap:6px}}.inv-settle-box{border:2px solid var(--warning, #e08a1e);border-radius:8px;background:#e08a1e12;padding:10px 12px;margin:10px 0 4px}.inv-settle-box__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px}.inv-settle-box__label{font-size:12px;font-weight:700;color:var(--warning, #e08a1e);letter-spacing:.2px}.inv-settle-box__due{font-size:11px;color:var(--muted-text);white-space:nowrap}.inv-settle-box__input{width:100%;padding:8px 10px;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:6px}.inv-settle-box__input:focus{outline:none;border-color:var(--warning, #e08a1e);box-shadow:0 0 0 3px #e08a1e38}.inv-settle-box__delta{margin-top:5px;font-size:12px;font-weight:700;min-height:16px}.inv-settle-box__delta.is-waived{color:var(--warning, #e08a1e)}.inv-settle-box__delta.is-over{color:#ff6b7a}.inv-settle-box__delta.is-exact{color:#22d46d}.inv-settle-box__hint{margin-top:5px;font-size:11px;color:var(--muted-text);line-height:1.5}.inv-aging{border-radius:6px;padding:8px 10px;margin:8px 0 2px;font-size:12px;font-weight:600;line-height:1.55}.inv-aging--info{background:#f6c4531a;color:#f6c453;border-left:3px solid #f6c453}.inv-aging--warn{background:#e08a1e21;color:#f0a340;border-left:3px solid #e08a1e}.inv-aging--danger{background:#ff6b7a21;color:#ff8f9c;border-left:3px solid #ff6b7a}.inv-adj-grid{display:flex;flex-direction:column;gap:2px}.inv-adj-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0 8px;border-bottom:1px solid var(--border);margin-bottom:8px}.inv-adj-label{font-size:12px;color:var(--muted-text)}.inv-adj-orig{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.inv-adj-eq{text-align:center;font-size:15px;font-weight:700;color:var(--muted-text);margin:4px 0 2px}.inv-adj-err{min-height:16px;margin-top:6px;font-size:12px;font-weight:700;color:var(--danger)}.inv-fu-ins-grid{display:flex;flex-direction:column;gap:4px;margin:10px 0 12px;padding:10px 12px;background:var(--card);border-radius:6px}.inv-fu-ins-row{display:flex;justify-content:space-between;gap:10px;font-size:12.5px}.inv-fu-ins-label{color:var(--muted-text)}.inv-fu-ins-val{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.inv-fu-ins-override{margin-top:10px}.inv-fu-ins-override-label{display:block;font-size:12px;font-weight:700;color:var(--warning, #e08a1e);margin-bottom:4px}.inv-fu-ins-amount-row{display:flex;align-items:center;gap:6px}.inv-fu-ins-currency{font-size:16px;font-weight:700;color:var(--muted-text);flex:none}.inv-close-txref-input--wide{width:100%}.btn--inv--ghost{background:transparent;border:1px solid var(--border)!important;color:var(--text)}.btn--inv--ghost:hover{background:var(--chip)}.btn--inv--teal{background:#0a8f6c}.btn--inv--violet{background:#5b4b8a}.btn--inv--amber{background:var(--warning, #e08a1e)}.btn--inv:disabled,.btn--inv[disabled]{opacity:.42;cursor:not-allowed;filter:saturate(.6)}.inv-ndis-edit{margin-left:6px;padding:0 5px;font-size:.7rem;line-height:1.5;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--muted-text);cursor:pointer}.inv-ndis-edit:hover{color:var(--text);border-color:var(--accent)}.inv-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem;font-weight:700;letter-spacing:-.2px;white-space:nowrap}.inv-id__bookings{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.68rem;color:var(--muted-text);margin-top:2px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.control-table th.inv-col--closed{width:104px}.control-table th.inv-col--funding{width:148px}.control-table th.inv-col--amount{width:132px}.control-table th.inv-col--recon{width:234px}.control-table th.inv-col--status{width:120px}.control-table th.inv-col--send{width:146px}.control-table th.inv-col--aging{width:150px}.control-table th.inv-col--act{width:116px}dialog.overlay-host{border:0;padding:0;margin:0;background:transparent;width:100vw;height:100vh;max-width:100vw;max-height:100vh;overflow:visible}@supports (height: 100dvh){dialog.overlay-host{height:100dvh;max-height:100dvh}}dialog.overlay-host::backdrop{background:#00000073}.bank-recon__bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.bank-recon__bar .btn--tab.is-active{opacity:1;border-style:solid;font-weight:700}.bank-recon__bar small{opacity:.65;font-weight:400}.bank-recon__cards{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.bank-recon__card{display:flex;flex-direction:column;min-width:110px;padding:8px 12px;border:1px solid var(--border, #e2e2e2);border-radius:8px;background:var(--surface, #fff)}.bank-recon__card b{font-size:1.05rem}.bank-recon__card span{font-size:.72rem;opacity:.7}.bank-recon tr.row--warn>td{background:#f59e0b1a}.bank-recon__why>td{padding-top:0;padding-bottom:6px;opacity:.72;font-size:.74rem;line-height:1.45;border-top:none}.bank-recon .num{text-align:right;font-variant-numeric:tabular-nums}.bank-recon .num.neg{color:#b91c1c}.bank-recon code{font-size:.8rem}.inv-advisory,.inv-advisory:popover-open{position:fixed;z-index:var(--z-toast);inset:auto 16px 16px auto;width:auto;max-width:340px;height:auto;margin:0;padding:var(--space-3) var(--space-4);overflow:visible;background:var(--panel);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:var(--font-family);font-size:var(--text-sm);line-height:var(--lh-base)}.inv-advisory__title{font-weight:var(--fw-semibold);color:var(--highlight);margin-bottom:var(--space-1)}.inv-advisory__close{margin-top:var(--space-2);padding:3px 12px;font-size:var(--text-xs);font-family:inherit;cursor:pointer;background:transparent;color:var(--muted-text);border:1px solid var(--border);border-radius:var(--radius-sm);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.inv-advisory__close:hover{color:var(--text);border-color:var(--warning);background:var(--surface-tint)}.inv-xref{margin-top:3px;font-size:.62rem;font-family:monospace;line-height:1.25;color:var(--muted-text);display:inline-block;cursor:help}.inv-xref--paid{color:var(--primary);background:#2ea0431f}.inv-section-row td{padding:10px 12px;font-size:.82rem;font-weight:700;letter-spacing:.02em;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.inv-section-row--paid td{color:var(--ok, #22c55e);background:color-mix(in srgb,var(--ok, #22c55e) 10%,transparent);border-left:3px solid var(--ok, #22c55e)}.inv-section-row--rest td{color:var(--muted-text);background:color-mix(in srgb,var(--text, #111) 5%,transparent)}.uninv-held:empty{display:none}.uninv-held{margin:6px 0 12px;padding:10px 12px;border-left:3px solid var(--muted-text, #8b93a7);background:var(--held-bg, rgba(139, 147, 167, .08));border-radius:4px}.uninv-held__title{margin:0 0 4px;font-size:.86rem;font-weight:700;color:var(--text)}.uninv-held__line{margin:2px 0;font-size:.76rem;color:var(--muted-text)}.uninv-held__rows{margin:6px 0 0;padding-left:18px;font-size:.75rem;color:var(--muted-text)}.uninv-held__rows li{margin:1px 0}.bh{padding:4px 2px 24px}.bh__lede{font-size:var(--text-xs);color:var(--muted-text);line-height:1.75;max-width:68ch;margin:0 0 16px}.bh__lede b{color:var(--text);font-weight:var(--fw-semibold)}.bh__basis{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--muted-text);background:var(--chip);border:1px solid var(--border);border-radius:var(--radius-pill);padding:5px 12px;margin-bottom:18px}.bh__basis--failed{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);display:block;border-radius:var(--radius-md);line-height:1.7;max-width:68ch}.bh__cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-bottom:26px}.bh-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px 13px 18px;overflow:hidden}.bh-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--muted-text);opacity:.5}.bh-card--good:before{background:var(--primary);opacity:1}.bh-card--bad:before{background:var(--danger);opacity:1}.bh-card__label{font-size:var(--text-xs);color:var(--muted-text);line-height:1.4;min-height:2.8em}.bh-card__value{font-size:1.45rem;font-weight:var(--fw-bold);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:2px}.bh-card__foot{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:9px}.bh-delta{display:inline-flex;align-items:baseline;gap:4px;font-size:.78rem;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;border-radius:var(--radius-pill);padding:2px 9px;color:var(--muted-text);background:color-mix(in srgb,var(--muted-text) 12%,transparent)}.bh-delta--good{color:var(--primary);background:color-mix(in srgb,var(--primary) 14%,transparent)}.bh-delta--bad{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.bh-delta--none{background:none;padding:2px 0;font-weight:var(--fw-normal);font-size:var(--text-xs)}.bh-card__dir{font-size:.68rem;color:var(--muted-text);white-space:nowrap;opacity:.85}.bh__section-title{font-size:.95rem;font-weight:var(--fw-semibold);color:var(--text);margin:0 0 4px}.bh__scroll{overflow-x:auto}.bh-table{width:100%;border-collapse:collapse;font-size:.82rem}.bh-table th{text-align:right;font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--muted-text);padding:8px 12px;border-bottom:1px solid var(--border);white-space:nowrap}.bh-table th:first-child,.bh-table td:first-child{text-align:left}.bh-table td{text-align:right;padding:9px 12px;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.bh-table tr:last-child td{border-bottom:none}.bh-table__month{font-weight:var(--fw-semibold);color:var(--text)}.bh-table__sessions{display:block;color:var(--muted-text);font-size:.72rem;margin-top:2px}.bh-table__done{color:var(--muted-text)}.bh-table__nil{color:var(--muted-text);opacity:.5}.bh__foot{font-size:var(--text-xs);color:var(--muted-text);line-height:1.8;margin-top:14px;max-width:68ch}.bh__foot b{color:var(--text);font-weight:var(--fw-semibold)}.bh__state{padding:22px 4px;color:var(--muted-text);font-size:.85rem}.bh__state--error{color:var(--danger)}@media(max-width:640px){.bh__cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}.bh-card{padding:12px 12px 11px 14px}.bh-card__value{font-size:1.2rem}.bh-card__label{min-height:0}.bh-card__dir{display:none}}.bh-chart{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px 12px;margin-bottom:18px}.bh-chart__legend{display:flex;flex-wrap:wrap;gap:16px;font-size:var(--text-xs);color:var(--muted-text);margin-bottom:14px}.bh-chart__key{display:inline-flex;align-items:center;gap:6px}.bh-chart__swatch{width:11px;height:11px;border-radius:2px;flex:none}.bh-chart__swatch--await{background:var(--warning)}.bh-chart__swatch--unpaid{background:var(--interactive)}.bh-chart__plot{display:grid;grid-template-columns:auto 1fr;gap:0 10px}.bh-chart__yaxis{display:flex;flex-direction:column-reverse;justify-content:space-between;font-size:.66rem;color:var(--muted-text);font-variant-numeric:tabular-nums;text-align:right;height:190px;padding-bottom:0}.bh-chart__yaxis span{line-height:1;transform:translateY(50%)}.bh-chart__area{position:relative;height:190px;border-bottom:1px solid var(--border)}.bh-chart__gridline{position:absolute;left:0;right:0;border-top:1px dashed color-mix(in srgb,var(--border) 70%,transparent)}.bh-chart__cols{position:absolute;inset:0;display:flex;align-items:flex-end;gap:4px}.bh-chart__col{flex:1 1 0;display:flex;align-items:flex-end;justify-content:center;gap:5px;height:100%}.bh-chart__bar{position:relative;flex:1 1 0;max-width:34px;min-height:2px;border-radius:3px 3px 0 0;transition:filter .12s ease}.bh-chart__bar:hover{filter:brightness(1.15)}.bh-chart__bar--await{background:var(--warning)}.bh-chart__bar--unpaid{background:var(--interactive)}.bh-chart__val{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:3px;font-size:.6rem;font-weight:var(--fw-semibold);color:var(--muted-text);font-variant-numeric:tabular-nums;white-space:nowrap}.bh-chart__xaxis{display:flex;gap:4px;margin-top:7px}.bh-chart__x{flex:1 1 0;text-align:center;font-size:.7rem;color:var(--muted-text);font-variant-numeric:tabular-nums}.bh-chart__empty{color:var(--muted-text);font-size:.82rem;padding:26px 0;text-align:center}@media(max-width:640px){.bh-chart{padding:12px 12px 10px}.bh-chart__area,.bh-chart__yaxis{height:150px}.bh-chart__val{font-size:.53rem}.bh-chart__x{font-size:.62rem}}.recon-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-items:start;margin-top:var(--space-3)}@media(max-width:1100px){.recon-split{grid-template-columns:1fr}}.recon-split__side{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-2);max-height:62vh;overflow:auto}.recon-split__side--owed{border-top:3px solid var(--warning)}.recon-split__side--arrived{border-top:3px solid var(--primary)}.recon-split__head{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--text-primary);position:sticky;top:0;background:var(--card-bg);padding:var(--space-1) 0;z-index:1}.recon-split__head small{font-weight:var(--fw-normal);color:var(--muted-text)}.recon-split__hint{margin:var(--space-2) 0 0;font-size:var(--text-xs)}.recon-split__focus{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-left:3px solid var(--accent-color);background:var(--chip);border-radius:var(--radius-sm);font-size:var(--text-sm)}.recon-split__focus button{margin-left:auto}.recon-row{cursor:pointer}.recon-row:hover>td{background:var(--chip)}.recon-row.is-selected>td{background:color-mix(in srgb,var(--accent-color) 18%,transparent);box-shadow:inset 2px 0 0 var(--accent-color)}.recon-score{display:inline-block;min-width:2.2em;text-align:center;padding:0 var(--space-1);margin-right:var(--space-1);border-radius:var(--radius-pill);background:var(--chip);font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.recon-split__bucket{margin-top:var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-bg)}.recon-split__bucket>summary{cursor:pointer;padding:var(--space-2);font-size:var(--text-xs);color:var(--muted-text);display:flex;gap:var(--space-2);align-items:baseline}.recon-split__bucket>summary b{color:var(--text-primary)}.recon-split__bucket[open]>summary{border-bottom:1px solid var(--border-color)}.recon-split__bucket table{font-size:var(--text-xs)}.inv-fu-patient-wrap{position:relative}.inv-fu-patient-results{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--panel);border:1px solid var(--border);border-radius:6px;z-index:10;max-height:220px;overflow-y:auto;box-shadow:0 6px 20px #00000080}.inv-fu-patient-item{display:flex;flex-direction:column;padding:7px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s}.inv-fu-patient-item:last-child{border-bottom:none}.inv-fu-patient-item:hover{background:var(--chip)}.inv-fu-patient-name{font-size:13px;color:var(--text);font-weight:600}.inv-fu-patient-sub{font-size:11px;color:var(--muted-text);margin-top:1px;font-family:monospace}.inv-fu-dialog--fp{width:520px;max-height:90vh;overflow-y:auto}.inv-fu-dialog--wide{width:700px;max-width:96vw;max-height:90vh;overflow-y:auto}.inv-fu-section-header{font-size:12px;color:var(--accent);margin-bottom:6px}.inv-fu-row{display:flex;gap:10px;margin-top:4px}.inv-fu-col{flex:1}.inv-fu-label--mt{margin-top:8px}.inv-close-txref-input--readonly{background:var(--surface-alt);color:var(--primary)}.inv-fu-hint{font-size:11px;color:var(--muted-text);margin-top:6px}.inv-fu-error{background:#ef44441a;color:var(--danger);border:1px solid rgba(239,68,68,.3);border-left:3px solid var(--danger);border-radius:6px;padding:9px 11px;margin:10px 0 0;font-size:12px;line-height:1.55;white-space:pre-line}.inv-fu-error[hidden]{display:none}.inv-fu-divider{border:none;border-top:1px solid var(--border);margin:10px 0}.inv-fu-fields--hidden{display:none}.inv-plan-id{font-size:11px;font-family:monospace}.inv-fu-travel-hint{color:var(--muted-text);font-size:12px;margin:6px 0 10px}.inv-fu-travel-table-wrap{overflow-x:auto}.inv-fu-travel-table{width:100%;border-collapse:collapse;font-size:12px}.inv-fu-travel-table thead tr{color:var(--highlight);border-bottom:1px solid var(--border)}.inv-fu-travel-table th{padding:4px 8px;text-align:left}.inv-fu-travel-table th.text-right{text-align:right}.inv-fu-travel-table th.text-center{text-align:center}.inv-fu-travel-table th.text-right-bold{text-align:right;font-weight:700}.inv-fu-travel-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.inv-fu-stat-label{color:var(--muted-text);font-size:12px}.inv-fu-stat-value{font-weight:700;color:var(--primary);font-size:13px}.inv-fu-travel-total{text-align:right}.inv-fu-grand-total{font-size:1.3rem;font-weight:800;color:var(--primary)}.inv-fu-pool-warn{font-size:11px;color:var(--warning);min-height:1em}.inv-fu-gap-note{font-size:11px;color:var(--muted-text)}.form-utility__overlay{position:fixed;inset:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9999}.form-utility__overlay.hidden{display:none}.form-utility__dialog{background:var(--panel-bg);color:var(--text);border-radius:10px;width:90%;max-width:480px;max-height:90dvh;display:flex;flex-direction:column;box-shadow:0 4px 16px #0009;padding:0;overflow:hidden}.form-utility__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0;border-bottom:1px solid var(--border)}.form-utility__title{font-weight:700;color:var(--highlight)}.form-utility__body{display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;padding:12px 16px}.form-utility__field label{font-weight:600;display:block;margin-bottom:4px}.form-utility__field input,.form-utility__field select,.form-utility__field textarea{width:100%;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:6px;padding:6px 8px}.form-utility__static{padding:6px 8px 6px 0;color:var(--text);opacity:.8}.form-utility__footer{display:flex;justify-content:flex-end;gap:12px;padding:10px 16px 12px;flex-shrink:0;border-top:1px solid var(--border)}.ctl-payment__toolbar{display:flex;justify-content:flex-start;gap:12px;margin-bottom:10px}.ctl-payment__btn{font-size:.85rem;font-weight:600}.ctl-payment__btn--add{background:linear-gradient(90deg,#007bff,#0056b3);color:#fff}.ctl-payment__btn--edit{background:linear-gradient(90deg,#1b7eff,#1976d2);color:#fff}.ctl-payment__btn--delete{background:linear-gradient(90deg,#b12525,#dc3545);color:#fff}.ctl-payment__btn:hover{filter:brightness(1.1)}.form-utility__close.ctl-payment__btn--close{background:none;color:var(--text);font-size:1.1rem;border:none;cursor:pointer;transition:color .2s}.form-utility__close.ctl-payment__btn--close:hover{color:var(--highlight)}.btn-reset{all:unset}.form-utility__close,.ctl-form__btn--close{all:unset;cursor:pointer;font-size:1.25rem;line-height:1;color:var(--text);font-weight:600;padding:4px 8px;border-radius:4px;transition:color .25s ease,background .25s ease}.form-utility__close:hover,.ctl-form__btn--close:hover{color:var(--highlight);background:var(--surface-tint)}.ctl-expense__form{display:flex;flex-direction:column;background:var(--surface-tint);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 16px #00000040;padding:1.5rem;margin:1rem 0 1.5rem;width:100%;max-width:620px;color:var(--text)}.ctl-expense__field{display:flex;flex-direction:column;margin-bottom:.9rem}.ctl-expense__field label{font-weight:600;margin-bottom:5px;color:var(--highlight)}.ctl-expense__field input,.ctl-expense__field select{padding:8px 10px;font-size:14px;border:1px solid var(--border);border-radius:4px;background:var(--input-bg);color:var(--text);transition:all .15s ease}.ctl-expense__field input:focus,.ctl-expense__field select:focus{outline:none;border-color:var(--interactive);box-shadow:var(--shadow-focus);background:var(--surface-alt)}.ctl-expense__btn--save{background:var(--primary);border:none;color:#fff;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;border-radius:5px;cursor:pointer;align-self:flex-start;transition:all .2s ease-in-out}.ctl-expense__btn--save:hover{filter:brightness(1.1);transform:translateY(-1px)}.ctl-expense__btn--add{background:var(--interactive);color:#fff;border:none;border-radius:4px;padding:6px 14px;font-weight:600;cursor:pointer;transition:background .2s}.ctl-expense__btn--add:hover{background:var(--interactive-hover)}.ctl-expense__btn--edit{background:var(--interactive);color:#fff;padding:4px 10px;border-radius:4px;border:none;cursor:pointer}.ctl-expense__btn--edit:hover{background:var(--interactive-hover)}.ctl-expense__btn--delete{background:var(--danger);color:#fff;padding:4px 10px;border-radius:4px;border:none;cursor:pointer}.ctl-expense__btn--delete:hover{filter:brightness(1.1)}.ctl-expense__form--modal{background:var(--panel);border-radius:10px;padding:1.5rem;width:90%;max-width:600px;box-shadow:0 0 25px #00000080}@media(max-width:768px){.ctl-expense__form{max-width:100%;padding:1rem;border-radius:0}.ctl-expense__field input,.ctl-expense__field select{font-size:16px;padding:10px 12px}.ctl-expense__btn--save{width:100%;text-align:center;font-size:1rem}}.ctl-expense__modal-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0009;z-index:1000;opacity:0;animation:fadeIn .2s forwards}.ctl-expense__modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);background:var(--panel);color:var(--text);border-radius:8px;border:1px solid var(--border);box-shadow:0 8px 24px #0006;padding:1.5rem 1.5rem 1rem;z-index:1001;min-width:360px;max-width:600px;max-height:90vh;overflow-y:auto;animation:popupZoom .25s forwards}.ctl-expense__modal.is-closing{animation:popupClose .2s forwards}.ctl-expense__modal-backdrop.is-fading{animation:fadeOut .2s forwards}.ctl-expense__modal-close{background:none;border:none;color:var(--muted-text);font-size:1.25rem;position:absolute;top:8px;right:10px;cursor:pointer;transition:color .2s}.ctl-expense__modal-close:hover{color:var(--text)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes popupZoom{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes popupClose{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}@media(max-width:600px){.ctl-expense__modal{width:90%;max-width:320px;font-size:.9rem;padding:.75rem 1rem}.ctl-expense__modal h2,.ctl-expense__modal h3{font-size:1rem}.ctl-expense__modal p,.ctl-expense__modal label,.ctl-expense__modal input,.ctl-expense__modal select,.ctl-expense__modal button{font-size:.9rem}.ctl-expense__modal-close{font-size:1rem;top:6px;right:8px}.ctl-expense__modal form{display:flex;flex-direction:column;gap:.5rem}.ctl-expense__modal input,.ctl-expense__modal select,.ctl-expense__modal textarea{padding:.4rem .6rem}}.ctl-expense__filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 8px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm, 4px);background:var(--surface-alt);color:var(--text);font-size:.8rem}.ctl-expense__filter-label{font-weight:600}.ctl-expense__filter-sel{padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm, 4px);background:var(--panel);color:var(--text);font-size:.8rem}.ctl-expense__filter-sel:disabled{opacity:.45;cursor:not-allowed}.ctl-expense__filter-quick{display:flex;gap:6px;flex-wrap:wrap}.ctl-expense__chip{cursor:pointer;padding:4px 12px;font-size:.76rem;border-radius:999px;border:1px solid var(--border);background:var(--panel);color:var(--muted-text);transition:background .15s ease,color .15s ease}.ctl-expense__chip:hover{color:var(--text)}.ctl-expense__chip.is-active{background:color-mix(in srgb,var(--accent, #3b82f6) 22%,transparent);border-color:color-mix(in srgb,var(--accent, #3b82f6) 60%,transparent);color:var(--text);font-weight:600}.ctl-expense__summary{margin-bottom:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md, 6px);background:var(--panel);color:var(--text)}.ctl-expense__summary-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.ctl-expense__summary-period{font-size:.86rem;font-weight:600}.ctl-expense__summary-count{font-size:.76rem;color:var(--muted-text)}.ctl-expense__summary-total{margin-left:auto;font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}.ctl-expense__summary-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ctl-expense__cat{padding:3px 9px;border-radius:var(--radius-sm, 4px);background:var(--surface-alt);font-size:.72rem;font-variant-numeric:tabular-nums}.ctl-expense__cat i{font-style:normal;color:var(--muted-text)}.ctl-expense__cat--more{color:var(--muted-text)}.ctl-expense__summary-notes{margin-top:8px;font-size:.72rem;line-height:1.6;color:var(--text)}.ctl-expense__empty{padding:22px;text-align:center;color:var(--muted-text);font-size:.82rem}@media(max-width:720px){.ctl-expense__summary-total{margin-left:0}}.ctl-expense__idrow,.ctl-expense__amtrow{display:flex;gap:6px;align-items:center}.ctl-expense__idrow input,.ctl-expense__amtrow input{flex:1 1 auto;min-width:0}.ctl-expense__idrow input[readonly]{opacity:.75;cursor:default;font-variant-numeric:tabular-nums}.ctl-expense__idbtn{flex:0 0 auto;cursor:pointer;padding:5px 10px;font-size:.74rem;border-radius:var(--radius-sm, 4px);border:1px solid var(--border);background:var(--panel);color:var(--muted-text)}.ctl-expense__idbtn:hover:not(:disabled){color:var(--text)}.ctl-expense__idbtn:disabled{opacity:.4;cursor:not-allowed}.ctl-expense__ccy{flex:0 0 108px}.ctl-expense__hint{display:block;margin-top:4px;font-size:.7rem;line-height:1.5;color:var(--muted-text)}.ctl-expense__fx[hidden]{display:none}.ctl-expense__fx{border-left:3px solid color-mix(in srgb,var(--accent, #3b82f6) 55%,transparent);padding-left:8px}.ctl-expense__paid{font-size:.68rem;color:var(--muted-text);line-height:1.4}.auth-dialog{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;border:none;background:#00000073;z-index:9999}.auth-dialog__form{position:relative;background:var(--panel);border-radius:10px;padding:24px 40px 28px;box-shadow:0 8px 32px #00000059;border:1px solid var(--border);max-width:400px;width:100%;box-sizing:border-box}.auth-dialog__lang-toggle{position:absolute;top:12px;right:12px;background:transparent;border:1px solid var(--border);color:var(--muted-text);border-radius:var(--radius-sm, 4px);padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.4px;cursor:pointer;transition:background var(--transition-fast, .15s ease),color var(--transition-fast, .15s ease),border-color var(--transition-fast, .15s ease)}.auth-dialog__lang-toggle:hover{background:var(--surface-tint);color:var(--text);border-color:var(--accent)}.auth-dialog__title{text-align:center;color:var(--highlight);font-weight:700;font-size:1.1rem;margin:0 0 16px}.auth-dialog__label{display:block;font-size:13px;font-weight:600;color:var(--text);margin:10px 0 4px}.auth-dialog__field{display:block;width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:13px;box-sizing:border-box;transition:border-color .2s ease,box-shadow .2s ease}.auth-dialog__field:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.auth-dialog__field--readonly{opacity:.65;pointer-events:none}.auth-dialog__password{position:relative;display:flex;align-items:center}.auth-dialog__toggle{position:absolute;right:8px;top:6px;background:none;border:none;color:var(--muted-text);cursor:pointer;font-size:1rem;line-height:1;transition:color .2s ease}.auth-dialog__toggle:hover{color:var(--text)}.auth-dialog__btn-login{width:100%;margin-top:18px;padding:12px 0;border:none;border-radius:8px;font-weight:600;font-size:14px;letter-spacing:.5px;cursor:pointer;color:#021516;background:linear-gradient(135deg,#00c6a2,#06d6a0);box-shadow:0 4px 12px #00d6a059;transition:background .25s ease,box-shadow .25s ease,transform .15s ease}.auth-dialog__btn-login:hover{background:linear-gradient(135deg,#0eeab0,#08ffc6);box-shadow:0 6px 16px #08ffc666;transform:translateY(-1px)}.auth-dialog__btn-login:active{transform:translateY(1px);box-shadow:0 2px 6px #00d6a040}.auth-dialog__btn-login:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-dialog__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-dialog__hint{margin-top:4px;margin-bottom:8px;font-size:12px;color:var(--highlight);text-align:left;font-weight:500;opacity:.9;display:block;transition:all .2s ease}.auth-dialog__hint--error{color:var(--danger)}.auth-dialog input:-webkit-autofill,.auth-dialog input:-webkit-autofill:hover,.auth-dialog input:-webkit-autofill:focus,.auth-dialog select:-webkit-autofill,.auth-dialog textarea:-webkit-autofill{-webkit-text-fill-color:var(--text)!important;-webkit-box-shadow:0 0 0px 1000px var(--input-bg) inset!important;box-shadow:0 0 0 1000px var(--input-bg) inset!important;background-color:var(--input-bg)!important;caret-color:var(--text)!important;transition:background-color 9999s ease-in-out 0s}.auth-dialog select,.auth-dialog #loginClinicId{background:var(--input-bg)!important;color:var(--text)!important;border:1px solid var(--border)!important;border-radius:6px;padding:8px 10px;font-size:13px;box-sizing:border-box}.auth-dialog select:focus{outline:none;border-color:var(--accent)!important;box-shadow:var(--shadow-focus)}.auth-dialog select option{background:var(--input-bg);color:var(--text)}.auth-dialog input[type=password],.auth-dialog input[type=text].auth-dialog__field--password,.auth-dialog input[type=text].auth-dialog__field--password-visible{color:var(--text)!important;background:var(--input-bg)!important;border:1px solid var(--border)!important}.auth-dialog input.error,.auth-dialog select.error,.auth-dialog .auth-dialog__field.error{border-color:var(--danger)!important;box-shadow:0 0 0 2px #dc262633}.auth-dialog__progress{position:absolute;top:0;left:0;right:0;height:3px;overflow:hidden;border-radius:10px 10px 0 0;opacity:0;transition:opacity .15s ease;pointer-events:none}.auth-dialog__progress--active{opacity:1}.auth-dialog__progress-bar{position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(135deg,#00c6a2,#06d6a0)}.auth-dialog__progress--active .auth-dialog__progress-bar{animation:auth-dialog-progress 1.1s ease-in-out infinite}@keyframes auth-dialog-progress{0%{left:-40%}50%{left:60%}to{left:100%}}.auth-dialog__btn-login:disabled{opacity:.7;cursor:wait;transform:none!important}.auth-dialog__version{position:absolute;bottom:8px;right:12px;max-width:calc(100% - 24px);font-size:12px;color:#999;text-align:right;line-height:1.4}@media(max-width:480px){.auth-dialog__form{padding:20px 20px 24px}.auth-dialog__version{left:0;right:0;bottom:6px;text-align:center}}.control-table--compact .control-table__cell{padding:4px 6px;font-size:13px;line-height:1.3}.control-table--compact .control-table__row--head .control-table__cell{font-size:13px;padding:5px 6px}.patient-enquiry__wrapper{background:var(--panel);border-radius:var(--radius-lg);padding:1.2rem}.patient-enquiry-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text)}.patient-enquiry__header{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));border-bottom:1px solid var(--border);padding:.8rem 1.2rem}.patient-enquiry__title{color:var(--highlight);font-weight:700;font-size:1.15rem}.patient-enquiry__header-area{position:sticky;top:0;z-index:10;background:var(--panel);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.8rem 1rem;border-radius:var(--radius-md) var(--radius-md) 0 0}.patient-enquiry__filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.patient-enquiry__filter-range{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.patient-enquiry__label{color:var(--highlight);font-weight:600}.patient-enquiry__input,.patient-enquiry__select,.patient-enquiry__filter-bar input[type=date],.patient-enquiry__filter-bar select{background:var(--input-bg);color:var(--text);font-weight:600;border:1px solid var(--border);border-radius:var(--radius-md);padding:.35rem .55rem}.patient-enquiry__btn--search{background:var(--interactive);color:#fff;border:none;border-radius:var(--radius-md);padding:6px 14px;cursor:pointer;font-weight:600}.patient-enquiry__btn--search:hover{opacity:.9;transform:translateY(-1px)}.patient-enquiry__tab-panel{background:var(--surface-tint);border:1px solid var(--border);border-radius:var(--radius-md);padding:.8rem 1rem;display:flex;flex-direction:column;gap:.6rem}.patient-enquiry__result-info{color:var(--muted-text);font-size:.9rem}.patient-enquiry__tabs{display:flex;flex-wrap:wrap;gap:.4rem}.patient-enquiry__tab-btn{background:var(--chip);border:1px solid var(--border);color:var(--highlight);border-radius:var(--radius-md);padding:5px 12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.patient-enquiry__tab-btn:hover{background:var(--surface-alt);color:var(--text)}.patient-enquiry__tab-btn.is-active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 8px #0891b266}.patient-enquiry__body-area{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 180px);padding:.75rem}.patient-enquiry__table{width:100%;min-width:900px;border-collapse:collapse;background:var(--card);color:var(--text);font-size:12px}.patient-enquiry__table-head{background:linear-gradient(90deg,var(--table-head-start),var(--table-head-end));color:var(--table-head-text)}.patient-enquiry__table th{padding:3px 8px;white-space:nowrap;font-size:11.5px;font-weight:600}.patient-enquiry__table td{padding:2px 8px;white-space:nowrap;line-height:1.35}.patient-enquiry__cell{border-bottom:1px solid var(--table-border-h)}.patient-enquiry__table tr:hover{background:var(--table-row-hover)}.patient-enquiry__export-btn{align-self:flex-start;background:var(--interactive);color:#fff;border:none;border-radius:var(--radius-md);padding:.5rem 1rem;font-weight:600;cursor:pointer;margin-top:1rem}.patient-enquiry__export-btn:hover{filter:brightness(1.15)}.patient-enquiry__pagination{display:flex;justify-content:center;margin-top:1rem;gap:.4rem}.patient-enquiry__pagination button{background:var(--chip);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px;cursor:pointer}.patient-enquiry__pagination button.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.patient-enquiry__btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);padding:.35rem .8rem;font-weight:600;transition:all .25s ease;box-shadow:0 2px 4px #0000004d;cursor:pointer}.patient-enquiry__btn:hover{filter:brightness(1.15);transform:translateY(-1px)}.patient-enquiry__btn:active{transform:scale(.97)}.patient-enquiry__btn--view{background:var(--accent);color:#fff}.patient-enquiry__btn--view:hover{filter:brightness(1.15);box-shadow:0 0 8px #61dafb66}.patient-enquiry__recent-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:.4rem 0;min-height:28px}.patient-enquiry__recent-label{color:var(--muted-text);font-size:var(--text-xs, .75rem);white-space:nowrap}.patient-enquiry__recent-chip{background:var(--chip);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-pill, 999px);padding:2px 10px;font-size:var(--text-xs, .75rem);cursor:pointer;transition:all var(--transition-fast)}.patient-enquiry__recent-chip:hover{background:var(--surface-alt);border-color:var(--accent);color:var(--accent)}.patient-enquiry__preview-card{background:var(--surface-tint);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem;margin:.5rem .75rem}.patient-enquiry__preview-name{font-size:1.15rem;font-weight:700;color:var(--highlight);margin-bottom:4px}.patient-enquiry__preview-meta{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted-text);font-size:var(--text-sm, .85rem);margin-bottom:6px}.patient-enquiry__preview-stats{display:flex;flex-wrap:wrap;gap:8px}.patient-enquiry__preview-stat{background:var(--chip);border:1px solid var(--border);border-radius:var(--radius-pill, 999px);padding:2px 10px;font-size:var(--text-xs, .75rem);color:var(--text)}.patient-enquiry__preview-stat--coach{border-color:var(--primary);color:var(--primary)}.patient-enquiry__preview-stat--vc{border-color:var(--accent);color:var(--accent)}.patient-enquiry__stat-pill{display:inline-block;border-radius:var(--radius-pill, 999px);padding:1px 8px;font-size:11px;font-weight:600;color:#fff;margin-left:4px;vertical-align:middle}.patient-enquiry__hint{color:var(--muted-text);font-size:var(--text-sm, .85rem);font-style:italic}.patient-enquiry__table-row:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--table-row-hover)}@media(max-width:768px){.patient-enquiry__filter-bar{flex-direction:column;align-items:flex-start}.patient-enquiry__body-area:after{content:"↔ 可左右滑動";display:block;text-align:center;font-size:11px;color:var(--muted-text);margin-top:.25rem}}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{background:var(--chip);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:12px;color:var(--muted-text)}.tag[data-color]{background-color:attr(data-color color);padding:2px 4px;border-radius:4px}.final-amount span{color:var(--danger);font-weight:700;font-size:1.2em}.checkout-info{margin-top:20px;border-top:1px solid var(--border);padding-top:10px;color:var(--text)}.checkout-info p{margin:5px 0}.booking-card{position:relative;overflow:visible;border-radius:12px;box-shadow:var(--shadow-md),inset 0 1px #ffffff17;transition:transform .15s ease,box-shadow .15s ease,border-left-color .15s ease;color:var(--text);font-family:Noto Sans TC,Segoe UI,system-ui,sans-serif;letter-spacing:.15px;line-height:1.6}.booking-card.created{background:var(--status-created-bg);border-left:4px solid var(--status-created-border)}.booking-card.created .status-chip{background:var(--status-created-chip-bg);color:var(--status-created-chip-text);border:none}.booking-card.confirmed{background:var(--status-confirmed-bg);border-left:4px solid var(--status-confirmed-border)}.booking-card.confirmed .status-chip{background:var(--status-confirmed-chip-bg);color:var(--status-confirmed-chip-text);border:none}.booking-card.checked-out{background:var(--status-checkedout-bg);border-left:4px solid var(--status-checkedout-border)}.booking-card.checked-out .status-chip{background:var(--status-checkedout-chip-bg);color:var(--status-checkedout-chip-text);border:none}.booking-card.cancelled{background:var(--status-cancelled-bg);border-left:4px solid var(--status-cancelled-border);opacity:.75}.booking-card.cancelled .status-chip{background:var(--status-cancelled-chip-bg);color:var(--status-cancelled-chip-text);border:none}.booking-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.booking-card:active{transform:scale(.985);box-shadow:0 2px 6px #0003}.booking-card.created:hover{box-shadow:0 4px 10px #f59e0b59}.booking-card.confirmed:hover{box-shadow:0 4px 10px #3b82f64d}.booking-card.checked-out:hover{box-shadow:0 4px 10px #22c55e59}.booking-card.cancelled:hover{box-shadow:0 4px 8px #6b728040}.color-display{display:inline-flex;align-items:center;gap:6px}.color-box{width:18px;height:18px;border-radius:4px;border:1px solid #fff3;background-color:attr(data-color color,inherit)!important}.booking-card .therapist-dot{position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:50%;border:2px solid #000;z-index:10;box-shadow:0 0 4px #0000008c;isolation:isolate}.dot-color-ff3b30{background-color:#ff3b30!important}.dot-color-34c759{background-color:#34c759!important}.dot-color-007aff{background-color:#007aff!important}.dot-color-ff00ff{background-color:#f0f!important}.dot-color-ffff00{background-color:#ff0!important}.dot-color-00ff00{background-color:#0f0!important}.dot-color-0000ff{background-color:#00f!important}.dot-color-ff9900{background-color:#f90!important}.dot-color-800080{background-color:purple!important}.dot-color-00ffff{background-color:#0ff!important}.therapist-dot:not([class*=dot-color-]){background-color:red!important}.booking-card__main{padding:8px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;align-items:start}.booking-card__subtitle,.booking-card__status-chip,.booking-card__block-tag,.booking-card__conflict-badge{grid-column:1 / -1;justify-self:start}.booking-card__title{color:var(--text);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-card__status-chip{display:inline-block;padding:2px 8px;border-radius:999px;border:none;font-size:10px;font-weight:600;margin-top:2px}.booking-card__status-chip--external{background:var(--chip);color:var(--warning);border:1px solid var(--warning);font-weight:700}.booking-card__back-label{color:var(--danger);font-weight:700;margin-left:2px}.booking-card__therapist-dot{position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:50%;border:2px solid #000;box-shadow:0 0 4px #0000008c}.booking-card--created{background:var(--status-created-bg);border-left:4px solid var(--status-created-border);color:var(--text)}.booking-card--created .booking-card__status-chip{background:var(--status-created-chip-bg);color:var(--status-created-chip-text)}.booking-card--confirmed{background:var(--status-confirmed-bg);border-left:4px solid var(--status-confirmed-border);color:var(--text)}.booking-card--confirmed .booking-card__status-chip{background:var(--status-confirmed-chip-bg);color:var(--status-confirmed-chip-text)}.booking-card--checked-out{background:var(--status-checkedout-bg);border-left:4px solid var(--status-checkedout-border);color:var(--text)}.booking-card--checked-out .booking-card__status-chip{background:var(--status-checkedout-chip-bg);color:var(--status-checkedout-chip-text)}.booking-card--cancelled{background:var(--status-cancelled-bg);border-left:4px solid var(--status-cancelled-border);color:var(--text);opacity:.75}.booking-card--cancelled .booking-card__status-chip{background:var(--status-cancelled-chip-bg);color:var(--status-cancelled-chip-text)}.booking-card--cancelled.booking-card--cancelled-fee,.booking-card.cancelled.booking-card--cancelled-fee{border-left:4px solid var(--status-cancelled-fee-border);box-shadow:inset 0 0 0 1.5px var(--status-cancelled-fee-ring);background:var(--status-cancelled-fee-bg);opacity:1}.booking-card--cancelled-fee .booking-card__status-chip{background:var(--status-cancelled-fee-bg);color:var(--status-cancelled-fee-border);border:1px solid var(--status-cancelled-fee-ring)}.booking-card--cancelled-fee:hover{box-shadow:inset 0 0 0 1.5px var(--status-cancelled-fee-ring),0 4px 10px var(--status-cancelled-fee-ring)}.booking-card--created:hover{box-shadow:0 4px 10px #f59e0b59}.booking-card--confirmed:hover{box-shadow:0 4px 10px #3b82f64d}.booking-card--checked-out:hover{box-shadow:0 4px 10px #22c55e59}.booking-card--cancelled:hover{box-shadow:0 4px 8px #6b728040}.booking-card--inv-open{border-bottom:4px solid #fbbf24}.booking-card--inv-closed{border-bottom:4px solid #10b981}.booking-card__inv-badge{grid-column:2;grid-row:1;margin-right:12px;white-space:nowrap;pointer-events:none;font-size:.68rem;padding:1px 5px;border-radius:3px;font-weight:600;letter-spacing:.01em}.booking-card--created .booking-card__inv-badge{color:#f59e0b;background:#f59e0b26}.booking-card--confirmed .booking-card__inv-badge{color:#60a5fa;background:#60a5fa26}.booking-card--checked-out .booking-card__inv-badge{color:#34d399;background:#34d39926}.booking-card--cancelled .booking-card__inv-badge{color:#9ca3af;background:#9ca3af1f}.booking-card__inv-badge--uninvoiced{color:#f59e0b!important;background:#f59e0b26!important}.booking-card--block-type{background:repeating-linear-gradient(45deg,#2d1b69,#2d1b69 6px,#3b1f8a 6px 12px)!important;border:2px solid #7c3aed!important;color:#e9d5ff!important}.booking-card--block-type .booking-card__title,.booking-card--block-type .booking-card__subtitle{color:#e9d5ff!important;text-shadow:0 1px 3px rgba(0,0,0,.6)}.booking-card--block-type .booking-card__status-chip{background:#5b21b6!important;color:#ddd6fe!important;border-color:#7c3aed!important}.booking-card--block-type:hover{border-color:#a855f7!important;box-shadow:0 4px 12px #8b5cf680!important}.booking-card__block-tag{display:inline-block;margin-top:3px;padding:1px 6px;border-radius:3px;background:#5b21b6;color:#ede9fe;font-size:10px;font-weight:700;letter-spacing:.03em;border:1px solid #7c3aed}.booking-card--patient-conflict{border-left:4px solid #ff4400!important;box-shadow:inset 0 0 0 1px #ff44004d!important}.booking-card__conflict-badge{display:inline-block;margin-top:3px;padding:1px 6px;border-radius:3px;background:#f403;color:#f74;font-size:10px;font-weight:700;letter-spacing:.03em;border:1px solid rgba(255,68,0,.45);animation:conflict-pulse 2s ease-in-out infinite}@keyframes conflict-pulse{0%,to{opacity:1}50%{opacity:.55}}.booking-card--report{background-image:radial-gradient(rgba(167,139,250,.28) 1px,transparent 1px);background-size:7px 7px;border:1px dashed #a78bfa!important}.booking-card.booking-card--ext-settled{background-color:var(--status-checkedout-bg);border-left:4px solid var(--status-checkedout-border)}.booking-card.booking-card--ext-settled .booking-card__inv-badge{color:var(--status-checkedout-chip-text);background:var(--status-checkedout-chip-bg)}.booking-list__report-divider{display:flex;align-items:center;gap:6px;margin:2px 0 4px;padding-top:6px;border-top:2px solid rgba(167,139,250,.55);color:#a78bfa;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.booking-card__inv-badge--external{color:#f87171!important;background:#f8717126!important}.day-cell{position:relative;min-width:100%;min-height:auto;padding:0;margin:0;box-sizing:border-box;border:1px solid var(--border, rgba(255,255,255,.08));border-radius:6px;background:transparent}.day-cell.today{border-color:var(--interactive);box-shadow:inset 0 0 3px #2563eb33}.day-cell.is-holiday{background-color:#ef44441a;border-color:#ef444473;border-left:3px solid rgba(239,68,68,.75)}.calendar-grid.compact .day-cell{border-radius:4px;border-width:1px}.day-content,.booking-list{display:flex;flex-direction:column;gap:3px;margin:0;padding:0}.booking-card{position:relative;display:block;width:100%;margin:0;box-sizing:border-box;border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;background-clip:padding-box;transition:transform .15s ease,box-shadow .15s ease,border-left-color .15s ease;padding:1px}.booking-main,.booking-card__main{gap:2px!important;line-height:1.3}.booking-card__color-strip{position:absolute;left:0;top:0;width:4px;height:100%;border-radius:8px 0 0 8px}.booking-card__main{position:relative;z-index:2}.booking-card__title,.booking-card__subtitle{color:var(--text)}.booking-card__title{font-weight:600;font-size:12px;line-height:1.2}.booking-card__subtitle{font-size:11px;opacity:.85}.booking-card__status-chip{display:inline-block;padding:2px 8px;border-radius:999px;border:none;font-size:10px;font-weight:600}.booking-card__therapist-dot{position:absolute;top:4px;right:4px;width:14px;height:14px;border:2px solid #000;border-radius:50%;box-shadow:0 0 4px #0000008c}.booking-card:hover{transform:translateY(-2px);box-shadow:0 3px 6px #00000040}html:not([data-compact=true]) .calendar-grid:not(.compact) .booking-card__title{white-space:normal;overflow-wrap:anywhere;line-height:1.3}.calendar-grid.compact .booking-card__title{font-size:11px;line-height:1.1;font-weight:500}.calendar-grid.compact .booking-card__cms,.calendar-grid.compact .booking-card__phone,.calendar-grid.compact .booking-card__subtitle,.calendar-grid.compact .booking-card__status-chip,.calendar-grid.compact .booking-card__block-tag,.calendar-grid.compact .booking-card__conflict-badge,.booking-card__block-inline{display:none}.calendar-grid.compact .booking-card__block-inline{display:inline;font-size:10px;opacity:.75;margin-left:2px}.calendar-grid.compact .booking-card{padding:1px 2px!important;border-radius:4px!important}.calendar-grid.compact .booking-card__main{padding:1px 4px!important;gap:0!important}.calendar-grid.compact .booking-card__title{line-height:1.05!important}.calendar-grid.compact .booking-card__therapist-dot{width:9px;height:9px;top:2px;right:2px;border-width:1px}.weekly-add-btn{all:unset;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#64b5f6,#42a5f5);color:#fff;font-size:1.25rem;font-weight:700;line-height:1;padding:.25rem .6rem;border-radius:6px;box-shadow:0 2px 4px #0000004d;transition:all .18s ease;-webkit-user-select:none;user-select:none}.weekly-add-btn:hover{background:linear-gradient(90deg,#42a5f5,#64b5f6);transform:translateY(-1px);box-shadow:0 3px 6px #64b5f659}.weekly-add-btn:active{transform:scale(.96);box-shadow:0 1px 2px #00000059}.weekly-add-btn--top{position:absolute;top:4px;right:6px;z-index:10}.collapsible-section{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin:16px 0;overflow:hidden;transition:all .3s ease}.collapsible-title{font-size:1rem;letter-spacing:.4px}.collapsible-toggle{font-size:1.2rem;transition:transform .2s ease}.collapsible-section.open .collapsible-toggle{transform:rotate(0)}.collapsible-body{max-height:0;overflow:hidden;transition:max-height .4s ease;padding:0 16px}.collapsible-section.open .collapsible-body{padding:16px;border-top:1px solid var(--border)}.collapsible-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:10px 14px;background:#161b28;border-bottom:1px solid var(--border);color:var(--text);font-weight:600;-webkit-user-select:none;user-select:none}.filters.collapsed,.filters-bar.collapsed{display:none!important}.toast-region{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast-region:popover-open{inset:auto 20px 20px auto;width:auto;height:auto;margin:0;border:none;padding:0;background:transparent;overflow:visible}.toast{background:#11192c;color:#dfe8f5;border:1px solid var(--border);padding:10px 12px;border-radius:10px;min-width:220px;box-shadow:0 10px 20px #0000004d;opacity:1;transition:opacity 1s ease-in-out}.toast.success{border-color:#204d2f;background:#0f2719}.toast.error{border-color:#5a2222;background:#241213}.toast.info{border-color:#1f3d5a;background:#0f1a27}.toast.warning{background-color:#ffc107;color:#000;border:1px solid #ffb300}.toast-station{background-color:#ffb703!important;color:#000!important;font-weight:600}.toast-local{background-color:#adb5bd!important;color:#000!important}.toast-prod{background-color:#06d6a0!important;color:#fff!important}#envSwitcher{position:fixed;top:10px;right:10px;background-color:#1c1c1c;color:#f1f1f1;border:1px solid #444;border-radius:8px;padding:10px 14px;font-size:13px;z-index:9999;box-shadow:0 2px 10px #0006;transition:all .3s ease}#envSwitcher.minimized{width:110px;height:22px;overflow:hidden;cursor:pointer;padding:4px 8px}#envSwitcher button{background-color:#ffb703;color:#000;border:none;border-radius:4px;padding:4px 10px;cursor:pointer;font-weight:600;transition:background-color .2s}#payment-ticker{display:none;align-items:center;width:100%;height:28px;background:linear-gradient(90deg,var(--ticker-bg-start) 0%,var(--ticker-bg-mid) 50%,var(--ticker-bg-start) 100%);border-bottom:1px solid var(--ticker-border);color:var(--ticker-text);font-size:var(--text-xs);font-weight:600;overflow:hidden;flex-shrink:0;letter-spacing:.03em;position:relative;z-index:var(--z-base)}#payment-ticker.payment-ticker--urgent{background:linear-gradient(90deg,var(--ticker-urgent-start) 0%,var(--ticker-urgent-mid) 50%,var(--ticker-urgent-start) 100%);border-bottom-color:var(--ticker-urgent-border);color:var(--ticker-urgent-text);animation:ticker-bg-pulse 2.5s ease-in-out infinite}@keyframes ticker-bg-pulse{0%,to{opacity:1}50%{opacity:.82}}.payment-ticker__inner{flex:1;overflow:hidden;height:100%;display:flex;align-items:center}.payment-ticker__text{display:inline-block;white-space:nowrap;padding-left:100%;animation:ticker-scroll 50s linear infinite}@keyframes ticker-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}.payment-ticker__close{flex-shrink:0;background:none;border:none;color:inherit;opacity:.55;cursor:pointer;padding:0 10px;font-size:var(--text-sm);line-height:28px;transition:opacity .15s}.payment-ticker__close:hover{opacity:1}.section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) 0 var(--space-3);border-bottom:1px solid var(--border);margin-bottom:var(--space-5)}.section-header__left{display:flex;flex-direction:column;gap:3px;min-width:0}.section-header__title-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.section-header__title{font-size:var(--text-xl);font-weight:var(--fw-bold);color:var(--text);line-height:var(--lh-tight);margin:0;padding-left:var(--space-2);border-left:3px solid var(--accent)}.section-header__count{display:inline-flex;align-items:center;background:var(--chip);color:var(--accent);font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:3px 10px;border-radius:var(--radius-pill);border:1px solid var(--border);letter-spacing:.2px;white-space:nowrap}.section-header__count--warning{color:var(--warning);border-color:var(--warning)}.section-header__count--danger{color:var(--danger);border-color:var(--danger)}.section-header__subtitle{font-size:var(--text-sm);color:var(--muted-text);line-height:var(--lh-base);margin:0;padding-left:calc(var(--space-2) + 3px)}.section-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;padding-top:2px}@media(max-width:640px){.section-header{flex-direction:column;gap:var(--space-2)}.section-header__actions{width:100%}.section-header__actions>*{flex:1}}.filter-bar{position:sticky;top:0;z-index:var(--z-dropdown, 100);background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);padding:var(--space-2) var(--space-4)}.filter-bar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-height:40px}.filter-bar__group{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.filter-bar__label{font-size:var(--text-xs);color:var(--muted-text);font-weight:var(--fw-semibold);white-space:nowrap;letter-spacing:.5px;text-transform:uppercase}.filter-bar__input,.filter-bar__select{height:32px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);padding:0 var(--space-2);line-height:32px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-width:120px}.filter-bar__select{appearance:none;padding-right:var(--space-4);background-image:url("data:image/svg+xml,%3Csvg fill='%23888' viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M70 100L15 40h110z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:9px;cursor:pointer}.filter-bar__input:focus,.filter-bar__select:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.filter-bar__input--date{min-width:130px;cursor:pointer}.filter-bar__divider{width:1px;height:20px;background:var(--border);flex-shrink:0}.filter-bar__spacer{flex:1;min-width:var(--space-2)}.filter-bar__count-badge{display:inline-flex;align-items:center;gap:4px;background:var(--chip);color:var(--muted-text);font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--border);white-space:nowrap}.filter-bar__count-badge strong{color:var(--highlight);font-weight:var(--fw-bold)}.filter-bar__action-btn{height:32px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--fw-semibold);cursor:pointer;border:none;transition:background var(--transition-fast),transform var(--transition-fast);white-space:nowrap;letter-spacing:.2px}.filter-bar__action-btn--primary{background:var(--interactive);color:#fff}.filter-bar__action-btn--primary:hover{background:var(--interactive-hover);transform:translateY(-1px)}.filter-bar__action-btn--secondary{background:var(--chip);color:var(--text);border:1px solid var(--border)}.filter-bar__action-btn--secondary:hover{background:var(--surface-alt)}.filter-bar__action-btn--warning{background:var(--warning);color:#111}.filter-bar__action-btn--warning:hover{filter:brightness(1.1);transform:translateY(-1px)}.filter-bar__action-btn--danger{background:var(--danger);color:#fff}.filter-bar__action-btn--danger:hover{filter:brightness(1.1);transform:translateY(-1px)}.filter-bar__select-all{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--muted-text);cursor:pointer;white-space:nowrap}.filter-bar__select-all input[type=checkbox]{width:14px;height:14px;accent-color:var(--interactive);cursor:pointer}@media(max-width:768px){.filter-bar{padding:var(--space-2)}.filter-bar__inner{gap:var(--space-2)}.filter-bar__group{flex:1 1 auto;flex-wrap:wrap}.filter-bar__input,.filter-bar__select{flex:1;min-width:100px}.filter-bar__divider{display:none}.filter-bar__action-btn{flex:1 1 auto;height:36px}}.checkin-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4);max-width:460px}.checkin-panel__title{font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--highlight);margin:0 0 var(--space-3);padding-left:var(--space-2);border-left:3px solid var(--accent);line-height:var(--lh-tight)}.checkin-panel__info{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-3);padding-left:calc(var(--space-2) + 3px)}.checkin-panel__info-line{font-size:var(--text-xs);color:var(--muted-text);line-height:var(--lh-base)}.checkin-panel__info-line strong{color:var(--text);font-weight:var(--fw-medium)}.checkin-panel__form{display:flex;flex-direction:column;gap:var(--space-3)}.checkin-panel__field{display:flex;flex-direction:column;gap:var(--space-1)}.checkin-panel__field-label{font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--muted-text);letter-spacing:.5px;text-transform:uppercase}.checkin-panel__staff-select{width:100%;height:40px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--interactive);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--fw-semibold);padding:0 var(--space-2);appearance:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.checkin-panel__staff-select:focus{outline:none;border-left-color:var(--accent);box-shadow:var(--shadow-focus)}.checkin-panel__pin-input{width:100%;height:40px;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);font-family:Consolas,Courier New,monospace;font-size:var(--text-lg);font-weight:var(--fw-bold);letter-spacing:.35em;text-align:center;padding:0 var(--space-2);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.checkin-panel__pin-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.checkin-panel__actions{display:flex;gap:var(--space-2);margin-top:var(--space-1)}.checkin-panel__btn{flex:1;height:38px;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--fw-bold);cursor:pointer;border:none;transition:background var(--transition-fast),transform var(--transition-fast);letter-spacing:.3px}.checkin-panel__btn--in{background:var(--primary);color:#fff}.checkin-panel__btn--in:hover{background:var(--primary-dark);transform:translateY(-1px)}.checkin-panel__btn--out{background:var(--chip);color:var(--warning);border:1px solid var(--border)}.checkin-panel__btn--out:hover{background:var(--surface-alt);border-color:var(--warning)}.checkin-panel__divider{border:none;border-top:1px solid var(--border);margin:var(--space-4) 0 var(--space-3)}.checkin-panel__status-row{background:var(--surface-tint);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.checkin-panel__status-label{font-size:var(--text-xs);font-weight:var(--fw-semibold);color:var(--muted-text);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-1)}.checkin-panel__staff-chips{display:flex;flex-wrap:wrap;gap:var(--space-1);min-height:22px;align-items:center}.checkin-panel__staff-chip{display:inline-flex;align-items:center;gap:4px;background:var(--row-coach-bg);color:var(--row-coach-text);font-size:var(--text-xs);font-weight:var(--fw-semibold);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--primary)}.checkin-panel__staff-chip:before{content:"●";font-size:7px;color:var(--primary)}.checkin-panel__staff-empty{font-size:var(--text-xs);color:var(--muted-text);font-style:italic}.checkin-panel__info-line--ok{color:var(--accent);font-weight:var(--fw-medium)}.checkin-panel__info-line--warn{color:var(--danger);font-weight:var(--fw-medium)}.announcement-banner{display:flex;align-items:flex-start;gap:8px;padding:8px 14px;background:#60a5fa14;border-bottom:1px solid rgba(96,165,250,.25);border-left:3px solid #60a5fa;font-size:12px;color:#93c5fd;max-height:120px;opacity:1;overflow:hidden;transition:max-height .3s ease,opacity .3s ease}.announcement-banner__icon{flex-shrink:0;font-size:14px;line-height:1.4}.announcement-banner__text{flex:1;line-height:1.5}.announcement-banner__close{flex-shrink:0;background:none;border:none;color:#60a5fa;cursor:pointer;font-size:13px;padding:0 2px;opacity:.6;transition:opacity .15s;line-height:1.4}.announcement-banner__close:hover{opacity:1}.range-load-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;margin-bottom:12px;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;font-size:14px;color:#856404}.range-load-banner__btn{padding:6px 14px;background:#ffc107;color:#000;border:none;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap;flex-shrink:0}.range-load-banner__btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:768px){.grid{grid-template-columns:repeat(2,1fr)}.filters{flex-direction:column;gap:8px}.filter-group{min-width:120px}.top-actions{gap:6px}.form-grid{grid-template-columns:1fr}.therapy-checkboxes{max-height:none}.calendar-grid{gap:5px;max-width:100%}.day-cell{min-width:100%;min-height:auto}.day-cell.is-holiday{background-color:#ef44441f}.booking-card .therapist-dot{width:12px;height:12px;top:2px;right:2px}.editable-input,.editable-select{font-size:12px}}@media(min-width:769px)and (max-width:1100px){.grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:769px){.calendar-grid{max-width:95vw}}@media(max-width:860px){.grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:no-preference){.booking-card,.filter-column,.btn,.leave-pill-mini{transition:all .25s ease-in-out}}@media(max-width:1024px){.app-header{gap:8px;padding:8px 12px}.app-header__title{font-size:.95rem}.app-header__actions{flex-wrap:wrap;justify-content:center;gap:4px}}@media(max-width:640px){.app-header{flex-direction:column;align-items:flex-start}.app-header__actions{width:100%;display:flex;flex-wrap:wrap;justify-content:space-evenly}.app-header__btn{flex:1 1 46%;padding:6px;text-align:center;font-size:.88rem}.app-header__brand{margin-bottom:4px}.app-header__user{width:100%;justify-content:space-between}}@media(max-width:390px){.app-header{padding:8px var(--sal, 0px) 8px calc(8px + var(--sal, 0px));padding-top:calc(8px + var(--sat, 0px))}.app-header__actions{grid-template-columns:1fr!important;gap:6px}.app-header__section{grid-column:span 1!important}.app-header__btn{flex:1 1 100%;min-height:44px;font-size:.95rem}.top-actions.app-header__actions{display:flex;flex-direction:column}.top-actions.app-header__actions{grid-template-columns:1fr!important}}.app-header{padding-top:max(10px,calc(10px + var(--sat, 0px)))}
