:root{color-scheme:light;font-family:DM Sans,sans-serif;color:#202b27;background:#f4f7f4;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #202b27;--muted: #75817b;--line: #e5ebe6;--green: #286b57;--green-dark: #1d5746;--mint: #e6f3ed;--coral: #d97963;--shadow: 0 18px 50px rgb(28 52 42 / 12%)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-size:14px}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.auth-loading,.admin-login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-loading{color:var(--muted)}.admin-login-panel{width:min(100%,390px);padding:28px;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:var(--shadow)}.admin-login-mark{width:42px;height:42px;margin-bottom:22px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--green);font:600 24px Playfair Display,serif}.admin-login-panel .eyebrow{display:block;margin:0 0 5px}.admin-login-panel h1{font-size:26px}.admin-login-copy{margin:8px 0 20px;color:var(--muted);font-size:12px}.admin-login-form{display:grid;gap:14px}.admin-login-form .primary-button{width:100%}.admin-login-warning{margin-top:18px;padding:12px;display:flex;gap:10px;border-radius:6px;color:#795a20;background:#fbf3df;font-size:12px;line-height:1.5}.admin-login-warning svg{flex:0 0 auto}.sidebar{padding:27px 18px 22px;border-right:1px solid var(--line);background:#fbfcfb;display:flex;flex-direction:column;gap:27px}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;color:inherit;text-decoration:none}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:#fff;background:var(--green);font:600 21px Playfair Display,serif}.brand strong{display:block;font:600 17px Playfair Display,serif}.brand small{display:block;margin-top:2px;color:var(--muted);font-size:10px;letter-spacing:.7px;text-transform:uppercase}.salon-switch{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.salon-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:#f8e8df;color:#a65e4e}.salon-label{min-width:0;flex:1;font-size:12px}.salon-label strong,.salon-label small{display:block}.salon-label small{margin-top:3px;color:var(--muted);font-size:11px}.mini-head,.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:600}.mini-head>div{display:flex}.icon-button{width:30px;height:30px;padding:0;display:inline-grid;place-items:center;border:0;border-radius:6px;color:#68756e;background:transparent}.icon-button:hover{background:#eef3ef}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-top:8px;text-align:center}.mini-grid button,.mini-grid span{width:28px;height:28px;padding:0;justify-self:center;display:grid;place-items:center;border:0;border-radius:50%;color:#65716b;background:transparent;font-size:11px}.mini-grid .weekday{height:22px;color:#9aa39e;font-size:9px}.mini-grid .outside{color:#c5ccc7}.mini-grid .today:not(.selected){color:var(--green);box-shadow:inset 0 0 0 1px #8db7a5;font-weight:700}.mini-grid .selected{color:#fff;background:var(--green);font-weight:700}.side-heading,.eyebrow{margin:0 8px 10px;color:#8b9690;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.team-open{width:100%;min-height:41px;padding:7px 9px;display:flex;align-items:center;gap:9px;border:0;border-radius:6px;background:transparent;text-align:left;font-size:12px}.team-open:hover{background:#edf3ef}.team-open-mark{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:var(--green);background:var(--mint)}.team-count{margin-left:auto;color:var(--muted);font-size:10px}.sidebar-bottom{margin-top:auto}.hours{padding:12px;border:1px solid var(--line);border-radius:8px;background:#f5f8f5}.hours strong{font-size:11px}.hours p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.main-content{min-width:0;padding:0 28px 32px}.topbar{height:73px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.crumb{color:var(--muted);font-size:12px}.crumb span{padding:0 5px}.crumb strong{color:var(--ink);font-weight:600}.top-actions{display:flex;align-items:center;gap:9px}.search{width:220px;height:36px;position:relative;display:flex;align-items:center;color:#88938d}.search svg{position:absolute;left:11px}.search input{width:100%;height:100%;padding:0 10px 0 34px;border:1px solid var(--line);border-radius:6px;outline:0;background:#fff;font-size:12px}.search input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#79a993;box-shadow:0 0 0 3px #286b5717}.user-avatar{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;background:#f3d6cb;color:#855443;font-size:11px;font-weight:700}.page-heading{margin:25px 0 21px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}h1,.modal-head h2,.drawer-heading h2{margin:0;font:600 28px Playfair Display,serif}.page-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.primary-button,.save-button{min-height:38px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--green);border-radius:6px;color:#fff;background:var(--green);font-size:12px;font-weight:600}.primary-button:hover,.save-button:hover{background:var(--green-dark)}.primary-button:disabled,.save-button:disabled{opacity:.65;cursor:wait}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.stat{min-height:75px;padding:13px 15px;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:7px;background:#fff}.stat-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:7px;color:var(--green);background:var(--mint)}.stat:nth-child(2) .stat-icon{color:#aa634f;background:#faeee8}.stat:nth-child(3) .stat-icon{color:#59798a;background:#eaf2f4}.stat-value{display:block;font-size:19px;line-height:1}.stat-label{display:block;margin-top:5px;color:var(--muted);font-size:11px}.calendar-panel{overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}.calendar-toolbar{min-height:60px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.date-nav,.view-actions{display:flex;align-items:center;gap:5px}.date-nav strong{min-width:166px;padding-left:8px;font-size:14px}.outline-button,.cancel-button{min-height:32px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:11px;font-weight:600}.outline-button:hover,.cancel-button:hover{background:#f6f8f6}.segmented{display:flex;padding:3px;border:1px solid var(--line);border-radius:6px}.segmented button{height:25px;padding:0 9px;border:0;border-radius:4px;color:var(--muted);background:transparent;font-size:10px}.segmented button.active{color:var(--green-dark);background:#eaf3ed;font-weight:700}.mobile-filter{display:none}.calendar-scroll{max-height:calc(100vh - 350px);min-height:430px;overflow:auto}.week-grid{min-width:840px;display:grid;grid-template-columns:54px repeat(7,minmax(105px,1fr))}.week-grid.day-mode{grid-template-columns:54px minmax(280px,1fr)}.time-spacer{height:55px;border-bottom:1px solid var(--line)}.day-head{height:55px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}.day-name{color:var(--muted);font-size:10px;text-transform:uppercase}.day-number{width:26px;height:26px;margin-top:2px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:600}.day-head.today .day-number{color:#fff;background:var(--green)}.time-column{height:600px}.time-label{height:60px;padding-right:7px;position:relative;top:-7px;text-align:right;color:#8c9791;font-size:9px}.day-column{height:600px;position:relative;border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 59px,#edf0ed 59px,#edf0ed 60px)}.day-column.weekend{background-color:#fcfdfc}.day-column.drop-target{background-color:#edf7f0}.appointment{position:absolute;left:4px;right:4px;min-height:35px;overflow:hidden;padding:6px 6px 5px 8px;border:0;border-left:3px solid var(--green);border-radius:4px;color:#2a4f3d;background:#e7f3eb;text-align:left;cursor:grab;touch-action:none}.appointment:active{cursor:grabbing}.appointment.is-dragging{z-index:6;opacity:.55;box-shadow:0 8px 20px #19322338}.appointment:hover{filter:brightness(.97);box-shadow:0 2px 6px #1932231f;z-index:4}.appointment.tone-coral{color:#76483d;border-left-color:var(--coral);background:#f9e9e3}.appointment.tone-blue{color:#3e5f6d;border-left-color:#6ca3b8;background:#e7f1f4}.appointment strong,.appointment span{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.appointment strong{font-size:10px;line-height:1.35}.appointment span{margin-top:2px;font-size:9px;opacity:.82}.appointment.compact span{display:none}.appointment.completed{padding-right:24px;filter:saturate(.65);cursor:pointer;touch-action:auto}.appointment .completion-indicator{position:absolute;top:4px;right:4px;width:15px;height:15px;margin:0;display:grid;place-items:center;color:var(--green);opacity:1}.appointment.compact .completion-indicator{display:grid}.empty-day{padding:12px 6px;color:var(--muted);font-size:10px}.loading-state{min-height:250px;display:grid;place-items:center;color:var(--muted)}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:20px;border:0;background:#19251f6b}.modal{width:min(100%,490px);max-height:94vh;overflow:auto;padding:20px 22px 22px;border-radius:9px;background:#fff;box-shadow:var(--shadow);animation:arrive .18s ease-out}@keyframes arrive{0%{opacity:0;transform:translateY(7px) scale(.99)}to{opacity:1;transform:none}}.modal-head{margin:-20px -22px 18px;padding:18px 22px 14px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid var(--line)}.modal-head .eyebrow{margin:0 0 4px}.modal-head h2{font-size:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 12px}.field{min-width:0;display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600}.field.full{grid-column:1 / -1}.field input,.field select,.field textarea{width:100%;min-height:37px;padding:8px 10px;border:1px solid #dce4de;border-radius:5px;outline:0;background:#fff;color:var(--ink);font-size:12px;font-weight:400}.field textarea{min-height:66px;resize:vertical}.optional{color:#909a94;font-weight:400}.completion-control>span{display:inline-flex;align-items:center;gap:8px}.completion-control input{width:16px;min-height:16px;margin:0;accent-color:var(--green)}.form-error{color:#a34f42;font-size:12px}.modal-actions{margin-top:19px;display:flex;align-items:center;justify-content:space-between;gap:9px}.button-group{display:flex;gap:8px}.danger-button{min-height:35px;padding:0 10px;border:1px solid #efd4cf;border-radius:5px;color:#a34f42;background:#fff;font-size:11px}.save-button{min-height:35px;padding-inline:13px;font-size:11px}.toast{position:fixed;right:22px;bottom:22px;z-index:20;padding:11px 15px;border-radius:6px;color:#fff;background:#263a31;box-shadow:var(--shadow);font-size:12px;animation:arrive .2s ease-out}.drawer-backdrop{z-index:8;display:block;padding:0}.team-drawer{position:fixed;inset:0 auto 0 0;z-index:9;width:min(300px,88vw);padding:24px 17px;background:#fbfcfb;box-shadow:var(--shadow)}.drawer-heading{margin-bottom:24px}.drawer-heading .eyebrow{margin:0 0 4px}.drawer-heading h2{font-size:22px}.team-option{width:100%;min-height:43px;padding:7px;display:flex;align-items:center;gap:9px;border:0;border-radius:6px;background:transparent;text-align:left;font-size:12px}.team-option:hover,.team-option.active{background:#edf3ef}.avatar{width:27px;height:27px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#355344;background:#dbe9e1;font-size:10px;font-weight:700}.avatar.coral{color:#8d4c41;background:#f4dfd8}.avatar.blue{color:#416474;background:#dcebf0}.all-avatar{color:var(--green)}.team-name{flex:1}.check{width:16px;height:16px;display:grid;place-items:center;border:1px solid #c7d1ca;border-radius:4px;color:#fff}.team-option.active .check{border-color:var(--green);background:var(--green)}.staff-manager-backdrop{position:fixed;inset:0;z-index:11;padding:20px;display:grid;place-items:center;background:#19251f6b}.staff-manager{width:min(100%,590px);max-height:min(760px,92vh);overflow:auto;padding:20px 22px 22px;border-radius:9px;background:#fff;box-shadow:var(--shadow);animation:arrive .18s ease-out}.staff-manager-header{margin:-20px -22px 17px;padding:17px 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.staff-manager-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:7px;color:var(--green);background:var(--mint)}.staff-manager-title{flex:1}.staff-manager-title .eyebrow{display:block;margin:0 0 4px}.staff-manager-title h2{margin:0;font:600 21px Playfair Display,serif}.staff-list-heading,.staff-form-heading{margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.staff-list-heading>span{color:var(--muted);font-size:12px}.staff-list-heading .primary-button{min-height:33px;padding:0 10px}.staff-list{border-top:1px solid var(--line)}.staff-row{min-height:62px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line)}.staff-row.has-related{flex-wrap:wrap;padding:10px 0}.related-appointments-toggle{flex-basis:calc(100% - 46px);margin-left:46px;padding:3px 0;display:flex;align-items:center;justify-content:space-between;border:0;color:var(--green);background:transparent;text-align:left;font-size:10px;font-weight:600}.related-appointments-toggle:disabled{color:#98a29c;cursor:default}.related-appointments-list{flex-basis:calc(100% - 46px);margin-left:46px;border-top:1px solid var(--line)}.related-appointment{min-height:49px;padding:7px 0;display:grid;grid-template-columns:75px minmax(0,1fr);gap:10px;border-bottom:1px solid #edf1ed}.related-appointment:last-child{border-bottom:0}.related-appointment time,.related-appointment span{display:flex;flex-direction:column;justify-content:center;gap:2px;color:var(--muted);font-size:10px}.related-appointment time strong,.related-appointment span strong{color:var(--ink);font-size:10px;font-weight:600}.related-appointment span small{color:var(--muted);font-size:9px}.staff-avatar{width:35px;height:35px;font-size:11px}.avatar.yellow{color:#735f35;background:#fbf2d9}.staff-details{min-width:0;flex:1}.staff-details strong,.staff-details span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-details strong{font-size:12px}.staff-details span{margin-top:3px;color:var(--muted);font-size:10px}.staff-row-actions{display:flex}.staff-delete{color:#a34f42}.staff-delete:disabled{opacity:.5;cursor:not-allowed}.staff-empty{padding:22px 0;color:var(--muted);text-align:center;font-size:12px}.staff-list-error{margin-bottom:0}.staff-form{display:grid;gap:12px}.staff-form-heading{margin-bottom:0}.staff-form-heading h3{margin:0;font-size:14px}.text-button{padding:6px 0;border:0;color:var(--green);background:transparent;font-size:11px;font-weight:600}.staff-form-actions{display:flex;justify-content:flex-end;gap:8px}.treatment-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.treatment-icon{flex:0 0 auto}.customer-icon{flex:0 0 auto;color:#416474;background:#eaf2f4}.customer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wallet-manager-backdrop{position:fixed;inset:0;z-index:12;padding:20px;display:grid;place-items:center;background:#19251f75}.wallet-manager{width:min(100%,820px);max-height:94vh;overflow:auto;padding:20px 22px 22px;border-radius:9px;background:#fff;box-shadow:var(--shadow);animation:arrive .18s ease-out}.wallet-manager-header{margin:-20px -22px 22px;padding:17px 22px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.wallet-manager-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:7px;color:var(--green);background:var(--mint)}.wallet-manager-header>div{flex:1}.wallet-manager-header .eyebrow{display:block;margin:0 0 4px}.wallet-manager-header h2{margin:0;font:600 21px Playfair Display,serif}.wallet-manager-content{display:grid;grid-template-columns:minmax(280px,1fr) minmax(300px,1fr);gap:28px}.wallet-preview-column>.side-heading{display:block;margin:0 0 12px}.wallet-pass-card{width:100%;max-width:360px;aspect-ratio:1.58;padding:18px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;border-radius:13px;color:#fff0dc;background:radial-gradient(ellipse at 86% 6%,rgb(255 189 140 / 20%),transparent 40%),linear-gradient(145deg,#725037,#5f402c);box-shadow:0 14px 32px #4f301d3d}.wallet-pass-top{display:flex;align-items:center;gap:9px}.wallet-pass-top>span:nth-child(2){flex:1;min-width:0}.wallet-pass-mark{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgb(255 255 255 / 42%);border-radius:9px;font:600 18px Playfair Display,serif}.wallet-pass-top small,.wallet-pass-top strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wallet-pass-top small{margin-bottom:2px;color:#ffbd8c;font-size:8px;letter-spacing:1px}.wallet-pass-top strong{font-size:12px}.wallet-stamp-count{display:flex;align-items:baseline;justify-content:space-between}.wallet-stamp-count>strong{font-size:34px;line-height:1}.wallet-stamp-count>strong small{color:#ffbd8c;font-size:16px;font-weight:500}.wallet-stamp-count>span{color:#b9d9c8;font-size:8px;letter-spacing:1.2px}.wallet-stamp-track{display:grid;grid-template-columns:repeat(5,21px);gap:8px}.wallet-stamp-track span{width:21px;height:21px;display:grid;place-items:center;border:1px solid rgb(255 247 240 / 72%);background:#fff7f0;border-radius:50%;color:transparent;font-size:12px}.wallet-stamp-track span.earned{color:#725037;border-color:#ffbd8c;background:#ffbd8c;font-weight:700}.wallet-pass-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.wallet-pass-footer>span{min-width:0;display:flex;flex-direction:column;gap:3px}.wallet-pass-footer small{color:#ffbd8c;font-size:8px;letter-spacing:.8px}.wallet-pass-footer strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.wallet-pass-footer em{overflow:hidden;color:#f4faf6b8;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.wallet-pass-footer svg{flex:0 0 auto;padding:3px;border-radius:4px}.wallet-card-code{max-width:360px;margin:8px 0 0;color:var(--muted);font-size:9px;letter-spacing:.6px}.wallet-settings{display:grid;align-content:start;gap:12px}.wallet-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.wallet-section-heading h3{margin:0;font-size:13px}.wallet-section-heading span{color:var(--muted);font-size:9px}.wallet-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wallet-new-code{justify-self:start;padding:0;border:0;color:var(--green);background:transparent;font-size:10px;font-weight:600}.wallet-setup-status,.wallet-ready-status{margin:0;padding:10px 11px;border-radius:5px;color:#795a20;background:#fbf3df;font-size:11px;line-height:1.5}.wallet-ready-status{color:var(--green-dark);background:var(--mint)}.wallet-missing-config{margin:-7px 0 0;color:var(--muted);font-size:9px;overflow-wrap:anywhere}.wallet-download{width:100%}.wallet-inbox-copy{margin:12px 0;color:var(--muted);font-size:11px;line-height:1.5}.wallet-setup-status a{display:inline-flex;align-items:center;gap:3px;color:inherit;font-weight:700}.customer-pass-manager{width:min(100%,560px)}.customer-pass-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}@media(max-width:720px){.wallet-manager-backdrop{padding:10px}.wallet-manager{padding:16px;max-height:96vh}.wallet-manager-header{margin:-16px -16px 16px;padding:14px 16px}.wallet-manager-content{grid-template-columns:1fr;gap:22px}.wallet-pass-card{max-width:none}}@media(max-width:390px){.wallet-stamp-track{gap:4px}.wallet-stamp-track span{width:19px;height:19px}.wallet-pass-card{padding:14px}}@media(max-width:1000px){.app-shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding-inline:12px}.main-content{padding-inline:20px}.search{width:175px}}@media(max-width:720px){.app-shell{display:block}.sidebar{display:none}.main-content{padding:0 13px 24px}.topbar{height:58px}.search{width:min(42vw,180px);height:33px}.page-heading{margin:20px 0 16px;align-items:center}h1{font-size:24px}.page-heading p{font-size:11px}.primary-button{min-height:35px;padding-inline:10px;font-size:11px}.stats{gap:7px;margin-bottom:13px}.stat{min-height:66px;padding:9px;gap:7px}.stat-icon{width:29px;height:29px}.stat-value{font-size:16px}.stat-label{font-size:9px;line-height:1.2}.calendar-toolbar{padding:9px}.date-nav{gap:1px}.date-nav strong{min-width:auto;padding-left:3px;font-size:11px}.outline-button{min-height:29px;padding-inline:7px;font-size:10px}.view-actions .segmented{display:none}.mobile-filter{display:inline-grid}.calendar-scroll{max-height:calc(100vh - 320px);min-height:400px}.week-grid{min-width:800px}.week-grid.day-mode{min-width:360px}.staff-manager-backdrop{padding:10px}.staff-manager{padding:16px;max-height:94vh}.staff-manager-header{margin:-16px -16px 14px;padding:14px 16px}}@media(max-width:390px){.main-content{padding-inline:9px}.top-actions{gap:6px}.search{width:130px}h1{font-size:22px}.primary-button{padding-inline:8px;gap:5px}.stat{padding:7px}.stat-icon{display:none}}
