:root{--color-primary:#3f6664;--color-primary-dark:#2f5250;--color-primary-soft:#6f908c;--color-bg:#f7f1ea;--color-surface:#fffaf5;--color-surface-muted:#fbf3ea;--color-border:#e3d8ce;--color-text:#2f3433;--color-muted:#6b7775;--color-danger:#b66a61;--color-warning:#c79a4b;--color-success:#6b9278;--color-white:#fff;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-pill:999px;--shadow-xs:0 1px 2px #2f343314;--shadow-sm:0 8px 22px #2f343314;--shadow-md:0 18px 45px #2f34331f;--shadow-modal:0 28px 90px #2f343338;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-brand:Georgia, "Times New Roman", serif;--text-xs:12px;--text-sm:13px;--text-md:15px;--text-base:16px;--text-lg:18px;--text-xl:24px;--text-2xl:32px;--control-height:42px;--focus-ring:0 0 0 3px #3f66642e;--text:var(--color-text);--text-h:var(--color-text);--muted:var(--color-muted);--bg:var(--color-bg);--surface:var(--color-surface);--border:var(--color-border);--accent:var(--color-primary);--accent-strong:var(--color-primary-dark);--accent-soft:#6f908c2e;--focus:#3f66642e;--shadow:var(--shadow-sm);font:var(--text-base) / 1.5 var(--font-sans);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html{background:var(--color-bg);min-width:320px}body{background:var(--color-bg);min-width:320px;min-height:100svh;color:var(--color-text);margin:0}button,input,select,textarea{font:inherit}button{min-height:var(--control-height);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.68}input,select,textarea{width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-text);outline:none;padding:9px 12px;transition:border-color .16s,box-shadow .16s,background-color .16s}textarea{resize:vertical;min-height:88px}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}label{color:var(--color-muted);font-size:var(--text-sm);font-weight:700}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--color-text);letter-spacing:0;line-height:1.15}h1{font-size:clamp(28px,4vw,40px);font-weight:750}h2{font-size:var(--text-xl);font-weight:740}h3{font-size:var(--text-lg);font-weight:720}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--color-border);text-align:left;padding:12px}.card,.page-panel,.admin-card,.admin-row,.calendar-day,.appointment-card,.login-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.u-muted{color:var(--color-muted)}.u-surface{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.u-stack{gap:var(--space-4);display:grid}.u-row{align-items:center;gap:var(--space-3);display:flex}#root{min-height:100svh}@media (width<=720px){:root{--text-base:15px;--control-height:46px}body{background:var(--color-bg)}}.login-page{min-height:100svh;padding:var(--space-8) var(--space-4);background:var(--color-bg);place-items:center;display:grid}.login-panel{gap:var(--space-6);width:min(430px,100%);padding:var(--space-8);box-shadow:var(--shadow-md);display:grid}.login-panel h1{color:var(--color-primary-dark)}.eyebrow{margin-bottom:var(--space-2);color:var(--color-primary);font-size:var(--text-sm);letter-spacing:0;text-transform:uppercase;font-weight:800}.login-form,.admin-section,.admin-page,.calendar-page{gap:var(--space-5);display:grid}.admin-section{align-content:start;align-items:start}.login-form label,.calendar-filters label,.admin-filters label,.appointment-form label{gap:var(--space-2);text-align:left;display:grid}.login-form button,.calendar-filters button,.modal-actions button:last-child,.form-actions button:first-child,.services-manager .row-actions button,.new-patient-grid button{background:var(--color-primary);color:var(--color-white);font-weight:800}.login-form button:hover:not(:disabled),.calendar-filters button:hover:not(:disabled),.modal-actions button:last-child:hover:not(:disabled),.form-actions button:first-child:hover:not(:disabled),.services-manager .row-actions button:hover:not(:disabled),.new-patient-grid button:hover:not(:disabled){background:var(--color-primary-dark)}.form-error{border-radius:var(--radius-sm);color:#8d4d46;font-size:var(--text-sm);padding:var(--space-3);text-align:left;background:#b66a611f;border:1px solid #b66a6147}.field-error{color:#8d4d46;font-size:var(--text-xs);font-weight:800}.app-shell{flex-direction:column;min-height:100svh;display:flex}.topbar{z-index:10;align-items:center;gap:var(--space-6);min-height:68px;padding:0 var(--space-6);background:var(--color-primary);box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid;position:sticky;top:0}.brand{justify-self:start;align-items:center;gap:var(--space-2);color:var(--color-surface);font-family:var(--font-brand);white-space:nowrap;font-size:25px;font-weight:700;display:inline-flex}.brand-logo{object-fit:contain;width:auto;max-width:150px;height:42px;display:block}.nav-tabs{gap:var(--space-2);justify-content:center;justify-self:center;align-items:center;min-width:0;display:flex}.nav-tabs a,.admin-tabs button{border-radius:var(--radius-pill);font-size:var(--text-sm);padding:9px 14px;font-weight:800;text-decoration:none}.nav-tabs a{color:#fffaf5c7}.nav-tabs a.active{color:var(--color-surface);background:#fffaf52e}.admin-tabs button{color:var(--color-muted);background:0 0}.admin-tabs button.active{color:var(--color-primary-dark);background:#3f66641f}.session-actions{justify-content:end;justify-self:end;align-items:center;gap:var(--space-3);color:#fffaf5d1;font-size:var(--text-sm);min-width:0;display:flex}.session-actions span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-actions button,.modal-actions button:first-child,.row-actions button,.selected-patient button,.secondary-action{border-color:var(--color-border);background:var(--color-surface);color:var(--color-primary-dark);font-weight:800}.session-actions button{min-height:36px;color:var(--color-surface);background:0 0;border-color:#fffaf557}.session-actions button:hover:not(:disabled){background:#fffaf51f;border-color:#fffaf5b3}.modal-actions button:first-child:hover:not(:disabled),.row-actions button:hover:not(:disabled),.selected-patient button:hover:not(:disabled),.secondary-action:hover:not(:disabled){border-color:var(--color-primary-soft);background:#6f908c1a}.app-content{width:min(1180px,100%);padding:var(--space-8) var(--space-6);flex:1;margin:0 auto}.page-panel{gap:var(--space-3);padding:var(--space-8);text-align:left;display:grid}.calendar-header{justify-content:space-between;align-items:end;gap:var(--space-6);text-align:left;display:flex}.calendar-header p:last-child{max-width:720px;color:var(--color-muted)}.calendar-filters,.admin-filters,.admin-form{align-items:end;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);display:grid}.calendar-filters{grid-template-columns:repeat(4,minmax(140px,1fr)) auto}.admin-filters,.admin-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.calendar-error{border-radius:var(--radius-sm);color:#7e612d;padding:var(--space-3);background:#c79a4b24;border:1px solid #c79a4b52}.calendar-state{border:1px dashed var(--color-border);border-radius:var(--radius-md);min-height:260px;color:var(--color-muted);background:#fffaf5b8;place-items:center;display:grid}.appointment-calendar{gap:var(--space-4);display:grid}.calendar-day{overflow:hidden}.calendar-day>header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-primary-dark);text-align:left;text-transform:capitalize;font-weight:800}.day-appointments{gap:var(--space-3);padding:var(--space-3);display:grid}.appointment-card{align-items:center;gap:var(--space-4);border-left:5px solid var(--color-primary);padding:var(--space-3) var(--space-4);text-align:left;grid-template-columns:140px 1fr minmax(180px,auto) auto;display:grid}.appointment-card h3{font-size:var(--text-base)}.appointment-time{color:var(--color-primary-dark);font-size:var(--text-sm);font-weight:800}.appointment-card dl{gap:var(--space-3) var(--space-5);flex-wrap:wrap;margin:0;display:flex}.appointment-card dt{color:var(--color-muted);font-size:var(--text-xs);font-weight:800}.appointment-card dd{color:var(--color-text);font-size:var(--text-sm);margin:0}.status-pill,.active-dot,.inactive-dot{border-radius:var(--radius-pill);width:fit-content;font-size:var(--text-xs);white-space:nowrap;justify-content:center;align-items:center;padding:5px 9px;font-weight:800;display:inline-flex}.status-pill{color:var(--color-primary-dark);background:#6f908c29;justify-self:end}.status-no_show,.inactive-dot{color:#8d4d46;background:#b66a6129}.status-cancelled{color:#6b7775;background:#eeeeea}.status-completed,.active-dot{color:#496b55;background:#6b92782e}.status-paid{color:#496b55;background:#e6f2ea}.status-rescheduled{color:#7e612d;background:#c79a4b2e}.modal-backdrop{z-index:20;padding:var(--space-6);background:#2f34336b;place-items:center;display:grid;position:fixed;inset:0}.appointment-modal{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(820px,100%);max-height:min(860px,100svh - 48px);box-shadow:var(--shadow-modal);position:relative;overflow:auto}.modal-header{z-index:1;justify-content:space-between;align-items:start;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface);text-align:left;display:flex;position:sticky;top:0}.modal-header button{border-color:var(--color-border);background:var(--color-surface-muted);width:38px;height:38px;min-height:38px;color:var(--color-text);font-size:24px;line-height:1}.appointment-form{gap:var(--space-5);padding:var(--space-5) var(--space-6) var(--space-6);display:grid}.form-section{gap:var(--space-3);text-align:left;display:grid}.client-history-action{padding:var(--space-3);border-radius:var(--radius-sm);background:#6f908c14;border:1px solid #3f666429;justify-content:flex-start;display:flex}.client-history-action button{background:var(--color-surface);color:var(--color-primary-dark);border-color:#3f666442;font-weight:800}.client-history-modal{width:min(760px,100%)}.client-history-scroll{max-height:min(560px,100svh - 230px);padding:var(--space-5) var(--space-6);overflow:auto}.client-history-table{min-width:620px}.client-history-table th,.client-history-table td{vertical-align:middle}.section-heading{align-items:center;gap:var(--space-2);display:flex}.section-heading-with-action{justify-content:space-between}.section-heading-with-action>div{align-items:center;gap:var(--space-2);display:flex}.section-heading span{border-radius:var(--radius-pill);width:26px;height:26px;color:var(--color-primary-dark);font-size:var(--text-xs);background:#3f66641f;place-items:center;font-weight:900;display:inline-grid}.section-heading h3{font-size:var(--text-base)}.patient-results,.rank-list{gap:var(--space-2);display:grid}.patient-results button,.selected-patient{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.patient-results button{justify-content:space-between;gap:var(--space-3);color:var(--color-text);text-align:left;padding:9px 10px;display:flex}.patient-results small,.helper-text,.rank-list small,.entity-cell span,.data-table td{color:var(--color-muted)}.selected-patient{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);display:flex}.selected-patient span{color:var(--color-text);font-weight:800}.new-patient-grid,.appointment-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.full-width{grid-column:1/-1}.modal-actions,.form-actions,.row-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-actions{padding-top:var(--space-1);justify-content:end}.admin-tabs{box-sizing:border-box;justify-self:center;align-items:center;gap:var(--space-2);width:min(820px,100%);height:58px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);-webkit-overflow-scrolling:touch;display:flex;overflow:auto hidden}.admin-tabs button{box-sizing:border-box;border-radius:var(--radius-pill);text-align:center;white-space:nowrap;border:1px solid #0000;flex:1 0 130px;height:40px;min-height:40px;padding:0 14px;line-height:1;overflow:hidden}.admin-tabs button.active{border-color:#0000;box-shadow:inset 0 0 0 1px #3f66640f}.admin-form h2{font-size:var(--text-lg);grid-column:1/-1}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stats-toolbar{align-items:center;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);display:grid}.stats-period{gap:var(--space-2);padding:var(--space-3);grid-template-columns:repeat(2,142px)}.stats-period input{min-height:38px;font-size:var(--text-sm);padding:7px 9px}.stats-modifiers{align-items:center;gap:var(--space-2);min-height:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);display:flex}.modifier-group,.stats-modifiers{min-width:0}.modifier-group,.stats-modifiers>button{gap:var(--space-2);flex:none;display:flex}.modifier-group button,.stats-modifiers>button{border-color:var(--color-border);background:var(--color-surface-muted);min-height:36px;color:var(--color-primary-dark);padding:7px 12px;font-weight:800}.modifier-group button:hover:not(:disabled),.stats-modifiers>button:hover:not(:disabled),.modifier-group button:focus-visible,.stats-modifiers>button:focus-visible{border-color:var(--color-primary-soft);color:var(--color-primary-dark);background:#6f908c1f}.modifier-group button.active,.stats-modifiers>button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-white)}.stats-modifiers p{max-width:none;color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.25}.stats-card{gap:var(--space-3);align-content:space-between;min-height:132px;display:grid}.stats-grid article,.admin-card,.admin-table-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.stats-grid article,.admin-card{padding:var(--space-4)}.stats-grid span{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.stats-grid strong{color:var(--color-primary-dark);word-break:break-word;font-size:clamp(1.55rem,2vw,2.2rem);line-height:1.05}.admin-lists{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-card h2{margin-bottom:var(--space-3);font-size:var(--text-lg)}.rank-list{margin:0;padding:0;list-style:none}.rank-list li{gap:var(--space-3);padding:var(--space-2) 0;grid-template-columns:1fr auto;align-items:center;display:grid}.admin-table-card{-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto hidden}.admin-table-card:focus-within{outline-offset:2px;outline:2px solid #3f66642e}.data-table{border-collapse:collapse;width:100%;min-width:760px}.professionals-table{min-width:980px}.users-table{min-width:900px}.data-table th,.data-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table .entity-cell,.data-table td:first-child{white-space:normal}.data-table th{color:var(--color-primary-dark);font-size:var(--text-xs);text-transform:uppercase;font-weight:900}.data-table td{vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.entity-cell,.services-manager{gap:var(--space-1);display:grid}.entity-cell strong,.services-manager h3{color:var(--color-text)}.color-swatch{border-radius:var(--radius-pill);width:12px;height:12px;display:inline-block;box-shadow:0 0 0 3px #3f66641f}.entity-cell:has(.color-swatch){grid-template-columns:auto 1fr;align-items:center}.services-manager{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.check-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.check-grid label{align-items:center;gap:var(--space-2);color:var(--color-text);display:flex}.check-grid input{width:auto;min-height:auto}.professional-search{justify-content:start;align-items:start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);grid-template-columns:minmax(0,420px);display:grid}.professional-search label{gap:var(--space-2);text-align:left;display:grid}.professional-search button{background:var(--color-primary);color:var(--color-white);justify-self:start;font-weight:800}.service-search{grid-template-columns:minmax(0,420px) auto;align-items:end}.service-search-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.service-view-switch{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-muted);align-items:center;gap:2px;padding:3px;display:inline-flex}.service-view-switch button{border-radius:var(--radius-pill);min-height:34px;color:var(--color-primary-dark);background:0 0;border:1px solid #0000;padding:7px 12px}.service-view-switch button:hover:not(:disabled),.service-view-switch button:focus-visible{color:var(--color-primary-dark);background:#6f908c1a;border-color:#3f66642e}.service-view-switch button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-white)}.loyalty-programs-table{min-width:820px}.professionals-table .entity-cell{min-width:180px}.professional-modal{width:min(860px,100%)}.user-modal{width:min(780px,100%)}.user-card-list{display:none}.user-card{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);display:grid}.user-card header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.user-card dl{gap:var(--space-2);margin:0;display:grid}.user-card dt{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.user-card dd{color:var(--color-text);margin:0}.services-selector{gap:var(--space-2);max-height:280px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:auto}.services-selector label{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);background:#fffaf5bd;border:1px solid #0000;display:flex}.services-selector label:has(input:checked){background:#6f908c1f;border-color:#3f666457}.services-selector input{width:auto;min-height:auto;margin-top:3px}.services-selector span{gap:2px;display:grid}.services-selector small{color:var(--color-muted)}.loyalty-form{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.loyalty-form label{gap:var(--space-2);text-align:left;display:grid}.loyalty-card-list{gap:var(--space-3);display:grid}.loyalty-card-item{gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs);display:grid}.loyalty-card-item header{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.loyalty-card-item header>div{gap:var(--space-1);display:grid}.loyalty-card-item p{color:var(--color-muted);font-size:var(--text-sm);margin:0}.loyalty-card-meta{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.loyalty-card-meta dt{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.loyalty-card-meta dd{color:var(--color-text);font-size:var(--text-sm);margin:0}.loyalty-history{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);display:grid}.loyalty-history p{margin:0}.loyalty-history article{gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-muted);font-size:var(--text-sm);background:#fffaf5c7;grid-template-columns:1.1fr 1fr .8fr .9fr;align-items:center;display:grid}.loyalty-history article strong{color:var(--color-primary-dark)}.loyalty-progress{border-radius:var(--radius-pill);background:#6f908c24;height:10px;overflow:hidden}.loyalty-progress span{border-radius:inherit;background:var(--color-primary-soft);height:100%;display:block}.linked-services-summary{gap:var(--space-2);flex-wrap:wrap;display:flex}.linked-services-summary span{border-radius:var(--radius-pill);color:var(--color-primary-dark);font-size:var(--text-sm);background:#6f908c1f;border:1px solid #3f66642e;align-items:center;padding:6px 10px;font-weight:800;display:inline-flex}.empty-inline-state{color:var(--color-muted);font-size:var(--text-sm);margin:0}.linked-services-button{justify-self:start}.services-popup{width:min(680px,100vw - 48px);max-height:min(720px,100svh - 96px);overflow:auto}.services-popup-header{justify-content:space-between;align-items:start;gap:var(--space-4);margin-bottom:var(--space-4);text-align:left;display:flex}.services-popup-header h3{color:var(--color-text);font-size:var(--text-lg)}.services-popup-header button{border-color:var(--color-border);background:var(--color-surface-muted);width:36px;height:36px;min-height:36px;color:var(--color-text);font-size:22px;line-height:1}.schedule-editor{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);display:grid}.schedule-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);background:#fffaf5b8;grid-template-columns:minmax(130px,1fr) minmax(110px,.7fr) minmax(110px,.7fr);display:grid}.schedule-row label{gap:var(--space-1);display:grid}.schedule-day{color:var(--color-text);align-items:center;font-weight:800;gap:var(--space-2)!important;display:flex!important}.schedule-day input{width:auto;min-height:auto}@media (width<=920px){.calendar-filters,.admin-filters,.admin-form,.stats-grid,.loyalty-form{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-toolbar{grid-template-columns:1fr}.stats-period{grid-template-columns:repeat(2,minmax(140px,1fr))}.stats-modifiers{flex-wrap:wrap}.professional-search{grid-template-columns:1fr}.calendar-filters button,.form-actions{grid-column:1/-1}}@media (width<=720px){.topbar{gap:var(--space-3);padding:var(--space-4);grid-template-columns:1fr auto}.brand{align-self:center}.nav-tabs{order:3;grid-area:2/1/auto/-1;justify-content:center;width:100%}.session-actions{justify-content:end;justify-self:end;width:auto;max-width:min(54vw,280px)}.session-actions span{max-width:120px}.nav-tabs a{text-align:center;flex:1}.admin-tabs button{text-align:center}.app-content{padding:var(--space-5) var(--space-4)}.login-panel,.page-panel{padding:var(--space-6)}.calendar-header{flex-direction:column;align-items:start}.calendar-filters,.admin-filters,.admin-form,.stats-period,.stats-grid,.admin-lists,.check-grid,.services-selector,.loyalty-form,.loyalty-card-meta,.loyalty-history article,.schedule-row{grid-template-columns:1fr}.stats-modifiers,.modifier-group{width:100%}.modifier-group button,.stats-modifiers>button{flex:1}.appointment-card,.rank-list li{grid-template-columns:1fr}.appointment-card{padding:var(--space-4);align-items:start}.appointment-list-cell{gap:var(--space-3);white-space:normal;grid-template-columns:96px minmax(0,1fr);width:100%;display:grid}.appointment-list-cell:before{content:attr(data-label);color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.appointment-list-status,.appointment-list-payment,.appointment-list-action{text-align:left;min-width:0}.appointment-list-status .status-pill{justify-self:start;min-width:0}.payment-amount-card,.bonus-use-summary,.bonus-purchase-summary,.appointment-confirm-summary{grid-template-columns:1fr}.status-pill{justify-self:start}.modal-backdrop{padding:var(--space-2)}.appointment-modal{width:100%;max-height:calc(100svh - var(--space-4));border-radius:var(--radius-md);overflow:hidden auto}.new-patient-grid,.appointment-grid{grid-template-columns:1fr}.modal-header,.appointment-form{padding-inline:var(--space-4)}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}@media (width<=460px){.topbar{grid-template-columns:1fr}.brand,.session-actions{justify-self:center}.session-actions{justify-content:center;max-width:100%}.admin-page{height:calc(100svh - 176px);padding:var(--space-3)}.admin-table-card{max-width:calc(100vw - (var(--space-3) * 2))}.professional-search{padding:var(--space-3)}}.app-shell{height:100svh;overflow:hidden}.app-content{flex:1;width:100%;max-width:none;min-height:0;padding:0;overflow:hidden}.admin-page{height:100%;min-height:0;padding:var(--space-6);grid-template-rows:58px minmax(0,1fr);align-content:start;align-items:start;display:grid;overflow:hidden}.admin-page>.admin-section{overscroll-behavior:contain;height:100%;min-height:0;max-height:100%;padding-right:var(--space-1);-webkit-overflow-scrolling:touch;align-self:stretch;overflow:auto}.admin-page>.admin-section:has(>.professional-search){grid-template-rows:auto auto minmax(0,1fr);align-self:stretch;height:100%;overflow:hidden}.admin-page>.admin-list-section{grid-template-rows:auto auto minmax(0,1fr);align-self:stretch;height:100%;overflow:hidden}.admin-page>.admin-list-section>.calendar-error{grid-row:2}:is(.admin-page>.admin-section:has(>.professional-search)>.admin-table-card,.admin-page>.admin-section:has(>.professional-search)>.calendar-state,.admin-page>.admin-list-section>.admin-table-card,.admin-page>.admin-list-section>.calendar-state){-webkit-overflow-scrolling:touch;grid-row:3;min-height:0;max-height:100%;overflow:auto}.calendar-page{grid-template-columns:300px minmax(0,1fr);gap:0;height:100%;min-height:0;display:grid}.calendar-sidebar{align-content:start;gap:var(--space-5);min-height:0;padding:var(--space-6);border-right:1px solid var(--color-border);background:var(--color-bg);display:grid;overflow:auto}.calendar-sidebar .calendar-header{gap:var(--space-3);display:grid}.calendar-sidebar .calendar-header h1{font-size:var(--text-2xl)}.calendar-filters{top:var(--space-5);grid-template-columns:1fr;align-items:stretch;position:sticky}.filter-title{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.filter-title h2{font-size:var(--text-lg)}.filter-title button,.calendar-filters button:last-child{width:100%}.filter-title button{border-color:var(--color-border);background:var(--color-surface-muted);width:auto;min-height:34px;color:var(--color-primary-dark)}.filter-title button:hover:not(:disabled),.filter-title button:focus-visible{border-color:var(--color-primary-soft);color:var(--color-primary-dark);background:#6f908c29}.filter-title button:disabled{background:var(--color-surface-muted);color:var(--color-muted)}.calendar-main{gap:var(--space-4);min-height:0;padding:var(--space-6);grid-template-rows:auto auto minmax(0,1fr);display:grid;overflow:hidden}.calendar-main-header{justify-content:space-between;align-items:end;gap:var(--space-4);display:flex}.calendar-main-header h2{text-transform:capitalize}.calendar-main-header button{background:var(--color-primary);color:var(--color-white);font-weight:800}.view-switcher{gap:var(--space-1);padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-xs);display:inline-flex}.view-switcher button{border-radius:var(--radius-pill);min-height:36px;color:var(--color-primary-dark);background:0 0;border-color:#0000;padding:7px 13px;font-weight:800}.view-switcher button:hover:not(:disabled),.view-switcher button:focus-visible{color:var(--color-primary-dark);background:#6f908c24}.view-switcher button.active{background:var(--color-primary);color:var(--color-white)}.view-switcher button.active:hover:not(:disabled),.view-switcher button.active:focus-visible{background:var(--color-primary-dark);color:var(--color-white)}.appointment-calendar{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.calendar-state-inline{min-height:auto;padding:var(--space-3);margin-bottom:var(--space-3)}.time-grid{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:0;box-shadow:var(--shadow-xs);overflow:auto}.time-grid-body{min-height:936px;padding-left:78px;position:relative}.time-slot{background:linear-gradient(to right, #f7f1ea99, transparent 18%), var(--color-surface);border-bottom:1px solid #e3d8cebd;height:72px;position:relative}.time-slot time{color:var(--color-muted);font-size:var(--text-xs);font-weight:800;position:absolute;top:0;left:-62px;transform:translateY(-50%)}.time-slot:first-child time{transform:none}.calendar-events-layer{inset:0 var(--space-3) 0 78px;position:absolute}.calendar-event{border:1px solid var(--color-primary);border-radius:var(--radius-sm);min-width:0;box-shadow:var(--shadow-sm);color:var(--color-text);padding:var(--space-2) var(--space-3);text-align:left;cursor:pointer;background:#fffaf5f5;border-left-width:6px;align-items:center;display:flex;position:absolute;overflow:hidden}.calendar-event:hover,.calendar-event:focus-visible{background:var(--color-surface);box-shadow:var(--shadow-md);z-index:2}.calendar-event-line{align-items:center;gap:var(--space-2);width:100%;min-width:0;color:var(--color-text);font-size:var(--text-xs);white-space:nowrap;line-height:1.25;display:flex}.calendar-event-line>*{text-overflow:ellipsis;min-width:0;overflow:hidden}.calendar-event-line>*+:before{content:"|";margin-right:var(--space-2);color:var(--color-border)}.calendar-event strong,.calendar-event-line strong{color:var(--color-text);font-size:var(--text-xs);flex:none}.calendar-event span,.calendar-event-line span{color:var(--color-muted);font-size:var(--text-xs);line-height:1.25}.calendar-event-no-show{background:#f7e6e3;border-style:dashed}.calendar-event-cancelled{opacity:.78;background:#eeeeea;border-style:dashed;border-color:#c9c9c3!important}.calendar-event-paid{background:#e6f2ea}.calendar-event-paid.calendar-event-no-show{background:#f7e6e3}.calendar-event-paid.calendar-event-cancelled{background:#eeeeea}.calendar-event-compact{padding-inline:var(--space-2)}.calendar-event-compact .calendar-event-line{gap:var(--space-1)}.calendar-event-compact .calendar-event-line span:nth-of-type(n+2){display:none}.appointment-list-card{border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text);cursor:pointer;grid-template-columns:minmax(112px,.85fr) minmax(130px,1fr) minmax(130px,1fr) minmax(150px,1.2fr) minmax(132px,.9fr) minmax(96px,.7fr) minmax(94px,.65fr)}.appointment-list-cell{min-width:0;color:var(--color-text);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.appointment-list-status{min-width:132px;display:flex}.appointment-list-status .status-pill{min-width:118px}.appointment-list-payment,.appointment-list-action{color:var(--color-primary-dark);font-weight:800}.appointment-list-action{text-align:right}.appointment-list-card:hover,.appointment-list-card:focus-visible{border-color:var(--color-primary-soft);background:#6f908c14}.appointment-list-card-no-show{background:#f7e6e3}.appointment-list-card-cancelled{opacity:.82;background:#eeeeea}.appointment-list-card-paid{background:#e6f2ea}.appointment-list-card-paid.appointment-list-card-no-show{background:#f7e6e3}.appointment-list-card-paid.appointment-list-card-cancelled{background:#eeeeea}.payment-panel{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);display:grid}.payment-panel>span{color:var(--color-primary-dark);font-weight:800}.payment-amount-card{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:#6b92781f;border:1px solid #3f66642e;grid-template-columns:minmax(0,1.2fr) minmax(120px,.8fr) minmax(120px,.8fr);display:grid}.payment-amount-card div{gap:3px;min-width:0;display:grid}.payment-amount-card small{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.payment-amount-card strong{min-width:0;color:var(--color-primary-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bonus-purchase-summary{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:#6b92781a;border:1px solid #3f666433;grid-template-columns:minmax(0,1.3fr) minmax(90px,.6fr) minmax(110px,.7fr);display:grid}.bonus-purchase-summary div{gap:3px;min-width:0;display:grid}.bonus-purchase-summary small{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:900}.bonus-purchase-summary strong{min-width:0;color:var(--color-primary-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bonus-purchase-summary p{color:var(--color-muted);font-size:var(--text-sm);grid-column:1/-1;margin:0}.bonus-payment-panel{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:#fffaf5b3;border:1px solid #3f66642e;display:grid}.bonus-payment-panel p{color:var(--color-muted);font-size:var(--text-sm);margin:0}.bonus-payment-panel label{gap:var(--space-2);display:grid}.bonus-use-summary{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:#6b92781f;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(110px,.7fr);display:grid}.bonus-use-summary div{gap:3px;min-width:0;display:grid}.bonus-use-summary small{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:900}.bonus-use-summary strong{min-width:0;color:var(--color-primary-dark);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bonus-use-summary p{color:var(--color-primary-dark);grid-column:1/-1;font-weight:800}.pending-outcome{color:var(--color-primary-dark);font-size:var(--text-sm);margin:0;font-weight:800}.schedule-warning{padding:var(--space-3);border-radius:var(--radius-sm);color:#7e612d;font-size:var(--text-sm);background:#c79a4b24;border:1px solid #c79a4b57;margin:0;font-weight:800}.row-actions button.is-selected{border-color:var(--color-primary);color:var(--color-primary-dark);background:#6b92782e;box-shadow:0 0 0 3px #3f66641a}.row-actions button.is-selected:hover:not(:disabled),.row-actions button.is-selected:focus-visible{border-color:var(--color-primary-dark);color:var(--color-primary-dark);background:#6b92783d}.danger-zone{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:#b66a6114;border:1px solid #b66a6147;display:flex}.danger-zone strong{color:#8d4d46}.danger-zone p{color:var(--color-muted);font-size:var(--text-sm);margin:0}button.destructive-action,.modal-actions button.destructive-action:last-child{color:#8d4d46;background:#b66a6124;border-color:#b66a6161;font-weight:800}button.destructive-action:hover:not(:disabled),.modal-actions button.destructive-action:last-child:hover:not(:disabled),button.destructive-action:focus-visible,.modal-actions button.destructive-action:last-child:focus-visible{color:#753f39;background:#b66a6138;border-color:#b66a6194}.confirm-panel{z-index:3;padding:var(--space-5);background:#2f34335c;place-items:center;display:grid;position:absolute;inset:0}.confirm-card{gap:var(--space-3);width:min(430px,100%);padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-modal);text-align:left;border:1px solid #b66a6147;display:grid}.confirm-card h3{color:#8d4d46;font-size:var(--text-lg)}.confirm-card p{color:var(--color-text)}.appointment-confirm-card{width:min(560px,100%)}.appointment-confirm-summary{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-muted);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.appointment-confirm-summary div{gap:3px;min-width:0;display:grid}.appointment-confirm-summary dt{color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:900}.appointment-confirm-summary dd{min-width:0;color:var(--color-text);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0;font-weight:800}.appointment-detail-modal{width:min(520px, calc(100% - var(--space-6)));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-modal);overflow:hidden}.appointment-detail-body{gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-6);display:grid}.mobile-agenda-list,.appointment-calendar.view-list .time-grid{display:none}.appointment-calendar.view-list .mobile-agenda-list{gap:var(--space-3);min-height:0;padding-right:var(--space-1);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:grid;overflow:auto}@media (width<=920px){.app-shell{height:auto;min-height:100svh;overflow:visible}.app-content{min-height:0;overflow:hidden}.admin-page{height:calc(100svh - 100px);min-height:0;overflow:hidden}.admin-page>.admin-section{overflow:auto}:is(.admin-page>.admin-section:has(>.professional-search),.admin-page>.admin-list-section){overflow:hidden}.calendar-page{grid-template-columns:1fr;min-height:auto}.calendar-sidebar{border-right:0;border-bottom:1px solid var(--color-border);overflow:visible}.calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));position:static}.filter-title,.calendar-filters button:last-child{grid-column:1/-1}.calendar-main{overflow:visible}}@media (width<=720px){.calendar-sidebar,.calendar-main{padding:var(--space-4)}.admin-page{height:calc(100svh - 132px);padding:var(--space-4);grid-template-rows:auto minmax(0,1fr)}.admin-tabs{justify-self:stretch;width:100%}.admin-tabs button{flex-basis:124px}.admin-table-card{max-width:calc(100vw - (var(--space-4) * 2))}:is(.admin-page>.admin-section:has(>.professional-search)>.admin-table-card,.admin-page>.admin-section:has(>.professional-search)>.calendar-state,.admin-page>.admin-list-section>.admin-table-card,.admin-page>.admin-list-section>.calendar-state){max-height:100%;overflow:auto}.data-table{min-width:760px}.calendar-filters{grid-template-columns:1fr}.calendar-main-header{flex-direction:column;align-items:start}.calendar-main-header button,.view-switcher{width:100%}.view-switcher button{flex:1;width:auto}.time-grid{display:none}.mobile-agenda-list{gap:var(--space-3);display:grid}.appointment-calendar{display:block;overflow:visible}.appointment-calendar.view-list{grid-template-rows:auto minmax(0,1fr);max-height:calc(100svh - 260px);display:grid;overflow:hidden}.appointment-calendar.view-list .mobile-agenda-list{overflow:auto}.appointment-list-card{gap:var(--space-3);padding:var(--space-4);border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:1fr;display:grid}.appointment-list-cell{gap:var(--space-3);text-align:left;white-space:normal;grid-template-columns:96px minmax(0,1fr);width:100%;min-width:0;display:grid;overflow:visible}.appointment-list-cell:before{content:attr(data-label);color:var(--color-muted);font-size:var(--text-xs);text-transform:uppercase;font-weight:800}.appointment-list-status{min-width:0}.appointment-list-status .status-pill{justify-self:start;min-width:0}.appointment-list-action{text-align:left}.users-table{display:none}.users-table-card{box-shadow:none;background:0 0;border:0;overflow:auto}.user-card-list{gap:var(--space-3);display:grid}}
