:root{color-scheme:dark;--bg:#0d0507;--panel:#171013;--panel-soft:#20171a;--line:#3a2e32;--text:#f7f2f3;--muted:#bdb1b5;--accent:#f0d7de;--accent-contrast:#1a1013;--accent-emphasis:#f0d7de;--input-bg:#100a0c;--chrome-bg:rgba(13,5,7,0.97);--hover-bg:rgba(255,255,255,0.035);--danger:#f3a1aa;--danger-contrast:#2b0c10;--success:#bfe4c8;--shadow:0 22px 60px rgba(0,0,0,0.26);--font-family-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:600;--brand-logo-width-topbar:200px;--brand-logo-width-login:210px;--topbar-side-width-mobile:88px;--button-radius:8px;--button-radius-compact:7px;--tab-radius:8px;} *{box-sizing:border-box;} html{max-width:100%;overflow-x:hidden;background:var(--bg);} body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-family-ui);font-weight:var(--font-weight-regular);font-synthesis:none;font-size:17px;line-height:1.45;max-width:100%;overflow-x:hidden;} button,input,select{font:inherit;} button,input,select,textarea{transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease,transform 160ms ease,filter 160ms ease;} input,select{min-height:44px;} button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid var(--accent);border-radius:var(--button-radius);padding:0.38rem 0.85rem;background:var(--accent);color:var(--accent-contrast,#1a1013);font-weight:var(--font-weight-bold);line-height:1;cursor:pointer;white-space:nowrap;} button:hover{filter:brightness(1.05);transform:translateY(-1px);} button:active{transform:translateY(0);} button:disabled{cursor:not-allowed;opacity:0.55;} button.secondary{background:transparent;color:var(--text);border-color:var(--line);} button.danger{background:var(--danger);border-color:var(--danger);color:var(--danger-contrast,#2b0c10);} button.compact{min-height:32px;padding:0.28rem 0.7rem;border-radius:var(--button-radius-compact);} button.icon-button{min-width:36px;min-height:36px;padding:0;border-radius:var(--button-radius);font-size:1.45rem;background:transparent;color:var(--text);border-color:transparent;} input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:0.65rem 0.72rem;background:var(--input-bg,#100a0c);color:var(--text);} input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);} button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;} label{display:grid;gap:0.38rem;color:var(--muted);font-size:0.92rem;font-weight:var(--font-weight-medium);} h1,h2,h3,p{margin-top:0;} h1{font-size:clamp(1.55rem,5vw,2.3rem);margin-bottom:0;font-weight:var(--font-weight-bold);} h2{font-size:1.2rem;margin-bottom:0.7rem;font-weight:var(--font-weight-bold);} h3{font-size:1.05rem;margin-bottom:0;font-weight:var(--font-weight-medium);} .eyebrow,.section-kicker{margin-bottom:0.3rem;text-transform:uppercase;letter-spacing:0.11em;font-size:0.78rem;color:var(--muted);font-weight:var(--font-weight-medium);} .muted{color:var(--muted);} .small{font-size:0.9rem;} .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;min-height:88px;padding:max(0.65rem,env(safe-area-inset-top)) clamp(1rem,4vw,2.5rem) 0.65rem;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:var(--chrome-bg);backdrop-filter:blur(16px);} .topbar-brand{display:contents;} .topbar-logo-link{grid-column:1;justify-self:start;display:block;width:var(--brand-logo-width-topbar);max-width:100%;border-radius:6px;line-height:0;transition:filter 160ms ease,transform 160ms ease;} .topbar-logo-link:hover{filter:brightness(1.08);transform:translateY(-1px);} .topbar-logo-link:active{transform:translateY(0);} .topbar-logo-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;} .topbar-logo{display:block;width:100%;max-width:100%;max-height:70px;height:auto;object-fit:contain;object-position:left center;} .topbar-title{grid-column:2;justify-self:center;min-width:0;text-align:center;} .topbar-title .eyebrow{margin-bottom:0.15rem;} .topbar h1{font-size:clamp(1.1rem,2.4vw,1.55rem);line-height:1.12;white-space:nowrap;} .topbar>#logoutButton{grid-column:3;justify-self:end;} .mobile-nav-toggle{display:none;} .nav-backdrop{display:none;} .nav-drawer-header{display:none;} .tabbar{position:fixed;top:88px;bottom:0;left:0;z-index:19;display:flex;width:218px;flex-direction:column;gap:0.34rem;overflow-y:auto;overflow-x:hidden;padding:0.85rem 0.7rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid var(--line);background:var(--chrome-bg);backdrop-filter:blur(16px);scrollbar-width:thin;scrollbar-color:var(--line) transparent;} .tab-button{flex:0 0 auto;display:flex;width:100%;min-height:46px;align-items:center;justify-content:flex-start;gap:0.72rem;padding:0.65rem 0.78rem;border-radius:10px;background:transparent;color:var(--muted);border-color:transparent;text-align:left;} .tab-button .ui-icon{flex:0 0 18px !important;width:18px !important;height:18px !important;min-width:18px !important;max-width:18px !important;min-height:18px !important;max-height:18px !important;} .tab-button span{min-width:0;} .tab-button:hover{color:var(--text);background:var(--hover-bg);} .tab-button.is-active{color:var(--accent-contrast,#1a1013);background:var(--accent);border-color:var(--accent);} .shell{width:auto;max-width:1440px;min-width:0;margin:1.2rem 1.25rem 4rem calc(218px + 1.25rem);} .tab-panel{display:none;min-width:0;gap:1rem;} .tab-panel.is-active{display:grid;} .panel{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(1rem,3vw,1.5rem);box-shadow:var(--shadow);} .section-heading-row{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;} .compact-heading{align-items:center;margin-top:1rem;} .field-inline{min-width:min(220px,100%);} .toolbar{display:flex;flex-wrap:wrap;gap:0.55rem;margin:0.8rem 0 1rem;} .panel-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;} .panel-actions>:first-child{flex:1 1 auto;min-width:0;} .panel-actions>button{flex:0 0 auto;} .dashboard-panel{display:grid;gap:1.1rem;} .dashboard-heading{align-items:center;margin-bottom:0;} .dashboard-heading h2{margin-bottom:0.25rem;} .dashboard-heading p:last-child{margin-bottom:0;} .dashboard-period-block{display:grid;gap:0.55rem;} .dashboard-period-heading{color:var(--muted);font-size:0.84rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.07em;} .dashboard-period-heading .ui-icon{color:var(--muted);} .dashboard-metrics{display:grid;gap:0.7rem;} .dashboard-metrics-five{grid-template-columns:repeat(5,minmax(0,1fr));} .dashboard-metric{display:grid;align-content:start;gap:0.18rem;min-width:0;padding:0.85rem 0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);} .dashboard-metric span{color:var(--muted);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.065em;line-height:1.25;} .dashboard-metric .ui-heading{gap:0.35rem;} .dashboard-metric .ui-icon{color:var(--muted);} .dashboard-metric strong{font-size:1.65rem;line-height:1.05;color:var(--text);} .dashboard-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.7rem;} .dashboard-detail-grid.is-studio-scope{grid-template-columns:1fr;} .dashboard-focus-card{display:grid;align-content:start;gap:0.35rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--accent) 4%,transparent);} .dashboard-focus-card .section-kicker{margin-bottom:0.15rem;} .dashboard-next-time{font-size:clamp(1.45rem,3vw,2rem);line-height:1.05;} .dashboard-next-client{font-size:1.05rem;font-weight:var(--font-weight-medium);} .dashboard-week-facts{display:grid;grid-template-columns:minmax(0,0.7fr) minmax(0,0.9fr) minmax(0,1.4fr);gap:0.75rem;} .dashboard-week-facts>div{display:grid;gap:0.18rem;} .dashboard-week-facts span{color:var(--muted);font-size:0.85rem;} .dashboard-week-facts strong{font-size:1rem;line-height:1.25;} .dashboard-actions{display:flex;flex-wrap:wrap;gap:0.55rem;} .dashboard-message-reminder-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.9rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--accent) 5%,var(--panel-soft));} .dashboard-message-reminder-card[hidden]{display:none;} .dashboard-message-reminder-copy{display:flex;align-items:center;gap:0.8rem;min-width:0;} .dashboard-message-reminder-copy p{margin-bottom:0.1rem;} .dashboard-message-reminder-copy strong{display:block;font-size:1.05rem;} .dashboard-message-reminder-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:10px;color:var(--accent-emphasis,var(--accent));background:var(--panel);} .dashboard-message-reminder-icon .ui-icon{width:18px !important;height:18px !important;} .messages-panel{display:grid;gap:1rem;} .messages-heading{margin-bottom:0;} .messages-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.7rem;} .messages-summary article{display:grid;gap:0.15rem;padding:0.8rem 0.9rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);} .messages-summary span{color:var(--muted);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;} .messages-summary strong{font-size:1.35rem;} .messages-help{display:flex;align-items:flex-start;gap:0.55rem;padding:0.75rem 0.85rem;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--accent) 4%,var(--panel-soft));color:var(--muted);} .messages-help .ui-icon{flex:0 0 17px !important;width:17px !important;height:17px !important;margin-top:0.12rem;color:var(--accent-emphasis,var(--accent));} .messages-help p{margin:0;font-size:0.88rem;} .messages-reminder-list{display:grid;gap:0.75rem;} .messages-empty{display:grid;gap:0.25rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);text-align:center;} .message-reminder-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:1rem;padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);} .message-reminder-card.is-missing-phone{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));} .message-reminder-time{display:grid;align-content:start;gap:0.15rem;padding-right:0.9rem;border-right:1px solid var(--line);} .message-reminder-time strong{font-size:1.2rem;} .message-reminder-time span{color:var(--muted);font-size:0.82rem;overflow-wrap:anywhere;} .message-reminder-main{min-width:0;display:grid;gap:0.7rem;} .message-reminder-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:0.8rem;} .message-reminder-heading>div{min-width:0;} .message-reminder-meta{display:flex;flex-wrap:wrap;gap:0.35rem 0.9rem;margin-top:0.35rem;color:var(--muted);font-size:0.84rem;} .message-reminder-meta .ui-value{min-width:0;} .message-reminder-text{padding:0.65rem 0.75rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:10px;background:var(--panel);} .message-reminder-label{display:block;margin-bottom:0.3rem;color:var(--muted);font-size:0.72rem;font-weight:var(--font-weight-medium);letter-spacing:0.07em;text-transform:uppercase;} .message-reminder-text p{margin:0;font-size:0.9rem;line-height:1.5;overflow-wrap:anywhere;} .message-reminder-actions{display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem;} .message-phone-warning{color:var(--danger);font-size:0.86rem;} .message-sent-note{color:var(--success);font-size:0.86rem;font-weight:var(--font-weight-medium);} .button-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:0.45rem;} .button-with-icon .ui-icon{color:currentColor;} .dashboard-today-panel .section-heading-row{margin-bottom:0.75rem;} .dashboard-schedule-list{display:grid;border:1px solid var(--line);border-radius:13px;overflow:hidden;} .dashboard-schedule-head,.dashboard-schedule-item{display:grid;grid-template-columns:110px minmax(0,1.15fr) minmax(0,1fr) minmax(0,0.95fr) auto;align-items:center;gap:1rem;} .dashboard-schedule-head{padding:0.62rem 0.9rem;color:var(--muted);background:var(--panel-soft);border-bottom:1px solid var(--line);font-size:0.76rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.065em;} .dashboard-schedule-item{padding:0.8rem 0.9rem;border-bottom:1px solid var(--line);} .dashboard-schedule-item:last-child{border-bottom:0;} .dashboard-schedule-time,.dashboard-schedule-client,.dashboard-schedule-service,.dashboard-schedule-instructor{display:grid;min-width:0;} .dashboard-schedule-time strong{font-size:1rem;} .dashboard-schedule-time span{color:var(--muted);font-size:0.85rem;} .dashboard-schedule-client strong,.dashboard-schedule-service span,.dashboard-schedule-instructor span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .dashboard-schedule-service .ui-value,.dashboard-schedule-instructor .ui-value{color:var(--muted);} .dashboard-status-no_show{color:var(--danger);border-color:rgba(246,154,166,0.42);background:rgba(246,154,166,0.07);} .dashboard-status-cancelled{color:var(--muted);} .dashboard-schedule-item .status-badge{display:inline-flex;align-items:center;gap:0.4rem;} .dashboard-schedule-item .status-badge .ui-icon{color:currentColor;} .dashboard-empty{display:grid;gap:0.25rem;padding:1rem;} .table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:13px;-webkit-overflow-scrolling:touch;} .data-table{width:100%;border-collapse:collapse;min-width:650px;} .data-table th,.data-table td{text-align:left;padding:0.7rem;border-bottom:1px solid var(--line);vertical-align:middle;} .data-table th{color:var(--muted);font-size:0.82rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.07em;background:var(--panel-soft);} .data-table tr:last-child td{border-bottom:0;} .data-table td input,.data-table td select{min-width:135px;} .hours-table{min-width:520px;} .row-actions{display:flex;justify-content:flex-end;gap:0.35rem;} .row-actions button{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;} .planner-status-actions{display:grid;justify-items:start;gap:0.4rem;} .planner-status-actions .remove-row{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;} .range-grid,.override-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:0.7rem;} .records-filter-grid{grid-template-columns:repeat(3,minmax(0,220px));} .audit-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:0.7rem;align-items:end;} .notification-audit-search{grid-column:1 / -1;} .notification-audit-search input{width:100%;} .audit-delete-note{margin:0.35rem 0 0.9rem;} .audit-timeline{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel);} .audit-empty{padding:1.15rem;text-align:center;} .audit-day-group+.audit-day-group{border-top:1px solid var(--line);} .audit-day-heading{display:flex;align-items:center;gap:0.55rem;padding:0.8rem 1rem;background:var(--panel-soft);border-bottom:1px solid var(--line);} .audit-day-heading .ui-icon{color:var(--muted);} .audit-day-heading strong{font-size:0.95rem;font-weight:var(--font-weight-bold);} .audit-day-heading>span{padding:0.18rem 0.45rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel);font-size:0.7rem;font-weight:var(--font-weight-medium);letter-spacing:0.06em;} .audit-day-events{padding:0.25rem 1rem 0.5rem;} .audit-event{position:relative;display:grid;grid-template-columns:62px 38px minmax(0,1fr);gap:0.75rem;align-items:start;padding:0.78rem 0;} .audit-event+.audit-event{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);} .audit-event-time{padding-top:0.45rem;color:var(--muted);font-size:0.82rem;text-align:right;font-variant-numeric:tabular-nums;} .audit-event-marker{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);color:var(--muted);} .audit-event-marker .ui-icon{width:16px !important;height:16px !important;max-width:16px !important;max-height:16px !important;flex-basis:16px !important;} .audit-event-marker::after{content:'';position:absolute;top:34px;bottom:-1.05rem;left:50%;width:1px;background:var(--line);transform:translateX(-50%);z-index:-1;} .audit-event:last-child .audit-event-marker::after{display:none;} .audit-event-administrative .audit-event-marker{color:var(--accent-emphasis,var(--accent));} .audit-event-messaging .audit-event-marker{color:var(--accent-emphasis,var(--accent));background:color-mix(in srgb,var(--accent) 7%,var(--panel-soft));} .audit-event-card{min-width:0;display:grid;gap:0.48rem;padding-top:0.18rem;} .audit-event-primary{display:flex;align-items:center;flex-wrap:wrap;gap:0.45rem;min-width:0;} .audit-event-primary>strong{min-width:0;font-size:0.94rem;} .audit-event-primary .status-badge{margin-left:auto;} .audit-category-badge{display:inline-flex;align-items:center;min-height:22px;padding:0.1rem 0.42rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel-soft);font-size:0.7rem;line-height:1;} .audit-event-context{display:flex;align-items:center;flex-wrap:wrap;gap:0.38rem 0.85rem;min-width:0;color:var(--muted);font-size:0.86rem;} .audit-context-item{display:inline-flex;align-items:center;gap:0.35rem;min-width:0;} .audit-context-item .ui-icon{color:var(--muted);} .audit-context-item span{min-width:0;overflow-wrap:anywhere;} .audit-event-detail{display:flex;align-items:flex-start;gap:0.4rem;min-width:0;padding:0.5rem 0.6rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:9px;background:var(--panel-soft);color:var(--muted);font-size:0.82rem;line-height:1.45;} .audit-event-detail .ui-icon{flex:0 0 14px !important;margin-top:0.08rem;color:var(--muted);} .audit-event-detail span{min-width:0;overflow-wrap:anywhere;} .two-column-panel{display:grid;grid-template-columns:1.2fr 0.8fr;gap:1.5rem;} .inline-form{display:grid;grid-template-columns:1fr auto;gap:0.55rem;margin-bottom:1rem;} .client-add-form{display:grid;grid-template-columns:1fr minmax(220px,0.8fr) auto;gap:0.55rem;margin-bottom:1rem;} .client-add-form-contact{grid-template-columns:minmax(160px,1fr) minmax(190px,1fr) minmax(220px,1fr) minmax(190px,auto) auto;} .phone-input-group{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:0;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,#100a0c);transition:border-color 160ms ease,box-shadow 160ms ease;} .phone-input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);} .phone-country-picker{position:relative;min-width:112px;} .phone-country-trigger{width:100%;min-height:42px;height:100%;justify-content:flex-start;gap:0.42rem;padding:0.55rem 0.62rem;border:0;border-right:1px solid var(--line);border-radius:9px 0 0 9px;background:transparent;color:var(--text);font-weight:var(--font-weight-medium);} .phone-country-trigger:hover,.phone-country-trigger:active{transform:none;filter:none;background:var(--panel-soft);} .phone-country-trigger:focus-visible{outline:none;} .phone-country-flag{flex:0 0 auto;font-size:1rem;line-height:1;} .phone-country-dial{min-width:0;font-variant-numeric:tabular-nums;} .phone-country-chevron{margin-left:auto;color:var(--muted);font-size:0.78rem;} .phone-input-group>.phone-number-input{min-width:0;width:100%;border:0;border-radius:0 9px 9px 0;background:transparent;box-shadow:none;} .phone-input-group>.phone-number-input:focus{border-color:transparent;box-shadow:none;} .phone-country-menu{position:absolute;top:calc(100% + 0.42rem);left:0;z-index:90;width:min(330px,calc(100vw - 2rem));padding:0.42rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);} .phone-country-menu[hidden]{display:none;} .phone-country-search{min-height:38px;margin-bottom:0.35rem;} .phone-country-options{display:grid;max-height:260px;overflow-y:auto;overscroll-behavior:contain;} .phone-country-option{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:0.55rem;width:100%;min-height:38px;padding:0.42rem 0.5rem;border:0;border-radius:8px;background:transparent;color:var(--text);font-weight:var(--font-weight-medium);text-align:left;} .phone-country-option:hover,.phone-country-option:focus-visible,.phone-country-option.is-active{transform:none;filter:none;background:var(--panel-soft);outline:none;} .phone-country-option-flag{font-size:1rem;line-height:1;} .phone-country-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .phone-country-option strong{color:var(--muted);font-size:0.82rem;font-variant-numeric:tabular-nums;} .phone-country-empty{padding:0.75rem;color:var(--muted);font-size:0.84rem;text-align:center;} .phone-country-code{display:none;} .client-booking-create-option{display:flex;align-items:center;gap:0.5rem;margin:0;color:var(--muted);font-size:0.86rem;line-height:1.3;white-space:nowrap;} .client-booking-create-option input{width:auto;min-height:auto;margin:0;} .client-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:0.85rem;flex-wrap:wrap;margin-bottom:0.35rem;} .client-filter-tabs{display:inline-flex;gap:0.25rem;padding:0.2rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);} .client-filter-tab{min-height:34px;padding:0.3rem 0.8rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);} .client-filter-tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast,#1a1013);} .client-search{display:grid;grid-template-columns:auto minmax(220px,320px);align-items:center;gap:0.5rem;color:var(--muted);font-size:0.82rem;} .client-search input{min-height:36px;} .client-list-summary{margin:0;} .client-list{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:0.85rem;} .client-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:start;column-gap:0.8rem;row-gap:0.9rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 6px 18px rgba(30,20,25,0.04);} .client-card.inactive{opacity:0.72;} .client-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--panel-soft);color:var(--muted);font-weight:var(--font-weight-medium);font-size:0.95rem;} .client-card-main{min-width:0;} .client-card-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium);} .client-card-email,.client-card-phone{display:block;margin-top:0.18rem;min-width:0;color:var(--muted);font-size:0.9rem;line-height:1.35;overflow-wrap:anywhere;word-break:break-word;} .client-card-email.is-missing,.client-card-phone.is-missing{font-style:italic;} .client-card-edit{display:none;grid-column:1 / -1;gap:0.45rem;} .client-card.is-editing .client-card-edit{display:grid;} .client-card-edit-actions{display:flex;gap:0.4rem;justify-content:flex-end;} .client-menu{position:relative;justify-self:end;} .client-menu-button{width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:50%;background:var(--panel-soft);color:var(--muted);font-size:1.15rem;line-height:1;} .client-menu-button:hover,.client-menu-button:focus-visible{border-color:var(--line);color:var(--text);} .client-menu-popover{position:absolute;top:calc(100% + 0.35rem);right:0;z-index:20;display:none;min-width:150px;padding:0.35rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);} .client-menu.is-open .client-menu-popover{display:grid;} .client-menu-item{width:100%;justify-content:flex-start;min-height:36px;padding:0.4rem 0.6rem;border:0;background:transparent;color:var(--text);text-align:left;border-radius:8px;} .client-menu-item:hover,.client-menu-item:focus-visible{background:var(--panel-soft);} .client-menu-item.danger{color:var(--danger-text,#b4232d);} .client-card-footer{grid-column:1 / -1;display:flex;justify-content:flex-end;align-items:center;gap:0.5rem;} .client-schedule-button{min-width:96px;} .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important;} .service-types-panel{gap:1rem;} .service-types-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;} .service-filter-menu{position:relative;z-index:8;} .service-filter-button{display:inline-flex;align-items:center;gap:0.55rem;min-height:40px;padding:0.45rem 0.7rem;border:1px solid transparent;background:transparent;color:var(--text);font-size:1rem;font-weight:var(--font-weight-medium);} .service-filter-button:hover,.service-filter-button:focus-visible,.service-filter-menu.is-open .service-filter-button{border-color:var(--line);background:var(--panel-soft);} .service-filter-count,.service-filter-option-count{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 0.38rem;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:0.78rem;font-weight:var(--font-weight-medium);} .service-filter-chevron{color:var(--muted);font-size:1rem;transform:translateY(-1px);transition:transform 120ms ease;} .service-filter-menu.is-open .service-filter-chevron{transform:rotate(180deg) translateY(1px);} .service-filter-popover{position:absolute;top:calc(100% + 0.4rem);left:0;display:none;width:max-content;min-width:225px;padding:0.4rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);} .service-filter-menu.is-open .service-filter-popover{display:grid;gap:0.15rem;} .service-filter-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.8rem;width:100%;min-height:38px;padding:0.45rem 0.6rem;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;} .service-filter-option:hover,.service-filter-option:focus-visible,.service-filter-option.is-selected{background:var(--panel-soft);} .service-filter-option.is-selected{font-weight:var(--font-weight-medium);} .service-types-actions{display:flex;align-items:center;justify-content:flex-end;gap:0.65rem;margin-left:auto;} .service-search{display:block;} .service-search input{width:min(300px,34vw);min-height:40px;} .service-card-meta{display:flex;align-items:center;gap:0.45rem;color:var(--muted);font-size:0.88rem;} .service-editor{gap:0;padding:0;overflow:hidden;} .service-editor[hidden]{display:none;} .service-editor form{display:grid;gap:0;} .service-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line);} .service-editor-header h2{margin:0.15rem 0 0;} .service-editor-actions{display:flex;align-items:center;gap:0.65rem;} .service-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;padding:1.1rem;} .service-editor-field{display:grid;align-content:start;gap:0.45rem;min-width:0;color:var(--muted);font-size:0.88rem;} .service-editor-label{display:inline-flex;align-items:baseline;gap:0.18rem;width:fit-content;} .required-mark{display:inline;flex:0 0 auto;} .service-duration-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;} .service-duration-part{display:grid;gap:0.35rem;min-width:0;} .service-duration-part>span{font-size:0.8rem;} .service-duration-part select{width:100%;} .service-editor-field>input,.service-editor-field>textarea{width:100%;} .service-editor-field-wide{grid-column:span 1;} .service-editor-field-full{grid-column:1 / -1;} .service-editor-field textarea{min-height:150px;resize:vertical;} .field-hint{color:var(--muted);font-size:0.78rem;line-height:1.4;} .service-segment-field{min-width:0;margin:0;padding:0;border:0;} .service-segment-field legend{margin-bottom:0.45rem;color:var(--muted);font-size:0.88rem;} .service-segmented-control{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,340px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);} .service-segmented-control label{position:relative;display:block;margin:0;cursor:pointer;} .service-segmented-control label+label{border-left:1px solid var(--line);} .service-segmented-control input{position:absolute;opacity:0;pointer-events:none;} .service-segmented-control span{display:grid;place-items:center;min-height:42px;padding:0.45rem 0.8rem;color:var(--text);background:transparent;transition:background 120ms ease,color 120ms ease;} .service-segmented-control input:checked+span{background:var(--panel-soft);color:var(--accent-emphasis,var(--accent));font-weight:var(--font-weight-medium);} .service-segmented-control input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px;} .service-followup-control{margin-bottom:0.15rem;} .service-card-list{align-items:start;} .service-card{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;min-height:118px;} .service-card.inactive{opacity:1;} .service-card.inactive .service-card-content{opacity:0.5;} .service-card.inactive .service-card-menu{opacity:1;} .service-card-content{min-width:0;display:grid;align-content:start;gap:0.42rem;} .service-card-heading{display:flex;align-items:center;gap:0.5rem;min-width:0;} .service-card-heading .client-card-name{flex:0 1 auto;} .service-inactive-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:22px;padding:0.1rem 0.42rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel-soft);font-size:0.72rem;line-height:1;} .service-card-description{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:0.88rem;line-height:1.4;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;} .service-empty-state{grid-column:1 / -1;display:grid;justify-items:start;gap:0.3rem;padding:1.25rem;border:1px dashed var(--line);border-radius:12px;background:var(--panel-soft);} .client-row.inactive{opacity:0.55;} .client-row button{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;} .danger-zone{border-left:1px solid var(--line);padding-left:1.5rem;display:grid;align-content:start;gap:0.75rem;} .check-row{display:flex;grid-template-columns:auto 1fr;align-items:start;gap:0.6rem;} .check-row input{width:auto;min-height:auto;margin-top:0.25rem;} .notice-stack{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:120;width:min(390px,calc(100vw - 2rem));display:grid;gap:0.65rem;pointer-events:none;} .notice-toast{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:start;gap:0.7rem;padding:0.82rem 0.82rem 0.82rem 0.9rem;border:1px solid color-mix(in srgb,var(--success) 38%,var(--line));border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 16px 42px rgba(0,0,0,0.34);font-weight:var(--font-weight-medium);line-height:1.42;pointer-events:auto;animation:notice-in 180ms ease-out both;} .notice-toast.error{border-color:color-mix(in srgb,var(--danger) 46%,var(--line));background:var(--panel);color:var(--text);} .notice-toast.is-leaving{animation:notice-out 160ms ease-in both;} .notice-toast-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:rgba(191,228,200,0.12);color:var(--success);} .notice-toast.error .notice-toast-icon{background:rgba(246,154,166,0.12);color:var(--danger);} .notice-toast-icon .ui-icon{width:16px !important;height:16px !important;max-width:16px !important;max-height:16px !important;flex-basis:16px !important;} .notice-toast-message{min-width:0;overflow-wrap:anywhere;padding-top:0.16rem;} .notice-toast-close{width:28px;height:28px;min-height:28px;padding:0;border:0;border-radius:8px;background:transparent;color:currentColor;font-size:1.25rem;line-height:1;opacity:0.72;box-shadow:none;} .notice-toast-close:hover,.notice-toast-close:focus-visible{background:var(--hover-bg);opacity:1;transform:none;} @keyframes notice-in{from{opacity:0;transform:translateY(10px) scale(0.985);} to{opacity:1;transform:translateY(0) scale(1);}} @keyframes notice-out{from{opacity:1;transform:translateY(0) scale(1);} to{opacity:0;transform:translateY(8px) scale(0.985);}} .schedule-note{margin-top:0.35rem;color:var(--muted);font-size:0.82rem;} .status-badge{display:inline-flex;align-items:center;width:fit-content;min-height:24px;padding:0.12rem 0.5rem;border:1px solid var(--line);border-radius:999px;font-size:0.8rem;font-weight:var(--font-weight-medium);letter-spacing:0.04em;line-height:1;} .status-badge.is-complete{color:var(--success);border-color:rgba(191,228,200,0.42);background:rgba(191,228,200,0.08);} .status-badge.is-scheduled,.status-badge.is-attempted{color:var(--accent-emphasis,var(--accent));border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 8%,transparent);} .status-badge.is-failed{color:var(--danger);border-color:rgba(246,154,166,0.42);background:rgba(246,154,166,0.07);} .appointment-state{display:grid;gap:0.25rem;justify-items:start;margin-bottom:0.45rem;} .data-table tr.is-complete td{background:rgba(191,228,200,0.025);} .data-table tr.is-complete input:disabled,.data-table tr.is-complete select:disabled{opacity:0.72;color:var(--muted);cursor:not-allowed;} .past-completed>td[data-label="Date"],.past-completed>td[data-label="Service type"],.past-completed>td[data-label="Instructor"],.past-completed>td[data-label="Available start"],.past-completed>td[data-label="End"],.past-completed>td[data-label="Client"]{opacity:0.58;} .past-completed>td[data-label="Date"] input,.past-completed>td[data-label="Service type"] select,.past-completed>td[data-label="Instructor"] select,.past-completed>td[data-label="Available start"] select,.past-completed>td[data-label="Client"] select{color:inherit;} .past-completed>td[data-label="Status"],.past-completed>td[data-label="Action"]{opacity:1;} .row-status,.record-status{min-width:128px;min-height:36px;} .ui-icon{width:14px !important;height:14px !important;min-width:14px !important;max-width:14px !important;min-height:14px !important;max-height:14px !important;flex:0 0 14px !important;display:inline-block !important;vertical-align:middle;fill:none !important;stroke:currentColor !important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--text);} .ui-heading,.ui-value,.records-date-group th span,.notification-audit-date-group th span{display:inline-flex;align-items:center;gap:0.45rem;} .ui-heading .ui-icon{color:var(--muted);} .client-card .ui-value,.service-card .ui-value{min-width:0;color:var(--muted);} .client-card .ui-value .ui-icon,.service-card .ui-value .ui-icon{color:var(--muted);} .records-table .ui-value,.notification-audit-table .ui-value{min-width:0;} .records-table .ui-value .ui-icon,.notification-audit-table .ui-value .ui-icon{color:var(--muted);flex:0 0 14px !important;} .records-table .status-badge,.notification-audit-table .status-badge{display:inline-flex;align-items:center;gap:0.4rem;} .records-table .status-badge .ui-icon,.notification-audit-table .status-badge .ui-icon{color:currentColor;} .records-table tr.is-complete td[data-label="Date"],.records-table tr.is-complete td[data-label="Start"],.records-table tr.is-complete td[data-label="End"],.records-table tr.is-complete td[data-label="Client"],.records-table tr.is-complete td[data-label="Instructor"],.records-table tr.is-complete td[data-label="Service type"]{color:var(--muted);opacity:0.64;} .records-date-group th{padding:0.9rem 0.9rem 0.55rem;border:0;border-bottom:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:0.92rem;font-weight:var(--font-weight-bold);text-align:left;letter-spacing:0.01em;} .records-date-group th span{display:inline-flex;align-items:center;min-height:30px;} .records-date-group:first-child th{padding-top:0.65rem;} .records-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0.45rem;margin-top:1rem;} .records-page-button{min-width:38px;min-height:36px;padding:0.35rem 0.65rem;} .records-page-button.is-active{background:var(--accent);color:var(--bg);border-color:var(--accent);} .records-page-button:disabled{opacity:0.45;cursor:not-allowed;} .notification-audit-date-group th{padding:0.9rem 0.9rem 0.55rem;border:0;border-bottom:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:0.92rem;font-weight:var(--font-weight-bold);text-align:left;letter-spacing:0.01em;} .notification-audit-date-group th span{display:inline-flex;align-items:center;min-height:30px;} .notification-audit-date-group:first-child th{padding-top:0.65rem;} #recordsSummary,#notificationAuditSummary{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0.75rem 1.25rem;margin:0.85rem 0 0;line-height:1.5;text-align:center;} #recordsSummary span+span::before,#notificationAuditSummary span+span::before{content:'•';margin-right:1.25rem;color:var(--muted);} .override-editor{display:grid;gap:0.3rem;} dialog{width:min(460px,calc(100% - 2rem));padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);} dialog::backdrop{background:rgba(0,0,0,0.72);} @media (prefers-reduced-motion:no-preference){.tab-panel.is-active{animation:ledger-panel-enter 180ms ease-out;} dialog[open]{animation:ledger-dialog-enter 180ms ease-out;} dialog[open]::backdrop{animation:ledger-backdrop-enter 180ms ease-out;} dialog[open].is-closing{animation:ledger-dialog-exit 150ms ease-in forwards;} dialog[open].is-closing::backdrop{animation:ledger-backdrop-exit 150ms ease-in forwards;}} @keyframes ledger-panel-enter{from{opacity:0;transform:translateY(4px);} to{opacity:1;transform:translateY(0);}} @keyframes ledger-dialog-enter{from{opacity:0;transform:translateY(8px) scale(0.985);} to{opacity:1;transform:translateY(0) scale(1);}} @keyframes ledger-backdrop-enter{from{opacity:0;} to{opacity:1;}} @keyframes ledger-dialog-exit{from{opacity:1;transform:translateY(0) scale(1);} to{opacity:0;transform:translateY(6px) scale(0.99);}} @keyframes ledger-backdrop-exit{from{opacity:1;} to{opacity:0;}} .dialog-card{padding:1.2rem;display:grid;gap:0.85rem;} .dialog-heading,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:0.7rem;} .dialog-actions{justify-content:flex-end;} .login-body{display:grid;place-items:center;padding:clamp(0.75rem,3vw,1.5rem);} .login-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:clamp(1.15rem,4vw,1.65rem);box-shadow:var(--shadow);} .login-logo{display:block;width:min(var(--brand-logo-width-login),72%);height:auto;margin:0 auto 1.8rem;} .login-card>.eyebrow,.login-card>h1,.login-card>.muted{text-align:center;} .login-card>.muted{max-width:36rem;margin-left:auto;margin-right:auto;} .login-form{display:grid;gap:1rem;margin-top:1.35rem;text-align:left;} .setup-body{align-content:center;} .setup-card{width:min(760px,100%);padding:clamp(1rem,2.4vw,1.5rem);} .setup-intro{text-align:center;} .setup-card .setup-logo{width:min(var(--brand-logo-width-login),180px);margin-bottom:0.85rem;} .setup-intro .eyebrow{margin-bottom:0.25rem;} .setup-intro h1{margin-bottom:0.25rem;} .setup-intro .muted{margin:0 auto;} .setup-form{gap:0.9rem;margin-top:1rem;} .setup-section{padding-top:0.9rem;border-top:1px solid var(--line);} .setup-section-heading{display:flex;align-items:baseline;gap:0.55rem;margin-bottom:0.7rem;} .setup-section-heading .section-kicker{margin:0;} .setup-section-heading h2{margin:0;font-size:1.05rem;} .setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.7rem 0.9rem;} .setup-field-wide{grid-column:1 / -1;} .setup-help{margin:-0.15rem 0 0;line-height:1.4;} .setup-email-help{margin-top:-0.25rem;} .setup-submit{width:100%;margin-top:0.1rem;} .setup-error{margin:0.9rem 0 0;} .login-error{padding:0.7rem;background:var(--danger);color:var(--danger-contrast,#2b0c10);border-radius:10px;} .empty-row{color:var(--muted);text-align:center !important;padding:1.2rem !important;} @media (max-width:1024px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:0.65rem;} .mobile-nav-toggle{grid-column:1;display:inline-flex;min-width:48px;min-height:48px;align-items:center;justify-content:center;gap:0.45rem;padding:0.55rem 0.7rem;} .mobile-nav-toggle .ui-icon{flex:0 0 20px !important;width:20px !important;height:20px !important;min-width:20px !important;max-width:20px !important;min-height:20px !important;max-height:20px !important;} .topbar-brand{grid-column:2;display:flex;min-width:0;align-items:center;justify-content:center;gap:0.7rem;} .topbar-logo-link{grid-column:auto;width:min(82px,24vw);flex:0 0 auto;} .topbar-title{grid-column:auto;justify-self:auto;min-width:0;text-align:left;} .topbar-title .eyebrow{display:none;} .topbar h1{max-width:16rem;white-space:normal;font-size:clamp(0.95rem,2.8vw,1.15rem);} .topbar>#logoutButton{grid-column:3;min-height:44px;} .nav-backdrop{position:fixed;inset:0;z-index:54;display:block;background:rgba(0,0,0,0.56);backdrop-filter:blur(2px);} .tabbar{top:0;z-index:55;width:min(320px,86vw);padding:max(0.8rem,env(safe-area-inset-top)) 0.8rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid var(--line);transform:translateX(-105%);transition:transform 180ms ease;box-shadow:18px 0 40px rgba(0,0,0,0.34);} body.nav-drawer-open{overflow:hidden;} body.nav-drawer-open .tabbar{transform:translateX(0);} .nav-drawer-header{display:flex;min-height:56px;align-items:center;justify-content:space-between;gap:0.75rem;padding:0.1rem 0.15rem 0.65rem;margin-bottom:0.15rem;border-bottom:1px solid var(--line);} .nav-drawer-header p{margin-bottom:0.1rem;} .nav-drawer-header strong{font-size:1rem;} .nav-close-button{display:inline-flex;min-width:46px;width:46px;min-height:46px;align-items:center;justify-content:center;padding:0;} .tab-button{min-height:50px;padding:0.72rem 0.8rem;font-size:0.98rem;} .tab-button .ui-icon{flex-basis:19px !important;width:19px !important;height:19px !important;min-width:19px !important;max-width:19px !important;min-height:19px !important;max-height:19px !important;} .shell{width:min(100% - 1.5rem,1180px);margin:0.8rem auto 4rem;}} @media (hover:none),(pointer:coarse){.tab-button{min-height:50px;} .mobile-nav-toggle,.nav-close-button{min-width:48px;min-height:48px;}} @media (max-width:760px){.setup-card{width:min(100%,520px);} .setup-grid{grid-template-columns:1fr;} .setup-field-wide{grid-column:1;} .setup-section-heading{align-items:flex-start;flex-direction:column;gap:0.15rem;} .client-add-form,.client-add-form-contact{grid-template-columns:1fr;} .service-types-toolbar{align-items:stretch;} .service-filter-menu,.service-filter-button{width:100%;} .service-filter-button{justify-content:flex-start;} .service-filter-chevron{margin-left:auto;} .service-filter-popover{width:100%;min-width:0;} .service-types-actions{width:100%;display:grid;grid-template-columns:1fr;margin-left:0;} .service-search input{width:100%;} .service-types-actions>button{width:100%;} .service-editor-header{align-items:stretch;flex-direction:column;} .service-editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));} .service-editor-actions button{width:100%;} .service-editor-grid{grid-template-columns:1fr;} .service-editor-field,.service-editor-field-wide,.service-editor-field-full{grid-column:1;} .service-segmented-control{width:100%;} .client-toolbar{align-items:stretch;} .client-search{grid-template-columns:1fr;} .client-search input{width:100%;} .client-filter-tabs{width:100%;} .client-filter-tab{flex:1;} .client-list{grid-template-columns:1fr;} .dashboard-heading{align-items:stretch;} .dashboard-heading>button{width:100%;} .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));} .dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));} .dashboard-actions button{width:100%;} .dashboard-message-reminder-card{align-items:stretch;flex-direction:column;} .dashboard-message-reminder-card>button{width:100%;min-height:48px;} .messages-summary{grid-template-columns:repeat(2,minmax(0,1fr));} .message-reminder-card{grid-template-columns:1fr;gap:0.7rem;} .message-reminder-time{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;padding-right:0;padding-bottom:0.6rem;border-right:0;border-bottom:1px solid var(--line);} .message-reminder-heading{display:grid;gap:0.55rem;} .message-reminder-heading .status-badge{justify-self:start;} .message-reminder-meta{display:grid;gap:0.35rem;} .message-reminder-actions{display:grid;grid-template-columns:1fr;} .message-reminder-actions button{width:100%;min-height:48px;} .dashboard-schedule-head{display:none;} .dashboard-schedule-item{grid-template-columns:82px minmax(0,1fr);gap:0.42rem 0.65rem;align-items:start;} .dashboard-schedule-time{grid-row:1 / span 4;} .dashboard-schedule-client,.dashboard-schedule-service,.dashboard-schedule-instructor,.dashboard-schedule-item .status-badge{grid-column:2;justify-self:start;} button{min-height:44px;padding-block:0.55rem;} button.compact,.row-actions button,.client-row button{min-height:40px;}:root{--brand-logo-width-topbar:76px;--brand-logo-width-login:190px;--topbar-side-width-mobile:88px;} .topbar{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:0.45rem;min-height:82px;padding-left:max(0.65rem,env(safe-area-inset-left));padding-right:max(0.65rem,env(safe-area-inset-right));} .mobile-nav-toggle{min-width:48px;width:48px;padding-inline:0;} .mobile-nav-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} .topbar-brand{gap:0.5rem;justify-content:flex-start;} .topbar-logo-link{width:min(var(--brand-logo-width-topbar),22vw);} .topbar-title .eyebrow{display:none;} .topbar h1{font-size:clamp(0.86rem,3.6vw,1rem);max-width:10.5rem;white-space:normal;} .topbar>#logoutButton{min-width:0;padding-inline:0.55rem;font-size:0.82rem;} .shell{width:min(100% - 1rem,1180px);margin-top:0.5rem;} .panel{border-radius:14px;} .section-heading-row,.panel-actions{align-items:stretch;flex-direction:column;} .field-inline{min-width:0;} .range-grid,.override-grid,.two-column-panel,.audit-filter-grid{grid-template-columns:1fr;} .audit-day-heading{flex-wrap:wrap;padding-inline:0.8rem;} .audit-day-events{padding-inline:0.75rem;} .audit-event{grid-template-columns:46px 34px minmax(0,1fr);gap:0.55rem;} .audit-event-time{font-size:0.76rem;} .audit-event-primary .status-badge{margin-left:0;} .audit-event-context{display:grid;gap:0.35rem;} .danger-zone{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:1.25rem;} .toolbar button{flex:1 1 145px;} .panel-actions button{width:100%;} .notice-stack{left:max(0.5rem,env(safe-area-inset-left));right:max(0.5rem,env(safe-area-inset-right));bottom:max(0.65rem,env(safe-area-inset-bottom));width:auto;} .notice-toast{grid-template-columns:26px minmax(0,1fr) 28px;border-radius:12px;} .planner-wrap,.records-wrap{overflow:visible;border:0;border-radius:0;} .planner-table,.records-table{display:block;width:100%;min-width:0;} .planner-table thead,.records-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} .planner-table tbody,.records-table tbody{display:grid;gap:0.75rem;} .planner-table tbody tr,.records-table tbody tr{display:grid;min-width:0;gap:0.65rem;padding:0.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);} .planner-table tbody td,.records-table tbody td{display:grid;min-width:0;gap:0.3rem;padding:0;border:0;} .planner-table tbody td[data-label]::before,.records-table tbody td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:0.76rem;font-weight:var(--font-weight-medium);letter-spacing:0.07em;text-transform:uppercase;} .planner-table td input,.planner-table td select,.records-table td input,.records-table td select{width:100%;min-width:0;} .planner-table .row-end,.records-table td[data-label="Date"],.records-table td[data-label="Start"],.records-table td[data-label="End"],.records-table td[data-label="Client"],.records-table td[data-label="Service type"],.records-table td[data-label="Status"]{padding:0.65rem 0.72rem;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,#100a0c);} .planner-table .row-end::before,.records-table td[data-label="Date"]::before,.records-table td[data-label="Start"]::before,.records-table td[data-label="End"]::before,.records-table td[data-label="Client"]::before,.records-table td[data-label="Service type"]::before,.records-table td[data-label="Status"]::before{margin-bottom:0.1rem;} .records-table tbody tr.records-date-group{display:block;padding:0.25rem 0 0.1rem;border:0;border-radius:0;background:transparent;} .records-table tbody tr.records-date-group th{display:block;padding:0.6rem 0.2rem 0.35rem;border:0;background:transparent;font-size:0.9rem;} .records-table tbody tr.records-date-group th span{min-height:0;} .records-table tbody tr.records-empty{display:block;} .records-table tbody tr.is-complete{border-color:color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--panel-soft) 78%,transparent);} .records-table tr.is-complete td[data-label="Date"],.records-table tr.is-complete td[data-label="Start"],.records-table tr.is-complete td[data-label="End"],.records-table tr.is-complete td[data-label="Client"],.records-table tr.is-complete td[data-label="Instructor"],.records-table tr.is-complete td[data-label="Service type"]{background:color-mix(in srgb,var(--bg) 78%,var(--panel));border-color:color-mix(in srgb,var(--line) 80%,transparent);} .planner-table .row-actions,.records-table .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;} .planner-table .row-actions{grid-template-columns:1fr;} .planner-table .row-actions button,.records-table .row-actions button{width:100%;} .planner-table .empty-row,.records-table .empty-row{display:block !important;padding:1rem !important;}} @media (max-width:430px){:root{--brand-logo-width-topbar:66px;--brand-logo-width-login:170px;--topbar-side-width-mobile:74px;} .dashboard-week-facts{grid-template-columns:1fr;} .dashboard-actions{grid-template-columns:1fr;} .messages-summary{grid-template-columns:1fr;} .topbar{gap:0.3rem;} .topbar-brand{gap:0.35rem;} .topbar h1{font-size:0.82rem;line-height:1.08;max-width:8.6rem;} .topbar>#logoutButton{padding-inline:0.4rem;font-size:0.76rem;} .login-card{border-radius:16px;} .inline-form{grid-template-columns:1fr;} .inline-form button{width:100%;}} .client-panel{display:grid;gap:1rem;} .standalone-danger-zone{border-left:0;padding-left:clamp(1rem,3vw,1.5rem);max-width:680px;} .account-panel{display:grid;gap:1.2rem;width:100%;max-width:none;} .account-panel>div:first-child,.account-panel>p{max-width:760px;} .account-form{display:grid;gap:0.85rem;width:100%;max-width:620px;} .account-form button{justify-self:start;} @media (max-width:760px){.account-form button{width:100%;}} .settings-section{display:grid;gap:1rem;padding:1.15rem;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);} .settings-section-heading{max-width:760px;} .settings-section-heading>*:last-child{margin-bottom:0;} .settings-note{max-width:760px;margin-bottom:0;} .branding-asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1080px;} .branding-asset-card{display:grid;align-content:start;gap:1rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);} .branding-asset-heading h4{margin-bottom:0.25rem;font-size:1rem;} .branding-logo-preview-shell,.branding-favicon-preview-shell{display:grid;gap:0.7rem;justify-items:center;padding:0.9rem;border:1px dashed var(--line);border-radius:14px;background:var(--bg);} .branding-preview-label{justify-self:start;color:var(--muted);font-size:0.72rem;font-weight:var(--font-weight-medium);letter-spacing:0.08em;text-transform:uppercase;} .branding-preview-size{color:var(--muted);font-size:0.72rem;} .branding-logo-slot{display:grid;place-items:center;width:142px;height:70px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--chrome-bg);} .branding-logo-slot img{display:block;max-width:142px;max-height:70px;width:auto;height:auto;object-fit:contain;} #brandingLogoPreview.is-local-preview{filter:none !important;} .branding-upload-controls{display:grid;gap:0.75rem;min-width:0;} .branding-preview-note{margin:-0.25rem 0 0;} .branding-browser-tab-preview{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:0.55rem;align-items:center;width:min(100%,320px);padding:0.55rem 0.7rem;border:1px solid var(--line);border-radius:10px;background:var(--chrome-bg);color:var(--text);font-size:0.82rem;} .branding-browser-tab-preview img{width:24px;height:24px;object-fit:contain;} .branding-browser-tab-preview span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .branding-favicon-sizes{display:flex;align-items:end;justify-content:center;gap:1.35rem;min-height:92px;} .branding-favicon-sizes>span{display:grid;justify-items:center;gap:0.35rem;color:var(--muted);} .branding-favicon-sizes img{display:block;object-fit:contain;} .branding-favicon-sizes small{font-size:0.68rem;white-space:nowrap;} .settings-toolbar{margin-top:0;} .accent-control{display:flex;align-items:center;gap:0.75rem;width:fit-content;max-width:100%;} .accent-control input[type="color"]{width:64px;min-width:64px;height:44px;padding:0.2rem;cursor:pointer;} .accent-control output{min-width:7ch;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.88rem;text-transform:uppercase;} @media (max-width:760px){.settings-section{padding:0.9rem;} .branding-asset-grid{grid-template-columns:1fr;} .branding-asset-card{padding:0.85rem;} .settings-toolbar{display:grid;grid-template-columns:1fr;width:100%;} .settings-toolbar button{width:100%;}} [hidden]{display:none !important;} textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:0.75rem;resize:vertical;background:var(--input-bg,#100a0c);color:var(--text);font:inherit;line-height:1.5;} .report-controls-panel{display:grid;gap:1rem;} .report-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.75rem;} .report-sheet{--report-ink:#24191d;--report-muted:#6e6065;--report-line:#d9cfd2;--report-paper:#fffdfd;--chart-fill:#7f5d67;width:min(100%,900px);margin:0 auto;font-size:16px;padding:clamp(1.2rem,3vw,2rem);border-radius:18px;background:var(--report-paper);color:var(--report-ink);box-shadow:var(--shadow);} .report-header{display:grid;grid-template-columns:125px minmax(0,1fr);gap:1.2rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--report-line);} .report-header img{width:118px;height:auto;filter:invert(1);} .report-header h2{margin:0.1rem 0 0.2rem;font-size:1.7rem;line-height:1.15;color:var(--report-ink);} .report-period{margin:0;color:var(--report-muted);} .report-overline{margin:0 0 0.2rem;color:var(--report-muted);font-size:0.68rem;font-weight:var(--font-weight-bold);letter-spacing:0.11em;text-transform:uppercase;} .report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.65rem;margin:1rem 0;} .metric-card{display:grid;align-content:start;gap:0.15rem;min-height:88px;padding:0.75rem;border:1px solid var(--report-line);border-radius:12px;background:rgba(127,93,103,0.045);} .metric-card span{color:var(--report-muted);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;} .metric-card strong{color:var(--report-ink);font-size:1.25rem;line-height:1.2;} .metric-card small{color:var(--report-muted);line-height:1.25;} .report-chart-section{border:1px solid var(--report-line);border-radius:14px;padding:0.9rem;background:#fff;} .report-chart-section h3{color:var(--report-ink);font-size:1rem;} .report-section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:0.45rem;} .svg-chart{width:100%;min-height:280px;} .svg-chart svg{display:block;width:100%;height:auto;overflow:visible;} .chart-grid{stroke:#ddd4d7;stroke-width:1;} .chart-axis-label,.chart-category{fill:#76686d;font:12px var(--font-family-ui);} .chart-value{fill:#3b2a30;font:600 12px var(--font-family-ui);} .chart-bar{fill:var(--chart-fill);} .chart-empty{display:grid;place-items:center;min-height:250px;color:var(--report-muted);} .report-lower-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:0.8rem;margin-top:0.8rem;} .report-lower-grid.client-notes-only{grid-template-columns:1fr;} .service-performance-grid{display:grid;grid-template-columns:1fr;gap:0.9rem;align-items:start;} .report-breakdown-table{min-width:620px;} .report-breakdown-table th,.report-breakdown-table td{white-space:nowrap;} .report-breakdown-table th:first-child,.report-breakdown-table td:first-child{white-space:normal;min-width:180px;} .service-performance-section .composition-chart{margin:0.55rem 0 0.15rem;} .service-performance-section .doughnut-wrap{grid-template-columns:1fr;justify-items:center;gap:0.65rem;} .service-performance-section .doughnut-svg-wrap{width:150px;} .service-performance-section .composition-legend{width:min(100%,760px);grid-template-columns:repeat(2,minmax(0,1fr));gap:0.5rem 1.1rem;} .service-performance-section .composition-legend-row{display:flex;align-items:center;justify-content:flex-start;gap:0.45rem;min-width:0;} .service-performance-section .composition-legend-row:only-child{grid-column:1 / -1;} .service-performance-section .composition-legend-row>span:nth-child(2){min-width:0;overflow-wrap:anywhere;} .service-performance-section .composition-legend-row strong{flex:0 0 auto;margin-left:0.15rem;white-space:nowrap;} .service-performance-grid>.table-wrap{min-width:0;overflow-x:visible;} .service-performance-table{width:100%;min-width:0;table-layout:auto;} .service-performance-table th,.service-performance-table td{min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal;vertical-align:top;} .service-performance-table th:nth-child(1),.service-performance-table td:nth-child(1){width:46%;min-width:0;} .service-performance-table th:nth-child(2),.service-performance-table td:nth-child(2){width:14%;white-space:nowrap;} .service-performance-table th:nth-child(3),.service-performance-table td:nth-child(3){width:26%;white-space:nowrap;} .service-performance-table th:nth-child(4),.service-performance-table td:nth-child(4){width:14%;white-space:nowrap;} .contribution-section{min-height:225px;} .composition-chart{margin-top:0.65rem;} .doughnut-wrap{display:grid;grid-template-columns:145px minmax(0,1fr);gap:1rem;align-items:center;} .doughnut-svg-wrap{width:140px;aspect-ratio:1;display:grid;place-items:center;position:relative;} .doughnut-svg{grid-area:1 / 1;width:100%;height:100%;} .doughnut-track{fill:none;stroke:#eee7e9;stroke-width:18;} .doughnut-slice{fill:none;stroke-width:18;stroke-linecap:butt;} .doughnut-svg-wrap>span{grid-area:1 / 1;z-index:1;display:grid;text-align:center;color:var(--report-ink);font-size:1.25rem;font-weight:var(--font-weight-bold);line-height:1.05;} .doughnut-svg-wrap small{color:var(--report-muted);font-size:0.65rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.06em;} .composition-legend{display:grid;gap:0.4rem;min-width:0;} .composition-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:0.45rem;align-items:center;color:var(--report-muted);font-size:0.75rem;line-height:1.2;} .composition-legend-row strong{color:var(--report-ink);font-size:0.72rem;white-space:nowrap;} .legend-swatch{width:9px;height:9px;border-radius:50%;} .palette-stroke-0{stroke:#7f5d67;} .palette-fill-0{background:#7f5d67;} .palette-stroke-1{stroke:#c3a8b0;} .palette-fill-1{background:#c3a8b0;} .palette-stroke-2{stroke:#5c7580;} .palette-fill-2{background:#5c7580;} .palette-stroke-3{stroke:#9b8465;} .palette-fill-3{background:#9b8465;} .palette-stroke-4{stroke:#6f7d65;} .palette-fill-4{background:#6f7d65;} .palette-stroke-5{stroke:#8a6c90;} .palette-fill-5{background:#8a6c90;} .palette-stroke-6{stroke:#a97873;} .palette-fill-6{background:#a97873;} .palette-stroke-7{stroke:#7f8188;} .palette-fill-7{background:#7f8188;} .palette-stroke-8{stroke:#d0c0a3;} .palette-fill-8{background:#d0c0a3;} .report-notes{min-height:225px;padding:0.9rem;border:1px solid var(--report-line);border-radius:14px;background:#fff;} #reportNotesText{white-space:pre-wrap;color:var(--report-ink);font-size:0.86rem;line-height:1.55;} .year-matrix-section{margin-top:0.8rem;padding:0.8rem;border:1px solid var(--report-line);border-radius:14px;background:#fff;} .year-matrix{width:100%;min-width:690px;border-collapse:collapse;color:var(--report-ink);font-size:0.68rem;} .year-matrix th,.year-matrix td{padding:0.25rem 0.3rem;text-align:center;border-bottom:1px solid #eee7e9;} .year-matrix th{color:var(--report-muted);} .report-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:0.9rem;padding-top:0.65rem;border-top:1px solid var(--report-line);color:var(--report-muted);font-size:0.67rem;} .summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.7rem;margin-top:1rem;} .data-summary-panel .metric-card{background:var(--panel-soft);border-color:var(--line);} .data-summary-panel .metric-card span,.data-summary-panel .metric-card small{color:var(--muted);} .data-summary-panel .metric-card strong{color:var(--text);} .file-field{margin-top:1rem;} .import-preview{padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);} .import-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.55rem;margin-bottom:0.8rem;} .import-stat-grid>div{display:grid;gap:0.1rem;padding:0.6rem;border:1px solid var(--line);border-radius:9px;} .import-stat-grid span{font-size:0.78rem;color:var(--muted);} .import-stat-grid strong{font-size:1.15rem;color:var(--text);} .import-warning{color:var(--danger);} @media (max-width:900px){.dashboard-metrics-five{grid-template-columns:repeat(3,minmax(0,1fr));} .dashboard-detail-grid{grid-template-columns:1fr;} .report-control-grid,.report-metrics,.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr));} .report-lower-grid{grid-template-columns:1fr;} .service-performance-grid{grid-template-columns:1fr;} .service-performance-grid>.table-wrap{overflow-x:visible;}} @media (max-width:600px){.report-control-grid,.report-metrics,.summary-cards,.import-stat-grid{grid-template-columns:1fr;} .report-sheet{padding:1rem;border-radius:12px;} .report-header{grid-template-columns:84px minmax(0,1fr);gap:0.7rem;} .report-header img{width:78px;} .report-header h2{font-size:1.25rem;} .doughnut-wrap{grid-template-columns:110px minmax(0,1fr);} .doughnut-svg-wrap{width:105px;} .service-performance-section .composition-legend{grid-template-columns:1fr;} .service-performance-section .composition-legend-row:only-child{grid-column:auto;}} @page{size:A4 portrait;margin:9mm;} @media print{:root{color-scheme:light;} html,body{width:210mm;min-height:297mm;background:#fff !important;color:#24191d !important;} body>.topbar,body>.tabbar,body>.nav-backdrop{display:none !important;} .shell{width:auto;margin:0;} .shell>*{display:none !important;} #tab-reports{display:block !important;} #tab-reports>*{display:none !important;} #reportSheet{display:block !important;width:100%;margin:0;padding:0;border-radius:0;box-shadow:none;} .no-print,.notice-stack{display:none !important;} .report-header img{filter:invert(1);} .report-chart-section,.report-notes,.year-matrix-section,.metric-card{break-inside:avoid;} .svg-chart{min-height:0;} .report-footer{margin-top:0.55rem;} .report-sheet.report-client{font-size:13px;} .report-sheet.report-client .report-header{grid-template-columns:88px minmax(0,1fr);gap:0.65rem;padding-bottom:0.45rem;} .report-sheet.report-client .report-header img{width:82px;} .report-sheet.report-client .report-header h2{font-size:1.25rem;} .report-sheet.report-client .report-period{font-size:0.78rem;} .report-sheet.report-client .report-metrics{gap:0.35rem;margin:0.45rem 0;} .report-sheet.report-client .metric-card{min-height:54px;padding:0.38rem 0.45rem;border-radius:8px;} .report-sheet.report-client .metric-card span{font-size:0.58rem;} .report-sheet.report-client .metric-card strong{font-size:0.95rem;} .report-sheet.report-client .metric-card small{font-size:0.62rem;} .report-sheet.report-client .report-chart-section{padding:0.5rem;border-radius:9px;} .report-sheet.report-client .report-section-heading{margin-bottom:0.2rem;} .report-sheet.report-client .report-section-heading h3{margin-bottom:0;} .report-sheet.report-client .svg-chart{min-height:0;} .report-sheet.report-client .report-lower-grid{margin-top:0.45rem;} .report-sheet.report-client .report-notes{min-height:78px;padding:0.5rem;border-radius:9px;} .report-sheet.report-client #reportNotesText{font-size:0.72rem;line-height:1.35;} .report-sheet.report-client .report-footer{margin-top:0.35rem;padding-top:0.35rem;font-size:0.58rem;} *{print-color-adjust:exact;-webkit-print-color-adjust:exact;}} .report-sheet.report-no-notes .report-lower-grid{grid-template-columns:1fr;} .report-sheet.report-no-notes .doughnut-wrap{grid-template-columns:180px minmax(0,1fr);} .report-sheet.report-no-notes .doughnut-svg-wrap{width:165px;} .client-data-deletion-panel{display:grid;gap:1.15rem;border-color:rgba(243,161,170,0.45);} .client-data-deletion-form{display:grid;gap:0.85rem;max-width:620px;} .client-data-deletion-form button{justify-self:start;} .acknowledgement-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0.6rem;font-weight:var(--font-weight-medium);line-height:1.4;} .acknowledgement-row input{width:1rem;height:1rem;margin-top:0.16rem;} @media (max-width:760px){.client-data-deletion-form button{width:100%;}} .missed-attendance-panel{display:grid;gap:1.15rem;} .missed-attendance-form{display:grid;gap:0.85rem;max-width:760px;} .missed-attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.85rem;} .missed-attendance-form button{justify-self:start;} @media (max-width:760px){.missed-attendance-grid{grid-template-columns:1fr;} .missed-attendance-form button{width:100%;}} .notification-settings-grid{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;} .notification-setting-card{display:grid;gap:0.25rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);min-width:min(100%,360px);} .notification-setting-card strong{font-size:1.15rem;} .notification-setting-actions{display:flex;justify-content:flex-end;} .service-mix-section{margin-top:1rem;} .service-mix-metrics{grid-template-columns:repeat(3,minmax(0,1fr));} @media (max-width:760px){.notification-settings-grid{align-items:stretch;flex-direction:column;} .notification-setting-actions{justify-content:flex-start;} .service-mix-metrics{grid-template-columns:1fr;}} .service-form-actions{display:flex;gap:0.6rem;align-items:center;flex-wrap:wrap;} .migration-dialog{border:0;padding:0;background:transparent;max-width:min(620px,calc(100vw - 32px));width:100%;} .migration-dialog::backdrop{background:rgba(0,0,0,.72);} .migration-dialog .dialog-card{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.55);} .migration-dialog label{display:block;margin:14px 0;} .migration-dialog input{width:100%;box-sizing:border-box;margin-top:7px;} .migration-count{padding:12px 14px;border-radius:10px;background:var(--panel-soft);} .migration-result{display:grid;gap:10px;margin:16px 0;} .migration-result>div{display:flex;justify-content:space-between;gap:20px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);} .migration-result span{color:var(--muted);} .migration-result strong{text-align:right;overflow-wrap:anywhere;} .historical-import-settings{margin-top:14px;} .instructor-editor{padding:0;overflow:hidden;} .instructor-editor-header{margin:0;} .instructor-editor-tabs,.instructor-availability-tabs{display:flex;align-items:center;gap:0.25rem;overflow-x:auto;padding:0 1.1rem;border-bottom:1px solid var(--line);} .instructor-editor-tab,.instructor-availability-tab{border:0;border-radius:0;padding:0.85rem 0.65rem 0.72rem;background:transparent;color:var(--muted);box-shadow:none;white-space:nowrap;} .instructor-editor-tab:hover,.instructor-availability-tab:hover{background:transparent;color:var(--text);} .instructor-editor-tab.is-active,.instructor-availability-tab.is-active{color:var(--accent-emphasis,var(--accent));border-bottom:2px solid var(--accent);} .instructor-editor-panel{padding:1.1rem;} .instructor-profile-form{display:grid;gap:0;} .instructor-editor-section-actions{display:flex;justify-content:flex-end;padding:1rem 0 0;} .instructor-editor-section-actions button{min-width:150px;} .read-only-value{min-height:42px;display:flex;align-items:center;padding:0.65rem 0.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);color:var(--text);} .info-banner{display:grid;gap:0.2rem;margin-bottom:1rem;padding:0.8rem 0.9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);} .info-banner span{color:var(--muted);font-size:0.84rem;} .availability-summary-list{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;} .availability-summary-row{display:grid;grid-template-columns:minmax(110px,.35fr) 1fr;gap:1rem;padding:0.85rem 1rem;border-bottom:1px solid var(--line);} .availability-summary-row:last-child{border-bottom:0;} .availability-summary-row>div{display:flex;gap:0.7rem 1rem;flex-wrap:wrap;} .instructor-override-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:1.25rem;align-items:start;} .compact-heading{margin-top:1rem;} .instructor-overrides-list{display:grid;gap:0.65rem;} .instructor-override-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:0.85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);} .instructor-override-card>div:first-child{display:grid;gap:0.25rem;min-width:0;} .instructor-service-scope{display:grid;gap:0.65rem;margin-bottom:1rem;} .instructor-service-scope>label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0.65rem;align-items:start;padding:0.85rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;} .instructor-service-scope>label>input{width:1rem;height:1rem;margin-top:0.15rem;} .instructor-service-scope span{display:grid;gap:0.18rem;} .instructor-service-scope small{color:var(--muted);} .instructor-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.65rem;} .instructor-service-list.is-disabled{opacity:0.55;} .instructor-service-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0.6rem;align-items:start;padding:0.8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);} .instructor-service-option>input{width:1rem;height:1rem;margin-top:0.16rem;} .instructor-service-option>span{display:grid;gap:0.18rem;min-width:0;} .instructor-service-option small{color:var(--muted);} .instructor-service-option.inactive{opacity:0.55;} .service-card-footer{grid-column:1 / -1;} @media (max-width:760px){.instructor-editor-panel{padding:0.9rem;} .instructor-editor-section-actions button{width:100%;} .instructor-override-layout,.instructor-service-list{grid-template-columns:1fr;} .instructor-override-card{align-items:stretch;flex-direction:column;} .availability-summary-row{grid-template-columns:1fr;gap:0.35rem;}} @media (min-width:761px) and (max-width:1080px){.client-add-form-contact{grid-template-columns:repeat(2,minmax(0,1fr));} .client-add-form-contact button{justify-self:start;}} .import-info,.import-success{color:var(--text);} .import-success{font-weight:var(--font-weight-bold);} .import-resolution-heading{margin:1rem 0 0.55rem;font-size:1rem;} .import-resolution-card{display:grid;gap:0.55rem;margin-top:0.65rem;padding:0.85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);} .import-resolution-card>span{display:block;} .import-resolution-card p{margin:0;} .import-resolution-card label{margin:0;} .import-resolution-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(150px,.8fr) minmax(90px,.45fr) minmax(90px,.45fr);gap:0.65rem;} .import-service-map-fields,.import-service-create-fields{display:grid;gap:0.65rem;} .import-service-map-fields.hidden,.import-service-create-fields.hidden{display:none;} .import-check-row{display:flex;flex-wrap:wrap;gap:0.65rem 1.25rem;} .import-check-row label{display:inline-flex;align-items:center;gap:0.45rem;} .import-check-row input[type="checkbox"]{width:1rem;height:1rem;} .import-error-list{display:grid;gap:0.35rem;padding:0.75rem;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--line));border-radius:10px;} .import-error-list p{margin:0;color:var(--danger);} @media (max-width:760px){.import-resolution-grid{grid-template-columns:1fr 1fr;}} @media (max-width:520px){.import-resolution-grid{grid-template-columns:1fr;}} @media (max-width:640px){.dashboard-metrics-five{grid-template-columns:repeat(2,minmax(0,1fr));}} .timezone-picker{position:relative;width:100%;} .timezone-picker-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 38px;align-items:center;} .timezone-picker-control>input{grid-column:1 / -1;grid-row:1;padding-right:9.4rem;} .timezone-picker-offset{grid-column:2;grid-row:1;z-index:1;align-self:center;justify-self:end;max-width:7.1rem;padding:0.22rem 0.48rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:0.76rem;font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;pointer-events:none;} .timezone-picker-toggle{grid-column:3;grid-row:1;z-index:2;justify-self:stretch;align-self:stretch;min-width:38px;min-height:0;padding:0;border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:transparent;color:var(--muted);box-shadow:none;} .timezone-picker-toggle:hover{background:var(--panel-soft);color:var(--text);filter:none;transform:none;} .timezone-picker-toggle:active{transform:none;} .timezone-picker-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;} .timezone-picker-menu{position:absolute;z-index:80;top:calc(100% + 0.35rem);left:0;right:0;max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:0.35rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);} .timezone-picker-menu[hidden]{display:none;} .timezone-picker-options{display:grid;gap:0.12rem;} button.timezone-picker-option{width:100%;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.8rem;padding:0.48rem 0.58rem;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;font-weight:var(--font-weight-regular);line-height:1.25;box-shadow:none;} button.timezone-picker-option:hover,button.timezone-picker-option:focus-visible,button.timezone-picker-option.is-active{background:var(--panel-soft);color:var(--text);filter:none;transform:none;} .timezone-picker-zone{min-width:0;overflow-wrap:anywhere;} .timezone-picker-option-offset{color:var(--muted);font-size:0.8rem;white-space:nowrap;} .timezone-picker-empty{padding:0.72rem;color:var(--muted);font-size:0.86rem;line-height:1.4;} @media (max-width:520px){.timezone-picker-control>input{padding-right:7.8rem;} .timezone-picker-offset{max-width:5.8rem;font-size:0.7rem;padding-inline:0.35rem;} .timezone-picker-menu{max-height:240px;} button.timezone-picker-option{gap:0.5rem;font-size:0.88rem;} .timezone-picker-option-offset{font-size:0.74rem;}} .terminology-form{max-width:760px} .terminology-grid{display:grid;gap:12px} .terminology-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1fr) minmax(170px,1fr);gap:12px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)} .terminology-row>span{align-self:center;font-weight:var(--font-weight-bold)} .terminology-row label{margin:0} @media (max-width:760px){.terminology-row{grid-template-columns:1fr}.terminology-row>span{margin-bottom:-2px}} .app-footer{width:min(1440px,calc(100% - 32px));margin:0 auto 22px;padding:14px 4px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:.8rem} .app-footer-link{border:0;background:transparent;color:var(--muted);padding:4px 0;box-shadow:none;font-weight:var(--font-weight-bold);text-decoration:none} .app-footer-link:hover,.app-footer-link:focus-visible{background:transparent;color:var(--text);text-decoration:underline;text-underline-offset:3px;transform:none;filter:none;outline:none} .help-dialog-card{width:min(560px,calc(100vw - 32px))} .help-copy{display:grid;gap:12px;color:var(--muted);line-height:1.6} .help-copy p{margin:0} @media(max-width:640px){.app-footer{width:calc(100% - 24px);margin-bottom:14px}.app-footer{font-size:.76rem}}

/* Bulk planner conflict feedback: draft rows remain editable but cannot be saved while overlapping. */
#plannerBody tr.planner-conflict td{background:color-mix(in srgb,var(--danger) 7%,transparent)}
#plannerBody tr.planner-conflict .row-time{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 18%,transparent)}
#plannerBody tr.planner-conflict .schedule-note.is-conflict{color:var(--danger);font-weight:var(--font-weight-medium)}
 .login-home-link{display:block;color:inherit;text-decoration:none;border-radius:8px;line-height:0;} .login-home-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}.font-settings{gap:1rem}.font-mode-fieldset{display:grid;gap:.65rem;margin:0;padding:0;border:0;min-width:0}.font-mode-fieldset legend{margin-bottom:.2rem;color:var(--muted);font-size:.92rem;font-weight:var(--font-weight-medium)}.font-mode-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);cursor:pointer}.font-mode-option:has(input:checked){border-color:var(--accent-emphasis,var(--accent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 36%,transparent)}.font-mode-option input{width:1rem;height:1rem;min-height:0;margin:.17rem 0 0;accent-color:var(--accent)}.font-mode-option span{display:grid;gap:.18rem;min-width:0}.font-mode-option strong{color:var(--text);font-weight:var(--font-weight-medium)}.font-mode-option small{color:var(--muted);font-weight:var(--font-weight-regular);line-height:1.4}.font-upload-fields{display:grid;gap:.75rem}.font-upload-fields[hidden]{display:none}.font-upload-fields input[type=file]{padding:.48rem .55rem}@media(max-width:640px){.font-mode-option{padding:.78rem}.font-settings .settings-toolbar button{width:100%}}
