:root{--bg:#f5f8fc;--surface:#fff;--surface-muted:#f4f7fb;--surface-strong:#eaf0f8;--border:#e4e7ec;--border-soft:#eef2f6;--text:#101828;--text-muted:#667085;--text-soft:#98a2b3;--sidebar:#062a54;--sidebar-hover:#0d3a78;--sidebar-border:#ffffff14;--primary:#155eef;--primary-strong:#1d4ed8;--green:#13864c;--amber:#b56b00;--red:#c2352a;--blue:#105bd8;--purple:#4338ca;--orange:#cf5b13;--shadow:0 18px 42px #1e395e1a;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#0f172a;--surface:#111c2f;--surface-muted:#17243a;--surface-strong:#1f2f49;--border:#283852;--border-soft:#22324a;--text:#e8eef8;--text-muted:#a8b4c7;--text-soft:#75849b;--sidebar:#071d38;--sidebar-hover:#0c315f;--sidebar-border:#ffffff1a;--shadow:0 18px 42px #0003}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);margin:0}.login-page{background:linear-gradient(150deg, #fffffff5 0%, #f5f8fcfa 60%, #e8effaf0 100%), radial-gradient(circle at 0 0, #155eef0f, transparent 26%), var(--bg);grid-template-columns:minmax(260px,380px) minmax(420px,520px);justify-content:center;align-items:center;gap:48px;min-height:100vh;padding:44px 56px;display:grid;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";pointer-events:none;position:absolute}.login-page:before{opacity:.3;background-image:radial-gradient(circle,#155eef29 1.2px,#0000 1.2px);background-size:18px 18px;width:220px;height:200px;top:0;left:0}.login-page:after{opacity:.48;background:linear-gradient(112deg,#0000 0 28%,#ffffff6b 28% 29%,#0000 29%),linear-gradient(154deg,#0000 0 42%,#ffffff75 42% 43%,#0000 43%);border:1px solid #ffffff57;border-radius:18px;width:500px;height:300px;bottom:-100px;left:-120px;transform:rotate(-9deg)}.login-hero-panel,.login-panel{z-index:1;position:relative}.login-hero-panel{align-content:center;min-height:420px;padding-left:0;display:grid}.login-panel{background:var(--surface);border:1px solid #d6deebc7;border-radius:8px;justify-self:stretch;gap:24px;width:100%;max-width:520px;padding:36px 40px 40px;display:grid;box-shadow:0 18px 42px #1e395e1a}.login-card-header{justify-content:center;display:flex}.login-card-divider{background:#d9e1ec;width:100%;height:1px}.login-brand{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:14px;display:grid}.login-brand-hero{grid-template-columns:66px minmax(0,1fr)}.login-brand strong,.login-brand span{display:block}.login-brand strong{color:#071f49;font-size:23px;font-weight:820;line-height:1.1}.login-brand span{color:#465a7b;margin-top:4px;font-size:15px}.login-mark{color:#fff;background:linear-gradient(145deg,#082a5b 0%,#071f49 100%);border-radius:8px;justify-content:center;align-items:center;width:56px;height:56px;display:inline-flex;box-shadow:0 12px 26px #082a5b2e}.login-brand-hero .login-mark{box-shadow:none;color:#071f49;background:0 0;width:66px;height:66px}.login-brand-hero strong{font-size:26px}.login-brand-hero span{font-size:16px}.login-form{gap:16px;display:grid}.login-form h1,.login-form p{margin:0}.login-form h1{color:#071f49;font-size:30px;line-height:1.12}.login-form p{color:#52627c;margin-top:6px;font-size:15px;line-height:1.38}.login-form label{gap:8px;display:grid}.login-form label span{color:#52627c;font-size:14px;font-weight:720}.login-form input{color:#111827;background:#fff;border:1px solid #cfd8e6;border-radius:8px;outline:none;width:100%;min-height:48px;padding:0 14px;font-size:15px}.login-form input:focus{border-color:#8db7ff;box-shadow:0 0 0 3px #155eef1f}.login-input-wrap{color:#667895;border:1px solid #cfd8e6;border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;min-height:48px;padding:0 14px;display:grid}.login-input-wrap:focus-within{border-color:#8db7ff;box-shadow:0 0 0 3px #155eef1f}.login-input-wrap input{box-shadow:none;border:0;min-height:46px;padding:0 10px}.login-input-wrap input:focus{box-shadow:none}.login-input-action{color:#667895;cursor:pointer;background:0 0;justify-content:center;align-items:center;width:34px;height:34px;padding:0;display:inline-flex}.login-input-action:hover{color:var(--primary)}.login-form-options{justify-content:space-between;align-items:center;gap:16px;display:flex}.remember-me{align-items:center;gap:10px;display:inline-flex}.remember-me input{accent-color:var(--primary);width:18px;height:18px;min-height:18px}.remember-me span{color:#52627c;font-size:14px;font-weight:500}.login-error{color:#c51616;background:#fff1f0;border:1px solid #ffcfca;border-radius:8px;align-items:center;gap:12px;margin:0;padding:12px 14px;font-size:14px;line-height:1.35;display:flex}.login-feedback{color:#067647;background:#effdf5;border:1px solid #b7efce;border-radius:8px;align-items:center;gap:12px;margin:0;padding:12px 14px;font-size:14px;line-height:1.35;display:flex}.login-info-box{color:#52627c;background:#f3f8ff;border:1px solid #acd0ff;border-radius:8px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:16px;margin:0;padding:14px 16px;line-height:1.48;display:grid}.login-info-box svg{color:var(--primary)}:root[data-theme=dark] .login-error{color:#fecaca;background:#7f1d1d47;border-color:#f8717157}:root[data-theme=dark] .login-feedback{color:#a7f3d0;background:#065f463d;border-color:#34d39952}.login-submit{width:100%;min-height:48px;margin-top:4px;font-size:15px}.forgot-password-button,.back-login-button,.show-password-button{justify-self:start}.back-login-button,.show-password-button{align-items:center;gap:6px;display:inline-flex}.back-login-button{margin-bottom:14px;font-size:15px}.modal-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:120;background:#0f172a6b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-dialog{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;gap:20px;width:min(100%,440px);max-width:440px;margin:0;padding:20px;display:grid;position:static;inset:auto;box-shadow:0 24px 70px #0000003d}.confirm-dialog h2,.confirm-dialog p{margin:0}.confirm-dialog h2{color:var(--text);font-size:18px;line-height:1.2}.confirm-dialog p{color:var(--text-muted);margin-top:8px;font-size:14px;line-height:1.45}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.danger-button{background:var(--red);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:14px;font-weight:700;display:inline-flex}.danger-button:hover{background:#a92920}.daily-app{grid-template-columns:264px minmax(0,1fr);min-width:0;height:100vh;display:grid}.daily-app.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr)}.daily-shell{grid-auto-rows:max-content;gap:20px;min-width:0;height:100vh;padding:0 24px 18px;display:grid;overflow:auto}.daily-topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;justify-content:space-between;align-items:center;gap:12px;min-width:0;min-height:60px;margin:0 -24px;padding:0 24px;display:flex;position:sticky;top:0}.breadcrumb{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.breadcrumb strong{color:var(--text)}.brand-compact{grid-template-columns:42px minmax(0,1fr) 38px;align-items:center;gap:10px;min-width:0;display:grid}.brand-compact strong,.brand-compact span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.brand-compact span{color:#a8bdd8;font-size:12px;line-height:1.2}.brand-compact strong{letter-spacing:0;font-size:16px;font-weight:760;line-height:1.15}.source-dot{background:#42c484;border-radius:999px;width:10px;height:10px;display:inline-block}.sidebar-collapsed .brand-compact{grid-template-columns:42px;grid-auto-rows:42px;justify-items:center}.sidebar-collapsed .brand-compact .icon-button{grid-column:1;width:42px;height:42px;display:inline-flex}.sidebar-collapsed .brand-compact>div:not(.brand-mark),.sidebar-collapsed .brand-copy,.sidebar-collapsed .nav-item span,.sidebar-collapsed .nav-section-title,.sidebar-collapsed .source-panel div{display:none}.sidebar-collapsed .nav-item,.sidebar-collapsed .source-panel{justify-content:center;width:100%}.sidebar-collapsed .sidebar{align-items:center;padding-left:8px;padding-right:8px}.sidebar-collapsed .brand-compact,.sidebar-collapsed .side-nav,.sidebar-collapsed .nav-section{width:100%}.sidebar-collapsed .side-nav{padding-right:0;overflow-x:hidden}.sidebar-collapsed .nav-item{padding:0;position:relative}.sidebar-collapsed .nav-item:after{display:none}.sidebar-floating-tooltip{color:#fff;pointer-events:none;white-space:nowrap;z-index:80;background:#101828;border:1px solid #ffffff1a;border-radius:7px;padding:8px 10px;font-size:12px;font-weight:560;line-height:1;position:fixed;left:82px;transform:translateY(-50%);box-shadow:0 8px 24px #0000002e}.module-empty{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);text-align:center;border-radius:8px;place-items:center;gap:8px;min-height:300px;padding:24px;display:grid}.module-empty strong{color:var(--text);font-size:20px}.people-module{grid-template-rows:auto minmax(0,1fr);gap:18px;min-height:0;display:grid}.clients-f1-module{grid-template-rows:auto auto minmax(0,1fr);gap:18px;min-height:0;display:grid}.complexes-module{grid-template-rows:auto auto auto minmax(0,1fr);gap:16px;min-height:0;display:grid}.people-toolbar.clients-f1-toolbar{grid-template-columns:minmax(420px,1fr) max-content auto 48px}.people-toolbar.complexes-toolbar{grid-template-columns:minmax(180px,.7fr) minmax(280px,1fr) max-content 48px}.people-toolbar.scoped-complexes-toolbar{grid-template-columns:minmax(320px,1fr) max-content 48px}.people-toolbar.courts-toolbar{grid-template-columns:minmax(180px,.7fr) minmax(280px,1fr) max-content 48px}.people-toolbar.scoped-courts-toolbar{grid-template-columns:minmax(420px,1fr) max-content 48px}.people-toolbar.security-toolbar{grid-template-columns:minmax(360px,1.5fr) minmax(180px,.75fr) minmax(260px,1fr) max-content 48px;column-gap:18px}.people-toolbar.scoped-security-toolbar{grid-template-columns:minmax(220px,.8fr) minmax(300px,1fr) max-content 48px}.security-toolbar .security-client-filter{min-width:0}.security-toolbar .security-text-filter{max-width:none}.form-modal-backdrop{align-content:center}.wide-form-modal{width:min(920px,100vw - 48px);max-width:920px;max-height:min(86vh,760px)}.clients-f1-error{margin:0}.screen-loader{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:12px;justify-content:center;align-items:center;min-height:280px;padding:24px;display:flex;box-shadow:0 1px 2px #1018280a}.loading-container{min-width:0;position:relative}.reservations-page-loading-container{gap:18px;display:grid}.reservations-controls-row{grid-template-columns:minmax(420px,1fr) max-content;align-items:stretch;gap:14px;display:grid}.loading-overlay{color:var(--text-muted);z-index:8;background:#ffffffb8;border-radius:12px;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}:root[data-theme=dark] .loading-overlay{background:#0f172ab8}.clients-f1-form-error{margin:0 16px 14px}.people-toolbar{background:var(--surface);border:1px solid var(--border);box-sizing:border-box;border-radius:12px;grid-template-columns:minmax(150px,.5fr) minmax(240px,1fr) minmax(230px,auto) auto auto;align-items:end;gap:12px;width:100%;min-width:0;max-width:100%;padding:16px;display:grid;box-shadow:0 1px 2px #1018280a}.people-toolbar label{gap:5px;min-width:0;display:grid}.people-toolbar label span{color:var(--text-muted);font-size:12px;font-weight:620}.people-toolbar input,.people-toolbar select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-width:0;min-height:40px;padding:0 10px}.person-switches{flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;display:flex}.person-switches label{background:var(--surface-muted);border:1px solid var(--border-soft);color:var(--text-muted);border-radius:8px;align-items:center;gap:6px;min-height:30px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.person-switches input{width:14px;height:14px;min-height:0}.person-switches .toolbar-switch{gap:8px;padding:0 12px 0 8px;position:relative}.person-switches .toolbar-switch input{opacity:0;width:1px;height:1px;min-height:0;padding:0;position:absolute}.person-switches .toolbar-switch .switch-control{width:32px;height:18px}.person-switches .toolbar-switch .switch-control:after{width:14px;height:14px}.person-switches .toolbar-switch input:checked+.switch-control{background:var(--primary);border-color:var(--primary)}.person-switches .toolbar-switch input:checked+.switch-control:after{transform:translate(14px)}.person-switches .toolbar-switch input:focus-visible+.switch-control{box-shadow:0 0 0 3px #155eef3d}.people-content{grid-template-columns:minmax(0,1fr) 320px;gap:10px;min-height:0;display:grid}.complexes-content{grid-template-columns:minmax(0,1fr) 340px;gap:12px;min-height:0;display:grid}.people-table-wrap,.person-detail{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;overflow:hidden;box-shadow:0 1px 2px #1018280a,0 1px 3px #10182808}.people-table-wrap{overflow:auto}.people-table{border-collapse:collapse;width:100%;min-width:1040px}.complexes-table{table-layout:fixed;min-width:0}.complexes-table th:first-child,.complexes-table td:first-child{width:46%}.complexes-table th:nth-child(2),.complexes-table td:nth-child(2){width:26%}.complexes-table th:nth-child(3),.complexes-table td:nth-child(3){width:18%}.complexes-table th:nth-child(4),.complexes-table td:nth-child(4){width:10%}.courts-table{table-layout:fixed;min-width:0}.courts-table th:first-child,.courts-table td:first-child{width:46%}.courts-table th:nth-child(2),.courts-table td:nth-child(2){width:28%}.courts-table th:nth-child(3),.courts-table td:nth-child(3){width:16%}.courts-table th:nth-child(4),.courts-table td:nth-child(4){width:10%}.roles-table,.functions-table{table-layout:fixed;min-width:0}.roles-table th:first-child,.roles-table td:first-child{width:22%}.roles-table th:nth-child(2),.roles-table td:nth-child(2){width:46%}.roles-table th:nth-child(3),.roles-table td:nth-child(3){width:11%}.roles-table th:nth-child(4),.roles-table td:nth-child(4){width:15%}.roles-table th:nth-child(5),.roles-table td:nth-child(5){width:6%}.functions-table th:first-child,.functions-table td:first-child{width:24%}.functions-table th:nth-child(2),.functions-table td:nth-child(2){width:38%}.functions-table th:nth-child(3),.functions-table td:nth-child(3){width:20%}.functions-table th:nth-child(4),.functions-table td:nth-child(4){width:12%}.functions-table th:nth-child(5),.functions-table td:nth-child(5){width:6%}.people-table th{background:var(--surface-muted);color:var(--text-muted);text-align:left;z-index:1;height:44px;font-size:12px;font-weight:650;position:sticky;top:0}.people-table th,.people-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:10px 12px}.people-table tbody tr{cursor:default}.people-table tbody tr:hover,.people-table tbody tr.selected{background:color-mix(in srgb, var(--primary) 7%, transparent)}.people-table td{color:var(--text);font-size:13px}.people-table td strong,.people-table td span,.people-table td small{text-overflow:ellipsis;white-space:nowrap;max-width:260px;display:block;overflow:hidden}.people-table td span,.people-table td small{color:var(--text-muted);margin-top:2px;font-size:12px}.table-count{color:var(--text-muted);font-size:12px;font-weight:560}.inline-loader{align-items:center;gap:8px;display:inline-flex}.flag-cell{color:var(--text-soft);text-align:center;width:44px}.flag-cell svg{color:var(--text-muted);vertical-align:middle;display:inline-block}.row-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.row-actions button{color:var(--text-soft);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.row-actions button:hover{background:var(--surface-muted);color:var(--primary)}.table-pagination{border-top:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.table-pagination>div{align-items:center;gap:8px;display:flex}.table-pagination span{color:var(--text-muted);font-size:12px}.table-pagination select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;min-height:34px;padding:0 8px}.table-pagination button{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:8px;min-height:34px;padding:0 10px}.table-pagination button:disabled{color:var(--text-soft);cursor:not-allowed;opacity:.62}.table-pagination button:not(:disabled):hover{background:var(--surface-muted);color:var(--primary)}.table-pagination .pagination-icon-button{justify-content:center;align-items:center;width:34px;padding:0;display:inline-flex}.person-form-panel{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;margin:0;padding:0;display:grid;overflow:hidden;box-shadow:0 1px 2px #1018280a,0 1px 3px #10182808}.person-form-modal{width:min(100%,900px);max-width:900px;max-height:min(86vh,760px);margin:0;position:relative;inset:auto}.person-form-modal.wide-form-modal{width:min(920px,100vw - 48px);max-width:920px}.person-form-modal.schedule-form-modal{width:min(1060px,100vw - 48px);max-width:1060px;max-height:min(88vh,820px)}.person-form-modal.waitlist-form-modal{width:min(820px,100vw - 48px);max-width:820px;max-height:min(88vh,720px)}.person-form-modal.reservation-action-modal{width:min(980px,100vw - 48px);max-width:980px;max-height:min(90vh,820px)}.person-form-modal.reserve-modal{width:min(1060px,100vw - 48px);max-width:1060px;max-height:min(92vh,820px)}.person-form-modal.reservation-cancel-modal{width:min(720px,100vw - 48px);max-width:720px;max-height:min(90vh,720px)}.person-form-modal.reservation-absent-modal{width:min(680px,100vw - 48px);max-width:680px;max-height:min(88vh,560px)}.person-form-modal.reservation-detail-modal{width:min(820px,100vw - 48px);max-width:820px;max-height:min(90vh,680px)}.reservation-detail-modal .reservation-action-content{grid-template-rows:auto minmax(0,1fr)}.person-form-content{min-height:0;display:grid}.schedule-form-content{max-height:inherit;grid-template-rows:auto minmax(0,1fr) auto}.schedule-dialog-body{gap:14px;min-height:0;padding:14px 16px 16px;display:grid;overflow:auto}.schedule-dialog-body-readonly{align-content:start}.schedule-dialog-body-edit{grid-template-columns:minmax(260px,.7fr) minmax(0,1fr);align-content:start}.schedule-heading p{margin-bottom:8px}.schedule-context-chips{flex-wrap:wrap;gap:8px;display:flex}.schedule-context-chips span{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:7px;align-items:center;gap:6px;min-height:28px;padding:0 10px;font-size:12px;font-weight:720;display:inline-flex}.schedule-context-chips svg{color:var(--primary)}.schedule-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.schedule-summary-grid article{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;min-width:0;padding:14px;display:flex}.schedule-summary-grid article>div{gap:2px;min-width:0;display:grid}.schedule-summary-grid article span:not(.schedule-summary-icon){color:var(--text-muted);font-size:12px;font-weight:720}.schedule-summary-grid article strong{color:var(--primary);overflow-wrap:anywhere;font-size:20px;line-height:1.2}.schedule-summary-icon{border-radius:8px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.schedule-summary-icon.normal{color:var(--primary);background:#155eef1a}.schedule-summary-icon.coverage{color:var(--green);background:#13864c1a}.schedule-summary-icon.pending{background:var(--surface-strong);color:var(--text-muted)}.schedule-summary-icon.days{color:var(--blue);background:#105bd81a}.waitlist-form-content,.reservation-action-content{max-height:inherit;grid-template-rows:auto minmax(0,1fr) auto}.waitlist-dialog-body{gap:12px;min-height:0;padding:12px 16px 14px;display:grid;overflow:auto}.reservation-action-body{gap:14px;min-height:0;padding:14px 16px 16px;display:grid;overflow:auto}.reserve-modal .reservation-action-body{gap:12px;padding:12px 16px 14px}.reservation-modal-heading{padding:10px 16px}.reservation-modal-heading h2{color:var(--text);font-size:18px;line-height:1.2}.reservation-modal-heading p{color:var(--text-muted);margin:0;font-size:13px}.waitlist-add-panel,.waitlist-table-panel{gap:12px;display:grid}.reservation-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.waitlist-context-grid{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.reservation-summary-grid span,.waitlist-person-card{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:8px;min-width:0;padding:10px 12px}.waitlist-context-grid span{color:var(--text);background:0 0;min-width:0;padding:10px 12px}.waitlist-context-grid span+span{border-left:1px solid #d8dee9}.reservation-summary-grid strong,.waitlist-context-grid strong{color:var(--text-muted);margin-bottom:4px;font-size:12px;display:block}.waitlist-rut-field{gap:6px;display:grid}.waitlist-rut-field>span,.waitlist-table-panel h3{color:var(--text-muted);margin:0;font-size:12px;font-weight:780}.waitlist-rut-field>div{grid-template-columns:minmax(220px,1fr) max-content;align-items:center;gap:10px;display:grid}.waitlist-rut-field input{background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:8px;min-height:40px;padding:0 12px}.waitlist-rut-field button,.waitlist-actions button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.waitlist-rut-field button{background:var(--primary);border:1px solid var(--primary);color:#fff;cursor:pointer;font:inherit;border-radius:8px;min-height:40px;padding:0 14px;font-weight:760}.waitlist-rut-field button:disabled{cursor:not-allowed;opacity:.68}.reserve-summary-strip{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.reserve-summary-strip>span{grid-template-columns:28px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px 12px;display:grid}.reserve-summary-strip>span+span{border-left:1px solid #d8dee9}.reserve-summary-strip svg{color:#2563eb;background:#eff6ff;border:2px solid #2563eb;border-radius:999px;padding:4px}.reserve-summary-strip strong{color:#667085;margin-bottom:2px;font-size:12px;display:block}.reservation-client-section{grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);align-items:start;gap:14px;display:grid}.reservation-client-section h3,.reservation-history-card h3{color:var(--text);margin:0;font-size:16px;line-height:1}.reservation-client-search{gap:8px;display:grid}.reservation-client-section .waitlist-rut-field>span{display:none}.reservation-client-section .waitlist-rut-field>div{grid-template-columns:minmax(190px,1fr) 104px}.reservation-client-section .waitlist-rut-field input,.reservation-client-section .waitlist-rut-field button{min-height:40px}.reservation-client-placeholder{border:1px dashed var(--border);color:var(--text-muted);border-radius:8px;align-content:center;gap:6px;min-height:82px;padding:12px;display:grid}.reservation-client-placeholder strong{color:var(--text-muted);font-weight:640}.reservation-client-placeholder span{color:var(--text-muted);font-size:12px;line-height:1.35}.reservation-person-create{gap:8px;display:grid}.reservation-person-create-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.reservation-person-create label{gap:4px;display:grid}.reservation-person-create label span{color:#667085;font-size:11px;font-weight:700}.reservation-person-create input{border:1px solid var(--border);color:var(--text);font:inherit;border-radius:7px;min-height:34px;padding:6px 9px;font-size:13px}.reservation-person-create-error{color:#b42318;font-size:12px;font-weight:700}.reservation-person-create-button{color:var(--primary);cursor:pointer;background:#f7faff;border:1px solid #c7d7fe;border-radius:7px;justify-content:center;align-items:center;gap:7px;width:max-content;min-height:34px;padding:6px 12px;font-size:13px;font-weight:800;display:inline-flex}.reservation-person-create-button:disabled{color:#667085;cursor:not-allowed;opacity:.75}.waitlist-person-card{align-items:center;gap:10px;display:flex}.reservation-person-card{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;align-items:center;gap:12px;min-width:0;min-height:82px;padding:11px 12px;display:flex}.waitlist-person-card.danger{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.reservation-person-card.blocked{background:#fff7f7;border-color:#fecdca}.reservation-person-avatar{color:#b42318;background:#fee4e2;border-radius:999px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex;position:relative}.reservation-person-avatar i{color:#fff;background:#d92d20;border:3px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:14px;font-style:normal;font-weight:850;display:inline-flex;position:absolute;bottom:-3px;right:-4px}.reservation-person-avatar>svg{width:24px;height:24px}.waitlist-person-card div,.reservation-person-card div{gap:2px;display:grid}.reservation-person-card strong{font-size:14px;line-height:1.2}.waitlist-person-card span,.waitlist-person-card small,.reservation-person-card span,.reservation-person-card small,.waitlist-table-panel>div>span,.waitlist-empty{color:var(--text-muted)}.reservation-person-meta{flex-wrap:wrap;gap:6px 10px;font-size:13px;display:flex}.reservation-person-meta span{align-items:center;gap:5px;display:inline-flex}.reservation-person-card b{color:#fff;background:#d92d20;border-radius:6px;padding:5px 7px;font-size:11px;line-height:1;display:inline-flex}.reservation-link-button{color:#2563eb;cursor:pointer;background:0 0;justify-self:start;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:700;display:inline-flex}.waitlist-table-panel>div{justify-content:space-between;align-items:center;display:flex}.waitlist-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:240px;overflow:auto}.waitlist-table{border-collapse:collapse;width:100%;min-width:620px}.waitlist-table th,.waitlist-table td{border-bottom:1px solid var(--border-soft);text-align:left;padding:10px 12px}.waitlist-table th{background:var(--surface-muted);color:var(--text-muted);font-size:12px}.icon-table-button{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.icon-table-button:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.icon-table-button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.icon-table-button:disabled{cursor:not-allowed;opacity:.6}.waitlist-empty,.waitlist-error{margin:0}.reservation-two-column,.reservation-lower-grid{grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);align-items:start;gap:14px;display:grid}.reservation-lower-grid{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px}.reservation-textarea-field,.reservation-form-card,.reservation-payment-form,.reservation-payment-form label{gap:7px;display:grid}.reservation-form-card{background:var(--surface);border:1px solid #d8dee9;border-radius:8px;gap:12px;padding:12px}.reservation-form-card h3{color:var(--text);margin:0;font-size:14px;line-height:1.2}.reservation-detail-main-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:14px;display:grid}.reservation-detail-left-column{gap:14px;min-width:0;display:grid}.reservation-detail-heading{align-items:start}.reservation-detail-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reservation-detail-status-pill{border-radius:7px;align-items:center;gap:7px;min-height:28px;padding:0 12px;font-size:13px;font-weight:760;display:inline-flex}.reservation-detail-status-pill.reserved,.reservation-detail-status-pill.confirmed,.reservation-detail-status-pill.paid{color:#067647;background:#ecfdf3;border:1px solid #abefc6}.reservation-detail-status-pill.blocked{color:#344054;background:#f2f4f7;border:1px solid #d0d5dd}.reservation-detail-summary-row{grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:12px;display:grid}.reservation-detail-summary-card{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.reservation-detail-summary-card>span{grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:11px 12px;display:grid}.reservation-detail-summary-card>span+span{border-left:1px solid #d8dee9}.reservation-detail-summary-card svg{color:#2563eb;background:#eff6ff;border:2px solid #2563eb;border-radius:999px;padding:4px}.reservation-detail-summary-card strong{color:#667085;margin-bottom:2px;font-size:12px;display:block}.reservation-detail-person-card{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:14px;min-height:118px;display:grid}.reservation-detail-avatar{color:#004eeb;background:#dbeafe;border-radius:999px;justify-content:center;align-items:center;width:58px;height:58px;font-size:18px;font-weight:760;display:inline-flex}.reservation-detail-person{gap:7px;display:grid}.reservation-detail-person strong{color:var(--text);font-size:15px}.reservation-detail-person span{color:var(--text-muted);align-items:center;gap:6px;font-size:13px;display:inline-flex}.reservation-detail-person small{color:#344054;background:#f2f4f7;border-radius:999px;width:max-content;padding:5px 9px;font-size:12px;font-weight:650}.reservation-detail-list{gap:0;margin:0;display:grid}.reservation-detail-list div{border-bottom:1px solid var(--border-soft);grid-template-columns:120px minmax(0,1fr);align-items:center;gap:12px;min-height:34px;display:grid}.reservation-detail-list div:last-child{border-bottom:0}.reservation-detail-list dt{color:var(--text-muted);font-size:12px;font-weight:760}.reservation-detail-list dd{color:var(--text);margin:0;font-size:13px;font-weight:650}.reservation-detail-notes{color:var(--text-muted);margin:0;font-size:13px;line-height:1.4}.reservation-detail-note-box{border:1px solid var(--border);color:#98a2b3;text-align:center;border-radius:8px;place-items:center;min-height:112px;padding:18px;display:grid}.reservation-detail-note-box.filled{color:var(--text-muted);text-align:left;place-items:start}.reservation-detail-note-box p{margin:0;font-size:13px;line-height:1.4}.reservation-comments-card{min-height:0}.reservation-comments-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.reservation-comments-heading span{color:var(--text-muted);font-size:12px;font-weight:720}.reservation-comments-list{gap:8px;display:grid}.reservation-comment-item{border:1px solid var(--border-soft);background:#f8fafc;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.reservation-comment-item p{color:var(--text);margin:0;font-size:13px;line-height:1.4}.reservation-comment-item span{color:var(--text-muted);font-size:12px;font-weight:700}.reservation-detail-actions{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;padding-top:2px;display:grid}.reservation-detail-actions button{background:var(--surface);color:#155eef;cursor:pointer;font:inherit;white-space:nowrap;border:1px solid #9cc1ff;border-radius:7px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:0 10px;font-size:13px;font-weight:760;display:inline-flex}.reservation-detail-actions button:hover{background:#eff6ff}.reservation-detail-actions button.danger{color:#b42318;border-color:#fecaca}.reservation-detail-actions button.danger:hover{background:#fff1f0}.reservation-textarea-field>span,.reservation-payment-form label>span,.reservation-note{color:var(--text-muted);font-size:12px;font-weight:760}.reservation-textarea-field textarea,.reservation-payment-form textarea,.reservation-payment-form input,.reservation-payment-form select{background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:8px;min-height:40px;padding:8px 10px}.reservation-textarea-field textarea::placeholder{color:var(--text-muted);font-size:13px;line-height:1.35}.reservation-textarea-field textarea,.reservation-payment-form textarea{resize:vertical;min-height:108px}.reservation-textarea-field em{color:var(--text-muted);place-self:end;margin-top:-30px;padding:0 12px 10px;font-size:12px;font-style:normal}.reservation-notes-panel,.reservation-history-card{background:var(--surface);border:1px solid #d8dee9;border-radius:8px;gap:10px;padding:12px;display:grid}.reservation-important-note{color:#344054;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;padding:10px 12px;display:grid}.reservation-important-note svg{color:#2563eb;width:18px;height:18px}.reservation-important-note p{margin:0;font-size:13px;line-height:1.35}.reservation-important-note strong{color:#2563eb;display:block}.reservation-important-note p span{display:block}.reservation-payment-form{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:12px}.reservation-action-summary{background:#f8fafc;border:1px solid #d8dee9;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.reservation-action-summary span{color:var(--text);min-width:0;padding:10px 12px}.reservation-action-summary span+span{border-left:1px solid #d8dee9}.reservation-action-summary strong{color:#667085;margin-bottom:2px;font-size:12px;display:block}.compact-history{max-height:252px}.reservation-history-tabs{border:1px solid #d8dee9;border-radius:7px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.reservation-history-tabs span{color:#344054;text-align:center;background:#f8fafc;padding:9px 12px;font-size:13px;font-weight:680}.reservation-history-tabs span:first-child{color:#2563eb;background:#fff;border-bottom:2px solid #2563eb}.reservation-history-section{gap:8px}.reservation-history-empty{color:#667085;text-align:center;background:#f8fafc;border:1px dashed #d8dee9;border-radius:8px;justify-content:center;align-items:center;min-height:96px;margin:0;padding:14px;font-size:13px;font-weight:650;display:flex}.compact-history .waitlist-table{table-layout:fixed;min-width:0}.compact-history .waitlist-table th,.compact-history .waitlist-table td{text-overflow:ellipsis;white-space:nowrap;padding:7px 9px;overflow:hidden}.compact-history .waitlist-table td{color:var(--text);font-size:13px}.compact-history .waitlist-table th{font-size:12px;font-weight:820}.history-status-chip{border-radius:999px;padding:5px 7px;font-size:11px;font-weight:760;line-height:1;display:inline-flex}.history-status-chip.success{color:#05603a;background:#e3f4ea}.history-status-chip.danger{color:#b42318;background:#fee4e2}.history-status-chip.neutral{color:#475467;background:#eef2f6}.history-status-chip.warning{color:#8a4b00;background:#fff3dc}.reservation-checkbox-grid{gap:8px;display:grid}.reservation-checkbox-grid label{color:var(--text);align-items:center;gap:9px;font-size:13px;font-weight:650;display:inline-flex}.reservation-check-row{color:var(--text);align-items:center;gap:9px;font-size:13px;font-weight:700;display:inline-flex}.danger-action{background:#dc2626;border-color:#dc2626}.danger-action:hover{background:#b91c1c}.waitlist-actions{border-top:1px solid var(--border-soft);justify-content:flex-end;padding:12px 16px}.reserve-modal .waitlist-actions{border-top-color:#d8dee9;padding:10px 16px}.reserve-modal .waitlist-actions button{min-width:132px;min-height:38px}.primary-button.disabled-action,.primary-button.disabled-action:hover,.primary-button:disabled{color:#344054;cursor:not-allowed;opacity:1;background:#e5e7eb;border-color:#d0d5dd}.person-form-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:9px 12px;padding:14px 16px 16px;display:grid;overflow:auto}.person-form-grid label,.inline-fieldset,.checks-fieldset{gap:6px;min-width:0;display:grid}.person-form-grid label span,.inline-fieldset legend,.checks-fieldset legend{color:var(--text-muted);font-size:12px;font-weight:560;line-height:1.2}.person-form-grid input,.person-form-grid select{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:8px;width:100%;min-width:0;min-height:36px;padding:0 10px;font-size:14px;line-height:1.2}.person-form-grid select{appearance:auto}.wide-field,.checks-fieldset{grid-column:span 2}.inline-fieldset,.checks-fieldset{border:1px solid var(--border-soft);border-radius:8px;margin:0;padding:7px 10px}.inline-fieldset{grid-template-columns:repeat(2,max-content);align-content:end}.checks-fieldset{grid-template-columns:repeat(3,max-content);align-content:center}.inline-fieldset legend,.checks-fieldset legend{padding:0 4px}.inline-fieldset label,.checks-fieldset label{color:var(--text);align-items:center;gap:7px;font-size:13px;font-weight:440;line-height:1.2;display:inline-flex}.inline-fieldset input,.checks-fieldset input{accent-color:var(--primary);width:auto;height:14px;min-height:0}.checks-fieldset .switch-field{gap:9px;position:relative}.switch-field input{opacity:0;width:1px;height:1px;position:absolute}.switch-control{background:var(--surface-strong);border:1px solid var(--border);border-radius:999px;flex:none;width:36px;height:20px;transition:background .14s,border-color .14s;display:inline-flex;position:relative}.switch-control:after{content:"";background:#fff;border-radius:999px;width:16px;height:16px;transition:transform .14s;position:absolute;top:1px;left:1px;box-shadow:0 1px 2px #1018282e}.switch-field input:checked+.switch-control{background:var(--primary);border-color:var(--primary)}.switch-field input:checked+.switch-control:after{transform:translate(16px)}.switch-field input:focus-visible+.switch-control{box-shadow:0 0 0 3px #155eef3d}.form-footer{background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;padding:10px 16px;display:flex}.person-form-panel .panel-heading{min-height:58px;padding:10px 16px}.person-form-panel .panel-heading h2{font-size:18px;line-height:1.2}.client-hours-panel{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;gap:12px;padding:14px;display:grid}.client-hours-panel strong,.client-hours-panel span{display:block}.client-hours-panel strong{color:var(--text);font-size:14px}.client-hours-panel span{color:var(--text-muted);margin-top:2px;font-size:12px}.client-hours-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.client-hours-list label{background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 10px;display:flex}.modal-close-button{color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.modal-close-button:hover{background:var(--surface-muted);color:var(--text)}.person-flags{flex-wrap:wrap;gap:5px;display:flex}.flag{border-radius:999px;align-items:center;gap:4px;min-height:24px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.flag.active{color:var(--green);background:#e3f4ea}.flag.frequent{color:var(--amber);background:#fff3dc}.flag.blocked{color:var(--red);background:#fee8e2}.person-detail{align-self:start}.person-detail-header{border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;min-height:80px;padding:14px;display:flex}.person-avatar{color:var(--primary);background:#e2f1ed;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;font-weight:860;display:flex}.person-detail-header h2{margin:0;font-size:18px}.person-detail-header span{color:var(--text-muted);margin-top:3px;font-size:13px;display:block}.person-actions{grid-template-columns:1fr 1fr;gap:8px;padding:14px;display:grid}.complexes-summary{grid-template-columns:repeat(3,minmax(190px,1fr))}.complex-detail{align-self:start;display:grid}.complex-flags{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:6px;padding:14px;display:flex}.complex-form-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}.complex-checks{grid-column:1/-1;grid-template-columns:repeat(3,minmax(180px,max-content))}.amount-with-toggle{grid-template-columns:max-content max-content minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.amount-with-toggle .switch-field{min-height:36px}.amount-with-toggle>span{color:var(--text-muted);font-size:13px;font-weight:760}.cost-accounts-fieldset{grid-column:1/-1;grid-template-columns:repeat(2,minmax(180px,1fr));max-height:140px;overflow:auto}.cost-accounts-fieldset .empty-inline{color:var(--text-muted);font-size:13px}.module-view{grid-template-rows:auto minmax(0,1fr);gap:10px;min-width:0;min-height:0;display:grid}.module-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:10px;padding:10px;display:grid}.module-toolbar.wide{grid-template-columns:minmax(180px,1.2fr) minmax(150px,.9fr) minmax(140px,.7fr) minmax(140px,.7fr) minmax(140px,.7fr)}.module-toolbar label,.form-grid label{gap:5px;min-width:0;display:grid}.module-toolbar label span,.form-grid label span{color:var(--text-muted);font-size:12px;font-weight:780}.module-toolbar input,.module-toolbar select,.form-grid input,.form-grid select{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-width:0;min-height:38px;padding:0 10px}.module-split,.security-layout{grid-template-columns:minmax(0,1fr) 320px;gap:10px;min-height:0;display:grid}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;display:grid;overflow:auto}.reports-layout{grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:10px;min-height:0;display:grid}.table-panel,.side-panel,.report-preview{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;min-width:0;overflow:hidden}.table-panel{overflow:auto}.side-panel{align-self:start}.panel-heading{border-bottom:1px solid var(--border-soft);gap:3px;min-height:62px;padding:12px 14px;display:grid}.panel-heading.inline{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-heading h2,.panel-heading p{margin:0}.panel-heading h2{font-size:18px}.data-table{border-collapse:collapse;width:100%;min-width:900px}.data-table.compact-table{min-width:680px}.data-table th{background:var(--surface-muted);color:var(--text-muted);text-align:left;z-index:1;height:42px;font-size:12px;font-weight:820;position:sticky;top:0}.data-table th,.data-table td{border-bottom:1px solid var(--border-soft);vertical-align:middle;padding:9px 10px}.data-table tbody tr:hover,.data-table tbody tr.selected{background:#eef7f4}.data-table td{color:var(--text);font-size:13px}.data-table td strong,.data-table td span,.data-table td small{text-overflow:ellipsis;white-space:nowrap;max-width:280px;display:block;overflow:hidden}.data-table td span,.data-table td small{color:var(--text-muted);margin-top:2px;font-size:12px}.form-grid{gap:10px;padding:14px;display:grid}.form-grid.compact{grid-template-columns:1fr}.report-preview{padding:14px;overflow:auto}.report-paper{border:1px solid var(--border-soft);background:#fbfcfb;border-radius:8px;min-height:420px;padding:18px}.report-paper h2{margin:4px 0 16px;font-size:20px}.report-bars{border-bottom:1px solid var(--border);gap:10px;margin-bottom:16px;padding:8px 0 18px;display:grid}.report-bars span{background:linear-gradient(90deg, var(--primary), #6aa79d);height:16px;width:var(--bar);border-radius:999px;display:block}.role-list{display:grid}.roles-permissions-panel .panel-heading{gap:1px;min-height:54px;padding:10px 12px}.roles-permissions-panel .panel-heading h2{font-size:16px}.role-item{border-bottom:1px solid var(--border-soft);gap:10px;padding:14px;display:grid}.roles-permissions-panel .role-item{gap:4px;padding:9px 12px}.roles-permissions-panel .role-item strong{font-size:13px}.roles-permissions-panel .role-item>div>span{margin-top:1px;font-size:11px}.role-item strong,.role-item span{display:block}.role-item>div>span{color:var(--text-muted);margin-top:2px;font-size:12px}.role-functions{flex-wrap:wrap;gap:6px;display:flex}.role-functions span{background:var(--surface-muted);border:1px solid var(--border-soft);color:var(--text-muted);border-radius:999px;min-height:24px;padding:5px 8px;font-size:11px;font-weight:780}.selection-list{gap:10px;padding:14px;display:grid}.selection-list strong{color:var(--text-muted);font-size:12px;font-weight:820}.selection-list div{flex-wrap:wrap;gap:6px;display:flex}.selection-list span{background:var(--surface-muted);border:1px solid var(--border-soft);color:var(--text);border-radius:999px;min-height:28px;padding:6px 10px;font-size:12px;font-weight:760}.weekly-grid{--day-count:7;grid-template-columns:92px repeat(var(--day-count), minmax(138px, 1fr));min-width:1060px;display:grid}.weekly-head,.weekly-time,.weekly-slot{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft)}.weekly-head{background:var(--surface-muted);color:var(--text-muted);z-index:1;min-height:42px;padding:12px 10px;font-size:12px;font-weight:820;position:sticky;top:0}.weekly-time{background:var(--surface);color:var(--text-muted);align-items:center;min-height:74px;padding:10px;font-size:13px;font-weight:800;display:flex}.weekly-slot{color:var(--text);cursor:pointer;text-align:left;background:#f9fbf9;gap:4px;min-height:74px;padding:10px;display:grid}.weekly-slot.reserved{background:#fff8ea;border-left:4px solid #e7a738}.weekly-slot.paid{background:#edf8f1;border-left:4px solid #39a66f}.weekly-slot strong,.weekly-slot span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weekly-slot span{color:var(--text-muted);font-size:12px}.weekly-matrix-wrap{overflow:auto}.weekly-matrix-table{min-width:1120px}.weekly-matrix-table th{text-align:center;vertical-align:middle}.weekly-matrix-table th span{color:var(--text-muted);margin-top:3px;font-size:11px;font-weight:700;display:block}.weekly-matrix-table .weekly-slot{cursor:default;text-align:center;min-width:92px;min-height:42px;padding:8px}.weekly-matrix-table .weekly-slot.free{background:#f8fafc}.class-layout{gap:10px;min-height:0;display:grid;overflow:auto}.class-row{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:minmax(0,1.2fr) minmax(240px,.7fr) minmax(180px,.4fr);gap:14px;min-width:0;padding:14px;display:grid}.class-row h2,.class-row p{margin:0}.class-row h2{margin-top:2px;font-size:18px}.class-row span{color:var(--text-muted);margin-top:4px;font-size:13px;display:block}.class-row dl{grid-template-columns:1fr 1fr;gap:8px;margin:0;display:grid}.class-row dt{color:var(--text-muted);font-size:12px;font-weight:780}.class-row dd{margin:2px 0 0;font-weight:820}.class-meter{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:999px;align-self:center;height:18px;overflow:hidden}.class-meter span{background:var(--primary);height:100%;width:var(--fill);margin:0;display:block}.daily-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(210px,1fr) minmax(150px,.6fr) minmax(160px,.6fr) auto 48px;align-items:end;gap:10px;min-width:0;padding:10px;display:grid}.proposal-toolbar{border-radius:12px;grid-template-columns:minmax(220px,1.25fr) minmax(200px,.9fr) minmax(170px,.7fr) auto 48px;padding:18px;box-shadow:0 1px 2px #1018280a}.reservation-query-toolbar{grid-template-columns:220px minmax(150px,180px) auto 48px}.reservation-complex-selector{background:var(--surface);border:1px solid var(--border);border-radius:12px;gap:5px;min-width:0;padding:18px;display:grid;box-shadow:0 1px 2px #1018280a}.reservation-complex-selector span{color:var(--text-muted);font-size:12px;font-weight:780}.reservation-complex-selector select{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-width:0;min-height:38px;padding:0 10px}.daily-toolbar label{gap:5px;min-width:0;display:grid}.daily-toolbar label span{color:var(--text-muted);font-size:12px;font-weight:780}.daily-toolbar select,.daily-toolbar input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-width:0;min-height:38px;padding:0 10px}.today-button{color:var(--primary);min-width:58px;font-weight:800}.filter-reset{justify-self:end}.page-heading{justify-content:space-between;align-items:end;gap:18px;min-width:0;display:flex}.page-heading h1,.page-heading p{margin:0}.page-heading h1{font-size:28px;line-height:1.15}.page-heading p{color:var(--text-muted);margin-top:4px;font-size:14px}.search-cta{min-width:170px}.summary-grid{grid-template-columns:repeat(4,minmax(170px,1fr));gap:18px;min-width:0;display:grid}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:16px;min-width:0;min-height:110px;padding:18px;display:grid}.summary-card.blue{background:linear-gradient(90deg,#f8fbff,#fff);border-color:#b9d3ff}.summary-card.green{background:linear-gradient(90deg,#f3fbf6,#fff);border-color:#afd9bf}.summary-card.purple{background:linear-gradient(90deg,#f6f5ff,#fff);border-color:#c9c3ff}.summary-card.orange{background:linear-gradient(90deg,#fff7ef,#fff);border-color:#f4c89d}.summary-icon{border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;display:inline-flex}.summary-card.blue .summary-icon{color:var(--primary);background:#eaf2ff}.summary-card.green .summary-icon{color:var(--green);background:#e8f8ed}.summary-card.purple .summary-icon{color:var(--purple);background:#eeecff}.summary-card.orange .summary-icon{color:var(--orange);background:#fff0e2}.summary-card div{gap:4px;min-width:0;display:grid}.summary-card strong{color:var(--primary);font-size:13px}.summary-card.green strong{color:#0b6b3b}.summary-card.purple strong{color:var(--purple)}.summary-card.orange strong{color:var(--orange)}.summary-card b{color:var(--text);font-size:28px;line-height:1}.summary-card span:not(.summary-icon){color:var(--text-muted);font-size:12px}.summary-card.loading{position:relative}.summary-card.loading:after,.skeleton-card span,.skeleton-card div span{background:linear-gradient(90deg,#eef2f6 0%,#f8fafc 45%,#eef2f6 100%) 0 0/240% 100%;animation:1.35s linear infinite shimmer}.summary-card.loading:after{content:"";border-radius:12px;position:absolute;inset:12px}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.empty-state,.skeleton-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;place-items:center;gap:14px;min-height:260px;padding:28px;display:grid;box-shadow:0 1px 2px #1018280a}.empty-state-icon{color:var(--primary);background:#eef4ff;border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;display:inline-flex}.empty-state strong,.empty-state span{display:block}.empty-state strong{font-size:18px}.empty-state div>span{color:var(--text-muted);margin-top:5px;font-size:14px}.skeleton-card{text-align:left;grid-template-columns:58px minmax(0,1fr);place-items:start stretch;min-height:120px}.skeleton-card>span{border-radius:12px;height:56px}.skeleton-card div{gap:10px;display:grid}.skeleton-card div span{border-radius:999px;height:14px}.skeleton-card div span:first-child{width:46%}.skeleton-card div span:nth-child(2){width:28%;height:24px}.skeleton-card div span:nth-child(3){width:64%}.compact-kpis{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-height:38px;display:flex}.compact-kpis span{background:var(--surface-muted);border:1px solid var(--border-soft);color:var(--text-muted);border-radius:999px;min-height:28px;padding:6px 10px;font-size:12px;font-weight:760}.selected-strip{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;min-width:0;min-height:48px;padding:7px 10px;display:flex}.selected-strip>strong,.selected-strip>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.selected-strip>span:not(.status-pill){color:var(--text-muted);font-size:13px}.selected-actions{gap:8px;margin-left:auto;display:flex}button,input,select{font:inherit}button{border:0}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #0f766e47}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.app-shell.sidebar-collapsed{grid-template-columns:86px minmax(0,1fr)}.sidebar{background:var(--sidebar);color:#edf7f4;flex-direction:column;min-width:0;padding:16px 12px;display:flex;overflow:hidden}.brand-row{grid-template-columns:42px minmax(0,1fr) 38px;align-items:center;gap:10px;min-height:46px;display:grid}.brand-mark{color:#fff;background:#123d70;border:1px solid #345f8f;border-radius:8px;justify-content:center;align-items:center;width:42px;height:42px;font-weight:850;display:inline-flex}.brand-copy{gap:2px;min-width:0;display:grid}.brand-copy strong,.brand-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.brand-copy span{color:#b9cde8;font-size:12px}.icon-button,.ghost-button,.primary-button,.user-button,.nav-item,.slot{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;display:inline-flex}.icon-button{color:inherit;background:#ffffff14;width:38px}.icon-button.subtle{background:var(--surface-muted);color:var(--text)}.side-nav{scrollbar-color:#6f85a3 transparent;scrollbar-width:thin;gap:16px;margin-top:22px;padding-right:2px;display:grid;overflow:auto}.side-nav::-webkit-scrollbar{width:8px;height:8px}.side-nav::-webkit-scrollbar-track{background:0 0}.side-nav::-webkit-scrollbar-thumb{border:2px solid var(--sidebar);background:#6f85a3;border-radius:999px}.side-nav::-webkit-scrollbar-thumb:hover{background:#8ba0bb}.nav-section{gap:3px;display:grid}.nav-section-title{color:#91a8c7;letter-spacing:0;padding:0 8px 5px;font-size:11px;font-weight:620;line-height:1.2}.nav-item{color:#d3deec;background:0 0;justify-content:flex-start;width:100%;min-height:34px;padding:0 10px;font-size:13px;font-weight:440;line-height:1.2}.nav-item svg{flex:none;width:17px;height:17px}.nav-item:hover,.nav-item.active{color:#fff;background:#0f5fe0}.nav-item.active{font-weight:560}.source-panel{border:1px solid var(--sidebar-border);background:#ffffff14;border-radius:8px;align-items:center;gap:10px;min-height:58px;margin-top:auto;padding:10px;display:flex}.source-panel div{gap:2px;display:grid}.source-panel span{color:#a8bdd8;font-size:12px;line-height:1.2}.source-panel strong{font-size:13px;font-weight:560;line-height:1.2}.sidebar-collapsed .brand-row{grid-template-columns:42px}.sidebar-collapsed .brand-row .icon-button{display:inline-flex}.workspace{grid-template-rows:auto minmax(0,1fr);gap:18px;min-width:0;padding:18px;display:grid}.topbar{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.topbar h1,.topbar p,.section-heading h2,.section-heading p{margin:0}.topbar h1{font-size:28px;line-height:1.1}.eyebrow{color:var(--primary);text-transform:uppercase;font-size:12px;font-weight:800}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.ghost-button,.user-button{background:var(--surface);border:1px solid var(--border);color:var(--text);min-height:40px;padding:0 12px;font-size:14px}.notification-button{color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:relative}.notification-button span{border:2px solid var(--surface);color:#fff;background:#b42318;border-radius:999px;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:850;display:inline-flex;position:absolute;top:1px;right:3px}.user-button{color:var(--text);background:0 0;border-color:#0000;gap:10px;min-width:184px;padding:0 10px 0 0}.user-menu-wrap{position:relative}.user-button.active,.user-button:hover{background:var(--surface-muted);border-color:var(--border)}.user-button>span:not(.user-avatar){color:var(--text-muted);text-align:left;font-size:12px;line-height:1.2;display:grid}.user-button strong{color:var(--text);font-size:13px}.user-avatar{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:850;display:inline-flex}.user-menu{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:50;border-radius:10px;gap:8px;min-width:224px;padding:10px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.user-menu-header{border-bottom:1px solid var(--border-soft);gap:2px;padding:4px 4px 10px;display:grid}.user-menu-header strong{color:var(--text);font-size:13px;font-weight:640}.user-menu-header span{color:var(--text-muted);font-size:12px}.theme-switch{background:var(--surface-muted);border:1px solid var(--border-soft);border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.theme-switch button,.user-menu-item,.logout-menu-item{color:var(--text-muted);cursor:pointer;border-radius:7px;align-items:center;gap:7px;min-height:32px;padding:0 9px;font-size:12px;font-weight:560;display:inline-flex}.theme-switch button{justify-content:center}.theme-switch button.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 2px #10182814}.user-menu-item,.logout-menu-item{background:0 0;justify-content:flex-start;width:100%}.user-menu-item:hover{background:var(--surface-muted);color:var(--primary)}.logout-menu-item:hover{background:var(--surface-muted);color:var(--red)}.primary-button{background:var(--primary);color:#fff;min-height:40px;padding:0 14px;font-size:14px;font-weight:760}.primary-button:hover{background:var(--primary-strong)}.search-icon-button{flex:none;width:48px;padding:0}.button-spinner{border:2px solid;border-right-color:#0000;border-radius:999px;width:18px;height:18px;animation:.72s linear infinite spin;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.text-button{color:var(--primary);cursor:pointer;background:0 0;min-height:28px;padding:0;font-size:13px;font-weight:660}.text-button:hover{color:var(--primary-strong)}.reservations-layout{grid-template-columns:minmax(0,1fr) minmax(292px,340px);align-items:start;gap:18px;min-width:0;display:grid}.main-column{gap:14px;min-width:0;display:grid}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:minmax(190px,1.2fr) minmax(160px,.8fr) minmax(170px,.8fr) auto;align-items:end;gap:12px;padding:14px;display:grid}.filter-bar label{gap:6px;min-width:0;display:grid}.filter-bar label span{color:var(--text-muted);font-size:12px;font-weight:760}.filter-bar select,.filter-bar input{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-width:0;min-height:40px;padding:0 10px}.date-stepper{gap:8px;display:flex}.metrics-grid{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:8px;min-height:112px;padding:14px;display:grid}.metric-icon{color:var(--primary);background:#e2f1ed;border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex}.metric span{color:var(--text-muted);font-size:13px}.metric strong{font-size:24px;line-height:1}.schedule-section,.panel,.placeholder-view{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #1018280a,0 1px 3px #10182808}.schedule-section{min-width:0;overflow:auto}.schedule-section.expanded{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.section-heading{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:10px 12px;display:flex}.section-heading h2{font-size:18px}.section-heading.compact{min-height:56px;padding:12px 14px}.status-legend{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.legend-item{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:760;display:inline-flex}.legend-item.reserved,.status-pill.reserved{color:var(--amber);background:#fff3dc}.legend-item.confirmed,.status-pill.confirmed{color:var(--blue);background:#e6eefb}.legend-item.paid,.status-pill.paid{color:var(--green);background:#e3f4ea}.schedule-grid{--court-count:4;grid-template-columns:180px repeat(var(--court-count), 240px);min-width:max-content;min-height:0;max-height:none;display:grid;overflow:visible}.schedule-header,.schedule-time,.slot{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft)}.schedule-header{background:var(--surface);z-index:2;text-align:center;align-content:center;gap:3px;min-height:42px;padding:9px 12px;display:grid;position:sticky;top:0}.schedule-header strong{color:var(--text);font-size:14px;font-weight:820;line-height:1.15}.schedule-header span{color:var(--text-muted);font-size:12px;line-height:1.2}.draggable-header{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.schedule-section.dragging .draggable-header{cursor:grabbing}.sticky-cell{background:var(--surface);z-index:5;left:0}.schedule-time{background:var(--surface);color:var(--text-muted);z-index:4;place-items:stretch center;gap:9px;min-height:106px;padding:13px 8px;font-size:12px;display:grid;position:sticky;left:0}.slot{background:var(--surface);color:var(--text);cursor:default;text-align:left;justify-content:stretch;align-items:stretch;gap:7px;min-width:0;min-height:94px;padding:6px 5px;display:grid}.schedule-time>div{align-content:center;justify-items:center;gap:4px;display:grid}.schedule-time strong{color:var(--text);font-size:14px;font-weight:820;line-height:1.2}.schedule-time span{color:var(--text-muted);font-size:12px;line-height:1.2}.waitlist-button{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-self:end;align-items:center;gap:7px;width:100%;min-height:29px;padding:0 7px;font-size:11px;font-weight:520;display:inline-flex}.waitlist-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.waitlist-count{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:6px;align-items:center;gap:3px;height:22px;padding:0 5px;font-size:11px;display:inline-flex}.reservation-card strong,.reservation-card span,.available-slot strong,.available-slot span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.slot:disabled{cursor:default}.slot-card{cursor:default;border:1px solid #f4cf7a;border-radius:8px;min-width:0;min-height:100%;padding:34px 7px 8px;display:grid;position:relative}.reservation-card{color:#101828;background:#fff8e9;grid-template-columns:minmax(0,1fr);gap:5px}.reservation-ref{color:#5c6678;align-items:center;gap:5px;font-size:11px;font-weight:560;line-height:1;display:inline-flex;position:absolute;top:9px;right:8px}.reservation-absent-toggle{cursor:pointer;background:0 0;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}.reservation-absent-toggle input{accent-color:var(--orange);cursor:pointer;width:15px;height:15px;margin:0}.slot.confirmed .reservation-card{background:#eef7ff;border-color:#91caff}.slot.paid .reservation-card{background:#edf8f1;border-color:#abdeb9}.slot.blocked .reservation-card{border-color:var(--border);background:#f4f5f5}.slot.selected .reservation-card{box-shadow:0 0 0 2px #105bd857}.slot-main,.slot-meta,.available-slot{border-radius:10px}.slot-main{gap:6px;min-width:0;display:grid}.reservation-main{padding-right:36px}.slot-person{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:6px;min-width:0;display:grid}.slot-person>div{gap:1px;min-width:0;display:grid}.slot-person strong,.slot-person span{min-width:0;display:block}.slot-person strong{color:#101828;font-size:13px;font-weight:820;line-height:1.2}.slot-person span{color:#4f5f78;align-items:center;gap:4px;font-size:12px;line-height:1.2;display:inline-flex}.slot-person span svg{flex:none}.person-token{color:#344054;background:#f2b705;border-radius:999px;width:34px;height:34px;display:block;position:relative}.person-token svg{width:20px;height:20px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-42%)}.slot-badge{text-transform:uppercase;border-radius:6px;justify-content:center;align-items:center;min-width:63px;height:20px;padding:0 6px;font-size:11px;font-weight:850;line-height:1;display:inline-flex;position:absolute;top:8px;left:9px}.slot-badge.reserved{color:#875000;background:#ffe8a8}.slot-badge.confirmed{color:#1261a6;background:#d9edff}.slot-badge.paid,.slot-badge.available{color:#11723e;background:#dff5e5}.slot-meta{border-top:1px solid #efd595;flex-wrap:wrap;align-items:center;gap:4px 7px;min-width:0;padding-top:5px;display:flex;overflow:hidden}.slot-meta span{color:#101828;align-items:center;gap:5px;min-width:0;font-size:12px;font-weight:440;line-height:1.2;display:inline-flex}.slot-meta strong{font-size:inherit;font-weight:440}.slot-actions{border-top:1px solid #efd595;grid-column:1/-1;grid-template-columns:repeat(5,minmax(0,1fr)) 1px minmax(0,1fr);place-items:center;gap:3px;padding-top:5px;display:grid}.slot-action-button{color:#183b68;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;width:24px;min-width:24px;height:24px;padding:0;display:inline-flex}.slot-action-button svg{width:16px;height:16px}.slot-action-button:hover{color:var(--primary);background:#ffffffad}.slot-action-button.primary{color:#174ea6;background:#fff;border-color:#c9d8f3;box-shadow:0 1px 2px #10182814}.slot-action-button.primary.success{color:#11723e;border-color:#a6ddb9}.slot-action-button.primary:hover{background:#eef5ff}.slot-action-button.primary.success:hover{background:#e9f8ef}.slot-action-button.active{color:var(--orange);background:#fff0e2;border-color:#f4c89d}.slot-action-button.danger{color:#b42318}.slot-action-button.danger:hover{color:#912018;background:#fff1f0}.slot-actions-separator{background:#efd595;width:1px;height:16px;margin:0;display:inline-block}.tooltip-button{position:relative}.tooltip-button:after{color:#fff;content:attr(data-tooltip);opacity:0;pointer-events:none;white-space:nowrap;z-index:40;background:#101828;border-radius:6px;padding:7px 8px;font-size:11px;font-weight:760;line-height:1;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.tooltip-button:hover:after,.tooltip-button:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.available-slot{color:#125f36;text-align:center;background:#f0fbf4;border-color:#abefc6;grid-template-columns:minmax(0,1fr);justify-items:center;gap:7px}.available-slot>div strong,.available-slot>div b,.available-slot>div span{text-align:center;display:block}.available-slot strong{color:#125f36;white-space:normal;font-size:13px;line-height:1.2}.available-slot b{color:#125f36;margin-top:3px;font-size:18px;font-weight:760;line-height:1.05}.available-slot>div>span{color:#426b52;white-space:normal;font-size:12px;line-height:1.2}.reserve-button{color:#126536;cursor:pointer;background:#fff;border:1px solid #17b26a;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:31px;padding:0 11px;font-size:12px;font-weight:680;display:inline-flex}:root[data-theme=dark] .daily-shell{background:var(--bg)}:root[data-theme=dark] .proposal-toolbar,:root[data-theme=dark] .schedule-section{box-shadow:0 1px 2px #00000038,0 14px 36px #00000029}:root[data-theme=dark] .daily-toolbar select,:root[data-theme=dark] .daily-toolbar input,:root[data-theme=dark] .module-toolbar input,:root[data-theme=dark] .module-toolbar select,:root[data-theme=dark] .person-form-grid input,:root[data-theme=dark] .person-form-grid select,:root[data-theme=dark] .form-grid input,:root[data-theme=dark] .form-grid select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:#0f1a2d}:root[data-theme=dark] .person-form-grid input[type=date]::-webkit-calendar-picker-indicator{filter:invert()opacity(.72)}:root[data-theme=dark] .person-form-grid select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=dark] .person-form-panel{box-shadow:0 28px 80px #00000057}:root[data-theme=dark] .daily-toolbar select::placeholder,:root[data-theme=dark] .daily-toolbar input::placeholder{color:var(--text-soft)}:root[data-theme=dark] .schedule-header,:root[data-theme=dark] .sticky-cell,:root[data-theme=dark] .schedule-time,:root[data-theme=dark] .slot{background:#101b2e}:root[data-theme=dark] .schedule-header strong,:root[data-theme=dark] .schedule-time strong{color:#e8eef8}:root[data-theme=dark] .schedule-header span,:root[data-theme=dark] .schedule-time span{color:#a8b4c7}:root[data-theme=dark] .slot.selected .reservation-card{box-shadow:0 0 0 2px #60a5fab3}:root[data-theme=dark] .reservation-card{color:#f4ead7;background:#2a2418;border-color:#8a6a2e}:root[data-theme=dark] .slot.confirmed .reservation-card{background:#18283a;border-color:#3f78a8}:root[data-theme=dark] .slot.paid .reservation-card{background:#173024;border-color:#3f8f61}:root[data-theme=dark] .available-slot{color:#ccebd8;background:#142b20;border-color:#3b8a59}:root[data-theme=dark] .slot-person strong,:root[data-theme=dark] .slot-meta span,:root[data-theme=dark] .slot-meta strong{color:#f2f6fb}:root[data-theme=dark] .slot-person span,:root[data-theme=dark] .reservation-ref{color:#a8b4c7}:root[data-theme=dark] .slot-meta,:root[data-theme=dark] .slot-actions{border-color:#cda9526b}:root[data-theme=dark] .slot.confirmed .slot-meta,:root[data-theme=dark] .slot.confirmed .slot-actions{border-color:#6ba6dc6b}:root[data-theme=dark] .slot.paid .slot-meta,:root[data-theme=dark] .slot.paid .slot-actions{border-color:#5bb2796b}:root[data-theme=dark] .slot-actions button{color:#9fc5f8}:root[data-theme=dark] .available-slot strong,:root[data-theme=dark] .available-slot b{color:#b9f0cb}:root[data-theme=dark] .available-slot>div>span{color:#9cc8ad}:root[data-theme=dark] .waitlist-button{color:#a8b4c7;background:#17243a;border-color:#2b3c58}:root[data-theme=dark] .waitlist-button span{color:#cbd5e1;background:#0f1a2d;border-color:#2b3c58}:root[data-theme=dark] .user-button.active,:root[data-theme=dark] .user-button:hover{background:#17243a}:root[data-theme=dark] .reserve-button{color:#126536;background:#fff}.footer-legend{background:0 0;justify-content:flex-start;align-items:center}.mobile-schedule-list{display:none}.mobile-hour-group{border-bottom:1px solid var(--border-soft);gap:10px;padding:12px;display:grid}.mobile-hour-heading{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.mobile-hour-heading strong{color:var(--text)}.mobile-hour-heading span{font-size:12px}.mobile-slot-wrap{gap:6px;display:grid}.mobile-slot-wrap>span{color:var(--text-muted);font-size:12px;font-weight:820}.footer-legend strong{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-height:30px;padding:6px 12px;font-size:13px}.legend-item.available{color:var(--green);background:#e3f4ea}.status-pill.blocked{color:#596579;background:#eef2f7}.inspector{gap:14px;display:grid;position:sticky;top:18px}.panel{overflow:hidden}.status-pill{border-radius:999px;min-height:26px;margin:0 0 6px;padding:5px 10px;font-size:12px;font-weight:800;display:inline-flex}.status-pill.table-status{justify-content:center;align-items:center;min-width:88px;margin:0}.detail-list{gap:0;margin:0;display:grid}.detail-list div{border-bottom:1px solid var(--border-soft);grid-template-columns:95px minmax(0,1fr);align-items:center;gap:12px;min-height:46px;padding:0 14px;display:grid}.detail-list dt{color:var(--text-muted);font-size:12px;font-weight:780}.detail-list dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.notes-box{background:var(--surface-muted);border:1px solid var(--border-soft);color:var(--text-muted);border-radius:8px;min-height:72px;margin:14px;padding:12px;line-height:1.45}.action-row{grid-template-columns:1fr 1fr;gap:8px;padding:0 14px 14px;display:grid}.activity-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.activity-list li{border-bottom:1px solid var(--border-soft);grid-template-columns:50px minmax(0,1fr);align-items:start;gap:10px;min-height:64px;padding:12px 14px;display:grid}.activity-list li:last-child{border-bottom:0}.activity-list time{color:var(--text-soft);font-size:12px;font-weight:780}.activity-list div{gap:2px;min-width:0;display:grid}.activity-list span{color:var(--text-muted);font-size:13px;line-height:1.35}.activity-list .success strong{color:var(--green)}.activity-list .warning strong{color:var(--amber)}.activity-list .danger strong{color:var(--red)}.empty-text{color:var(--text-muted);margin:0;padding:14px}.placeholder-view{gap:14px;padding:18px;display:grid}.placeholder-title{align-items:center;gap:10px;display:flex}.placeholder-title h2{margin:0}.placeholder-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;display:grid}.placeholder-row{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;min-height:74px;padding:14px;display:flex}.mail-strip{color:#855611;background:#fff7e9;border:1px solid #edd7b1;border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:flex}.schedule-dialog-loader{min-height:180px}.schedule-editor-panel{gap:14px;padding:0;display:grid;overflow:visible}.schedule-field-block{gap:8px;display:grid}.schedule-field-block strong,.schedule-price-field span{color:var(--text-muted);margin:0;font-size:12px;font-weight:780;display:block}.schedule-field-block>strong{color:var(--text-muted);text-transform:none;padding:0;font-size:12px}.schedule-price-row{grid-template-columns:minmax(180px,260px) max-content;justify-content:start;align-items:end;gap:10px;padding:0;display:grid}.schedule-price-field{gap:6px;min-width:0;display:grid}.schedule-price-field input[type=number]{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;width:100%;min-height:38px;padding:0 10px}.schedule-add-button{min-width:118px}.schedule-check-grid{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;padding:0;display:grid}.schedule-check-grid.compact{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))}.check-tile{background:var(--surface-muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-width:0;min-height:38px;padding:0 10px;display:flex}.schedule-check-grid.compact .check-tile{justify-content:flex-start}.check-tile input{flex:none;width:15px;height:15px;margin:0}.check-tile span{color:var(--text);overflow-wrap:anywhere;text-align:left;min-width:0;margin:0;font-size:13px;font-weight:720;line-height:1.2}.schedule-check-grid.compact .check-tile span{text-align:left}.schedule-table-panel{gap:10px;min-width:0;display:grid}.schedule-table-toolbar{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.schedule-view-tabs{background:var(--surface);border:1px solid var(--border);border-radius:7px;align-items:center;min-height:34px;padding:2px;display:inline-flex}.schedule-view-tabs span{background:var(--primary);color:#fff;border-radius:5px;padding:7px 12px;font-size:12px;font-weight:800}.schedule-rate-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;font-size:12px;font-weight:720;display:flex}.schedule-rate-legend span{align-items:center;gap:6px;display:inline-flex}.schedule-rate-legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.schedule-rate-legend i.normal{background:var(--primary)}.schedule-rate-legend i.empty{background:var(--border)}.schedule-matrix-wrap{border:1px solid var(--border);border-radius:8px;max-height:360px;margin:0;overflow:auto}.schedule-matrix-table{box-shadow:none;min-width:760px}.schedule-matrix-table th,.schedule-matrix-table td{white-space:nowrap;height:30px;padding:6px 10px;font-size:12px}.schedule-matrix-table th:first-child,.schedule-matrix-table td:first-child{z-index:1;position:sticky;left:0}.schedule-matrix-table th:first-child{background:var(--surface-muted)}.schedule-matrix-table td:first-child{background:var(--surface);font-weight:760}.schedule-price-set{color:var(--primary);background:#155eef14;font-weight:760}.schedule-price-zero{background:var(--surface-muted);color:var(--text-muted)}.schedule-empty{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;margin:0;padding:14px}@media (width<=1120px){.login-page{grid-template-columns:minmax(220px,320px) minmax(380px,500px);gap:32px;padding:36px 30px}.login-panel{padding:34px}.module-split,.reports-layout,.security-layout,.catalog-grid{grid-template-columns:1fr}.side-panel{align-self:stretch}.people-content,.complexes-content{grid-template-columns:1fr}.people-toolbar.security-toolbar{grid-template-columns:minmax(320px,1.4fr) minmax(180px,.8fr) minmax(240px,1fr)}.people-toolbar.scoped-security-toolbar{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) max-content 48px}.people-toolbar.security-toolbar .person-switches,.people-toolbar.security-toolbar .search-icon-button{justify-self:start}.person-form-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.person-detail{order:-1;align-self:stretch}.daily-toolbar{grid-template-columns:minmax(190px,1fr) minmax(140px,.7fr) minmax(160px,.7fr) auto}.proposal-toolbar{grid-template-columns:repeat(2,minmax(190px,1fr))}.reservations-controls-row{grid-template-columns:1fr}.reservation-query-toolbar{grid-template-columns:repeat(2,minmax(190px,1fr))}.filter-reset{justify-self:stretch}.summary-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.compact-kpis{grid-column:1/-1;justify-content:flex-start}.reservations-layout{grid-template-columns:1fr}.inspector{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.schedule-grid{max-height:none}.schedule-dialog-body-edit{grid-template-columns:1fr}}@media (width<=860px){.login-page{grid-template-columns:minmax(0,560px);min-height:100vh;padding:26px;overflow:auto}.login-hero-panel{display:none}.login-panel{justify-self:center;padding:34px}.daily-app{grid-template-columns:1fr;height:auto;min-height:100vh}.daily-app.sidebar-collapsed{grid-template-columns:72px minmax(0,1fr);height:100vh;min-height:0}.daily-shell{height:auto;min-height:100vh}.daily-topbar{flex-direction:column;align-items:flex-start}.daily-toolbar{grid-template-columns:1fr 1fr}.page-heading{flex-direction:column;align-items:flex-start}.search-cta{width:100%}.module-toolbar,.people-toolbar,.people-toolbar.clients-f1-toolbar,.people-toolbar.complexes-toolbar,.people-toolbar.courts-toolbar,.people-toolbar.scoped-courts-toolbar,.people-toolbar.scoped-complexes-toolbar,.people-toolbar.security-toolbar{grid-template-columns:1fr 1fr}.person-form-grid,.checks-fieldset,.inline-fieldset{grid-template-columns:1fr}.wide-field,.checks-fieldset{grid-column:auto}.person-switches{grid-column:1/-1}.selected-strip{flex-wrap:wrap;align-items:flex-start}.selected-actions{margin-left:0}.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr;gap:12px;padding:12px;display:grid}.brand-row{grid-template-columns:42px minmax(0,1fr) 38px}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0;display:grid}.sidebar-collapsed .side-nav{grid-template-columns:1fr}.sidebar-collapsed .nav-item span,.sidebar-collapsed .source-panel div{display:none}.nav-section{align-content:start}.nav-item{justify-content:center}.source-panel{display:none}.workspace{padding:12px}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{justify-content:flex-start;width:100%}.filter-bar{grid-template-columns:1fr 1fr}.metrics-grid,.placeholder-grid,.inspector{grid-template-columns:1fr}}@media (width<=560px){.login-page{padding:16px}.login-page:before{width:180px;height:180px}.login-page:after{display:none}.login-panel{border-radius:8px;gap:20px;padding:24px}.login-brand{grid-template-columns:52px minmax(0,1fr);gap:12px}.login-mark{border-radius:12px;width:52px;height:52px}.login-brand strong{font-size:20px}.login-brand span{font-size:14px}.login-form h1{font-size:28px}.login-form p{font-size:15px}.login-form-options{align-items:flex-start;gap:10px;display:grid}.daily-toolbar,.module-toolbar,.people-toolbar,.people-toolbar.clients-f1-toolbar,.people-toolbar.complexes-toolbar,.people-toolbar.courts-toolbar,.people-toolbar.scoped-courts-toolbar,.people-toolbar.scoped-complexes-toolbar,.people-toolbar.security-toolbar{grid-template-columns:1fr}.daily-shell{padding:16px}.summary-grid,.schedule-summary-grid{grid-template-columns:1fr}.person-switches{grid-column:auto}.daily-topbar .topbar-actions,.selected-actions,.selected-actions .ghost-button,.selected-actions .primary-button{width:100%}.selected-actions{grid-template-columns:1fr 1fr;display:grid}.side-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-actions .ghost-button,.topbar-actions .primary-button,.user-button{flex:148px}.filter-bar{grid-template-columns:1fr}.date-stepper{grid-template-columns:1fr 1fr;display:grid}.date-stepper .icon-button{width:100%}.section-heading{flex-direction:column;align-items:flex-start}.status-legend{justify-content:flex-start}.schedule-grid{display:none}.mobile-schedule-list{display:grid}.schedule-time,.slot{min-height:118px}.slot.reserved,.slot.confirmed,.slot.paid{grid-template-columns:1fr}.slot-meta{border-top:1px solid #efd595;border-left:0;padding-top:8px;padding-left:0}.available-slot,.action-row,.person-actions{grid-template-columns:1fr}}
