:root{color-scheme:light;--bg:#f7f7f4;--panel:#ffffff;--text:#1d2525;--muted:#62706c;--line:#dfe6e1;--accent:#0f766e;--accent-dark:#115e59;--sunset:#e97a3a;--sunset-soft:#fff4ec;--danger:#b42318;--warn:#a15c07;--ok:#157347}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.topbar{background:#0b3b3b;color:white;padding:18px 24px}.topbar h1{font-size:20px;margin:0}.topbar p{color:#c7d8d2;margin:4px 0 0;font-size:14px}.topbar-with-actions{display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar-logout{background:#f0f6f2}.layout{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - 74px)}.sidebar{background:#edf3ef;border-right:1px solid var(--line);padding:18px}.nav-link{display:block;padding:10px 12px;border-radius:8px;color:#25302e;margin-bottom:6px}.nav-link.active,.nav-link:hover{background:white;color:var(--accent-dark)}.content{padding:24px;max-width:1180px;width:100%}body:has(.customer-page),html:has(.customer-page){background-color:#d6ddd2}.customer-page{--customer-outer-bg:#d6ddd2;--customer-shell-bg:#fff9ef;--customer-card-bg:#ffffff;--customer-card-soft:#f4efe3;--customer-primary:#166534;--customer-primary-dark:#14532d;--customer-orange:#ea7a1f;--customer-orange-dark:#b45309;--customer-orange-soft:#fff1e7;--customer-status-soft:#dcfce7;--customer-status-green:#15803d;--customer-text:#1b241d;--customer-muted:#667064;--customer-border:#bcc8b8;--customer-border-soft:#d6ddd2;--customer-shadow:rgba(27,36,29,0.16);--color-shell-border:var(--customer-border);--color-page-bg:var(--customer-shell-bg);--color-surface:var(--customer-card-bg);--color-surface-soft:var(--customer-card-soft);--color-surface-sand:var(--customer-card-soft);--color-primary:var(--customer-orange);--color-primary-dark:#c2410c;--color-primary-soft:var(--customer-orange-soft);--color-secondary:var(--customer-primary);--color-secondary-dark:var(--customer-primary-dark);--color-seafoam-soft:var(--customer-status-soft);--color-seafoam-border:#a7d4b5;--color-text:var(--customer-text);--color-heading:var(--customer-orange-dark);--color-text-muted:var(--customer-muted);--color-text-subtle:#7a857c;--color-border:var(--customer-border);--color-border-peach:#ffa94d;--color-border-orange:var(--customer-orange);--color-success:var(--customer-status-green);--color-success-soft:var(--customer-status-soft);--color-warning-soft:#fef3c7;--color-error-soft:#fee2e2;min-height:100vh;min-height:100dvh;width:100%;box-sizing:border-box;background:transparent;color:var(--customer-text);padding:22px 20px 32px}.customer-page .content.customer-portal-shell{max-width:1024px;width:100%;margin:0 auto;background:var(--customer-shell-bg);border:2px solid var(--customer-border);border-radius:20px;box-shadow:0 0 0 1px var(--customer-border-soft),0 16px 48px var(--customer-shadow);padding:20px 18px 32px}.customer-page .muted{color:var(--color-text-muted)}.customer-page .panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;box-shadow:0 1px 0 rgba(24,33,38,.03)}.customer-page .page-header h3,.customer-page .panel h3{color:var(--color-text)}.customer-page .page-header h2{color:var(--color-heading)}.customer-page .page-header p{color:var(--color-text-muted)}.customer-page .button:not(.secondary):not(.danger){background:var(--customer-primary);border-radius:12px;color:#ffffff}.customer-page .button:not(.secondary):not(.danger):focus-visible,.customer-page .button:not(.secondary):not(.danger):hover{background:var(--customer-primary-dark)}.customer-page .button.secondary{background:var(--customer-status-soft);border:1px solid var(--customer-border);border-radius:12px;color:var(--customer-primary-dark)}.customer-page .form-success{color:var(--color-success)}.customer-page .form-error{color:var(--color-primary-dark)}.customer-page .field label{color:var(--color-text)}.customer-page .field input,.customer-page .field select,.customer-page .field textarea{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text)}.customer-page .mobile-popup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px}.customer-page .mobile-popup h3{color:var(--color-heading)}.customer-portal-header{margin-bottom:10px}.customer-portal-header-accent{height:4px;margin:0 0 14px;border-radius:999px;background:linear-gradient(90deg,var(--color-primary-dark) 0,var(--color-primary) 52%,var(--color-border-peach) 100%)}.customer-portal-header-hero{position:relative;overflow:hidden;border-radius:16px;border:1px solid var(--color-border);box-shadow:0 10px 28px rgba(24,33,38,.1)}.customer-portal-header-image{display:block;width:100%;height:clamp(140px,28vw,220px);object-fit:cover;object-position:center 42%}.customer-portal-header-bar{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;background:linear-gradient(180deg,rgba(24,33,38,.62),rgba(24,33,38,.28) 52%,rgba(24,33,38,.04))}.customer-portal-header-bar h2{margin:0;font-size:34px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}.customer-home-link{background:none;border:0;padding:0;color:inherit;text-align:left;cursor:pointer}.customer-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.customer-tab{border:1px solid var(--customer-orange);border-radius:999px;background:var(--customer-card-bg);color:var(--customer-text);padding:8px 14px;cursor:pointer;font-weight:700}.customer-tab.active{background:var(--customer-orange-soft);border-color:var(--customer-orange-dark);color:var(--customer-orange-dark)}.customer-tab-panel{margin-top:10px}.customer-portal-top-actions{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.customer-portal-logout{font-weight:700}.customer-launch-status-top-button{font-weight:700;background:var(--customer-status-soft);border:1px solid var(--customer-border);color:var(--customer-primary-dark)}.customer-launch-status-menu .button{width:100%}.customer-launch-status-list{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-gap:8px;gap:8px}.customer-launch-status-list-item{border:1px solid var(--customer-border);border-radius:12px;padding:10px 12px;background:var(--customer-status-soft);color:var(--customer-primary-dark)}.customer-boats-toolbar{display:flex;flex-wrap:wrap;gap:10px}.customer-boat-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.customer-boat-list-item{border:1px solid var(--color-border);border-radius:14px;overflow:hidden;background:var(--color-surface)}.customer-boat-name-button{width:100%;text-align:left;border:0;background:transparent;padding:14px 16px;font-size:16px;font-weight:700;color:var(--color-heading);cursor:pointer}.customer-boat-name-button.expanded{background:var(--color-primary-soft)}.customer-boat-details{padding:0 16px 16px}.customer-boat-details-toolbar{display:flex;gap:8px;margin-bottom:10px}.customer-boat-readonly p{margin:6px 0}.customer-membership-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.customer-membership-summary-grid{display:grid;grid-gap:12px;gap:12px}@media (min-width:720px){.customer-membership-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.customer-membership-summary-card{border:1px solid var(--color-border);border-radius:14px;padding:14px 16px;background:var(--color-surface)}.customer-membership-summary-card.active{border-color:var(--color-border-orange);background:var(--color-surface-soft)}.customer-membership-summary-label{margin:0 0 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.customer-membership-summary-title{margin:0;font-size:18px;font-weight:800;color:var(--color-text)}.customer-membership-summary-price{margin:6px 0;font-size:16px;font-weight:700;color:var(--color-heading)}.customer-membership-plans-section{margin-top:16px}.customer-membership-plans-section h4{margin:0 0 10px;color:var(--color-heading)}.customer-membership-plan-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--color-border);border-radius:12px;padding:12px 14px;background:var(--color-surface)}.customer-membership-plan-required{background:var(--color-surface-soft)}.customer-membership-launch-choice{cursor:pointer}.customer-membership-launch-choice.is-active,.customer-membership-launch-choice.is-current-plan{border-color:var(--color-border-orange);background:var(--color-surface-soft)}.customer-membership-launch-choice input:disabled{cursor:default}.customer-membership-launch-radio{flex-shrink:0;margin:0}.customer-membership-boat-select{margin-bottom:14px}.customer-membership-see-plans{font-size:13px;padding:6px 12px}.customer-membership-change-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.customer-payment-history-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--color-border)}.customer-payment-history-section h4{margin:0 0 10px;color:var(--color-heading)}.customer-payment-history-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.customer-payment-history-item{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-radius:12px;padding:10px 12px;background:var(--color-surface-soft)}.customer-payment-history-item.unread{border-color:var(--color-border-orange)}.customer-notifications-pill{font-size:13px;padding:6px 12px}.customer-notification-summary{margin-top:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:12px;display:grid;grid-gap:8px;gap:8px}.customer-notification-summary-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.customer-notification-summary-item{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-radius:10px;background:#fff;padding:8px 10px}.customer-notification-summary-item.unread{border-color:var(--color-border-orange)}.customer-notification-summary-button{display:grid;grid-gap:4px;gap:4px;width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;cursor:pointer}.customer-notification-affected-date,.customer-notification-summary-affected-date{font-weight:600}.customer-notification-method-row{display:flex;align-items:center}.customer-notification-method-name{border:0;background:none;color:var(--color-text);cursor:pointer;font:inherit;font-weight:700;padding:0;text-decoration:underline;text-underline-offset:2px}.customer-in-app-alerts-popup .mobile-popup-actions{justify-content:flex-start}.customer-notifications-popup .checkbox{display:flex;align-items:center;gap:8px}.customer-notification-list{margin-top:18px;padding-top:14px;border-top:1px solid var(--color-border)}.customer-notification-list h4{margin:0 0 10px;color:var(--color-heading)}.customer-membership-plan-row.is-active{border-color:var(--color-border-orange);background:var(--color-surface-soft)}.customer-membership-plan-badges{display:flex;align-items:center;gap:8px}.customer-plan-status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;background:var(--customer-status-soft);color:var(--customer-primary-dark);border:1px solid var(--customer-border)}.customer-plan-status-pill:before{content:"";width:7px;height:7px;border-radius:999px;background:var(--customer-primary)}.customer-plan-status-pill.active{background:var(--customer-status-soft);color:var(--customer-primary);border-color:var(--customer-border)}.customer-plan-red-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:var(--color-error-soft);color:var(--color-primary-dark);font-weight:900;line-height:1}.mobile-popup-actions{flex-wrap:wrap;margin-top:16px}.owner-activity-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.owner-activity-list li{padding-bottom:10px;border-bottom:1px solid var(--line)}.customer-launch-home{min-height:280px;display:grid;place-items:center}.customer-launch-flow{margin-top:4px}.customer-launch-flow-toolbar{display:flex;justify-content:flex-start;margin-bottom:12px}.customer-launch-flow-panel{margin-top:0}.customer-launch-time-picker{display:grid;grid-gap:8px;gap:8px}.customer-launch-available-times-trigger{width:min(100%,280px);justify-self:start}.customer-launch-selected-time{margin:0;font-size:.95rem}.customer-launch-available-times-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.customer-launch-available-times-header h3{margin:0;flex:1 1}.customer-launch-available-times-close{flex-shrink:0;border:0;background:transparent;color:var(--color-text);font-size:28px;line-height:1;padding:0 4px;min-width:44px;min-height:44px;cursor:pointer}.customer-launch-available-times-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:8px}.customer-launch-available-times-list{display:grid;grid-gap:10px;gap:10px}.customer-launch-available-times-option{width:100%;justify-content:center}.customer-launch-available-times-option:focus-visible,.customer-launch-available-times-trigger:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.mobile-popup-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:16px;background:rgba(27,36,48,.48)}.mobile-popup{width:min(100%,420px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--line);border-radius:20px;background:white;box-shadow:0 18px 48px rgba(27,36,48,.28);padding:20px}.mobile-popup h3{margin:0 0 10px}.mobile-popup-message{margin:0;white-space:pre-line;overflow-wrap:anywhere}.mobile-popup-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@media (max-width:480px){.mobile-popup-backdrop{align-items:end;padding:12px}.mobile-popup{width:100%;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);border-radius:18px}.mobile-popup-actions{flex-direction:column-reverse}.mobile-popup-actions .button{width:100%}}.customer-launch-orb{width:min(280px,72vw);aspect-ratio:1/1;border-radius:999px;border:0;font-size:clamp(22px,4vw,32px);font-weight:700;color:white;background:radial-gradient(circle at 30% 30%,#ffa94d 0,#ea7a1f 55%,#c2410c 100%);box-shadow:0 10px 24px rgba(234,122,31,.35);cursor:pointer}.stack{display:grid}.gap-sm{gap:8px}.gap-md{gap:14px}.form-success{color:var(--ok)}.form-error{color:var(--danger)}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.page-header h2{font-size:26px;margin:0 0 6px}.page-header p{color:var(--muted);margin:0}.grid{display:grid;grid-gap:16px;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.owner-today-page{min-width:0;max-width:100%;overflow-x:clip}.owner-today-revenue-metrics{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.owner-today-page .table-wrap{max-width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}.panel h3{margin:0 0 12px;font-size:18px}.owner-payment-exceptions-intro{margin:0 0 16px}.owner-payment-exceptions-banner{margin:0 0 16px;padding:12px 14px;border:1px solid #d9b44a;border-radius:8px;background:#fff8e8}.owner-payment-exceptions-banner p{margin:0}.owner-payment-exceptions-banner p+p{margin-top:8px}.owner-payment-exceptions-code{font-size:13px;margin-top:4px;word-break:break-word}.owner-payment-exceptions-note{margin:8px 0 0;font-size:13px}.owner-payment-exceptions-refs{margin:0;font-size:13px}.owner-payment-exceptions-refs div+div{margin-top:6px}.owner-payment-exceptions-refs dt{font-weight:600;margin:0}.owner-payment-exceptions-refs dd{margin:2px 0 0;word-break:break-word}.owner-payment-exceptions-table-wrap td{vertical-align:top}.owner-payment-exceptions-pagination{margin-top:16px;flex-wrap:wrap;gap:8px}.muted{color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.field{display:grid;grid-gap:6px;gap:6px}.field.full{grid-column:1/-1}.field label{color:#263331;font-size:13px;font-weight:700}.field input,.field select,.field textarea{border:1px solid #cbd8d2;border-radius:8px;padding:9px 10px;background:white;min-width:0}.field textarea{min-height:82px;resize:vertical}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.button{border:0;border-radius:8px;padding:10px 14px;background:var(--accent);color:white;cursor:pointer;font-weight:700}.button.secondary{background:#e8efeb;color:#20302d}.button.danger{background:var(--danger)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:white}table{border-collapse:collapse;width:100%;min-width:760px}td,th{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;vertical-align:top}th{background:#f0f6f2;font-size:13px}tr:last-child td{border-bottom:0}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#e7efec;color:#25413b;font-size:12px;font-weight:700;padding:4px 8px;white-space:nowrap}.badge.ok{background:#e5f6eb;color:var(--ok)}.badge.warn{background:#fff2da;color:var(--warn)}.badge.danger{background:#fde7e5;color:var(--danger)}.empty-state{border:1px dashed #bdcbc5;border-radius:8px;padding:24px;color:var(--muted);background:#fbfdfb}.notice{border-left:4px solid var(--accent);background:#ecf8f5;padding:12px;border-radius:6px;color:#183f3a}.owner-customers-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.owner-pill{border-radius:999px;background:var(--ok);min-width:130px}.owner-pill:disabled{opacity:.5;cursor:not-allowed}.owner-customers-search{margin-top:14px}.owner-customers-list{margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.owner-customer-row{display:grid;grid-template-columns:1.8fr 1fr .9fr 1.1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:#fff}.owner-customer-row:last-child{border-bottom:0}.owner-customer-name-button{border:0;background:transparent;padding:0;color:#0f4c43;cursor:pointer;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:2px}.owner-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.owner-status-pill.current{background:#e5f6eb;color:var(--ok)}.owner-status-pill.late{background:#fde7e5;color:var(--danger)}.owner-slot-chip-list{display:flex;flex-wrap:wrap;gap:6px}.owner-slot-chip{border:1px solid #c8d7d1;padding:3px 9px;font-size:12px;font-weight:700;background:#f4f8f6}.owner-billing-pill,.owner-slot-chip{border-radius:999px}.owner-customer-popup{width:min(100%,920px)}.owner-add-stages{margin-top:14px;display:grid;grid-gap:8px;gap:8px}.owner-stage-form{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.owner-inline-checkbox{display:inline-flex;align-items:center;gap:8px}.owner-customer-file-popup{max-height:calc(100vh - 38px);max-height:calc(100dvh - 38px)}.owner-customer-file-layout{display:grid;grid-template-columns:180px 1fr;grid-gap:14px;gap:14px;margin-top:12px}.owner-customer-file-nav{display:grid;grid-gap:8px;gap:8px;align-content:start}.owner-customer-file-nav-pill{border-radius:999px;background:#edf3ef;color:#1f302d;text-align:left}.owner-customer-file-nav-pill.active{background:#d7ebe1;color:#0f4c43}.owner-customer-file-content{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.owner-customer-boats{display:grid;grid-gap:10px;gap:10px}.owner-customer-boat-item{border:1px solid var(--line);border-radius:12px;overflow:hidden}.owner-customer-boat-summary{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#f7fbf9}.owner-customer-boat-summary .owner-customer-boat-name{width:auto;flex:1 1 auto;padding:4px 0;background:transparent}.owner-customer-boat-separator{color:#5f736f;flex:0 0 auto}.owner-customer-boat-slot{flex:0 0 auto;white-space:nowrap}.owner-customer-boat-name{width:100%;border:0;padding:11px 12px;text-align:left;font:inherit;font-weight:700;color:#183f3a;background:#f7fbf9;cursor:pointer}.owner-customer-boat-name.expanded{background:#e8f5ef}.owner-customer-boat-details{padding:10px 12px 12px}.owner-customer-boat-details p{margin:6px 0}.owner-history-pill{width:-moz-fit-content;width:fit-content}.owner-payment-history-list{display:grid;grid-gap:8px;gap:8px}.owner-payment-history-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:12px;background:#f9fcfa}.owner-customers-advanced-panel summary{cursor:pointer;font-weight:700}.owner-customers-advanced-sections{margin-top:12px;display:grid;grid-gap:14px;gap:14px}.owner-slots-ops-panel{display:grid;grid-gap:12px;gap:12px}.owner-auto-add-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.owner-auto-add-label{margin:0;font-weight:700}.owner-auto-add-toggle{border-radius:999px;min-width:170px}.owner-auto-add-toggle.enabled{background:var(--ok)}.owner-auto-add-toggle.disabled{background:var(--danger)}.owner-slots-search-field{margin-top:4px}.owner-slot-search-results{display:grid;grid-gap:6px;gap:6px}.owner-slot-search-result{border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;padding:9px 10px;cursor:pointer}.owner-unassigned-bar{border-radius:12px;justify-content:flex-start}.owner-unassigned-list{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fbfdfb;display:grid;grid-gap:6px;gap:6px}.owner-unassigned-item{border:1px solid #d0ddd6;border-radius:8px;background:#fff;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.owner-unassigned-item-main{flex:1 1 auto;text-align:left}.owner-unassigned-item-actions{display:flex;gap:8px;flex-wrap:wrap}.owner-unassigned-action{min-width:130px;justify-content:center}.owner-unassigned-item.selected{border-color:#79b694;background:#edf8f1}.owner-slots-action-row{display:flex;flex-wrap:wrap;gap:10px}.owner-show-all-toggle.enabled{border:1px solid #79b694}.owner-slot-segments{display:grid;grid-template-columns:repeat(2,minmax(0,220px));justify-content:center;grid-gap:8px 12px;gap:8px 12px}.owner-slot-segment{border-radius:10px;text-align:center}.owner-slot-segment.active{background:#dceee5;color:#123c35}.owner-slot-list{border:1px solid var(--line);border-radius:12px;overflow:hidden}.owner-slot-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:10px 12px;display:grid;grid-template-columns:130px 1fr 1fr;grid-gap:12px;gap:12px;text-align:left;cursor:pointer}.owner-slot-row:last-child{border-bottom:0}.owner-slot-row.empty{background:#fbfdfb}.owner-slot-row.disabled{background:#f4f6f5;color:#7a8681}.owner-slot-detail-nav-pill{border-radius:999px;background:#edf3ef;color:#1f302d;text-align:left}.owner-slot-detail-nav-pill.active{background:#d7ebe1;color:#0f4c43}.owner-slot-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.owner-slot-photo-groups{display:grid;grid-gap:12px;gap:12px}.owner-slot-photo-group{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdfb}.owner-assigned-badge{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;background:#d7ebe1;color:#0f4c43;font-size:12px;font-weight:700;vertical-align:middle}.owner-slot-photo-item{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.owner-slot-photo-item img{display:block;width:100%;height:140px;object-fit:cover}.login-page{min-height:100vh;display:grid;place-items:center;max-width:none}.login-panel{width:min(420px,100%)}.login-error{color:var(--danger);margin:10px 0 0}@media (max-width:820px){.layout{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line)}.nav-link{display:inline-block;margin-right:6px}.content{padding:16px}.customer-page{padding:18px 12px 24px}.customer-page .content.customer-portal-shell{padding:16px 14px 28px;border-radius:18px;max-width:calc(100% - 4px)}.form-grid,.grid.three,.grid.two{grid-template-columns:1fr}.page-header{display:block}.owner-customer-row{align-items:flex-start}.owner-customer-file-layout,.owner-customer-row{grid-template-columns:1fr}.owner-customer-file-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.owner-customer-file-nav-pill{text-align:center}.owner-auto-add-row,.owner-payment-history-item{flex-direction:column}.owner-auto-add-row{align-items:flex-start}.owner-slot-segments{grid-template-columns:1fr;justify-content:stretch}.owner-slot-row{grid-template-columns:1fr;gap:6px}.customer-portal-header-bar{align-items:flex-start;flex-direction:column}.customer-portal-header-bar h2{font-size:30px}.topbar-with-actions{align-items:flex-start;flex-direction:column}}.owner-schedule-search-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.owner-schedule-search-input{flex:1 1 240px;min-width:0}.owner-schedule-action-notice{margin-bottom:12px}.owner-schedule-search-message{margin-top:10px}.owner-schedule-primary-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px}.owner-schedule-edit-a-date-panel .button{margin-top:10px}.owner-schedule-daily-popup{max-width:32rem}.owner-schedule-daily-popup.owner-schedule-day-edit-popup{max-width:28rem}.owner-schedule-day-edit-popup .mobile-popup-actions{flex-wrap:wrap}.owner-schedule-edit-a-date-status{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;grid-gap:8px;gap:8px}.owner-schedule-edit-a-date-status legend{padding:0 4px;font-weight:600}.owner-schedule-edit-a-date-status-option{display:flex;align-items:center;gap:8px;font-size:14px}.owner-schedule-day-info-grid{margin-top:10px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fbfdfb;display:grid;grid-gap:6px;gap:6px}.owner-schedule-day-close-button{justify-self:flex-start;margin-top:6px}.owner-schedule-day-popup-bookings{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px}.owner-schedule-day-popup-bookings h4{margin:0 0 8px}.owner-schedule-day-popup-booking-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.owner-schedule-day-popup-booking-list li{border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px}.owner-schedule-day-close-confirm,.owner-schedule-day-close-danger-confirm{max-width:32rem}.owner-schedule-daily-close-toggle{display:block;margin-top:10px;margin-bottom:10px}.owner-schedule-calendar-shell{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}.owner-schedule-generate-settings{margin-top:12px}.owner-schedule-generate-settings summary{cursor:pointer;font-weight:600}.owner-schedule-template-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:12px}.owner-schedule-template-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;text-align:left;display:grid;grid-gap:8px;gap:8px;cursor:pointer}.owner-schedule-template-card:hover{border-color:#79b694;background:#f8fcfa}.owner-schedule-template-card-title{font-size:16px;font-weight:600}.owner-schedule-template-card-action{color:#1f6b57;font-weight:600}.owner-schedule-advanced-panel summary{cursor:pointer;font-weight:600}.owner-schedule-next-available-list{margin-top:12px}.owner-schedule-next-available-list ul{margin-top:8px}.owner-schedule-calendar-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.owner-schedule-calendar-view-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.owner-schedule-calendar-view-tab{border-color:#b8c9c0;background:#ffffff;color:#1e2e26}.owner-schedule-calendar-view-tab.active{border-color:#79b694;background:#edf8f1;color:#0f5132}.owner-schedule-calendar-view-tab:not(.active){opacity:1}.owner-schedule-month-toolbar,.owner-schedule-week-toolbar,.owner-schedule-year-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.owner-schedule-month-toolbar-actions,.owner-schedule-month-toolbar-nav,.owner-schedule-year-toolbar-nav{display:flex;align-items:center;gap:8px}.owner-schedule-year-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.owner-schedule-year-month-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;text-align:left;display:grid;grid-gap:8px;gap:8px}.owner-schedule-year-month-card:hover{border-color:#79b694}.owner-schedule-year-month-card.selected{border-color:#79b694;background:#edf8f1}.owner-schedule-year-month-open{border:0;background:transparent;text-align:left;display:grid;grid-gap:8px;gap:8px;padding:0;cursor:pointer}.owner-schedule-year-month-name{font-size:16px;font-weight:600}.owner-schedule-year-month-booked{color:#1d5ea8;font-size:14px}.owner-schedule-year-month-hours-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.owner-schedule-year-month-hours-label{font-size:13px;color:#5f6f68}.owner-schedule-view-times-button{border:0;background:transparent;color:#157347;font-size:13px;font-weight:600;padding:0;cursor:pointer;text-decoration:underline}.owner-schedule-month-times-popup .owner-schedule-month-times-lines p,.owner-schedule-overlap-confirm-message p{margin:4px 0}.owner-schedule-overlap-confirm-message p:first-child{font-weight:600}.owner-schedule-year-edit-actions{margin-top:12px;display:flex;align-items:center;gap:8px;justify-content:flex-end}.owner-schedule-year-edit-actions .muted{margin-right:auto}.owner-schedule-year-edit-message{margin-top:8px}.owner-schedule-year-bulk-view-times{margin:8px 0 12px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8faf9;display:grid;grid-gap:10px;gap:10px}.owner-schedule-year-bulk-view-times-month p{margin:2px 0}.owner-schedule-month-weekdays{margin-bottom:6px;text-align:center;font-size:12px;font-weight:600;color:#5f6f68}.owner-schedule-month-grid,.owner-schedule-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.owner-schedule-month-day{border:1px solid var(--line);border-radius:10px;background:#fff;min-height:72px;padding:8px;text-align:left;display:grid;grid-gap:6px;gap:6px}.owner-schedule-month-day-open{border:0;background:transparent;text-align:left;display:grid;grid-gap:6px;gap:6px;padding:0;cursor:pointer}.owner-schedule-month-day.empty{border-color:transparent;background:transparent;cursor:default}.owner-schedule-month-day-number{font-weight:600}.owner-schedule-month-day-booked{color:#1d5ea8;font-size:12px}.owner-schedule-month-day.selected{border-color:#79b694;background:#edf8f1}.owner-schedule-month-day.today{box-shadow:inset 0 0 0 2px #1d5ea8}.owner-schedule-month-day-closed{border-color:#c45c5c;background:#fff5f5;color:#8f2f2f}.owner-schedule-month-day-closed .owner-schedule-month-day-booked,.owner-schedule-month-day-closed .owner-schedule-month-day-number{color:#8f2f2f}.owner-schedule-month-day-closed.selected{border-color:#c45c5c;background:#ffecec;box-shadow:inset 0 0 0 1px #79b694}.owner-schedule-month-day-closed.today{border-color:#c45c5c;background:#ffecec;box-shadow:inset 0 0 0 2px #1d5ea8}.owner-schedule-month-day-closed:hover{background:#ffe8e8}.owner-schedule-month-day-status{font-size:11px;font-weight:600;color:#8f2f2f;text-transform:uppercase;letter-spacing:.02em}.owner-schedule-month-day-open:focus-visible{outline:2px solid #1d5ea8;outline-offset:2px}.owner-schedule-week-list{display:grid;grid-gap:10px;gap:10px}.owner-schedule-week-day-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px 14px}.owner-schedule-week-day-card,.owner-schedule-week-day-open{display:flex;justify-content:space-between;gap:12px;text-align:left;align-items:center}.owner-schedule-week-day-open{border:0;background:transparent;width:auto;flex:1 1;cursor:pointer}.owner-schedule-week-day-card.selected{border-color:#79b694;background:#edf8f1}.owner-schedule-week-day-card.today{box-shadow:inset 0 0 0 2px #1d5ea8}.owner-schedule-week-day-closed{border-color:#c45c5c;background:#fff5f5;color:#8f2f2f}.owner-schedule-week-day-closed .owner-schedule-week-day-booked,.owner-schedule-week-day-closed .owner-schedule-week-day-label{color:#8f2f2f}.owner-schedule-week-day-closed.selected{border-color:#c45c5c;background:#ffecec;box-shadow:inset 0 0 0 1px #79b694}.owner-schedule-week-day-closed.today{border-color:#c45c5c;background:#ffecec;box-shadow:inset 0 0 0 2px #1d5ea8}.owner-schedule-week-day-closed:hover{background:#ffe8e8}.owner-schedule-week-day-status{font-size:12px;font-weight:600;color:#8f2f2f;text-transform:uppercase;letter-spacing:.02em}.owner-schedule-week-day-open:focus-visible{outline:2px solid #1d5ea8;outline-offset:2px}.owner-schedule-week-day-label{flex:1 1}.owner-schedule-week-day-booked{color:#1d5ea8;font-weight:600}.owner-schedule-week-day-edit{color:#ad2232;font-weight:600;border-color:#efb7bf;background:#fff3f5}.owner-schedule-day-popup-actions{display:flex;align-items:center;gap:8px}.owner-schedule-day-popup{margin-top:16px;border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfdfb}.owner-schedule-period-totals{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.owner-schedule-booked-total{color:#1d5ea8;font-weight:700}.owner-schedule-income-button{color:#157347;border-color:#9fd3b7;background:#eef9f1;font-weight:700}.owner-schedule-day-popup-count{color:#1d5ea8;font-weight:600}.owner-schedule-day-reserved-table td{vertical-align:middle}.owner-schedule-day-reserved-row{cursor:pointer}.owner-schedule-day-reserved-row:hover{background:#edf8f1}.owner-schedule-booking-popup{width:min(920px,calc(100vw - 24px))}.owner-schedule-membership-pill{display:inline-flex;align-items:center;justify-content:center;min-width:34px;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.owner-schedule-membership-pill.cm{color:#155d3b;background:#e8f8ef}.owner-schedule-membership-pill.pg{color:#855300;background:#fff4dc}.owner-schedule-day-popup-header{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.owner-schedule-year-bulk-popup{width:min(780px,calc(100vw - 24px))}.owner-schedule-year-bulk-month-picker{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.owner-schedule-year-bulk-month-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.owner-schedule-year-bulk-month-pill{border:1px solid #7fb6e8;border-radius:999px;background:#eef6ff;color:#1d5ea8;padding:8px 10px;font-size:13px;font-weight:600;cursor:pointer}.owner-schedule-year-bulk-month-pill-group-0,.owner-schedule-year-bulk-month-pill.selected{border-color:#4e95d8;background:#ddecff}.owner-schedule-year-bulk-month-pill-group-1{border-color:#6ea46d;background:#e9f6e8;color:#2f6f2e}.owner-schedule-year-bulk-month-pill-group-2{border-color:#b98d2f;background:#fff4dc;color:#855300}.owner-schedule-year-bulk-month-pill-group-3{border-color:#8c7bd8;background:#efeaff;color:#4b3a96}.owner-schedule-year-bulk-month-pill-group-4{border-color:#d06f98;background:#ffecf3;color:#8d204e}.owner-schedule-year-bulk-month-pill-group-5{border-color:#4c9d95;background:#e8f8f6;color:#1d6f68}.owner-schedule-year-bulk-month-pill-group-unknown{border-color:#4e95d8;background:#ddecff}.owner-schedule-year-bulk-mode-pills{display:grid;grid-gap:8px;gap:8px;margin-top:16px}.owner-schedule-year-bulk-mode-pill{border:1px solid var(--line);border-radius:999px;background:#fff;padding:10px 14px;text-align:left;font-size:14px;cursor:pointer}.owner-schedule-year-bulk-mode-pill.active{border-color:#79b694;background:#edf8f1}.owner-schedule-year-bulk-mode-panel{margin-top:12px}.owner-schedule-year-bulk-weekday-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.owner-schedule-year-bulk-weekday-header label{margin:0}.owner-schedule-year-bulk-exclude-day-button{white-space:nowrap}.owner-schedule-year-bulk-weekday-pills{display:flex;flex-wrap:wrap;gap:8px}.owner-schedule-year-bulk-weekday-pill{border:1px solid var(--line);border-radius:999px;background:#fff;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}.owner-schedule-year-bulk-weekday-pill.selected{border-color:#79b694;background:#edf8f1}.owner-schedule-year-bulk-weekday-pill.closed,.owner-schedule-year-bulk-weekday-pill.closed.selected{border-color:#c45c5c;background:#ffecec;color:#8f2f2f}.owner-schedule-year-bulk-close-hint{margin-top:12px}.owner-schedule-year-bulk-grid{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.owner-schedule-year-bulk-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:56px minmax(0,1fr) minmax(0,1fr) 120px;align-items:center}.owner-schedule-year-bulk-row input[type=time]{width:100%}.owner-schedule-year-bulk-closed-toggle{display:inline-flex;align-items:center;gap:4px;font-size:13px}@media (max-width:720px){.owner-schedule-year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-schedule-year-bulk-row{grid-template-columns:1fr;align-items:stretch}}