:root {
  color-scheme: light;
  --ink: #28231f;
  --muted: #746b63;
  --paper: #fffdf9;
  --rose: #a84f63;
  --rose-dark: #813849;
  --sand: #efe5d7;
  --sage: #466354;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: #f5efe7; }
header { padding: 28px max(24px, calc((100vw - 1050px) / 2)); background: var(--ink); color: white; }
header p { color: #ddd3c8; margin-bottom: 0; }
nav { display: flex; gap: 18px; margin-top: 16px; }
nav a { color: white; }
main { max-width: 1050px; margin: 28px auto; padding: 0 24px 60px; }
.card { background: var(--paper); border: 1px solid #ddd0c2; border-radius: 14px; padding: 24px; box-shadow: 0 8px 30px #4a31200d; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.full { grid-column: 1 / -1; }
label { display: grid; gap: 7px; font-weight: 650; }
input, select, button { font: inherit; }
input, select { width: 100%; border: 1px solid #bcae9f; border-radius: 8px; padding: 11px 12px; background: white; }
button { border: 0; border-radius: 8px; padding: 11px 16px; color: white; background: var(--rose); font-weight: 700; cursor: pointer; }
button:hover { background: var(--rose-dark); }
button.secondary { background: #6d655e; }
button.good { background: var(--sage); }
button:disabled { opacity: .55; cursor: wait; }
.policy { padding: 16px; background: #f8f2e9; border-left: 4px solid var(--rose); white-space: pre-wrap; line-height: 1.55; }
.check { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; }
.check input { width: auto; margin-top: 4px; }
.banner { padding: 12px 16px; margin-bottom: 18px; border-radius: 8px; background: #fff0cc; border: 1px solid #e8c979; }
.success { background: #e3f1e8; border-color: #94bda2; }
.error { background: #fbe2e2; border-color: #d99393; }
.hidden { display: none !important; }
.small { color: var(--muted); font-size: .9rem; }
.request { border: 1px solid #dbd0c3; border-radius: 10px; padding: 16px; margin: 12px 0; }
.request h3 { margin: 0 0 8px; }
.service-row { display: grid; grid-template-columns: 2fr 1.5fr auto auto; gap: 10px; align-items: end; padding: 12px 0; border-bottom: 1px solid #eadfd3; }
.service-row button { padding: 10px 12px; }
.visit-summary { margin-top: 14px; padding: 12px; background: #f4eee5; border-radius: 8px; line-height: 1.5; }
.service-list { margin: 10px 0; padding-left: 20px; }
.phase { color: var(--muted); font-size: .86rem; }
.communications { border-left: 3px solid #8d7d6e; padding-left: 12px; margin: 10px 0; }
.actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.status { display: inline-block; padding: 3px 9px; border-radius: 999px; background: var(--sand); font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; }
pre { overflow: auto; background: #27231f; color: #f8efe6; padding: 16px; border-radius: 8px; font-size: .78rem; }
@media (max-width: 700px) { .grid, .service-row { grid-template-columns: 1fr; } .full { grid-column: auto; } }

/* Shared salon attendance kiosk */
.kiosk-body {
  min-width: 320px;
  min-height: 100vh;
  background: #f4f1ec;
  color: #171614;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.kiosk-shell { max-width: 1200px; margin: 0 auto; padding: 0 32px 48px; }
.kiosk-header { display: flex; align-items: center; justify-content: space-between; padding: 24px 0; border-bottom: 1px solid #dcd6ce; background: transparent; color: inherit; }
.kiosk-brand { display: flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.kiosk-brand > span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #171614; color: white; font-family: Georgia, serif; font-size: 1.25rem; }
.kiosk-brand div { display: grid; line-height: 1; }
.kiosk-brand strong { font-size: 1.02rem; letter-spacing: -.025em; }
.kiosk-brand small { margin-top: 5px; color: #7c756e; font-size: .63rem; letter-spacing: .08em; text-transform: uppercase; }
.kiosk-time { display: grid; justify-items: end; gap: 3px; }
.kiosk-time strong { font-size: 1.4rem; letter-spacing: -.04em; }
.kiosk-time span { color: #766f68; font-size: .7rem; }
.kiosk-screen { padding: 50px 0 0; }
.kiosk-heading { max-width: 680px; margin-bottom: 32px; }
.kiosk-heading p, .kiosk-person-card > p, .kiosk-pin-card > div:first-child p, .kiosk-success > p { margin: 0 0 8px; color: #8a6d49; font-size: .7rem; font-weight: 850; letter-spacing: .13em; }
.kiosk-heading h1, .kiosk-person-card h1, .kiosk-success h1 { margin: 0; font-size: clamp(2rem, 5vw, 3.25rem); font-weight: 650; letter-spacing: -.055em; line-height: 1.02; }
.kiosk-heading span { display: block; margin-top: 12px; color: #736c65; font-size: .92rem; }
.kiosk-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.kiosk-team-person { display: grid; justify-items: center; gap: 7px; padding: 16px 14px 18px; border: 1px solid #ded8d1; border-radius: 18px; background: #fff; color: #171614; box-shadow: 0 8px 30px #3026190a; }
.kiosk-team-person:hover { border-color: #a8957d; background: #fff; transform: translateY(-2px); }
.kiosk-photo-wrap { position: relative; display: block; width: 112px; height: 112px; margin-bottom: 5px; }
.kiosk-photo-wrap img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; object-position: 50% 23%; }
.kiosk-photo-wrap i { position: absolute; right: 1px; bottom: 4px; min-width: 38px; padding: 5px 7px; border: 3px solid white; border-radius: 999px; color: white; font-size: .55rem; font-style: normal; font-weight: 900; letter-spacing: .06em; }
.kiosk-photo-wrap i.in { background: #35704b; }
.kiosk-photo-wrap i.out { background: #8a837b; }
.kiosk-team-person strong { font-size: 1rem; }
.kiosk-team-person small { color: #777069; font-size: .67rem; }
.kiosk-privacy-note { margin: 24px 0 0; color: #857e77; font-size: .7rem; text-align: center; }
.kiosk-back { padding: 8px 0; background: transparent; color: #5d554d; font-size: .78rem; }
.kiosk-back:hover { background: transparent; color: #171614; }
.kiosk-pin-layout { display: grid; grid-template-columns: minmax(280px, .82fr) minmax(340px, 1fr); gap: 26px; max-width: 900px; margin: 24px auto 0; }
.kiosk-person-card, .kiosk-pin-card { border: 1px solid #ded8d1; border-radius: 22px; background: white; box-shadow: 0 12px 40px #3026190c; }
.kiosk-person-card { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 28px; text-align: center; }
.kiosk-person-card img { width: 170px; height: 210px; margin-bottom: 25px; border-radius: 16px; object-fit: cover; object-position: 50% 20%; }
.kiosk-person-card h1 { font-size: 2.15rem; }
.kiosk-person-card > span { margin-top: 10px; color: #756e67; font-size: .78rem; }
.kiosk-pin-card { display: grid; gap: 22px; padding: 34px; }
.kiosk-pin-card h2 { margin: 0; font-size: 1.55rem; letter-spacing: -.04em; }
.kiosk-pin-dots { display: flex; justify-content: center; gap: 16px; min-height: 22px; }
.kiosk-pin-dots span { width: 16px; height: 16px; border: 2px solid #b8aea3; border-radius: 50%; background: white; }
.kiosk-pin-dots span.filled { border-color: #171614; background: #171614; }
.kiosk-keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.kiosk-keypad button { min-height: 64px; border: 1px solid #ddd6ce; border-radius: 13px; background: #faf8f5; color: #201e1b; font-size: 1.25rem; font-weight: 650; }
.kiosk-keypad button:hover { border-color: #a89885; background: #f1ece6; }
.kiosk-keypad button[data-clear], .kiosk-keypad button[data-backspace] { font-size: .72rem; }
.kiosk-submit { min-height: 54px; border-radius: 12px; background: #171614; }
.kiosk-submit:hover { background: #34302b; }
.kiosk-submit:disabled { background: #aaa39c; }
.kiosk-error { min-height: 20px; margin: -8px 0 0; color: #a23f3f; font-size: .72rem; text-align: center; }
.kiosk-success { display: flex; min-height: calc(100vh - 140px); flex-direction: column; align-items: center; justify-content: center; padding-bottom: 80px; text-align: center; }
.kiosk-screen.hidden { display: none; }
.kiosk-success-mark { display: grid; place-items: center; width: 84px; height: 84px; margin-bottom: 24px; border-radius: 50%; background: #dff1e4; color: #2e7047; font-size: 2rem; font-weight: 900; }
.kiosk-success h1 { font-size: clamp(2.6rem, 7vw, 4.5rem); }
.kiosk-success > strong { margin-top: 17px; font-size: 1.7rem; }
.kiosk-success > span { margin-top: 8px; color: #716a63; font-size: .82rem; }
.kiosk-success > button { min-width: 190px; margin-top: 30px; background: #171614; }
.kiosk-load-error { grid-column: 1 / -1; padding: 30px; border: 1px solid #d7a8a8; border-radius: 14px; background: #fff0f0; color: #8d3333; text-align: center; }
@media (max-width: 850px) {
  .kiosk-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kiosk-pin-layout { grid-template-columns: 1fr; }
  .kiosk-person-card { display: grid; grid-template-columns: 100px 1fr; column-gap: 18px; justify-items: start; text-align: left; }
  .kiosk-person-card img { grid-row: 1 / 5; width: 100px; height: 120px; margin: 0; }
}
@media (max-width: 520px) {
  .kiosk-shell { padding: 0 16px 30px; }
  .kiosk-header { padding: 16px 0; }
  .kiosk-time span { max-width: 130px; text-align: right; }
  .kiosk-screen { padding-top: 34px; }
  .kiosk-team-grid { gap: 10px; }
  .kiosk-team-person { padding: 13px 8px 15px; }
  .kiosk-photo-wrap { width: 84px; height: 84px; }
  .kiosk-pin-card { padding: 22px; }
}

/* Customer booking journey */
.booking-body {
  --booking-ink: #161513;
  --booking-muted: #716b64;
  --booking-line: #e6e0d8;
  --booking-cream: #f8f5f0;
  --booking-gold: #9c7b52;
  min-width: 0;
  background: #fbfaf8;
  color: var(--booking-ink);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.booking-header { display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: 12px max(24px, calc((100vw - 1580px) / 2)); border-bottom: 1px solid #e8e3dc; background: #fff; color: var(--booking-ink); }
.booking-brand { display: flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.booking-brand > span { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 50%; background: #171614; color: white; font-size: 1.1rem; font-weight: 700; }
.booking-brand div { display: grid; line-height: 1.05; }
.booking-brand strong { font-size: 1rem; font-weight: 700; letter-spacing: -.02em; }
.booking-brand small { margin-top: 4px; color: #77716a; font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; }
.booking-back { color: #4f4a45; font-size: .8rem; font-weight: 700; text-decoration: none; }
.booking-back:hover { color: #000; }
.booking-main { max-width: 1580px; margin: 0 auto; padding: 54px clamp(24px, 2.2vw, 38px) 80px; }
.booking-intro { max-width: 680px; margin-bottom: 24px; }
.booking-kicker { margin: 0 0 8px; color: var(--booking-gold); font-size: .68rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.booking-intro h1 { max-width: 650px; margin: 0; font-size: clamp(2.15rem, 5vw, 3.65rem); font-weight: 650; letter-spacing: -.055em; line-height: 1; }
.booking-intro > p:last-child { max-width: 570px; margin: 18px 0 0; color: var(--booking-muted); font-size: .95rem; line-height: 1.6; }
.booking-request-notice { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 12px; max-width: 720px; margin: 0 0 18px; padding: 14px 16px; border: 1px solid #decba7; border-radius: 12px; background: #fff9ed; color: #3f372d; }
.booking-request-notice > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #efe0c3; color: #735b34; font-size: .75rem; font-weight: 850; }
.booking-request-notice strong { display: block; font-size: .8rem; line-height: 1.35; }
.booking-request-notice p { margin: 4px 0 0; color: #6f6253; font-size: .72rem; line-height: 1.45; }
.booking-mode { display: inline-flex; margin-bottom: 22px; padding: 7px 10px; border: 1px solid #e4ded5; border-radius: 999px; background: #fff; color: #706a63; font-size: .67rem; }
.booking-preview-notice { display: flex; align-items: center; gap: 10px; max-width: 720px; margin: -10px 0 22px; padding: 12px 14px; border: 1px solid #d8c596; border-radius: 10px; background: #fff9e9; color: #51452e; font-size: .78rem; }
.booking-preview-notice strong { white-space: nowrap; }
.booking-preview-notice span { color: #75684d; }
.booking-result { margin: 0 0 24px; padding: 18px 20px; border: 1px solid #a9cfb5; border-radius: 12px; background: #edf8f0; color: #29593a; font-size: .88rem; line-height: 1.5; }
.booking-result.error { border-color: #ddb3b3; background: #fff0f0; color: #8a3131; }
.booking-confirmation-dialog { width: min(560px, calc(100vw - 28px)); max-height: calc(100vh - 28px); padding: 0; overflow: auto; border: 0; border-radius: 20px; background: white; color: var(--booking-ink); box-shadow: 0 28px 90px #17120d4f; }
.booking-confirmation-dialog::backdrop { background: #17130e99; backdrop-filter: blur(4px); }
.booking-confirmation-content { padding: 32px; text-align: center; }
.booking-confirmation-mark { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 16px; border-radius: 50%; background: #e3f2e7; color: #2e6a42; font-size: 1.25rem; font-weight: 850; }
.booking-confirmation-content h2 { margin: 0; font-size: 1.65rem; font-weight: 700; letter-spacing: -.035em; line-height: 1.15; }
.booking-confirmation-intro { max-width: 450px; margin: 13px auto 22px; color: #6d665f; font-size: .82rem; line-height: 1.55; }
.booking-confirmation-visit { overflow: hidden; border: 1px solid #e2ddd6; border-radius: 14px; background: #fbfaf8; text-align: left; }
.booking-confirmation-date, .booking-confirmation-reference { display: grid; gap: 4px; padding: 15px 17px; }
.booking-confirmation-date { border-bottom: 1px solid #e5e0da; }
.booking-confirmation-date span, .booking-confirmation-reference span { color: #80786f; font-size: .61rem; font-weight: 750; letter-spacing: .055em; text-transform: uppercase; }
.booking-confirmation-date strong { font-size: .9rem; }
.booking-confirmation-reference { grid-template-columns: 1fr auto; align-items: center; border-top: 1px solid #e5e0da; }
.booking-confirmation-reference strong { font-size: .72rem; }
.booking-confirmation-services { display: grid; gap: 0; }
.booking-confirmation-service { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 13px 17px; }
.booking-confirmation-service + .booking-confirmation-service { border-top: 1px solid #ebe7e1; }
.booking-confirmation-service > div { display: grid; gap: 3px; min-width: 0; }
.booking-confirmation-service strong { font-size: .78rem; }
.booking-confirmation-service span { color: #746d65; font-size: .67rem; }
.booking-confirmation-service time { color: #3f3933; font-size: .7rem; font-weight: 750; white-space: nowrap; }
.booking-confirmation-calendar-note { margin: 22px 0 11px; color: #4f4943; font-size: .75rem; font-weight: 650; }
.booking-confirmation-actions { display: grid; grid-template-columns: 1fr auto; gap: 9px; }
.booking-confirmation-actions button { padding: 12px 15px; border-radius: 9px; font-size: .75rem; }
.booking-confirmation-actions button:first-child { background: #1e1c19; }
.booking-confirmation-actions button:first-child:hover { background: #3b3630; }
.booking-confirmation-actions button:last-child { border: 1px solid #dcd6cf; background: white; color: #4f4943; }
.booking-confirmation-actions button:last-child:hover { background: #f5f2ee; }
.booking-confirmation-footnote { margin: 10px 0 0; color: #8a837b; font-size: .6rem; line-height: 1.45; }
.booking-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 28px; align-items: start; }
.booking-flow { display: grid; gap: 16px; }
.booking-step, .booking-summary, .booking-service-panel { border: 1px solid var(--booking-line); border-radius: 16px; background: white; box-shadow: 0 10px 35px #42311b0a; }
.booking-step { padding: 30px; }
.booking-step-heading { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; margin-bottom: 20px; }
.booking-step-heading > span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #cfc5b8; border-radius: 50%; color: #6f5b43; font-size: .75rem; font-weight: 750; }
.booking-step-heading h2 { margin: 0; font-size: 1.18rem; font-weight: 700; letter-spacing: -.025em; }
.booking-step-heading p { margin: 5px 0 0; color: var(--booking-muted); font-size: .76rem; line-height: 1.45; }
.booking-service-list { display: grid; gap: 9px; }
.booking-service-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; overflow: hidden; border: 1px solid #e1ddd7; border-radius: 11px; background: #fff; }
.booking-service-card.active { border-color: #a58b6c; box-shadow: 0 0 0 2px #eee5da; }
.booking-service-main { display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 9px; min-width: 0; padding: 12px; border: 0; background: transparent; color: #1c1a18; text-align: left; }
.booking-service-main:hover { background: #faf8f5; }
.booking-service-main > span { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #f0ece6; color: #6f6252; font-size: .66rem; font-weight: 850; }
.booking-service-main div { display: grid; gap: 3px; }
.booking-service-main strong { font-size: .84rem; }
.booking-service-main small { color: var(--booking-muted); font-size: .67rem; }
.booking-service-assignment { display: flex; align-items: center; gap: 10px; padding: 0 12px; color: #5e574f; font-size: .7rem; }
.booking-service-assignment button { padding: 5px; background: transparent; color: #8d4b4b; font-size: .63rem; }
.booking-service-assignment button:hover { background: transparent; color: #612d2d; }
.booking-add-service-button { width: 100%; margin-top: 10px; padding: 11px 14px; border: 1px dashed #cfc4b6; border-radius: 10px; background: #faf8f5; color: #3f3933; font-size: .74rem; font-weight: 750; }
.booking-add-service-button:hover { border-color: #9f8b72; background: #f2ede7; }
.booking-service-browser { width: min(920px, calc(100vw - 32px)); max-height: min(780px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 0; border-radius: 18px; background: #fbfaf8; color: var(--booking-ink); box-shadow: 0 24px 80px #21180e45; }
.booking-service-browser::backdrop { background: #17130e99; backdrop-filter: blur(3px); }
.booking-service-browser-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 25px 27px 21px; border-bottom: 1px solid #e3ddd5; background: white; }
.booking-service-browser-header h2 { margin: 0; font-size: 1.5rem; letter-spacing: -.035em; }
.booking-service-browser-header > div > p:last-child { max-width: 620px; margin: 8px 0 0; color: var(--booking-muted); font-size: .78rem; line-height: 1.5; }
.booking-service-browser-header > button { flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #ddd6cd; border-radius: 50%; background: #faf8f5; color: #4d463f; font-size: 1.35rem; line-height: 1; }
.booking-service-browser-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-height: calc(min(780px, 100vh - 32px) - 132px); padding: 20px; overflow-y: auto; }
.booking-service-option { display: grid; grid-template-columns: 150px minmax(0, 1fr); min-height: 220px; overflow: hidden; border: 1px solid #e1dbd3; border-radius: 14px; background: white; }
.booking-service-option > img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.booking-service-option-content { display: flex; flex-direction: column; min-width: 0; padding: 16px; }
.booking-service-option-content > span { color: var(--booking-gold); font-size: .58rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.booking-service-option-content h3 { margin: 5px 0 7px; font-size: 1.02rem; letter-spacing: -.025em; }
.booking-service-option-content > p { margin: 0; color: #6f6962; font-size: .68rem; line-height: 1.48; }
.booking-service-option-content dl { display: flex; gap: 18px; margin: 12px 0; }
.booking-service-option-content dl div { display: grid; gap: 2px; }
.booking-service-option-content dt { color: #888077; font-size: .57rem; text-transform: uppercase; }
.booking-service-option-content dd { margin: 0; font-size: .7rem; font-weight: 750; }
.booking-service-option-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.booking-service-option-actions a { color: #6e593f; font-size: .67rem; font-weight: 750; text-underline-offset: 3px; }
.booking-service-option-actions button { padding: 9px 11px; border: 0; border-radius: 8px; background: #1e1c19; color: white; font-size: .67rem; font-weight: 750; }
.booking-service-option-actions button:hover { background: #3b3630; }
.booking-stylist-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.booking-stylist-level { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 8px; margin-top: 2px; padding: 2px 1px; }
.booking-stylist-level.junior { margin-top: 12px; padding-top: 16px; border-top: 1px solid #e8e2db; }
.booking-stylist-level strong { font-size: .84rem; letter-spacing: .025em; text-transform: uppercase; }
.booking-stylist-level span { color: #817970; font-size: .68rem; }
.booking-stylist { position: relative; min-height: 256px; overflow: hidden; border: 1px solid #e2ddd7; border-radius: 15px; background: white; color: #211f1c; }
.booking-stylist:hover { border-color: #bda98e; background: #fbf9f6; }
.booking-stylist.selected { border-color: #967853; background: #f8f3ed; box-shadow: inset 0 0 0 1px #967853; }
.booking-stylist-select { display: grid; grid-template-columns: minmax(132px, 42%) minmax(0, 1fr); align-items: stretch; gap: 0; width: 100%; min-height: 256px; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; text-align: left; }
.booking-stylist-select:hover { background: transparent; }
.booking-stylist img { width: 100%; height: 100%; min-height: 256px; border-radius: 0; object-fit: cover; object-position: 50% 24%; }
.booking-stylist-overview { display: grid; min-width: 0; gap: 6px; align-self: stretch; align-content: center; padding: 25px 18px 50px; }
.booking-stylist strong { font-size: 1.08rem; }
.booking-stylist small { color: #766d63; font-size: .7rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.booking-stylist p { display: -webkit-box; overflow: hidden; margin: 4px 0 0; color: #5f5952; font-size: .75rem; font-weight: 500; line-height: 1.48; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.booking-stylist-languages { display: grid; gap: 2px; margin-top: 3px; color: #635b52; font-size: .66rem; line-height: 1.35; }
.booking-stylist-languages b { color: #8a8177; font-size: .56rem; letter-spacing: .06em; text-transform: uppercase; }
.booking-stylist-languages span { white-space: normal; }
.booking-stylist i { position: absolute; top: 15px; right: 15px; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #171614; color: white; font-size: .75rem; font-style: normal; box-shadow: 0 2px 8px #0002; }
.booking-stylist-more { position: absolute; right: 18px; bottom: 15px; padding: 4px 0; border: 0; border-radius: 0; background: transparent; color: #715a3f; font-size: .67rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.booking-stylist-more:hover { background: transparent; color: #2f2922; }
.booking-stylist-dialog { grid-template-columns: minmax(300px, 43%) minmax(0, 1fr); width: min(900px, calc(100vw - 28px)); min-height: 520px; max-height: calc(100vh - 34px); padding: 0; overflow: hidden; border: 0; border-radius: 20px; background: white; color: var(--booking-ink); box-shadow: 0 28px 90px #17120d4f; }
.booking-stylist-dialog[open] { display: grid; }
.booking-stylist-dialog::backdrop { background: #17130e99; backdrop-filter: blur(4px); }
.booking-stylist-dialog-portrait { min-height: 520px; overflow: hidden; background: #e9e4de; }
.booking-stylist-dialog-portrait img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; object-position: 50% 22%; }
.booking-stylist-dialog-close { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #ffffffa8; border-radius: 50%; background: #171614d9; color: white; font-size: 1.4rem; line-height: 1; }
.booking-stylist-dialog-close:hover { background: #171614; }
.booking-stylist-dialog-content { align-self: center; padding: 46px 42px; }
.booking-stylist-dialog-content h2 { margin: 0; font-size: 2rem; letter-spacing: -.045em; }
.booking-stylist-dialog-content > strong { display: block; margin-top: 5px; color: #776d62; font-size: .72rem; letter-spacing: .045em; text-transform: uppercase; }
.booking-stylist-dialog-content > p:not(.booking-kicker) { margin: 18px 0 0; color: #514b45; font-size: .9rem; line-height: 1.65; }
.booking-stylist-dialog-languages { display: grid; gap: 5px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #e7e1da; }
.booking-stylist-dialog-languages span { color: #887e73; font-size: .61rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.booking-stylist-dialog-languages b { font-size: .82rem; }
.booking-soft-note { margin: 13px 0 0; color: #756f68; font-size: .68rem; line-height: 1.5; }
.booking-calendar-header { display: grid; grid-template-columns: 32px 1fr 32px; align-items: center; margin-bottom: 10px; }
.booking-calendar-header strong { text-align: center; font-size: .86rem; font-weight: 700; }
.booking-calendar-header button { width: 32px; height: 32px; padding: 0; border: 1px solid #e1ddd7; border-radius: 50%; background: white; color: #312e2a; font-size: 1.2rem; }
.booking-calendar-header button:hover { background: #f5f2ee; }
.booking-date-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.booking-date-strip button { display: grid; justify-items: center; gap: 4px; min-height: 77px; padding: 9px 4px; border: 1px solid #e2ddd7; border-radius: 10px; background: white; color: #2b2824; }
.booking-date-strip button:hover { border-color: #bda98e; background: #faf8f5; }
.booking-date-strip button.selected { border-color: #1e1c19; background: #1e1c19; color: white; }
.booking-date-strip span, .booking-date-strip small { font-size: .58rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.booking-date-strip strong { font-size: 1.08rem; font-weight: 700; }
.booking-time-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin: 22px 0 10px; }
.booking-time-heading > div:first-child { display: grid; gap: 4px; }
.booking-time-heading strong { font-size: .8rem; }
.booking-time-heading span { color: var(--booking-muted); font-size: .63rem; }
.booking-time-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; min-height: 52px; }
.booking-time-grid > p { grid-column: 1 / -1; margin: 0; padding: 17px; border: 1px dashed #ded8d0; border-radius: 9px; color: #7d766e; text-align: center; font-size: .72rem; }
.booking-time-grid button { display: grid; gap: 3px; padding: 10px 5px; border: 1px solid #ded9d2; border-radius: 9px; background: white; color: #26231f; }
.booking-time-grid button:hover { background: #f7f4ef; }
.booking-time-grid button.selected { border-color: #1e1c19; background: #1e1c19; color: white; box-shadow: 0 0 0 2px #e7ded2; }
.booking-time-grid strong { font-size: .77rem; }
.booking-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.booking-details-grid label { gap: 6px; color: #4e4943; font-size: .7rem; }
.booking-details-grid label > span { color: #8a847d; font-weight: 500; }
.booking-details-grid .wide { grid-column: 1 / -1; }
.booking-details-grid input, .booking-details-grid textarea { width: 100%; padding: 11px 12px; border: 1px solid #dcd6cf; border-radius: 9px; background: #fff; font: inherit; font-size: .8rem; }
.booking-details-grid textarea { resize: vertical; }
.booking-payment { display: grid; gap: 10px; margin-top: 18px; padding: 14px; border: 1px solid #e1dcd5; border-radius: 11px; background: #faf8f5; }
.booking-payment > div:first-child { display: grid; gap: 4px; }
.booking-payment strong { font-size: .76rem; }
.booking-payment span { color: #736d66; font-size: .64rem; line-height: 1.4; }
#card-container:not(:empty) { min-height: 44px; padding: 13px 12px; border: 1px solid #cbc5bc; border-radius: 8px; background: #fff; box-shadow: inset 0 1px 1px rgba(42, 39, 35, .03); }
.booking-policy { margin-top: 14px; padding: 11px 12px; border: 1px solid #e1dcd5; border-radius: 9px; }
.booking-policy summary { cursor: pointer; font-size: .72rem; font-weight: 750; }
.booking-policy p { margin: 11px 0 0; color: #6f6962; font-size: .66rem; line-height: 1.5; white-space: pre-wrap; }
.booking-check { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 9px; margin-top: 13px; color: #5b554e; font-size: .69rem; font-weight: 550; line-height: 1.45; }
.booking-check input { width: auto; margin-top: 2px; }
.booking-card-disclosure { margin: 7px 0 0 27px; color: #77716a; font-size: .62rem; line-height: 1.45; }
.booking-fee-check { padding: 12px; border: 1px solid #decba7; border-radius: 9px; background: #fff9ed; color: #4b3d2c; font-weight: 700; }
.booking-sidebar { position: sticky; top: 18px; display: grid; gap: 14px; }
.booking-service-panel { padding: 20px; }
.booking-service-panel h2 { margin: 0; font-size: 1.12rem; font-weight: 700; letter-spacing: -.025em; }
.booking-service-panel > p:not(.booking-kicker) { margin: 6px 0 15px; color: var(--booking-muted); font-size: .67rem; line-height: 1.45; }
.booking-service-panel .booking-service-card { grid-template-columns: 1fr; }
.booking-service-panel .booking-service-assignment { justify-content: space-between; padding: 0 12px 10px 48px; }
.booking-summary { padding: 24px; }
.booking-summary h2 { margin: 0 0 18px; font-size: 1.28rem; font-weight: 700; letter-spacing: -.025em; }
.booking-summary-services { display: grid; gap: 10px; padding-bottom: 15px; border-bottom: 1px solid #e4dfd8; }
.booking-summary-services > div { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.booking-summary-services span { display: grid; gap: 3px; }
.booking-summary-services strong { font-size: .76rem; }
.booking-summary-services small { color: #777068; font-size: .63rem; }
.booking-summary-services b { font-size: .75rem; }
.booking-summary dl { display: grid; gap: 10px; margin: 15px 0; }
.booking-summary dl > div { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; font-size: .69rem; }
.booking-summary dt { color: #746d66; }
.booking-summary dd { margin: 0; font-weight: 750; text-align: right; }
.booking-summary > button { width: 100%; padding: 13px; border-radius: 9px; background: #1e1c19; font-size: .79rem; }
.booking-summary > button:hover { background: #3b3630; }
.booking-summary > p:last-child { margin: 11px 0 0; color: #77716a; font-size: .62rem; line-height: 1.45; text-align: center; }

@media (max-width: 1420px) {
  .booking-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 22px; }
  .booking-stylist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-stylist, .booking-stylist-select { min-height: 250px; }
  .booking-stylist img { min-height: 250px; }
  .booking-stylist-more { right: 16px; }
}
@media (max-width: 900px) {
  .booking-main { padding-top: 38px; }
  .booking-layout { grid-template-columns: 1fr; }
  .booking-sidebar { position: static; }
}
@media (max-width: 620px) {
  .booking-header { min-height: 66px; padding: 10px 16px; }
  .booking-brand > span { width: 35px; height: 35px; }
  .booking-back { font-size: .7rem; }
  .booking-main { padding: 30px 14px 60px; }
  .booking-intro h1 { font-size: 2.25rem; }
  .booking-step, .booking-summary { padding: 18px; border-radius: 13px; }
  .booking-stylist-grid { grid-template-columns: 1fr; }
  .booking-stylist, .booking-stylist-select { min-height: 172px; }
  .booking-stylist-select { grid-template-columns: 108px minmax(0, 1fr); }
  .booking-stylist img { min-height: 172px; }
  .booking-stylist-overview { padding: 15px 13px 38px; }
  .booking-stylist p { -webkit-line-clamp: 2; }
  .booking-stylist-languages { font-size: .62rem; }
  .booking-stylist-more { right: 11px; bottom: 9px; }
  .booking-stylist-dialog { display: block; max-height: calc(100vh - 18px); overflow-y: auto; }
  .booking-stylist-dialog[open] { display: block; }
  .booking-stylist-dialog-portrait { min-height: 0; height: min(390px, 45vh); }
  .booking-stylist-dialog-portrait img { min-height: 0; height: 100%; }
  .booking-stylist-dialog-content { padding: 22px 20px 24px; }
  .booking-stylist-dialog-content h2 { font-size: 1.65rem; }
  .booking-date-strip { gap: 4px; overflow-x: auto; }
  .booking-date-strip button { min-width: 53px; }
  .booking-time-heading { align-items: flex-start; flex-direction: column; }
  .booking-time-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .booking-details-grid { grid-template-columns: 1fr; }
  .booking-details-grid .wide { grid-column: auto; }
  .booking-service-card { grid-template-columns: 1fr; }
  .booking-service-assignment { justify-content: space-between; padding: 0 12px 10px 48px; }
  .booking-service-browser { width: calc(100vw - 18px); max-height: calc(100vh - 18px); }
  .booking-service-browser-header { padding: 20px 18px 17px; }
  .booking-service-browser-list { grid-template-columns: 1fr; max-height: calc(100vh - 150px); padding: 12px; }
  .booking-service-option { grid-template-columns: 110px minmax(0, 1fr); min-height: 220px; }
  .booking-service-option > img { min-height: 220px; }
  .booking-confirmation-content { padding: 26px 19px 22px; }
  .booking-confirmation-content h2 { font-size: 1.4rem; }
  .booking-confirmation-actions { grid-template-columns: 1fr; }
  .booking-confirmation-actions button:last-child { order: 2; }
}

/* Checkout and retail workspace */
.checkout-body { min-width: 1080px; }
.checkout-sidebar { overflow-y: auto; }
.checkout-sidebar-guide { margin: 8px 3px 18px; padding: 18px 14px; border: 1px solid #e2e4e7; border-radius: 12px; background: #fafafa; }
.checkout-sidebar-guide h2 { margin: 4px 0 12px; font-size: 1rem; }
.checkout-sidebar-guide ol { margin: 0; padding-left: 20px; color: #4e5358; font-size: .75rem; line-height: 1.65; }
.checkout-sidebar-guide > p:last-child { margin: 13px 0 0; padding-top: 12px; border-top: 1px solid #e2e4e7; color: #7b5a24; font-size: .7rem; line-height: 1.45; }
.checkout-main { min-height: 100vh; }
.checkout-layout { display: grid; grid-template-columns: minmax(600px, 1fr) 360px; gap: 18px; align-items: start; padding: 20px 24px; }
.checkout-builder { display: grid; gap: 15px; }
.checkout-section, .checkout-ticket, .checkout-recent { border: 1px solid #e0e3e6; border-radius: 13px; background: white; box-shadow: 0 1px 2px #1b20260a; }
.checkout-section { padding: 20px; }
.checkout-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.checkout-section-heading h2 { margin: 3px 0 0; font-size: 1.08rem; letter-spacing: -.015em; }
.checkout-section label { color: #50555a; font-size: .73rem; }
.checkout-section input, .checkout-section select { border-color: #d1d5d9; border-radius: 8px; font-size: .82rem; }
.checkout-help { margin: 8px 0 0; color: #777d82; font-size: .72rem; line-height: 1.45; }
.checkout-customer-search { display: grid; gap: 6px; }
.checkout-customer-search input { width: 100%; min-height: 45px; padding: 10px 13px; font-size: .88rem; }
.checkout-customer-fields { display: grid; grid-template-columns: 1.1fr .9fr 1.1fr; gap: 10px; margin-top: 12px; }
.checkout-customer-fields label { display: grid; gap: 5px; font-weight: 700; }
.checkout-customer-fields input { width: 100%; padding: 10px; }
.checkout-selected-customer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 10px 0 0; padding: 12px 13px; border: 1px solid #bed7c6; border-radius: 9px; background: #f3faf5; }
.checkout-selected-customer div { display: grid; gap: 3px; }
.checkout-selected-customer strong { font-size: .84rem; }
.checkout-selected-customer span { color: #56705e; font-size: .68rem; }
.checkout-appointment-link { display: grid; gap: 5px; margin-top: 15px; padding-top: 15px; border-top: 1px solid #e4e6e8; }
.checkout-appointment-link label { font-weight: 750; }
.checkout-appointment-link label span { margin-left: 5px; color: #8a8f94; font-size: .62rem; font-weight: 650; }
.checkout-appointment-link select { width: 100%; padding: 10px; background: #fff; }
.checkout-subsection-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 3px 0 12px; }
.checkout-subsection-heading h3 { margin: 0; font-size: .9rem; }
.checkout-subsection-heading p { margin: 3px 0 0; color: #7b8085; font-size: .67rem; }
.checkout-add-actions { display: flex; align-items: center; gap: 7px; }
.checkout-add-actions button { padding: 8px 11px; font-size: .7rem; white-space: nowrap; }
.checkout-optional-workspace { margin-top: 12px; padding: 14px; border: 1px solid #e0e3e5; border-radius: 10px; background: #fafbfa; }
.checkout-retail-heading { margin-top: 0; }
.checkout-close-workspace { display: grid; width: 28px; height: 28px; padding: 0; place-items: center; border: 1px solid #d7dade !important; border-radius: 50% !important; background: white !important; color: #52575c !important; font-size: 1rem; }
.checkout-inline-picker { display: grid; grid-template-columns: minmax(180px, 1.5fr) minmax(140px, 1fr) 105px auto; gap: 8px; align-items: end; margin-bottom: 11px; padding: 12px; border: 1px solid #dce1de; border-radius: 9px; background: #f8faf9; }
.checkout-inline-picker.hidden { display: none; }
.checkout-inline-picker label { display: grid; gap: 5px; font-weight: 700; }
.checkout-inline-picker input, .checkout-inline-picker select { width: 100%; padding: 9px; }
.checkout-inline-picker button { padding: 10px 15px; }
.checkout-employee-panel { display: grid; gap: 11px; margin-top: 17px; padding: 14px; border: 1px solid #dfd7bd; border-radius: 11px; background: #fffdf7; }
.checkout-employee-toggle { display: flex !important; align-items: flex-start; gap: 10px; cursor: pointer; }
.checkout-employee-toggle input { width: auto; margin: 3px 0 0; }
.checkout-employee-toggle span { display: grid; gap: 3px; }
.checkout-employee-toggle strong { color: #302d24; font-size: .8rem; }
.checkout-employee-toggle small { color: #77705d; font-size: .68rem; line-height: 1.4; }
#employee-person-field { display: grid; gap: 5px; max-width: 360px; font-weight: 700; }
#employee-discount-note { margin: 0; color: #675e45; font-size: .7rem; line-height: 1.45; }
.checkout-badge { padding: 5px 8px; border-radius: 999px; background: #eef5ef; color: #355d3c; font-size: .68rem; font-weight: 750; }
.checkout-line-list { display: grid; gap: 8px; }
.checkout-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; min-height: 62px; padding: 11px 12px; border: 1px solid #e3e5e7; border-radius: 9px; background: #fff; }
.checkout-line > div:first-child { display: grid; gap: 4px; min-width: 0; }
.checkout-line strong { font-size: .82rem; }
.checkout-line span { overflow: hidden; color: #747a80; font-size: .69rem; line-height: 1.35; text-overflow: ellipsis; }
.checkout-line-end { display: grid; justify-items: end; gap: 7px; }
.checkout-live-test { display: grid; gap: 10px; margin-top: 12px; padding: 13px; border: 1px solid #d8c998; border-radius: 10px; background: #fffdf4; }
.checkout-live-test.hidden { display: none; }
.checkout-live-test strong { color: #302b1d; font-size: .78rem; }
.checkout-live-test p { margin: 4px 0 0; color: #71694f; font-size: .68rem; line-height: 1.45; }
.checkout-live-test button { width: 100%; min-height: 38px; border-color: #2c2c2c; color: #1f1f1f; font-weight: 750; }
.checkout-live-test-result { padding-top: 9px; border-top: 1px solid #e4d9b4; color: #355d3c !important; font-weight: 700; }
.checkout-live-test-result.hidden { display: none; }
.checkout-reward-toggle { display: flex !important; grid-template-columns: auto 1fr; align-items: center; gap: 6px !important; color: #555b60 !important; font-size: .68rem !important; font-weight: 650 !important; }
.checkout-reward-toggle input { width: auto; margin: 0; }
.checkout-credit-panel { margin-top: 14px; padding: 16px; border: 1px solid #b9dbc4; border-radius: 14px; background: #f1faf4; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .65fr); gap: 18px; align-items: end; }
.checkout-credit-panel strong { color: #176b3a; }
.checkout-credit-panel p { margin: 5px 0 0; color: #4e6355; line-height: 1.45; }
.checkout-credit-panel label { display: grid; gap: 6px; font-weight: 700; color: #244b32; }
.checkout-empty { margin: 0; padding: 17px; border: 1px dashed #d7dade; border-radius: 9px; color: #7b8086; text-align: center; font-size: .75rem; }
.checkout-catalog-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 0 0 11px; }
.checkout-catalog-toolbar label { display: grid; flex: 1; gap: 5px; }
.checkout-catalog-toolbar input { width: 100%; padding: 10px 12px; }
.checkout-catalog-toolbar > span { flex: 0 0 auto; padding-bottom: 9px; color: #737a76; font-size: .67rem; font-weight: 700; }
.checkout-product-list { display: grid; max-height: 390px; overflow-y: auto; margin-bottom: 15px; border: 1px solid #e1e4e6; border-radius: 10px; }
.checkout-product-row { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(150px, .65fr) 100px 62px; gap: 12px; align-items: center; min-height: 58px; padding: 9px 11px; border-bottom: 1px solid #e8eaeb; background: #fff; }
.checkout-product-row:last-child { border-bottom: 0; }
.checkout-product-row:hover { background: #fafbfa; }
.checkout-product-row:not(.has-variations) { grid-template-columns: minmax(190px, 1fr) 100px 62px; }
.checkout-product-copy { display: grid; gap: 3px; min-width: 0; }
.checkout-product-copy strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.checkout-product-copy span { color: #7b8085; font-size: .63rem; }
.checkout-product-row select { min-width: 0; width: 100%; padding: 7px 8px; background: white; font-size: .67rem; }
.checkout-product-row b { justify-self: end; font-size: .75rem; white-space: nowrap; }
.checkout-product-row button { padding: 7px 10px; font-size: .67rem; }
.checkout-product-empty { grid-column: 1 / -1; }
.checkout-retail-line { grid-template-columns: minmax(190px, 1fr) 70px 160px auto; }
.checkout-retail-line label, .checkout-tip-line label { display: grid; gap: 4px; }
.checkout-retail-line input, .checkout-retail-line select, .checkout-tip-line input, .checkout-tip-line select { padding: 8px; }
.checkout-remove { width: 27px; height: 27px; padding: 0; border: 1px solid #d9dcdf !important; border-radius: 50% !important; background: white !important; color: #5b6065 !important; }
.checkout-tip-line { grid-template-columns: minmax(180px, 1fr) 140px 30px; }
.checkout-search-results { display: grid; max-height: 190px; overflow-y: auto; margin: 5px 0 12px; border-radius: 8px; }
.checkout-search-results button { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 11px; border: 1px solid #e1e4e6 !important; border-bottom: 0 !important; border-radius: 0 !important; background: #fff !important; color: #202326 !important; text-align: left; box-shadow: none !important; }
.checkout-search-results button:first-child { border-radius: 8px 8px 0 0 !important; }
.checkout-search-results button:last-child { border-bottom: 1px solid #e1e4e6 !important; border-radius: 0 0 8px 8px !important; }
.checkout-search-results button:only-child { border-radius: 8px !important; }
.checkout-search-results button:hover, .checkout-search-results button:focus-visible { background: #f1f4f2 !important; color: #171a18 !important; }
.checkout-search-results button strong { color: #202326 !important; font-size: .76rem; }
.checkout-search-results button span, .checkout-search-results p { color: #656b70 !important; font-size: .67rem; }
.checkout-ticket { position: sticky; top: 18px; overflow: hidden; padding: 20px; }
.checkout-ticket-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid #e2e4e6; }
.checkout-ticket-header h2 { margin: 3px 0 0; font-size: 1.2rem; }
.checkout-status { padding: 5px 8px; border-radius: 999px; background: #eceeef; color: #555b60; font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.checkout-status.completed { background: #e3f2e7; color: #2d653d; }
.checkout-status.ready { background: #fff2cc; color: #715d20; }
.checkout-ticket-customer { display: grid; gap: 4px; min-height: 64px; padding: 16px 0; color: #777d82; font-size: .75rem; }
.checkout-ticket-customer strong { color: #202326; font-size: .88rem; }
.checkout-ticket-customer span { font-size: .68rem; }
.checkout-ticket-lines { display: grid; gap: 8px; padding-bottom: 13px; border-bottom: 1px solid #e2e4e6; }
.checkout-ticket-lines > div { display: flex; justify-content: space-between; gap: 15px; font-size: .72rem; }
.checkout-ticket-lines > div span { color: #555b60; }
.checkout-ticket-lines > p { margin: 0; color: #7a8085; font-size: .72rem; }
.checkout-transfer-preview { margin: 13px 0 0; }
.checkout-transfer-preview:empty { display: none; }
.checkout-transfer-preview details { overflow: hidden; border: 1px solid #dfe4e1; border-radius: 9px; background: #fafcfb; }
.checkout-transfer-preview summary { padding: 10px 11px; cursor: pointer; color: #2e4535; font-size: .69rem; font-weight: 800; list-style-position: inside; }
.checkout-transfer-columns { display: grid; gap: 8px; padding: 0 9px 9px; }
.checkout-transfer-columns article { padding: 9px; border: 1px solid #e4e7e5; border-radius: 7px; background: white; }
.checkout-transfer-label { display: block; margin-bottom: 7px; color: #5f6d64; font-size: .59rem; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.checkout-transfer-columns ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.checkout-transfer-columns li { display: grid; gap: 2px; color: #353b37; font-size: .65rem; line-height: 1.35; }
.checkout-transfer-columns li span { color: #747c76; font-size: .61rem; }
.checkout-transfer-columns article:nth-child(2) li { display: flex; justify-content: space-between; gap: 8px; }
.checkout-transfer-columns article:nth-child(2) li span { color: #353b37; }
.checkout-transfer-owner { margin: 0 0 7px; color: #68716b; font-size: .62rem; }
.checkout-transfer-columns small { display: block; margin-top: 8px; color: #707973; font-size: .58rem; line-height: 1.4; }
.checkout-simulation-lock { margin: 0; padding: 8px 10px; border-top: 1px solid #dfe4e1; background: #edf5ef; color: #386046; font-size: .59rem; font-weight: 800; text-align: center; text-transform: uppercase; letter-spacing: .045em; }
.checkout-totals { display: grid; gap: 9px; margin: 15px 0 18px; }
.checkout-totals > div { display: flex; justify-content: space-between; gap: 20px; color: #5d6267; font-size: .75rem; }
.checkout-totals dt, .checkout-totals dd { margin: 0; }
.checkout-totals .checkout-total { margin-top: 4px; padding-top: 13px; border-top: 1px solid #dfe2e4; color: #1c1e20; font-size: 1.03rem; font-weight: 850; }
.checkout-compensation { display: grid; gap: 5px; margin-bottom: 14px; padding: 11px; border-radius: 8px; background: #f4f7f4; }
.checkout-compensation:empty { display: none; }
.checkout-compensation strong { color: #3d5142; font-size: .69rem; }
.checkout-compensation span { color: #5f6c62; font-size: .65rem; }
.checkout-ticket > button { width: 100%; }
.checkout-ticket > .checkout-prepare-button { border: 1px solid #1d2022; background: white; color: #1d2022; box-shadow: none; }
.checkout-ticket > .checkout-prepare-button:hover { background: #f2f3f3; }
.checkout-ticket > button + button { margin-top: 8px; }
.checkout-complete { background: #2e6b43 !important; }
.checkout-ticket-note { margin: 12px 0 0; color: #7a8085; font-size: .65rem; line-height: 1.45; }
.checkout-recent { margin: 0 24px 24px; padding: 20px; }
.checkout-order-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.checkout-order-card { display: grid; gap: 7px; padding: 13px; border: 1px solid #e1e4e6; border-radius: 9px; }
.checkout-order-card > div { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.checkout-order-card time { color: #7b8186; font-size: .61rem; }
.checkout-order-card > strong { font-size: .78rem; }
.checkout-order-card p { margin: 0; color: #70767b; font-size: .66rem; }
.checkout-order-card > b { font-size: .84rem; }

@media (max-width: 1250px) {
  .checkout-layout { grid-template-columns: minmax(520px, 1fr) 330px; }
  .checkout-customer-fields { grid-template-columns: 1fr 1fr; }
  .checkout-credit-panel { grid-template-columns: 1fr; }
  .checkout-order-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Staff operations calendar */
.ops-body {
  --ops-border: #e2e4e7;
  --ops-soft: #f6f7f8;
  --ops-text: #1c1d1f;
  --ops-muted: #686d73;
  --ops-accent: #151618;
  min-width: 1080px;
  background: #fff;
  color: var(--ops-text);
}
.ops-body button, .ops-body input, .ops-body select { font: inherit; }
.ops-shell { min-height: 100vh; display: grid; grid-template-columns: 252px minmax(0, 1fr); }
.ops-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; overflow: hidden; padding: 18px 14px; background: #fff; border-right: 1px solid var(--ops-border); z-index: 30; }
.ops-brand { display: flex; align-items: center; gap: 11px; min-height: 48px; padding: 7px 10px; border: 1px solid #d7dade; border-radius: 12px; color: var(--ops-text); text-decoration: none; }
.ops-brand > span { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: #18191b; color: white; font-family: Georgia, serif; font-size: 1.15rem; }
.ops-brand div { display: grid; line-height: 1.15; }
.ops-brand strong { font-size: .91rem; }
.ops-brand small { margin-top: 3px; color: var(--ops-muted); font-size: .72rem; }
.ops-nav { display: grid; gap: 4px; margin: 20px 0 12px; }
.ops-nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 12px; border-radius: 8px; color: #2a2c2f; text-decoration: none; font-weight: 650; font-size: .91rem; }
.ops-nav a span { width: 20px; text-align: center; font-size: 1.12rem; }
.ops-nav a:hover, .ops-nav a.active { background: #f0f1f2; }
.ops-nav b { margin-left: auto; min-width: 23px; padding: 3px 7px; border-radius: 999px; background: #1c1d1f; color: white; text-align: center; font-size: .72rem; }
.ops-mini-calendar { padding: 11px 4px 13px; border-top: 1px solid var(--ops-border); }
.ops-mini-calendar header { display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; padding: 0; background: transparent; color: #24272a; }
.ops-mini-calendar header strong { text-align: center; font-size: .79rem; }
.ops-mini-calendar header button { width: 28px; height: 28px; padding: 0; background: transparent; color: #4e5358; font-size: 1.05rem; }
.ops-mini-calendar header button:hover { background: #f0f1f2; }
.ops-mini-weekdays, .ops-mini-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.ops-mini-weekdays { margin-top: 7px; }
.ops-mini-weekdays span { padding: 4px 0; color: #8a8f94; text-align: center; font-size: .59rem; font-weight: 750; }
.ops-mini-grid button { position: relative; display: grid; place-items: center; width: 27px; height: 27px; justify-self: center; padding: 0; border: 1px solid transparent; border-radius: 50%; background: white !important; color: #202326 !important; font-size: .65rem; font-weight: 650; }
.ops-mini-grid button:hover { border-color: #c8ccd0; background: #e7e9eb !important; }
.ops-mini-grid button.outside { color: #aeb2b6 !important; }
.ops-mini-grid button.today { border-color: #202326; box-shadow: none; }
.ops-mini-grid button.selected { border: 2px solid #151719; background: white !important; color: #151719 !important; box-shadow: inset 0 0 0 1px white; font-weight: 850; }
.ops-mini-grid button.has-events::after { position: absolute; bottom: 2px; width: 3px; height: 3px; border-radius: 50%; background: currentColor; content: ""; }
.ops-sidebar-requests { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow: hidden; padding: 14px 4px 12px; border-top: 1px solid var(--ops-border); }
.ops-request-list { flex: 1 1 auto; min-height: 70px; overflow-y: auto; padding-right: 5px; }
.ops-sidebar-note { display: grid; gap: 4px; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: #f6f6f4; font-size: .72rem; }
.ops-sidebar-note span { color: var(--ops-muted); line-height: 1.35; }
.ops-identity { display: grid; gap: 7px; margin-top: 12px; }
.ops-identity label { color: var(--ops-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.ops-identity select { padding: 9px 10px; border-color: #d7dade; border-radius: 8px; font-size: .85rem; }
.ops-privacy { padding: 7px 9px; border-radius: 7px; background: #fff6de; color: #725d24; font-size: .72rem; }
.ops-privacy.full { background: #e6f4eb; color: #28623b; }
.ops-main { width: 100%; min-width: 0; max-width: none; margin: 0; padding: 0; background: #fafafa; }
.ops-header { display: flex; align-items: center; justify-content: space-between; height: 86px; padding: 0 28px; background: white; border-bottom: 1px solid var(--ops-border); color: var(--ops-text); }
.ops-header h1 { margin: 2px 0 0; font-size: 1.65rem; letter-spacing: -.03em; }
.ops-eyebrow { margin: 0; color: var(--ops-muted); font-size: .69rem; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.ops-header-actions { display: flex; align-items: center; gap: 9px; }
.ops-header button, .ops-header .ops-outline-button { min-height: 40px; }
.ops-body button { border-radius: 9px; background: var(--ops-accent); }
.ops-outline-button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; border: 1px solid #d6d9dd; border-radius: 9px; background: white; color: #25272a; font-weight: 700; text-decoration: none; }
.ops-body button.ops-outline-button { background: white; color: #25272a; }
.ops-outline-button:hover { background: #f5f6f7; }
.ops-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 70px; padding: 12px 28px; background: white; border-bottom: 1px solid var(--ops-border); }
.ops-date-controls { display: flex; align-items: center; gap: 8px; }
.ops-icon-button { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border-radius: 50% !important; background: #f1f2f3 !important; color: #222 !important; font-size: 1.55rem; font-weight: 500 !important; }
.ops-date-title { display: flex; align-items: center; justify-content: center; gap: 9px; min-width: 190px; margin: 0; padding: 8px 13px; background: white !important; color: var(--ops-text) !important; font-size: .9rem; }
#date-picker { position: absolute; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.ops-view-switcher { display: flex; padding: 3px; border: 1px solid #d7dade; border-radius: 10px; background: #f7f8f8; }
.ops-view-switcher button { min-width: 68px; padding: 8px 13px; border-radius: 7px; background: transparent; color: #555b61; font-size: .84rem; }
.ops-view-switcher button.active { background: white; color: #18191b; box-shadow: 0 1px 4px #20252b1b; }
.ops-sample-banner { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 16px 20px 0; padding: 11px 14px; border: 1px solid #e7d49a; border-radius: 9px; background: #fff9e8; }
.ops-sample-banner.hidden { display: none; }
.ops-sample-banner div { display: flex; align-items: baseline; gap: 9px; }
.ops-sample-banner strong { font-size: .83rem; }
.ops-sample-banner span { color: #6d634d; font-size: .78rem; }
.ops-text-button { padding: 4px !important; background: transparent !important; color: #5f5234 !important; font-size: .78rem; }
.ops-workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px 6px 22px; align-items: start; }
.ops-calendar-card, .ops-request-panel { overflow: hidden; border: 1px solid var(--ops-border); border-radius: 12px; background: white; box-shadow: 0 1px 2px #1b20260a; }
.ops-calendar-card { min-width: 0; min-height: 620px; border-right: 0; border-left: 0; border-radius: 8px; }
.ops-loading { display: grid; place-items: center; min-height: 520px; color: var(--ops-muted); }
.ops-loading.hidden { display: none; }
.ops-day-scroll { overflow: auto; max-height: calc(100vh - 205px); }
.ops-day-grid { position: relative; display: grid; grid-template-columns: 58px repeat(var(--staff-count), minmax(128px, 1fr)); min-width: calc(58px + var(--staff-count) * 128px); }
.ops-time-gutter { position: sticky; left: 0; z-index: 15; background: white; border-right: 1px solid var(--ops-border); }
.ops-gutter-heading { position: sticky; top: 0; z-index: 18; display: flex; align-items: center; justify-content: flex-end; height: 78px; padding-right: 9px; background: white; border-bottom: 1px solid var(--ops-border); color: #92969b; font-size: .64rem; }
.ops-time-labels { position: relative; background: white; }
.ops-time-labels > div { position: absolute; right: 8px; transform: translateY(-7px); color: #777c82; font-size: .75rem; }
.ops-time-labels > div.quarter { color: #8d9297; font-size: .64rem; font-weight: 600; }
.ops-time-labels > div.hour { color: #676c72; font-weight: 700; }
.ops-staff-column { min-width: 0; border-right: 1px solid var(--ops-border); }
.ops-staff-heading { position: sticky; top: 0; z-index: 12; display: flex; align-items: center; justify-content: center; gap: 10px; height: 78px; padding: 8px; background: white; border-bottom: 1px solid var(--ops-border); }
.ops-staff-heading > div { display: grid; min-width: 0; }
.ops-staff-heading strong { overflow: hidden; text-overflow: ellipsis; font-size: .9rem; }
.ops-staff-heading small { margin-top: 3px; color: var(--ops-muted); font-size: .7rem; white-space: nowrap; }
.ops-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; color: white; font-size: .88rem; font-weight: 800; }
.ops-avatar-photo { flex: 0 0 auto; width: 50px; height: 50px; border: 2px solid white; border-radius: 50%; object-fit: cover; object-position: 50% 24%; box-shadow: 0 0 0 1px #cfd3d6, 0 2px 6px #1e242b1a; }
.ops-time-column { position: relative; cursor: crosshair; background-color: white; background-image: linear-gradient(to bottom, transparent calc(100% - .5px), #f2f3f4 calc(100% - .5px)), linear-gradient(to bottom, transparent calc(100% - .5px), #e8eaec calc(100% - .5px)), linear-gradient(to bottom, transparent calc(100% - 1px), #d9dcdf calc(100% - 1px)); background-size: 100% 18px, 100% 36px, 100% 72px; }
.ops-event { position: absolute; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; overflow: hidden; min-width: 42px; padding: 5px 6px; border: 0; border-left: 3px solid currentColor; border-radius: 4px; background: #e9f2dc; color: #334020; text-align: left; box-shadow: inset 0 0 0 1px #ffffff70; cursor: pointer; }
.ops-event:hover { z-index: 8; filter: brightness(.97); box-shadow: 0 4px 12px #1a1d2030; }
.ops-event:focus-visible { z-index: 9; outline: 2px solid #24272a; outline-offset: 1px; }
.ops-event-time { font-size: .7rem; font-weight: 800; white-space: nowrap; }
.ops-event-visit-position { display: inline-flex; margin: 0 0 0 5px !important; padding: 1px 4px; border: 1px solid currentColor; border-radius: 999px; background: #ffffffa8; font-size: .55rem !important; font-weight: 850; line-height: 1.15 !important; vertical-align: 1px; white-space: nowrap; }
.ops-event strong { display: block; width: 100%; margin-top: 5px; overflow: hidden; text-overflow: ellipsis; font-size: .79rem; line-height: 1.15; white-space: nowrap; }
.ops-event > span:not(.ops-event-time) { margin-top: 3px; font-size: .7rem; line-height: 1.15; }
.ops-event em { margin-top: auto; font-size: .6rem; font-style: normal; text-transform: uppercase; opacity: .72; }
.ops-event-markers { position: absolute; top: 4px; right: 4px; z-index: 3; display: flex; gap: 2px; margin: 0 !important; }
.ops-event-markers span { display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 3px; border-radius: 4px; background: #ffffffd9; color: inherit; font-size: .7rem; font-weight: 900; box-shadow: 0 1px 2px #1018201c; }
.ops-event.compact { padding-top: 4px; }
.ops-event.compact .ops-event-markers, .ops-event.compact .ops-event-service, .ops-event.compact > em, .ops-event.compact .ops-event-checkout { display: none; }
.ops-event.compact strong { margin-top: 2px; font-size: .76rem; }
.ops-event.compact .ops-event-time { font-size: .66rem; }
.ops-event.compact .ops-event-visit-position { margin-left: 3px !important; padding-inline: 3px; font-size: .5rem !important; }
.ops-event.composite-visit { padding-bottom: 6px; }
.ops-event.composite-visit.compact .ops-event-service-list { display: flex; }
.ops-event-service-list { display: flex; width: 100%; min-height: 0; margin-top: 5px !important; flex: 1 1 auto; flex-direction: column; overflow: hidden; border-top: 1px solid #17242a30; }
.ops-event-service-list > span { display: grid; min-height: 0; padding: 4px 0; border-bottom: 1px solid #17242a30; gap: 1px; }
.ops-event-service-list > span:last-child { border-bottom: 0; }
.ops-event-service-list b { overflow: hidden; text-overflow: ellipsis; font-size: .68rem; line-height: 1.12; white-space: nowrap; }
.ops-event-service-list small { font-size: .56rem; font-weight: 750; line-height: 1.1; opacity: .78; white-space: nowrap; }
.ops-event.canceled { border-left-color: #9ca1a6; background: #f0f1f1; color: #7d8287; opacity: .62; }
.ops-event.canceled strong, .ops-event.canceled > span:not(.ops-event-time):not(.ops-event-markers) { text-decoration: line-through; }
.ops-event.ops-block-event { border-left-color: #696e73; background: #d7d9db; color: #34383c; box-shadow: inset 0 0 0 1px #c3c6c9; }
.ops-event .ops-event-checkout { align-self: stretch; min-height: 23px; margin-top: auto; padding: 3px 5px; border: 1px solid #ffffff8c; border-radius: 4px; background: #ffffffc9; color: inherit; font-size: .62rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.ops-event .ops-event-checkout:hover { background: white; }
.ops-event .ops-event-checkout:disabled { opacity: .55; }
.ops-calendar-event-tooltip { position: fixed; z-index: 1000; display: grid; width: min(265px, calc(100vw - 20px)); gap: 5px; padding: 12px; border: 1px solid #d7dade; border-radius: 10px; background: #fff; color: #24272a; box-shadow: 0 12px 34px #11182030; pointer-events: none; }
.ops-calendar-event-tooltip.hidden { display: none; }
.ops-calendar-event-tooltip > strong { font-size: .88rem; }
.ops-calendar-event-tooltip > span { color: #4f565d; font-size: .74rem; font-weight: 800; }
.ops-calendar-event-tooltip > p { margin: 0; color: #555d64; font-size: .75rem; line-height: 1.35; }
.ops-calendar-event-tooltip > div { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; padding-top: 7px; border-top: 1px solid #eceef0; }
.ops-calendar-event-tooltip > div span { padding: 3px 6px; border-radius: 999px; background: #f0f2f3; color: #4b535a; font-size: .63rem; font-weight: 700; }
.ops-event.sample { background-image: repeating-linear-gradient(135deg, transparent, transparent 6px, #ffffff24 6px, #ffffff24 10px); }
.ops-avatar.color-0, .ops-event.color-0 { background-color: #dfecc4; color: #4c6519; }
.ops-avatar.color-0 { background: #8bad3d; color: white; }
.ops-avatar.color-1, .ops-event.color-1 { background-color: #d7efed; color: #17635e; }
.ops-avatar.color-1 { background: #3faaa3; color: white; }
.ops-avatar.color-2, .ops-event.color-2 { background-color: #fde2cc; color: #8a430b; }
.ops-avatar.color-2 { background: #d87329; color: white; }
.ops-avatar.color-3, .ops-event.color-3 { background-color: #e9d9f3; color: #652888; }
.ops-avatar.color-3 { background: #9146b7; color: white; }
.ops-avatar.color-4, .ops-event.color-4 { background-color: #dfe7fb; color: #234a91; }
.ops-avatar.color-4 { background: #4071ca; color: white; }
.ops-avatar.color-5, .ops-event.color-5 { background-color: #f7dfdf; color: #7d3030; }
.ops-avatar.color-5 { background: #ba5555; color: white; }
.ops-avatar.color-6, .ops-event.color-6 { background-color: #f4d6e6; color: #692345; }
.ops-avatar.color-6 { background: #c64f8a; color: white; }
.ops-event.upcoming.color-0 { background: #91bd22; color: #17242a; }
.ops-event.upcoming.color-1 { background: #19aaa2; color: #17242a; }
.ops-event.upcoming.color-2 { background: #e98234; color: #17242a; }
.ops-event.upcoming.color-3 { background: #b36bd0; color: #17242a; }
.ops-event.upcoming.color-4 { background: #78a5ef; color: #17242a; }
.ops-event.upcoming.color-5 { background: #dc7a7a; color: #17242a; }
.ops-event.upcoming.color-6 { background: #dd72aa; color: #17242a; }
.ops-event.completed { filter: saturate(.55); opacity: .66; }
.ops-event.completed.color-0 { background: #e7f0d4; color: #60743b; }
.ops-event.completed.color-1 { background: #ddf0ee; color: #38706c; }
.ops-event.completed.color-2 { background: #f8e6d8; color: #96613b; }
.ops-event.completed.color-3 { background: #eee1f3; color: #79528a; }
.ops-event.completed.color-4 { background: #e3e9f7; color: #526b99; }
.ops-event.completed.color-5 { background: #f3e2e2; color: #8b5656; }
.ops-event.completed.color-6 { background: #f5e1eb; color: #7b4b63; }
.ops-event.canceled { border: 1px solid #cbd0d4; border-left: 3px solid #a6abb0; background: #fbfcfc; color: #8a9095; opacity: .78; box-shadow: none; }
.ops-event.canceled strong, .ops-event.canceled > span:not(.ops-event-time):not(.ops-event-markers) { text-decoration: line-through; }
.ops-event.no-show { border: 1px solid #d7dade; border-left: 4px solid #cf4248; background: #fafbfb; color: #72787d; opacity: .9; box-shadow: none; }
.ops-event.square-origin { box-sizing: border-box; border-bottom: 3px solid #2f78c9; }
.ops-event.dragging { opacity: .35; }
.ops-time-column.drag-target { background-color: #f2f8e8; box-shadow: inset 0 0 0 2px #91b24e; }
.ops-time-column.drag-target::after { content: ""; position: absolute; z-index: 10; top: var(--drop-guide-top, 0); left: 0; right: 0; border-top: 2px solid #24272a; pointer-events: none; }
.ops-time-column.drag-target::before { content: ""; position: absolute; z-index: 11; top: calc(var(--drop-guide-top, 0px) - 4px); left: -1px; width: 8px; height: 8px; border-radius: 50%; background: #24272a; pointer-events: none; }
.ops-now-line { position: absolute; left: 52px; right: 0; z-index: 9; border-top: 1px solid #e03d45; pointer-events: none; }
.ops-now-line span { position: absolute; left: 7px; top: -4px; width: 7px; height: 7px; border-radius: 50%; background: #e03d45; }
.ops-panel-heading { display: flex; align-items: center; justify-content: space-between; }
.ops-panel-heading h2 { margin: 3px 0 0; font-size: 1.02rem; }
.ops-count { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; background: #1d1e20; color: white; font-size: .75rem; font-weight: 800; }
.ops-panel-help { margin: 9px 0 10px; color: var(--ops-muted); font-size: .7rem; line-height: 1.35; }
.ops-request-card { padding: 11px 0; border-top: 1px solid #eceef0; }
.ops-request-open { width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent !important; color: inherit !important; text-align: left; }
.ops-request-open:hover { background: #f8f9f9 !important; }
.ops-request-chevron { margin-left: auto; color: #91969b; font-size: 1.25rem; }
.ops-request-top { display: flex; align-items: center; gap: 9px; }
.ops-request-avatar { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: #ebe3d7; color: #695541; font-size: .75rem; font-weight: 800; }
.ops-request-top > div { display: grid; }
.ops-request-top strong { font-size: .79rem; }
.ops-request-top time { color: var(--ops-muted); font-size: .68rem; }
.ops-request-card p { margin: 9px 0; color: #4e5358; font-size: .72rem; line-height: 1.35; }
.ops-request-meta { display: flex; gap: 10px; color: #73787d; font-size: .67rem; }
.ops-request-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px; }
.ops-request-actions button { padding: 8px; border-radius: 7px; font-size: .72rem; }
.ops-request-actions .ops-decline { border: 1px solid #d9dcdf; background: white; color: #45494d; }
.ops-empty { display: grid; justify-items: center; padding: 18px 10px; text-align: center; }
.ops-empty > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #e6f3ea; color: #397149; }
.ops-empty strong { margin-top: 10px; font-size: .82rem; }
.ops-empty p { margin: 5px 0 0; color: var(--ops-muted); font-size: .71rem; line-height: 1.35; }
.ops-empty-action { display: block; padding: 10px; border: 1px dashed #cdd1d5; border-radius: 8px; color: #3a3e42; text-align: center; text-decoration: none; font-size: .73rem; font-weight: 700; }
.ops-toast { position: fixed; top: 16px; left: 50%; z-index: 80; transform: translateX(-50%); padding: 11px 16px; border: 1px solid #8fb79b; border-radius: 8px; background: #e6f3ea; box-shadow: 0 8px 30px #1d252d25; color: #2f5f3c; font-size: .82rem; }
.ops-toast.error { border-color: #dda0a0; background: #fae8e8; color: #8b3333; }
.ops-week-grid { display: grid; grid-template-columns: repeat(7, minmax(145px, 1fr)); min-width: 1015px; min-height: 640px; overflow-x: auto; }
.ops-week-day { min-height: 640px; border-right: 1px solid var(--ops-border); background: #fff; }
.ops-week-day > header { display: flex; align-items: center; justify-content: center; gap: 7px; height: 62px; border-bottom: 1px solid var(--ops-border); }
.ops-week-day > header span { color: var(--ops-muted); font-size: .7rem; text-transform: uppercase; }
.ops-week-day > header strong { font-size: .95rem; }
.ops-week-day.today > header strong { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; background: #1d1e20; color: white; }
.ops-week-day > div { padding: 8px; }
.ops-week-day p { color: #9a9ea2; font-size: .68rem; text-align: center; }
.ops-week-event { display: grid; width: 100%; margin-bottom: 7px; padding: 8px; border-left: 3px solid #78a42c; border-radius: 5px; background: #e6f0d4 !important; color: #38451e !important; text-align: left; }
.ops-week-event time { font-size: .62rem; font-weight: 800; }
.ops-week-event strong { margin-top: 3px; font-size: .72rem; }
.ops-week-event span { margin-top: 3px; font-size: .62rem; line-height: 1.25; }
.ops-week-event.block { border-left-color: #8b9095; background: #e5e6e7 !important; color: #565b60 !important; }
.ops-week-event.canceled { border-left-color: #a9adb1; background: #f0f1f1 !important; color: #85898d !important; opacity: .65; text-decoration: line-through; }
.ops-week-event.completed { opacity: .62; }
.ops-week-event.no-show { border-left-color: #cf4248; background: #f7f8f8 !important; color: #70767b !important; }
.ops-week-event.square-origin { border-bottom: 3px solid #2f78c9; }
.ops-month { min-width: 900px; }
.ops-month-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); height: 42px; border-bottom: 1px solid var(--ops-border); }
.ops-month-weekdays span { display: grid; place-items: center; color: var(--ops-muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.ops-month-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.ops-month-day { min-height: 112px; padding: 8px; border: 0; border-right: 1px solid var(--ops-border); border-bottom: 1px solid var(--ops-border); border-radius: 0 !important; background: white !important; color: #303338 !important; text-align: left; }
.ops-month-day:hover { background: #f8f9f9 !important; }
.ops-month-day.outside { color: #b0b3b6 !important; background: #fbfbfb !important; }
.ops-month-day > strong { display: grid; place-items: center; width: 24px; height: 24px; font-size: .72rem; }
.ops-month-day.today > strong { border-radius: 50%; background: #1d1e20; color: white; }
.ops-month-day > div { display: grid; gap: 3px; margin-top: 4px; }
.ops-month-day span { overflow: hidden; padding: 3px 4px; border-radius: 3px; background: #e6f0d4; color: #445225; font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }
.ops-month-day span.block { background: #e3e4e5; color: #565b60; }
.ops-month-day span.canceled { background: #f0f1f1; color: #85898d; opacity: .65; text-decoration: line-through; }
.ops-month-day span.completed { opacity: .6; }
.ops-month-day span.no-show { border-left: 2px solid #cf4248; background: #f5f6f6; color: #73787d; }
.ops-month-day span.square-origin { border-bottom: 3px solid #2f78c9; }
.ops-month-day em { color: #6c7176; font-size: .58rem; font-style: normal; }
.ops-dialog { position: fixed; inset: 0; z-index: 100; }
.ops-dialog-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 0 !important; background: #11141873 !important; }
.ops-dialog-panel { position: absolute; top: 0; right: 0; width: min(520px, 94vw); height: 100%; overflow-y: auto; padding: 30px; background: white; box-shadow: -15px 0 40px #0e12171f; }
.ops-dialog-panel h2 { margin: 5px 0 22px; font-size: 1.45rem; }
.ops-confirm-panel { position: absolute; top: 50%; left: 50%; width: min(540px, 92vw); max-height: 88vh; overflow-y: auto; transform: translate(-50%, -50%); padding: 30px; border-radius: 14px; background: white; box-shadow: 0 24px 70px #0e12173d; }
.ops-confirm-panel h2 { margin: 5px 0 20px; font-size: 1.35rem; }
.ops-move-client { display: grid; padding: 13px; border-radius: 9px; background: #f3f4f4; }
.ops-move-client strong { font-size: .87rem; }
.ops-move-client span { margin-top: 4px; color: var(--ops-muted); font-size: .72rem; }
.ops-move-times { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin: 16px 0; }
.ops-move-times > div { display: grid; gap: 4px; }
.ops-move-times span { color: var(--ops-muted); font-size: .65rem; text-transform: uppercase; }
.ops-move-times strong { font-size: .77rem; line-height: 1.35; }
.ops-move-times b { color: #8a8f94; }
.ops-move-form fieldset { display: grid; gap: 9px; margin: 18px 0; padding: 14px; border: 1px solid #dfe2e4; border-radius: 9px; }
.ops-move-form legend { padding: 0 5px; font-size: .75rem; font-weight: 750; }
.ops-move-form label { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px; color: #42474c; font-size: .74rem; font-weight: 500; }
.ops-move-form input { width: auto; }
.ops-confirm-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.ops-dialog-close { position: absolute; top: 17px; right: 17px; display: grid; place-items: center; width: 35px; height: 35px; padding: 0; border-radius: 50%; background: #f0f1f2 !important; color: #25282b !important; font-size: 1.35rem; }
.ops-details { margin: 0; }
.ops-details > div { display: grid; grid-template-columns: 115px 1fr; gap: 12px; padding: 13px 0; border-top: 1px solid #eceef0; }
.ops-details dt { color: var(--ops-muted); font-size: .73rem; }
.ops-details dd { margin: 0; font-size: .8rem; line-height: 1.4; }
.ops-dialog-note { margin-top: 20px; padding: 12px; border-radius: 8px; background: #fff8e5; color: #685c3b; font-size: .74rem; line-height: 1.4; }
.ops-dialog-note.canceled { background: #f0f1f1; color: #62676c; }
.ops-dialog-actions { display: grid; gap: 7px; margin: 0 0 20px; padding: 14px; border-radius: 10px; background: #f4f5f5; }
.ops-dialog-actions button { width: 100%; padding: 11px 14px; }
.ops-dialog-actions span { color: var(--ops-muted); font-size: .7rem; line-height: 1.35; }
.ops-dialog-actions .ops-danger-button { background: #7f3030; }
.ops-appointment-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 12px}.ops-appointment-primary-actions>a,.ops-appointment-primary-actions>button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:0;min-height:40px;margin:0;border-radius:8px;padding:7px 8px;font-size:.66rem;font-weight:820;line-height:1.15;text-align:center}.ops-appointment-primary-actions>button{width:100%}.ops-message-customer-button{gap:6px;background:#233b29;color:#fff;text-decoration:none}.ops-message-customer-button:hover{background:#182c1d}.ops-message-customer-button>span{color:#fff;font-size:.78rem}.ops-appointment-primary-actions:has(>:only-child){grid-template-columns:minmax(145px,1fr)}
.ops-check-in-status { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin: 0 0 10px; padding: 8px 10px; border: 1px solid #bddfcf; border-radius: 8px; background: #eef9f3; color: #174d37; }
.ops-check-in-status div { display: grid; min-width: 0; gap: 2px; }
.ops-check-in-status strong { font-size: .75rem; }
.ops-check-in-status span { color: #4c6b5e; font-size: .62rem; line-height: 1.25; }
.ops-check-in-status button { flex: 0 0 auto; width: auto !important; min-width: 60px; padding: 5px 8px; font-size: .62rem; }
.ops-check-in-marker { min-width: 20px; font-size: .55rem; letter-spacing: .02em; }
.ops-optional { color: var(--ops-muted); font-size: .7rem; font-weight: 400; }
.ops-signal-summary { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.ops-signal-summary span { padding: 6px 8px; border: 1px solid #dfe1e3; border-radius: 6px; background: #fafafa; color: #52575c; font-size: .68rem; }
.ops-dialog-intro { margin: -10px 0 20px; color: var(--ops-muted); font-size: .78rem; line-height: 1.45; }
.ops-drawer-request-actions { margin-bottom: 20px; }
.ops-private-notice { margin: 0 0 18px; padding: 11px 12px; border: 1px solid #dfe5e8; border-radius: 8px; background: #f4f7f8; color: #4f5960; font-size: .73rem; line-height: 1.4; }
.ops-context-section { margin-top: 24px; }
.ops-context-section h3 { margin: 0 0 10px; color: #282c30; font-size: .83rem; }
.ops-section-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.ops-section-title-row h3 { margin-bottom: 0; }
.ops-add-retail-button { flex: 0 0 auto; padding: 7px 10px; border: 1px solid #cfd5d2; background: white !important; color: #2f3833 !important; font-size: .69rem; }
.ops-add-retail-button:hover { background: #f1f5f2 !important; }
.ops-retail-modal-form [data-booking-retail-group] { min-height: 188px; }
.ops-retail-catalog-summary { margin: -3px 0 2px; color: var(--ops-muted); font-size: .68rem; font-weight: 700; }
.ops-visit-list { display: grid; gap: 8px; }
.ops-visit-service { padding: 12px; border: 1px solid #e1e3e5; border-radius: 9px; background: #fff; }
.ops-visit-service.focused { border-color: #98b45f; box-shadow: 0 0 0 2px #dfecc4; }
.ops-visit-service > div { display: flex; justify-content: space-between; gap: 12px; }
.ops-visit-service strong { font-size: .86rem; }
.ops-visit-service p, .ops-visit-service time { margin: 4px 0 0; color: var(--ops-muted); font-size: .74rem; }
.ops-visit-product { border-color: #cfded5; background: #f8fbf9; }
.ops-visit-product p b { color: #2c6748; font-size: .65rem; letter-spacing: .04em; text-transform: uppercase; }
.ops-contributor-summary { display: grid; gap: 4px; margin-top: 8px !important; padding-top: 7px; border-top: 1px dashed #dfe2e4; line-height: 1.4; }
.ops-contributor-summary span { display: block; font-size: .72rem; }
.ops-inline-edit { margin-top: 9px; padding: 6px 9px; border: 1px solid #d4d8db; background: white !important; color: #353a3e !important; font-size: .65rem; }
.ops-appointment-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 14px; }
.ops-drawer-actions-menu { position: relative; display: flex; justify-content: flex-end; margin: -5px 0 12px; }
.ops-more-button { display: grid; place-items: center; width: 39px; height: 35px; padding: 0 0 5px !important; border: 1px solid #d7dade; background: white !important; color: #303438 !important; font-size: 1rem; font-weight: 900; letter-spacing: 2px; }
.ops-more-button:hover { background: #f2f3f4 !important; }
.ops-actions-popover { position: absolute; top: 41px; right: 0; z-index: 8; display: grid; width: 205px; overflow: hidden; padding: 5px; border: 1px solid #dadddf; border-radius: 10px; background: white; box-shadow: 0 12px 32px #171b2024; }
.ops-actions-popover.hidden { display: none; }
.ops-actions-popover button { padding: 10px 11px; border: 0; background: white !important; color: #303438 !important; text-align: left; font-size: .74rem; }
.ops-actions-popover button:hover { background: #f2f3f4 !important; }
.ops-actions-popover .ops-danger-outline { color: #a03535 !important; }
.ops-loyalty-panel { display: grid; gap: 12px; margin: 0 0 14px; padding: 15px; border: 1px solid #d8dfd4; border-radius: 11px; background: #f8fbf6; }
.ops-loyalty-panel.hidden { display: none; }
.ops-loyalty-panel h3, .ops-loyalty-panel p { margin: 0; }
.ops-loyalty-panel h3 { font-size: 1.15rem; }
.ops-loyalty-panel > div > span, .ops-loyalty-panel > p { color: var(--ops-muted); font-size: .72rem; line-height: 1.45; }
.ops-loyalty-expirations { display: grid; gap: 6px; padding-top: 10px; border-top: 1px solid #dce3d8; }
.ops-loyalty-expirations span { display: flex; justify-content: space-between; gap: 12px; font-size: .72rem; }
.ops-policy-fee-box { display: grid; gap: 10px; margin: 14px 0; padding: 14px; border: 1px solid #d9dde0; border-radius: 10px; background: #fbfbfa; }
.ops-policy-fee-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.ops-policy-fee-box > div:not(.ops-policy-fee-heading), .ops-policy-fee-heading > div { display: grid; gap: 3px; }
.ops-policy-fee-box strong { font-size: .8rem; }
.ops-policy-fee-box span, .ops-policy-fee-box p { margin: 0; color: var(--ops-muted); font-size: .68rem; line-height: 1.4; }
.ops-policy-fee-box > b { font-size: 1.4rem; }
.ops-policy-fee-box.pending { border-color: #e6d49d; background: #fff9e9; }
.ops-policy-fee-box.not-eligible { grid-template-columns: 1fr auto; align-items: center; background: #f3f5f4; }
.ops-policy-fee-box.not-eligible > b { font-size: 1rem; }
.ops-switch { position: relative; display: block !important; width: 42px; height: 24px; }
.ops-switch input { position: absolute; opacity: 0; }
.ops-switch span { position: absolute; inset: 0; border-radius: 999px; background: #c5c9cc; cursor: pointer; transition: .15s ease; }
.ops-switch span::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: white; box-shadow: 0 1px 3px #0003; content: ""; transition: .15s ease; }
.ops-switch input:checked + span { background: #202326; }
.ops-switch input:checked + span::after { transform: translateX(18px); }
.ops-waiver-reason { display: grid !important; grid-template-columns: 1fr !important; gap: 6px !important; font-size: .7rem !important; font-weight: 700 !important; }
.ops-waiver-reason textarea { min-height: 70px; padding: 9px; border: 1px solid #d6d9dc; border-radius: 7px; resize: vertical; }
.ops-waiver-reason.hidden { display: none !important; }
.ops-appointment-actions button { min-height: 39px; padding: 8px 10px; font-size: .7rem; }
.ops-warning-button { background: #a45d10 !important; }
.ops-danger-outline { border: 1px solid #b74b4f !important; background: white !important; color: #983b3f !important; }
.ops-request-note { margin: 0; padding: 12px; border-radius: 8px; background: #fff8e5; color: #625839; font-size: .75rem; line-height: 1.45; white-space: pre-wrap; }
.ops-client-note { padding: 10px 0; border-top: 1px solid #eceef0; }
.ops-client-note p { margin: 0 0 5px; color: #3e4348; font-size: .76rem; line-height: 1.45; white-space: pre-wrap; }
.ops-client-note span { color: var(--ops-muted); font-size: .64rem; }
.ops-note-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 10px; }
.ops-note-form textarea { min-height: 70px; padding: 10px; border: 1px solid #d4d7da; border-radius: 8px; resize: vertical; }
.ops-note-form button { align-self: end; padding: 10px 12px; }
.ops-history-card { padding: 10px 0; border-top: 1px solid #eceef0; }
.ops-history-card > div { display: flex; justify-content: space-between; gap: 12px; }
.ops-history-card strong { font-size: .75rem; }
.ops-history-card.upcoming > div strong { color: #16758a; }
.ops-history-card > div span { color: #687078; font-size: .65rem; text-transform: capitalize; }
.ops-history-card time, .ops-history-card p, .ops-empty-compact { color: var(--ops-muted); font-size: .68rem; }
.ops-history-card p { margin: 5px 0 0; line-height: 1.35; }
.ops-empty-compact { margin: 0; padding: 10px 0; }
.ops-compact-details { margin-bottom: 18px; }
.ops-staff-booking-form { display: grid; gap: 15px; }
.ops-staff-booking-form label { display: grid; gap: 6px; color: #555a60; font-size: .72rem; font-weight: 700; }
.ops-staff-booking-form input, .ops-staff-booking-form select, .ops-staff-booking-form textarea { width: 100%; padding: 11px 10px; border: 1px solid #d4d7da; border-radius: 8px; background: white; color: #25272a; }
.ops-staff-booking-form textarea { min-height: 80px; resize: vertical; }
.ops-compact-datetime { min-width: 0; margin: 0; padding: 14px; border: 1px solid #dfe2de; border-radius: 11px; background: #fafbf9; }
.ops-compact-datetime legend { padding: 0 6px; color: #3b403c; font-size: .74rem; font-weight: 800; }
.ops-compact-datetime-grid { display: grid; grid-template-columns: minmax(140px, .9fr) minmax(250px, 1.35fr); align-items: end; gap: 12px; }
.ops-compact-datetime label { display: grid; gap: 5px; min-width: 0; color: #626862; font-size: .59rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.ops-compact-datetime input, .ops-compact-datetime select { box-sizing: border-box; width: 100%; border: 1px solid #d4d8d2; border-radius: 8px; background: white; color: #222622; font: inherit; font-size: .76rem; font-weight: 750; letter-spacing: 0; text-transform: none; }
.ops-compact-date input { min-height: 52px; padding: 10px; }
.ops-compact-time-field { display: grid; gap: 5px; }
.ops-compact-time-field > span { color: #626862; font-size: .59rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.ops-compact-time-picker { display: grid; grid-template-columns: 60px 8px 60px minmax(74px, 1fr); align-items: end; gap: 7px; }
.ops-compact-time-picker > b { align-self: center; padding-top: 17px; color: #717771; text-align: center; }
.ops-time-wheel { display: grid; grid-template-rows: 18px 30px 18px; overflow: hidden; border: 1px solid #d4d8d2; border-radius: 8px; background: white; }
.ops-time-wheel button { display: grid; min-width: 0; min-height: 0; place-items: center; padding: 0; border: 0; border-radius: 0; background: #f0f2ee; color: #495049; font-size: .55rem; line-height: 1; }
.ops-time-wheel button:hover { background: #e1e6de; color: #1e241f; }
.ops-time-wheel input { min-height: 30px !important; padding: 3px !important; border: 0 !important; border-radius: 0 !important; text-align: center; }
.ops-time-period select { min-height: 66px; padding: 10px 8px; text-align: center; }
.ops-compact-datetime > small { display: block; margin-top: 8px; color: #777e77; font-size: .59rem; line-height: 1.4; }
.ops-new-client-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ops-client-search { position: relative; }
.ops-client-suggestions { position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 5; overflow: hidden; border: 1px solid #d7dade; border-radius: 9px; background: white; box-shadow: 0 10px 25px #1c222a22; }
.ops-client-suggestions button { display: grid; width: 100%; padding: 10px 12px; border: 0; border-bottom: 1px solid #eceef0; border-radius: 0; background: white; color: #2f3337; text-align: left; }
.ops-client-suggestions button:hover { background: #f5f7f7; }
.ops-client-suggestions strong { font-size: .75rem; }
.ops-client-suggestions span { margin-top: 3px; color: var(--ops-muted); font-size: .64rem; }
.ops-create-service-row { position: relative; display: grid; grid-template-columns: 1.2fr 1fr; gap: 8px; margin-bottom: 9px; padding: 11px; border: 1px solid #e1e3e5; border-radius: 9px; }
.ops-remove-service { position: absolute; top: -8px; right: -8px; display: grid; place-items: center; width: 24px; height: 24px; padding: 0; border-radius: 50%; background: #7f3030; }
.ops-secondary-button { width: 100%; padding: 9px; border: 1px solid #d5d8db; background: white !important; color: #3e4348 !important; }
.ops-policy-check { grid-template-columns: auto 1fr !important; align-items: start; padding: 11px; border-radius: 8px; background: #f5f6f6; font-weight: 500 !important; line-height: 1.4; }
.ops-policy-check input { width: auto; margin-top: 2px; }
.ops-visit-editor { display: grid; gap: 14px; }
.ops-visit-editor > label, .ops-visit-edit-card label { display: grid; gap: 5px; color: #555a60; font-size: .68rem; font-weight: 700; }
.ops-visit-editor input, .ops-visit-editor select { width: 100%; padding: 9px; border: 1px solid #d4d7da; border-radius: 7px; background: white; color: #25272a; }
.ops-visit-edit-card { margin-bottom: 11px; padding: 13px; border: 1px solid #dce0e2; border-radius: 10px; background: #fbfbfb; }
.ops-visit-edit-card.expanded { border-color: #98b45f; box-shadow: 0 0 0 2px #e2edcb; }
.ops-edit-card-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ops-edit-card-heading strong { font-size: .8rem; }
.ops-edit-card-heading button { padding: 4px; background: transparent !important; color: #9a3b3f !important; font-size: .65rem; }
.ops-edit-service-grid { display: grid; grid-template-columns: 1.2fr 1fr .65fr; gap: 8px; }
.ops-contributor-editor { margin-top: 13px; padding-top: 12px; border-top: 1px solid #e2e4e6; }
.ops-contributor-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.ops-contributor-heading > div { display: grid; gap: 3px; }
.ops-contributor-heading strong { font-size: .72rem; }
.ops-contributor-heading span { color: var(--ops-muted); font-size: .62rem; }
.ops-contributor-heading label { width: 68px; }
.ops-contributor-row { display: grid; grid-template-columns: minmax(118px, 1.05fr) minmax(74px, .62fr) minmax(112px, .88fr) minmax(70px, .55fr); align-items: end; gap: 7px; margin-top: 7px; }
.ops-contributor-row > * { min-width: 0; }
.ops-percent-input { position: relative; }
.ops-percent-input input { padding-right: 24px; }
.ops-percent-input span { position: absolute; top: 9px; right: 8px; color: #747a80; font-size: .68rem; }
.ops-contributor-row output { padding: 9px 6px; border-radius: 7px; background: #eef0f1; color: #42474c; font-size: .68rem; font-weight: 750; text-align: right; }
.ops-time-stepper { width: 100%; min-height: 37px; display: grid; grid-template-columns: 24px minmax(56px, 1fr) 24px; align-items: stretch; overflow: hidden; box-sizing: border-box; border: 1px solid #d3d8dd; border-radius: 7px; background: #fff; }
.ops-time-stepper button { display: grid; place-items: center; min-width: 0; padding: 0; border: 0; border-radius: 0; background: #f0f2f3; color: #3f454a; font-size: .66rem; }
.ops-time-stepper button:hover:not(:disabled) { background: #dfe3e5; color: #1f2427; }
.ops-time-stepper button:disabled { opacity: .35; cursor: default; }
.ops-time-stepper output { display: grid; place-items: center; padding: 0 5px; border-radius: 0; background: #fff; color: #2e3438; font-size: .7rem; text-align: center; white-space: nowrap; }
.ops-allocation-total, .ops-editor-summary { display: flex; align-items: center; justify-content: space-between; margin-top: 9px; padding-top: 9px; border-top: 1px dashed #d8dcdf; font-size: .7rem; }
.ops-allocation-total strong.invalid { color: #b4383d; }
.ops-editor-summary { margin: 0; padding: 12px; border: 0; border-radius: 8px; background: #eef1ec; }
.ops-editor-summary strong { font-size: .95rem; }
.ops-manual-reschedule { display: grid; gap: 7px; margin: 16px 0; color: #555a60; font-size: .72rem; font-weight: 700; }
.ops-manual-reschedule .ops-compact-datetime { width: 100%; box-sizing: border-box; }
.ops-block-form { display: grid; gap: 15px; }
.ops-block-form label { display: grid; gap: 6px; color: #555a60; font-size: .72rem; font-weight: 700; }
.ops-block-form input, .ops-block-form select { width: 100%; padding: 11px 10px; border: 1px solid #d4d7da; border-radius: 8px; background: white; color: #25272a; }
.ops-block-form select:disabled { background: #f2f3f3; color: #555a60; opacity: 1; }
.ops-block-form > button { margin-top: 4px; padding: 12px 16px; }
.ops-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ops-retail-panel { width: min(430px, calc(100vw - 28px)); }
.ops-retail-modal-form { display: grid; gap: 16px; }
.ops-retail-modal-form label { display: grid; gap: 6px; color: #555a60; font-size: .72rem; font-weight: 700; }
.ops-retail-modal-form input, .ops-retail-modal-form select { width: 100%; padding: 11px 10px; border: 1px solid #d4d7da; border-radius: 8px; background: white; color: #25272a; }
.ops-retail-modal-row { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
@media (max-width: 1250px) {
  .ops-shell { grid-template-columns: 238px minmax(0, 1fr); }
}

/* Leandro owner administration */
.owner-body { --owner-ink: #202326; --owner-muted: #71777b; --owner-line: #e2e4e5; --owner-soft: #f5f5f3; min-width: 1120px; background: #f4f4f1; color: var(--owner-ink); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.owner-shell { display: grid; grid-template-columns: 264px minmax(0, 1fr); min-height: 100vh; }
.owner-sidebar { position: sticky; top: 0; display: flex; flex-direction: column; height: 100vh; padding: 22px 17px; border-right: 1px solid #e0e1de; background: #fff; }
.owner-brand { display: flex; align-items: center; gap: 11px; padding: 0 8px 21px; color: #1c1e20; text-decoration: none; }
.owner-brand > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #191b1d; color: white; font-size: 1rem; font-weight: 800; }
.owner-brand > div { display: grid; line-height: 1.05; }
.owner-brand strong { font-size: .95rem; }
.owner-brand small { margin-top: 4px; color: #777d81; font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.owner-profile { display: flex; align-items: center; gap: 10px; margin: 0 2px 17px; padding: 12px; border: 1px solid #e1e2df; border-radius: 11px; background: #f8f8f6; }
.owner-profile img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.owner-profile div { display: grid; gap: 3px; }
.owner-profile strong { font-size: .78rem; }
.owner-profile span { color: #797f83; font-size: .62rem; }
.owner-nav { display: grid; gap: 4px; margin: 0; }
.owner-nav button { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; padding: 11px 12px; border: 0; border-radius: 8px; background: transparent; color: #505559; text-align: left; font-size: .73rem; font-weight: 700; }
.owner-nav button:hover { background: #f1f2ef; color: #1f2224; }
.owner-nav button.active { background: #202326; color: white; }
.owner-nav button > span { display: grid; place-items: center; font-size: .85rem; }
.owner-nav button b { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: #e1e2df; color: #4a4e51; font-size: .59rem; }
.owner-nav button.active b { background: #fff; color: #202326; }
.owner-sidebar-links { display: grid; gap: 2px; margin-top: 18px; padding-top: 16px; border-top: 1px solid #e5e6e3; }
.owner-sidebar-links a { display: flex; justify-content: space-between; padding: 9px 12px; color: #5f6569; font-size: .68rem; font-weight: 650; text-decoration: none; }
.owner-sidebar-links a:hover { color: #111315; }
.owner-prototype-note { display: grid; gap: 5px; margin-top: auto; padding: 12px; border-radius: 9px; background: #f5efe4; color: #594f43; }
.owner-prototype-note strong { font-size: .68rem; }
.owner-prototype-note span { font-size: .59rem; line-height: 1.45; }
.owner-main { max-width: none; min-width: 0; margin: 0; padding: 0 38px 70px; }
.owner-topbar { display: flex; align-items: center; justify-content: space-between; min-height: 120px; padding: 27px 0 24px; border-bottom: 1px solid #dedfdd; background: transparent; color: var(--owner-ink); }
.owner-topbar h1 { margin: 2px 0 0; font-size: 1.75rem; letter-spacing: -.04em; }
.owner-topbar p { margin: 6px 0 0; color: var(--owner-muted); font-size: .74rem; }
.owner-eyebrow { margin: 0 !important; color: #8a765c !important; font-size: .58rem !important; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.owner-topbar-actions { display: flex; align-items: center; gap: 15px; }
.owner-topbar-actions span { color: #6f7579; font-size: .7rem; }
.owner-topbar-actions a { padding: 9px 13px; border: 1px solid #d8dad8; border-radius: 8px; background: white; color: #303336; font-size: .68rem; font-weight: 750; text-decoration: none; }
.owner-message { margin-top: 18px; padding: 12px 14px; border: 1px solid #a8ceb7; border-radius: 8px; background: #edf7f0; color: #28533a; font-size: .72rem; }
.owner-message.error { border-color: #d5a9a9; background: #fbefef; color: #853c3c; }
.owner-view { display: none; padding-top: 27px; }
.owner-view.active { display: block; }
.owner-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.owner-metrics > article { display: flex; align-items: center; gap: 13px; min-width: 0; padding: 17px; border: 1px solid var(--owner-line); border-radius: 12px; background: white; }
.owner-metrics article > div { display: grid; min-width: 0; gap: 3px; }
.owner-metrics small { color: #7b8185; font-size: .61rem; }
.owner-metrics strong { font-size: 1.25rem; letter-spacing: -.025em; }
.owner-metrics article > div > span { overflow: hidden; color: #888e92; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.owner-metric-icon { display: grid; flex: 0 0 auto; place-items: center; width: 36px; height: 36px; border-radius: 9px; font-size: .8rem; font-weight: 850; }
.owner-metric-icon.amber { background: #f6ead1; color: #876326; }
.owner-metric-icon.green { background: #e0f0e7; color: #316c4b; }
.owner-metric-icon.blue { background: #e2edf3; color: #3d667b; }
.owner-metric-icon.rose { background: #f2e2e4; color: #924e55; }
.owner-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(310px, .75fr); gap: 17px; margin-top: 18px; }
.owner-panel { border: 1px solid var(--owner-line); border-radius: 13px; background: white; }
.owner-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 21px; border-bottom: 1px solid #e9eae8; }
.owner-panel-heading h2 { margin: 3px 0 0; font-size: 1rem; letter-spacing: -.025em; }
.owner-panel-heading p:not(.owner-eyebrow) { margin: 5px 0 0; color: #7c8286; font-size: .66rem; }
.owner-text-button { padding: 5px 0; border: 0; background: transparent; color: #6b5841; font-size: .64rem; text-decoration: underline; text-underline-offset: 3px; }
.owner-text-button:hover { background: transparent; color: #2d2822; }
.owner-correction-list { display: grid; gap: 9px; }
.owner-correction-list.compact { padding: 12px; }
.owner-correction-card { display: grid; grid-template-columns: 38px minmax(0, 1fr) 20px; align-items: center; gap: 11px; width: 100%; padding: 13px; border: 1px solid #e4e6e4; border-radius: 9px; background: #fff; color: #292c2f; text-align: left; }
.owner-correction-card:hover, .owner-correction-card.selected { border-color: #af9b7f; background: #faf8f4; }
.owner-correction-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #ece7df; color: #66543e; font-size: .78rem; font-weight: 800; }
.owner-correction-copy { display: grid; min-width: 0; gap: 3px; }
.owner-correction-copy > span { display: flex; align-items: center; gap: 7px; }
.owner-correction-copy strong { overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
.owner-correction-copy em { padding: 3px 5px; border-radius: 4px; background: #e6f0e9; color: #3f6b4e; font-size: .5rem; font-style: normal; font-weight: 750; text-transform: uppercase; }
.owner-correction-copy em.closed { background: #f4ead8; color: #80622c; }
.owner-correction-copy b { font-size: .67rem; }
.owner-correction-copy small { overflow: hidden; color: #7d8387; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.owner-correction-arrow { color: #8b9093; font-size: 1.2rem; }
.owner-payroll-preview { overflow: hidden; }
.owner-payroll-total { display: grid; gap: 4px; padding: 23px 22px 13px; }
.owner-payroll-total small { color: #7c8286; font-size: .62rem; }
.owner-payroll-total strong { font-size: 2rem; letter-spacing: -.05em; }
.owner-payroll-total span { color: #848a8e; font-size: .58rem; }
.owner-progress { height: 5px; margin: 5px 22px 19px; overflow: hidden; border-radius: 99px; background: #eceeec; }
.owner-progress span { display: block; height: 100%; border-radius: inherit; background: #4d7660; }
.owner-payroll-checklist { display: grid; gap: 11px; padding: 0 22px 19px; }
.owner-payroll-checklist > div { display: flex; align-items: center; gap: 10px; }
.owner-payroll-checklist > div > span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #e3efe7; color: #3a6d4d; font-size: .58rem; font-weight: 850; }
.owner-payroll-checklist > div.pending > span { background: #f4e9d4; color: #85662f; }
.owner-payroll-checklist p { display: grid; gap: 2px; margin: 0; }
.owner-payroll-checklist strong { font-size: .65rem; }
.owner-payroll-checklist small { color: #858b8f; font-size: .56rem; }
.owner-primary-button, .owner-secondary-button { padding: 10px 13px; border-radius: 7px; font-size: .66rem; font-weight: 750; }
.owner-primary-button { background: #202326; color: white; }
.owner-primary-button:hover { background: #41464a; }
.owner-secondary-button { border: 1px solid #d5d8d6; background: white; color: #404447; }
.owner-secondary-button:hover { background: #f2f3f1; }
.owner-secondary-button.danger { border-color: #dfbcbc; color: #984849; }
.owner-payroll-preview > .owner-primary-button { width: calc(100% - 44px); margin: 0 22px 22px; }
.owner-status-pill { display: inline-grid; place-items: center; padding: 5px 8px; border-radius: 999px; background: #ebedeb; color: #5d6265; font-size: .54rem; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.owner-status-pill.open, .owner-status-pill.approved { background: #e3efe7; color: #38694a; }
.owner-status-pill.pending, .owner-status-pill.review { background: #f4e8cf; color: #806027; }
.owner-status-pill.declined { background: #f4e3e3; color: #8e4345; }
.owner-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 17px; }
.owner-section-heading h2 { margin: 5px 0 0; font-size: 1.45rem; letter-spacing: -.035em; }
.owner-section-heading > div > p:not(.owner-eyebrow) { margin: 7px 0 0; color: #767c80; font-size: .7rem; }
.owner-filter-group { display: flex; gap: 4px; padding: 4px; border: 1px solid #dddfdd; border-radius: 9px; background: white; }
.owner-filter-group button { padding: 7px 10px; border: 0; background: transparent; color: #71777a; font-size: .62rem; }
.owner-filter-group button:hover { background: #f1f2f0; }
.owner-filter-group button.active { background: #25282a; color: white; }
.owner-correction-layout { display: grid; grid-template-columns: minmax(330px, .72fr) minmax(560px, 1.28fr); gap: 16px; align-items: start; }
.owner-correction-layout > .owner-correction-list { padding: 0; }
.owner-correction-detail { position: sticky; top: 18px; min-height: 540px; padding: 22px; }
.owner-correction-detail-heading { display: flex; justify-content: space-between; gap: 18px; padding-bottom: 17px; border-bottom: 1px solid #e6e8e6; }
.owner-correction-detail-heading h2 { margin: 5px 0 3px; font-size: 1.2rem; }
.owner-correction-detail-heading span:not(.owner-status-pill) { color: #787e82; font-size: .62rem; }
.owner-correction-service { display: grid; gap: 4px; margin-top: 18px; }
.owner-correction-service small, .owner-request-reason small { color: #858b8f; font-size: .57rem; font-weight: 750; text-transform: uppercase; }
.owner-correction-service strong { font-size: .82rem; }
.owner-before-after { display: grid; grid-template-columns: 1fr 22px 1fr; align-items: center; gap: 9px; margin-top: 12px; }
.owner-before-after > section { padding: 14px; border: 1px solid #e1e3e1; border-radius: 9px; background: #f8f8f6; }
.owner-before-after > section.proposed { border-color: #c9d9ce; background: #f2f8f4; }
.owner-before-after > section > span { color: #7d8387; font-size: .56rem; font-weight: 750; text-transform: uppercase; }
.owner-before-after > section > strong { display: block; margin-top: 5px; font-size: .82rem; }
.owner-before-after > b { color: #888e91; text-align: center; }
.owner-before-after dl { display: grid; gap: 7px; margin: 12px 0 0; }
.owner-before-after dl > div { display: flex; justify-content: space-between; gap: 9px; font-size: .59rem; }
.owner-before-after dt { color: #7f8589; }
.owner-before-after dd { margin: 0; font-weight: 750; }
.owner-request-reason { margin-top: 15px; padding: 13px; border-radius: 8px; background: #f5f5f3; }
.owner-request-reason p { margin: 6px 0 0; color: #4f5558; font-size: .67rem; line-height: 1.5; }
.owner-impact-note { display: grid; gap: 3px; margin-top: 12px; padding: 11px 13px; border-left: 3px solid #5d8a6e; background: #eff6f1; }
.owner-impact-note.closed { border-left-color: #a9813c; background: #f8f2e7; }
.owner-impact-note strong { font-size: .63rem; }
.owner-impact-note span { color: #707679; font-size: .59rem; line-height: 1.4; }
.owner-decision-note { gap: 6px; margin-top: 14px; color: #555b5f; font-size: .62rem; }
.owner-decision-note span { color: #8b9093; font-weight: 400; }
.owner-decision-note textarea { min-height: 65px; padding: 9px; border: 1px solid #d8dad8; border-radius: 7px; resize: vertical; }
.owner-decision-actions { display: grid; grid-template-columns: 1fr 1.5fr; gap: 8px; margin-top: 11px; }
.owner-decided-note { margin-top: 14px; padding: 12px; border-radius: 8px; background: #f1f3f1; color: #656b6e; font-size: .64rem; }
.owner-week-control { display: grid; grid-template-columns: 30px auto 30px; align-items: center; gap: 8px; padding: 5px; border: 1px solid #daddda; border-radius: 9px; background: white; }
.owner-week-control button { width: 30px; height: 30px; padding: 0; border: 0; background: #f1f2ef; color: #363a3d; font-size: 1rem; }
.owner-week-control > div { display: grid; min-width: 130px; gap: 2px; text-align: center; }
.owner-week-control small { color: #858b8e; font-size: .52rem; text-transform: uppercase; }
.owner-week-control strong { font-size: .64rem; }
.owner-payroll-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; padding: 17px 19px; border: 1px solid #dce5df; border-radius: 11px; background: #f3f8f5; }
.owner-payroll-banner > div:first-child { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 5px 9px; }
.owner-payroll-banner > div:first-child strong { font-size: .78rem; }
.owner-payroll-banner p { grid-column: 1 / -1; margin: 0; color: #718078; font-size: .61rem; }
.owner-payroll-banner-total { display: grid; gap: 2px; text-align: right; }
.owner-payroll-banner-total small { color: #738078; font-size: .55rem; }
.owner-payroll-banner-total strong { font-size: 1.3rem; }
.owner-metrics.payroll { margin-bottom: 14px; }
.owner-metrics.payroll > article { min-height: 91px; }
.owner-reconciliation-week { display: grid; min-width: 220px; gap: 6px; color: #70767a; font-size: .54rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.owner-reconciliation-week select { box-sizing: border-box; width: 100%; padding: 10px 34px 10px 11px; border: 1px solid #d6d9d6; border-radius: 8px; background: #fff; color: #292d30; font: inherit; font-size: .66rem; font-weight: 700; letter-spacing: 0; text-transform: none; }
.owner-reconciliation-safety { margin-top: 2px; }
.owner-reconciliation-metrics strong.negative { color: #a04648; }
.owner-reconciliation-panel { overflow: hidden; }
.owner-reconciliation-table td:first-child strong { display: block; color: #292d30; font-size: .64rem; }
.owner-reconciliation-table td:first-child small,
.owner-reconciliation-table td:last-child small { display: block; max-width: 190px; margin-top: 4px; color: #858b8e; font-size: .49rem; line-height: 1.35; white-space: normal; }
.owner-reconciliation-table td:last-child { min-width: 150px; text-align: left; }
.owner-reconciliation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.owner-reconciliation-notes { overflow: hidden; }
.owner-reconciliation-notes > .owner-panel-heading { padding: 18px 20px; }
.owner-reconciliation-notes > div:last-child { display: grid; gap: 0; padding: 0 20px 18px; }
.owner-reconciliation-notes article { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid #eceeeb; }
.owner-reconciliation-notes article:last-child { border-bottom: 0; }
.owner-reconciliation-notes article > div { display: grid; gap: 3px; }
.owner-reconciliation-notes article strong { font-size: .64rem; }
.owner-reconciliation-notes article span { color: #7d8386; font-size: .53rem; }
.owner-reconciliation-notes dl { display: flex; gap: 15px; margin: 0; }
.owner-reconciliation-notes dl > div { display: grid; gap: 2px; text-align: right; }
.owner-reconciliation-notes dt { color: #858b8e; font-size: .47rem; text-transform: uppercase; }
.owner-reconciliation-notes dd { margin: 0; color: #363a3d; font-size: .59rem; font-weight: 750; }
.owner-reconciliation-notes ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.owner-reconciliation-notes li { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: start; gap: 9px; }
.owner-reconciliation-notes li > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #edf2ed; color: #4e7256; font-size: .51rem; font-weight: 850; }
.owner-reconciliation-notes li p { margin: 3px 0 0; color: #686f72; font-size: .57rem; line-height: 1.5; }
.owner-transaction-audit { margin-top: 14px; overflow: hidden; }
.owner-transaction-audit-readiness { margin: 0 20px 14px; padding: 12px 14px; border: 1px solid #dfe3df; border-radius: 9px; background: #f8f9f7; color: #666d70; }
.owner-transaction-audit-readiness strong { display: block; margin-bottom: 3px; color: #34393b; font-size: .65rem; }
.owner-transaction-audit-readiness p { margin: 0; font-size: .56rem; line-height: 1.45; }
.owner-transaction-audit-readiness.ready { border-color: #cfe2d2; background: #f1f8f2; }
.owner-transaction-audit-readiness.warning { border-color: #ead8ae; background: #fff9ea; }
.owner-transaction-audit-metrics { margin: 0 20px 16px; }
.owner-transaction-lines { border-top: 1px solid #e8ebe8; }
.owner-transaction-lines summary { padding: 14px 20px; color: #42484a; cursor: pointer; font-size: .61rem; font-weight: 800; }
.owner-transaction-lines[open] summary { border-bottom: 1px solid #e8ebe8; }
.owner-transaction-lines tr.needs-review { background: #fffbf1; }
.owner-transaction-lines td strong,
.owner-transaction-lines td small { display: block; }
.owner-transaction-lines td small { margin-top: 3px; color: #7f8588; font-size: .49rem; line-height: 1.35; white-space: normal; }
.owner-transaction-lines code { color: #5d6568; font-size: .5rem; }
.owner-transaction-audit > .owner-table-note { margin: 0; padding: 13px 20px 18px; border-top: 1px solid #eceeeb; }
.owner-transaction-audit > .owner-table-note ul { display: grid; gap: 4px; margin: 0; padding-left: 18px; }
.owner-transaction-audit > .owner-table-note li { color: #737a7d; font-size: .52rem; line-height: 1.45; }
.owner-audit-tip { display: block; font-weight: 700; color: #34393b; }
.owner-row-action { display: block; margin-top: 4px; color: #6f806f !important; font-size: .48rem !important; font-weight: 750; }
[data-transaction-audit-person]:focus-visible { outline: 2px solid #6f9279; outline-offset: -2px; background: #f6faf7; }
.owner-audit-detail-dialog { width: min(1080px, calc(100vw - 30px)); }
.owner-audit-detail-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 27px 65px 20px 28px; border-bottom: 1px solid #e7e9e7; }
.owner-audit-detail-heading h2 { margin: 4px 0 3px; font-size: 1.35rem; letter-spacing: -.035em; }
.owner-audit-detail-heading p:last-child { margin: 0; color: #7b8184; font-size: .61rem; }
.owner-audit-detail-callout { margin: 18px 28px 0; padding: 13px 15px; border: 1px solid #ead7aa; border-radius: 9px; background: #fff9eb; }
.owner-audit-detail-callout.complete { border-color: #cce0d2; background: #f1f8f3; }
.owner-audit-detail-callout strong { display: block; font-size: .68rem; }
.owner-audit-detail-callout p { margin: 4px 0 0; color: #747a7d; font-size: .57rem; line-height: 1.45; }
.owner-audit-detail-equation { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.1fr); align-items: stretch; gap: 10px; padding: 18px 28px; }
.owner-audit-detail-equation article { display: grid; align-content: center; gap: 4px; min-height: 78px; padding: 13px; border: 1px solid #e0e3e0; border-radius: 9px; background: #fafaf8; }
.owner-audit-detail-equation article.total { border-color: #cbdcd0; background: #f1f7f3; }
.owner-audit-detail-equation small { color: #7d8386; font-size: .52rem; text-transform: uppercase; }
.owner-audit-detail-equation strong { font-size: 1rem; }
.owner-audit-detail-equation span { color: #7c8285; font-size: .51rem; line-height: 1.35; }
.owner-audit-detail-equation > b { align-self: center; color: #81878a; font-size: 1rem; }
.owner-audit-detail-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin: 0 28px 18px; padding: 14px 16px; border-radius: 9px; background: #f3f4f2; }
.owner-audit-detail-comparison > div { display: flex; justify-content: space-between; gap: 12px; font-size: .62rem; }
.owner-audit-detail-comparison > div span { color: #747a7d; }
.owner-audit-detail-comparison strong.negative { color: #a04648; }
.owner-audit-detail-comparison p { grid-column: 1 / -1; margin: 9px 0 0; color: #7b8184; font-size: .53rem; line-height: 1.45; }
.owner-audit-detail-section { display: block; margin: 0; border-top: 1px solid #e7e9e7; }
section.owner-audit-detail-section > div:first-child { padding: 18px 28px 12px; }
.owner-audit-detail-section h3 { margin: 0; font-size: .82rem; }
.owner-audit-detail-section > div:first-child p { margin: 4px 0 0; color: #7e8487; font-size: .55rem; }
.owner-audit-detail-section summary { padding: 16px 28px; cursor: pointer; color: #34393b; font-size: .67rem; font-weight: 800; }
.owner-audit-detail-section[open] summary { border-bottom: 1px solid #e7e9e7; }
.owner-audit-detail-section .owner-table-wrap { max-height: 340px; overflow: auto; }
.owner-audit-detail-section .owner-payroll-table tfoot td { background: #f4f6f3; color: #303537; font-weight: 850; }
.owner-audit-detail-section .owner-empty { margin: 0; padding: 0 28px 18px; }
.owner-audit-detail-note { margin: 0; padding: 11px 28px; border-bottom: 1px solid #e7e9e7; background: #fff9eb; color: #776b51; font-size: .54rem; line-height: 1.45; }
.owner-audit-attribution-control { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 7px; }
.owner-audit-attribution-control select { min-width: 112px; max-width: 160px; padding: 6px 22px 6px 7px; border: 1px solid #cfd4d0; border-radius: 6px; background: #fff; color: #34393b; font: inherit; font-size: .52rem; }
.owner-audit-attribution-control button { padding: 6px 8px; border: 1px solid #29312c; border-radius: 6px; background: #fff; color: #29312c; font: inherit; font-size: .5rem; font-weight: 800; cursor: pointer; }
.owner-audit-attribution-control button:hover { background: #29312c; color: #fff; }
@media (max-width: 760px) {
  .owner-audit-detail-equation { grid-template-columns: 1fr; }
  .owner-audit-detail-equation > b { justify-self: center; }
  .owner-audit-detail-comparison { grid-template-columns: 1fr; gap: 8px; }
}
.owner-payroll-table-panel { overflow: hidden; }
.owner-actions { display: flex; gap: 8px; }
.owner-table-wrap { overflow-x: auto; }
.owner-payroll-table { width: 100%; border-collapse: collapse; font-size: .62rem; }
.owner-payroll-table th { padding: 10px 12px; border-bottom: 1px solid #e6e8e6; background: #f7f7f5; color: #747a7e; font-size: .53rem; letter-spacing: .045em; text-align: right; text-transform: uppercase; white-space: nowrap; }
.owner-payroll-table th:first-child, .owner-payroll-table th:nth-child(2) { text-align: left; }
.owner-payroll-table td { padding: 12px; border-bottom: 1px solid #eceeec; color: #4e5457; text-align: right; white-space: nowrap; }
.owner-payroll-table td:first-child, .owner-payroll-table td:nth-child(2) { text-align: left; }
.owner-payroll-table tbody tr { cursor: pointer; }
.owner-payroll-table tbody tr:hover { background: #faf9f6; }
.owner-payroll-table td.negative { color: #a04648; }
.owner-inline-edit { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; }
.owner-inline-edit > span { display: grid; gap: 1px; }
.owner-inline-edit small { color: #92979a; font-size: .47rem; font-weight: 700; text-transform: uppercase; }
.owner-inline-edit button { min-width: 34px; padding: 5px 7px; border: 1px solid #daddda; border-radius: 6px; background: white; color: #535a5d; font-size: .51rem; font-weight: 800; }
.owner-inline-edit button:hover { border-color: #adb4af; background: #f3f5f3; }
.owner-table-person { display: flex; align-items: center; gap: 8px; }
.owner-table-person img { width: 31px; height: 31px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.owner-table-initials { display: grid; flex: 0 0 auto; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: #ece7dd; color: #6d5a41; font-size: .54rem; }
.owner-table-person > span { display: grid; gap: 2px; }
.owner-table-person strong { color: #282c2e; font-size: .65rem; }
.owner-table-person small { color: #8b9093; font-size: .52rem; }
.owner-table-note { margin: 0; padding: 12px 20px; color: #81878a; font-size: .57rem; line-height: 1.45; }
.owner-booking-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.owner-booking-card { padding: 17px; border: 1px solid var(--owner-line); border-radius: 11px; background: white; }
.owner-booking-card > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.owner-booking-card > div:first-child small { color: #858b8f; font-size: .55rem; }
.owner-booking-card h3 { margin: 13px 0 4px; font-size: .9rem; }
.owner-booking-card > p { margin: 0; color: #747a7e; font-size: .63rem; }
.owner-booking-card ul { display: grid; gap: 7px; margin: 14px 0; padding: 12px 0; border-top: 1px solid #e7e9e7; border-bottom: 1px solid #e7e9e7; list-style: none; }
.owner-booking-card li { display: flex; justify-content: space-between; gap: 10px; font-size: .6rem; }
.owner-booking-card li span { color: #767c7f; }
.owner-settings-panel { max-width: 650px; padding: 22px; }
.owner-settings-panel h3 { margin: 0 0 16px; font-size: .9rem; }
.owner-reminder-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 0; border-top: 1px solid #e8eae8; }
.owner-reminder-row > span { display: grid; gap: 3px; }
.owner-reminder-row strong { font-size: .68rem; text-transform: capitalize; }
.owner-reminder-row small { color: #81878b; font-size: .58rem; }
.owner-reminder-row input { width: 18px; height: 18px; }
.owner-settings-panel > button { margin-top: 16px; }
.owner-square-import-safety{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.owner-square-import-safety article{display:flex;gap:12px;border:1px solid #dfe4de;border-radius:11px;background:#f8faf7;padding:16px}
.owner-square-import-safety article>span{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border-radius:50%;background:#dfece1;color:#315c3b;font-size:.62rem;font-weight:900}
.owner-square-import-safety strong{display:block;margin-bottom:5px;font-size:.68rem}.owner-square-import-safety p{margin:0;color:#707770;font-size:.57rem;line-height:1.5}
.owner-square-import-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-bottom:14px}.owner-square-import-panel{padding:20px}.owner-square-import-panel>.owner-panel-heading{padding:0 0 15px}
.owner-square-connection-detail{display:grid;gap:13px}.owner-square-connection-detail>h3{margin:0;font-size:.68rem}
.owner-square-connection-state{display:flex;align-items:flex-start;gap:11px;border:1px solid #e2e4e0;border-radius:9px;background:#fafbf9;padding:13px}
.owner-square-connection-state>span{display:grid;flex:0 0 auto;place-items:center;width:29px;height:29px;border-radius:50%;background:#f5e7c7;color:#855a11;font-size:.65rem;font-weight:900}
.owner-square-connection-state.connected>span{background:#dcecdf;color:#2f683b}.owner-square-connection-state strong{font-size:.67rem}.owner-square-connection-state p{margin:4px 0 0;color:#737a73;font-size:.57rem;line-height:1.45}
.owner-square-scope-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.owner-square-scope-list li{display:flex;align-items:center;gap:5px;border:1px solid #dce3db;border-radius:999px;background:#f5f8f4;padding:5px 8px}
.owner-square-scope-list li span{color:#3a7448;font-size:.54rem}.owner-square-scope-list code{color:#4f5d52;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.49rem}
.owner-square-no-writes,.owner-square-import-history{display:grid;gap:3px;border-left:3px solid #6f9b79;background:#f0f6f1;padding:9px 10px}.owner-square-no-writes strong,.owner-square-import-history strong{font-size:.59rem}.owner-square-no-writes span,.owner-square-import-history span{color:#6e776f;font-size:.53rem;line-height:1.4}
.owner-square-import-history{border-left-color:#b8a06e;background:#faf7ef}.owner-square-error{margin:0;border-radius:8px;background:#fbefed;padding:10px;color:#8d463e;font-size:.56rem;line-height:1.45}
.owner-square-connect-button{width:100%;margin-top:12px}.owner-square-connected-note{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;border:1px solid #bfd7c4;border-radius:9px;background:#edf6ef;padding:10px;color:#315b3a;font-size:.56rem}.owner-square-connected-note span{color:#5e7663}
.owner-square-range{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:10px}.owner-square-range>span{padding-bottom:10px;color:#777e78;font-size:.57rem}.owner-square-range label{display:grid;gap:6px;color:#6c736d;font-size:.55rem;font-weight:800;text-transform:uppercase}.owner-square-range input{box-sizing:border-box;width:100%;border:1px solid #d4d9d3;border-radius:8px;background:#fff;padding:9px;color:#292e29;font:inherit;font-size:.65rem}
.owner-square-preview-panel{margin-bottom:14px;overflow:hidden}.owner-square-preview-panel>.owner-panel-heading{padding:19px 20px}.owner-square-preview-summary{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px;border-top:1px solid #e7e9e5;border-bottom:1px solid #e7e9e5;background:#fafbf9}.owner-square-preview-summary span{border-radius:999px;background:#eef1ed;padding:6px 9px;color:#697069;font-size:.54rem}.owner-square-preview-summary strong{color:#283029}
.owner-square-preview-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px 20px}.owner-square-preview-card{border:1px solid #e0e4de;border-radius:10px;background:#fff;padding:13px}.owner-square-preview-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.owner-square-preview-card>div small{color:#737a73;font-size:.53rem}.owner-square-preview-card h3{margin:11px 0 8px;font-size:.74rem}.owner-square-preview-card ul{display:grid;gap:7px;margin:0;padding:10px 0;border-top:1px solid #eaede8;border-bottom:1px solid #eaede8;list-style:none}.owner-square-preview-card li span{display:grid;gap:2px}.owner-square-preview-card li strong{font-size:.59rem}.owner-square-preview-card li small{color:#747b74;font-size:.52rem}.owner-square-preview-card>p{margin:9px 0 0;color:#858b85;font-size:.49rem;line-height:1.4}
.owner-square-import-success{display:flex;justify-content:space-between;gap:15px;margin:14px 20px 0;border:1px solid #bcd5c1;border-radius:9px;background:#edf6ef;padding:11px;color:#34603d;font-size:.58rem}.owner-square-refresh-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px}.owner-square-refresh-panel h2{margin:2px 0 6px;font-size:.84rem}.owner-square-refresh-panel p:not(.owner-eyebrow){max-width:720px;margin:0;color:#717871;font-size:.6rem;line-height:1.5}
.owner-square-manual-state{display:flex;align-items:center;gap:9px}.owner-square-sync-history-panel{margin-top:14px;overflow:hidden}.owner-square-sync-history-panel>.owner-panel-heading{padding:18px 20px}.owner-square-sync-run{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;gap:18px;padding:14px 20px;border-top:1px solid #e7e9e5}.owner-square-sync-run>div{display:grid;gap:3px}.owner-square-sync-run>div strong{font-size:.64rem}.owner-square-sync-run>div span,.owner-square-sync-run>small{color:#737a73;font-size:.52rem}.owner-square-sync-run ul{display:flex;gap:7px;margin:0;padding:0;list-style:none}.owner-square-sync-run li{display:grid;min-width:52px;justify-items:center;border-radius:8px;background:#f0f3ef;padding:6px}.owner-square-sync-run li.review{background:#fbf0de;color:#8a5b12}.owner-square-sync-run li strong{font-size:.66rem}.owner-square-sync-run li span{font-size:.48rem}.owner-square-sync-run>small{text-align:right}.owner-square-preview-summary span.review{background:#fbf0de;color:#8a5b12}.owner-status-pill.sync-new{background:#e4f1e7;color:#356542}.owner-status-pill.sync-update{background:#e5eef9;color:#365d8d}.owner-status-pill.sync-unchanged{background:#eef0ee;color:#687068}.owner-square-preview-card.needs-review{border-color:#d9bd86}.owner-square-card-issues{margin-top:9px;border-radius:7px;background:#fbf2e2;padding:8px;color:#805818}.owner-square-card-issues>strong{font-size:.54rem}.owner-square-card-issues ul{display:grid;gap:3px;margin:4px 0 0;padding:0;border:0;list-style:none}.owner-square-card-issues li{font-size:.49rem}.owner-square-missing{margin:14px 20px 0;border:1px solid #dfc28b;border-radius:9px;background:#fff8ea;padding:12px;color:#74521e}.owner-square-missing>strong{font-size:.59rem}.owner-square-missing p{display:grid;gap:2px;margin:8px 0 0;font-size:.54rem}.owner-square-missing p span{color:#806e50;font-size:.5rem}
@media(max-width:900px){.owner-square-import-safety,.owner-square-import-grid,.owner-square-preview-list{grid-template-columns:1fr}.owner-square-refresh-panel{align-items:flex-start;flex-direction:column}}
@media(max-width:900px){.owner-square-manual-state{align-items:flex-start;flex-direction:column}.owner-square-sync-run{grid-template-columns:1fr}.owner-square-sync-run>small{text-align:left}}
@media(max-width:900px){.owner-section-heading{align-items:flex-start;flex-direction:column}.owner-reconciliation-week{width:100%}.owner-reconciliation-grid{grid-template-columns:1fr}}
.owner-empty { margin: 0; padding: 28px; border: 1px dashed #d8dad8; border-radius: 9px; color: #7e8488; font-size: .68rem; text-align: center; }
.owner-empty.error { color: #99474a; }
.owner-dialog { width: min(700px, calc(100vw - 30px)); max-height: calc(100vh - 30px); padding: 0; overflow: auto; border: 0; border-radius: 16px; background: white; color: var(--owner-ink); box-shadow: 0 25px 80px #171a1d4a; }
.owner-dialog::backdrop { background: #171a1d8c; backdrop-filter: blur(3px); }
.owner-dialog-close { position: absolute; top: 15px; right: 15px; display: grid; place-items: center; width: 34px; height: 34px; padding: 0 0 2px; border-radius: 50%; background: #eff0ee; color: #2d3133; font-size: 1.15rem; }
.owner-dialog-close:hover { background: #dfe1df; }
#payroll-detail-content { padding: 28px; }
.owner-payroll-person-heading { display: flex; align-items: center; gap: 13px; padding-right: 45px; }
.owner-payroll-person-heading img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; object-position: 50% 18%; }
.owner-payroll-initials { display: grid; flex: 0 0 auto; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #ece7dd; color: #6d5a41; font-size: .74rem; }
.owner-payroll-person-heading h2 { margin: 4px 0 2px; font-size: 1.3rem; }
.owner-payroll-person-heading span { color: #747a7d; font-size: .63rem; }
.owner-payroll-detail-total { display: flex; align-items: center; justify-content: space-between; margin: 20px 0; padding: 16px; border-radius: 9px; background: #f3f6f3; }
.owner-payroll-detail-total span { color: #71787b; font-size: .65rem; }
.owner-payroll-detail-total strong { font-size: 1.3rem; }
#payroll-detail-content h3 { margin: 22px 0 9px; font-size: .78rem; }
.owner-detail-table { width: 100%; border-collapse: collapse; font-size: .62rem; }
.owner-detail-table th, .owner-detail-table td { padding: 9px; border: 1px solid #e2e4e2; text-align: right; }
.owner-detail-table th:first-child, .owner-detail-table td:first-child { text-align: left; }
.owner-detail-table th { background: #f6f7f5; color: #757b7e; font-size: .54rem; text-transform: uppercase; }
.owner-detail-summary { display: grid; gap: 8px; margin: 16px 0 0; padding: 14px; border-radius: 8px; background: #f7f7f5; }
.owner-detail-summary > div { display: flex; justify-content: space-between; gap: 15px; font-size: .62rem; }
.owner-detail-summary dt { color: #73797d; }
.owner-detail-summary dd { margin: 0; font-weight: 750; }
.owner-form-dialog { width: min(510px, calc(100vw - 30px)); }
.owner-form-dialog form { display: grid; gap: 14px; padding: 28px; }
.owner-form-dialog h2 { margin: 2px 0 0; padding-right: 40px; font-size: 1.25rem; }
.owner-form-intro { margin: -5px 0 4px; color: #737a7d; font-size: .65rem; }
.owner-form-dialog label { display: grid; gap: 6px; color: #555c5f; font-size: .61rem; font-weight: 800; }
.owner-form-dialog input, .owner-form-dialog select, .owner-form-dialog textarea { width: 100%; padding: 10px 11px; border: 1px solid #d8dcda; border-radius: 8px; background: white; color: #252a2c; font: inherit; font-weight: 600; box-sizing: border-box; }
.owner-form-dialog textarea { resize: vertical; line-height: 1.45; }
.owner-money-input { position: relative; display: block; }
.owner-money-input > span { position: absolute; top: 10px; left: 11px; color: #757c7f; }
.owner-money-input input { padding-left: 25px; }
.owner-form-note { margin: 0; padding: 10px 11px; border-radius: 7px; background: #f5f6f4; color: #747b7e; font-size: .56rem; line-height: 1.45; }
.owner-imported-time { display: flex; align-items: center; justify-content: space-between; padding: 12px; border: 1px solid #e0e3e0; border-radius: 8px; background: #f7f8f6; }
.owner-imported-time span { color: #747b7e; font-size: .59rem; }
.owner-imported-time strong { font-size: .75rem; }
.owner-time-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.owner-audit-list { display: grid; gap: 8px; }
.owner-audit-list article { padding: 11px 12px; border: 1px solid #e0e3e0; border-radius: 8px; background: #fbfbfa; }
.owner-audit-list article strong { display: block; font-size: .64rem; }
.owner-audit-list article span { display: block; margin-top: 3px; color: #4f655a; font-size: .59rem; font-weight: 750; }
.owner-audit-list article p { margin: 6px 0; color: #666d70; font-size: .59rem; line-height: 1.4; }
.owner-audit-list article small { color: #8b9194; font-size: .51rem; }
@media (max-width: 1350px) {
  .owner-shell { grid-template-columns: 238px minmax(0, 1fr); }
  .owner-main { padding-left: 26px; padding-right: 26px; }
  .owner-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .owner-booking-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Owner time, attendance, and performance-bonus review */
.owner-sample-label { padding: 7px 9px; border-radius: 999px; background: #eee9df; color: #705f49; font-size: .56rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.owner-time-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(275px, .65fr); gap: 14px; margin-bottom: 14px; }
.owner-timecard-panel { overflow: hidden; }
#time-correction-list { padding: 14px; }
.owner-time-request { padding: 15px; border: 1px solid #e1e3e1; border-radius: 10px; background: #fafaf8; }
.owner-time-request.approved { border-color: #c6dacd; background: #f3f8f4; }
.owner-time-request.declined { opacity: .72; }
.owner-time-request-heading { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; }
.owner-time-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #e8eee9; color: #356048; font-size: .72rem; font-weight: 850; }
.owner-time-request-heading > div { display: grid; gap: 3px; }
.owner-time-request-heading strong { font-size: .74rem; }
.owner-time-request-heading small { color: #81878a; font-size: .56rem; }
.owner-time-change { display: grid; grid-template-columns: 1fr 24px 1fr; align-items: center; gap: 8px; margin: 13px 0 10px; }
.owner-time-change > div { display: grid; gap: 4px; padding: 11px; border-radius: 8px; background: white; }
.owner-time-change small { color: #858b8e; font-size: .54rem; text-transform: uppercase; }
.owner-time-change strong { font-size: .7rem; }
.owner-time-change > b { color: #858b8e; text-align: center; }
.owner-time-request > p { margin: 0; color: #747a7d; font-size: .61rem; line-height: 1.45; }
.owner-hourly-panel { padding: 20px; }
.owner-hourly-person { display: flex; align-items: center; gap: 11px; margin-top: 15px; }
.owner-hourly-person > span { display: grid; flex: 0 0 auto; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #ece7dd; color: #6d5a41; font-size: .67rem; font-weight: 850; }
.owner-hourly-person > img { flex: 0 0 auto; width: 52px; height: 52px; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #dedbd3; object-fit: cover; object-position: center 24%; }
.owner-hourly-person h3 { margin: 0; font-size: .84rem; }
.owner-hourly-person p { margin: 4px 0 0; color: #7b8184; font-size: .58rem; line-height: 1.4; }
.owner-hourly-panel dl { display: grid; gap: 8px; margin: 17px 0 0; }
.owner-hourly-panel dl > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid #e9eae8; font-size: .62rem; }
.owner-hourly-panel dt { color: #787e81; }
.owner-hourly-panel dd { margin: 0; font-weight: 800; }
.owner-hourly-panel dd small { color: #919699; font-size: .5rem; font-weight: 500; }
.owner-needs-input { color: #9b552d; }
.owner-square-source { display: grid; gap: 5px; margin-top: 12px; padding: 11px; border: 1px solid #e1ded6; border-radius: 8px; background: #faf8f3; }
.owner-square-source .owner-status-pill { justify-self: start; }
.owner-square-source strong { font-size: .63rem; }
.owner-square-source p { margin: 0; color: #73797d; font-size: .54rem; line-height: 1.45; }
.owner-square-source code { padding: 1px 3px; border-radius: 3px; background: #ece8df; color: #5a5043; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .51rem; }
.owner-square-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.owner-square-actions button:disabled { cursor: not-allowed; opacity: .48; }
.owner-connection-steps { display: grid; gap: 12px; margin: 18px 0; }
.owner-connection-steps > div { display: grid; grid-template-columns: 32px 1fr; gap: 10px; align-items: start; }
.owner-connection-steps > div > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #171717; color: #fff; font-size: .62rem; font-weight: 850; }
.owner-connection-steps p, .owner-connection-steps small { display: block; margin: 0; }
.owner-connection-steps p { font-size: .68rem; line-height: 1.4; }
.owner-connection-steps small { margin-top: 3px; color: #73797d; font-size: .57rem; line-height: 1.45; }
.owner-separation-note { margin: 13px 0 0; padding: 9px 10px; border-left: 3px solid #7a9c86; background: #f0f6f2; color: #5f7066; font-size: .56rem; line-height: 1.45; }
.owner-separation-note.wide { margin: 0 20px 20px; }
.owner-bonus-panel { margin-bottom: 14px; overflow: hidden; }
.owner-stylist-picker { display: grid; min-width: 150px; gap: 5px; color: #767c80; font-size: .55rem; font-weight: 750; }
.owner-stylist-picker select { padding: 8px 10px; border: 1px solid #d5d8d6; border-radius: 7px; background: white; color: #33373a; font-size: .65rem; }
.owner-bonus-rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; padding: 14px 20px; background: #fafaf8; }
.owner-bonus-rules > div { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 10px; border: 1px solid #e5e6e3; border-radius: 8px; background: white; }
.owner-bonus-rules > div > span { display: grid; flex: 0 0 auto; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #e6f0e9; color: #416d51; font-size: .58rem; font-weight: 850; }
.owner-bonus-rules p { display: grid; min-width: 0; gap: 3px; margin: 0; }
.owner-bonus-rules strong { font-size: .6rem; }
.owner-bonus-rules small { color: #848a8d; font-size: .52rem; line-height: 1.3; }
.owner-bonus-table { width: 100%; border-collapse: collapse; font-size: .62rem; }
.owner-bonus-table th { padding: 10px 13px; border-bottom: 1px solid #e4e6e4; background: #f5f6f4; color: #747a7d; font-size: .52rem; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.owner-bonus-table td { padding: 12px 13px; border-bottom: 1px solid #eceeec; vertical-align: middle; }
.owner-bonus-table td > strong { font-size: .66rem; }
.owner-bonus-table td > small { display: block; margin-top: 4px; color: #8a9093; font-size: .51rem; }
.owner-auto-value { font-size: .61rem; font-weight: 750; }
.owner-auto-value.met { color: #3b704e; }
.owner-auto-value.missed { color: #a05248; }
.owner-attendance-value { display: flex; align-items: center; gap: 7px; }
.owner-attendance-value button { padding: 4px 7px; border: 1px solid #d7dbd8; border-radius: 6px; background: white; color: #596063; font-size: .49rem; font-weight: 800; }
.owner-attendance-value button:hover { border-color: #afb6b1; background: #f3f5f3; }
.owner-attendance-condition { display: flex !important; grid-template-columns: auto 1fr; align-items: flex-start; gap: 9px !important; padding: 11px; border: 1px solid #dce1dd; border-radius: 8px; background: #f8faf8; }
.owner-attendance-condition input { width: 18px !important; height: 18px; margin: 1px 0 0; accent-color: #426f53; }
.owner-attendance-condition span { display: grid; gap: 3px; }
.owner-attendance-condition strong { color: #41484a; font-size: .62rem; }
.owner-attendance-condition small { color: #7c8386; font-size: .54rem; font-weight: 500; line-height: 1.35; }
.owner-story-check { display: inline-flex; align-items: center; gap: 7px; color: #50565a; font-size: .61rem; font-weight: 700; }
.owner-story-check input { width: 17px; height: 17px; accent-color: #426f53; }
.owner-bonus-footer { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(270px, .65fr); gap: 18px; padding: 17px 20px; }
.owner-weekly-upload { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid #dedfdd; border-radius: 9px; background: #fbfbfa; }
.owner-weekly-upload input { flex: 0 0 auto; width: 18px; height: 18px; accent-color: #426f53; }
.owner-weekly-upload span { display: grid; gap: 4px; }
.owner-weekly-upload strong { font-size: .64rem; }
.owner-weekly-upload small { color: #7c8285; font-size: .55rem; line-height: 1.4; }
.owner-bonus-summary { display: grid; gap: 7px; }
.owner-bonus-summary > span { display: flex; justify-content: space-between; gap: 18px; color: #73797c; font-size: .58rem; }
.owner-bonus-summary > span strong { color: #303437; font-size: .65rem; }
.owner-bonus-summary > span.total { margin-top: 2px; padding-top: 9px; border-top: 1px solid #dde0dd; color: #303437; font-weight: 800; }
.owner-bonus-summary > span.total strong { color: #326546; font-size: .86rem; }
.owner-assistant-panel { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px; }
.owner-assistant-panel h2 { margin: 5px 0 0; font-size: 1rem; }
.owner-assistant-panel p:not(.owner-eyebrow) { margin: 6px 0 0; color: #777d80; font-size: .61rem; }
.owner-assistant-days { display: flex; align-items: center; gap: 16px; padding: 12px 15px; border-radius: 9px; background: #f5f2eb; color: #5f5547; }
.owner-assistant-days span { font-size: .61rem; }
.owner-assistant-days span strong { font-size: .82rem; }
.owner-assistant-days > b { font-size: .61rem; }
.owner-assistant-days > strong { color: #2f3335; font-size: 1rem; }

/* Daily FBS attendance review */
.owner-attendance-heading { align-items: end; }
.owner-attendance-date-control { display: flex; align-items: stretch; gap: 7px; }
.owner-attendance-date-control > button { min-width: 36px; padding: 0 11px; border: 1px solid #d8dcda; border-radius: 8px; background: white; color: #3d4345; font-size: .64rem; font-weight: 800; }
.owner-attendance-date-control > button:first-child,
.owner-attendance-date-control > button:nth-child(3) { font-size: 1rem; }
.owner-attendance-date-control > button:hover { border-color: #adb5b0; background: #f4f6f4; }
.owner-attendance-date-control label { display: grid; gap: 2px; min-width: 145px; padding: 6px 10px; border: 1px solid #d8dcda; border-radius: 8px; background: white; }
.owner-attendance-date-control label span { color: #858b8e; font-size: .48rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.owner-attendance-date-control input { padding: 0; border: 0; outline: 0; color: #303537; font: inherit; font-size: .63rem; font-weight: 800; }
.owner-metrics.attendance { margin-bottom: 14px; }
.owner-metrics.attendance article { min-height: 88px; }
.owner-attendance-panel { overflow: hidden; }
.owner-workday { min-width: 850px; border-top: 1px solid #e5e8e5; }
.owner-workday-header,
.owner-workday-row { display: grid; grid-template-columns: 225px minmax(625px, 1fr); }
.owner-workday-header { min-height: 50px; background: #fafbf9; color: #777e81; font-size: .52rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.owner-workday-header > div:first-child { display: flex; align-items: end; padding: 0 15px 10px; border-right: 1px solid #e3e6e3; }
.owner-workday-hours { position: relative; margin: 0 14px; }
.owner-workday-hours span { position: absolute; bottom: 10px; transform: translateX(-50%); white-space: nowrap; }
.owner-workday-hours span:first-child { transform: none; }
.owner-workday-hours span:last-child { transform: translateX(-100%); }
.owner-workday-row { min-height: 72px; border-top: 1px solid #e9ebe9; }
.owner-workday-person { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 14px; border-right: 1px solid #e3e6e3; background: white; }
.owner-workday-person img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; box-shadow: 0 0 0 1px #dadeda; }
.owner-workday-person > span { display: grid; min-width: 0; gap: 3px; }
.owner-workday-person strong { overflow: hidden; color: #303537; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.owner-workday-person small { color: #858c8f; font-size: .53rem; }
.owner-workday-person > b { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #fff1ea; color: #b85b43; font-size: .57rem; }
.owner-workday-track { position: relative; min-width: 0; margin: 0 14px; background-image: linear-gradient(to right, #e8ebe8 1px, transparent 1px); background-size: calc(100% / var(--attendance-hours)) 100%; }
.owner-attendance-segment { position: absolute; top: 12px; bottom: 12px; display: grid; align-content: center; min-width: 5px; overflow: hidden; padding: 5px 9px; border-radius: 7px; box-sizing: border-box; color: #173e31; white-space: nowrap; }
.owner-attendance-segment.recorded { border: 1px solid #49ab8a; background: #55c9a2; }
.owner-attendance-segment.open { border: 1px solid #3c9576; background: repeating-linear-gradient(135deg, #c8ecdf 0, #c8ecdf 7px, #b6e3d3 7px, #b6e3d3 14px); color: #286b54; }
.owner-attendance-segment.exception { border: 1px dashed #c1644f; background: #fff0ea; color: #a24937; }
.owner-attendance-segment strong { overflow: hidden; font-size: .57rem; text-overflow: ellipsis; }
.owner-attendance-segment small { overflow: hidden; margin-top: 2px; font-size: .48rem; font-weight: 750; opacity: .82; text-overflow: ellipsis; }
.owner-no-attendance { position: absolute; top: 50%; left: 10px; transform: translateY(-50%); color: #adb2af; font-size: .54rem; }
.owner-attendance-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 17px; padding: 13px 19px; border-top: 1px solid #e7e9e7; color: #747b7e; font-size: .54rem; }
.owner-attendance-legend span { display: inline-flex; align-items: center; gap: 6px; }
.owner-attendance-legend span:last-child { margin-left: auto; }
.owner-attendance-legend i { width: 11px; height: 11px; border-radius: 3px; }
.owner-attendance-legend i.recorded { background: #55c9a2; }
.owner-attendance-legend i.open { border: 1px solid #3c9576; background: #c8ecdf; }
.owner-attendance-legend i.exception { border: 1px dashed #c1644f; background: #fff0ea; }

@media (max-width: 900px) {
  .owner-attendance-heading { align-items: stretch; }
  .owner-attendance-date-control { width: 100%; }
  .owner-attendance-date-control label { flex: 1; min-width: 0; }
  .owner-attendance-panel { overflow-x: auto; }
}
/* Private staff portal */
.staff-portal-body{margin:0;background:#f5f5f1;color:#20201f;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.staff-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,46%) 1fr;background:#fff;max-width:none;margin:0;padding:0}
.staff-login-card{padding:clamp(40px,7vw,96px);display:flex;flex-direction:column;justify-content:center;max-width:560px}
.staff-login-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#20201f;margin-bottom:58px}
.staff-login-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#171716;color:#fff;font-family:Georgia,serif;font-size:23px}
.staff-login-brand div{display:grid}.staff-login-brand strong{font-size:18px}.staff-login-brand small{font-size:13px;color:#777}
.staff-login-card h1{font-size:clamp(38px,4vw,58px);letter-spacing:-.055em;line-height:.98;margin:8px 0 22px;max-width:480px}
.staff-login-card>p:not(.owner-eyebrow){color:#6d6d69;line-height:1.7;max-width:490px;margin:0 0 30px}
.staff-login-card form{display:grid;gap:18px;max-width:420px}
.staff-login-card label,.staff-dialog label{display:grid;gap:8px;font-weight:700;font-size:13px}
.staff-login-card select,.staff-login-card input,.staff-dialog input,.staff-dialog textarea{box-sizing:border-box;width:100%;border:1px solid #d7d7d2;border-radius:12px;background:#fff;padding:14px 15px;font:inherit;color:#20201f;outline:none}
.staff-login-card select:focus,.staff-login-card input:focus,.staff-dialog input:focus,.staff-dialog textarea:focus{border-color:#222;box-shadow:0 0 0 3px #2221}
.staff-login-card input{font-size:24px;letter-spacing:.4em}
.staff-primary-button{border:0;border-radius:12px;background:#191918;color:#fff;padding:14px 18px;font-weight:800;cursor:pointer}
.staff-kiosk-link{color:#343431;font-size:13px;font-weight:700;margin-top:28px;text-decoration:none}
.staff-form-error{min-height:18px;color:#bd3f35;font-size:13px;margin:0}
.staff-login-art{background:#20221f;color:#fff;padding:clamp(45px,7vw,110px);display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.staff-login-art:before{content:"";position:absolute;width:510px;height:510px;border:1px solid #ffffff24;border-radius:50%;right:-170px;top:-130px;box-shadow:0 0 0 90px #ffffff08,0 0 0 180px #ffffff05}
.staff-login-art>p{position:absolute;top:65px;letter-spacing:.28em;font-size:12px;color:#cfd4ca}
.staff-login-art h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(42px,5vw,76px);line-height:1.02;margin:0 0 65px;position:relative}
.staff-login-art div{display:flex;gap:20px;border-top:1px solid #ffffff25;padding:22px 0;font-size:15px;color:#d1d3ce;position:relative}.staff-login-art div span{color:#8fad92;font-weight:800}
.staff-app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}
.staff-sidebar{background:#1f211f;color:#fff;padding:24px 17px;position:sticky;top:0;height:100vh;box-sizing:border-box;display:flex;flex-direction:column}
.staff-login-brand.compact{color:#fff;margin:0 8px 30px}.staff-login-brand.compact>span{background:#fff;color:#171716}
.staff-identity{display:flex;align-items:center;gap:12px;padding:17px 10px;margin-bottom:20px;border-top:1px solid #ffffff18;border-bottom:1px solid #ffffff18}
.staff-identity img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:2px solid #fff}
.staff-identity div{display:grid;gap:3px}.staff-identity strong{font-size:15px}.staff-identity span{font-size:11px;color:#aeb1ab}
.staff-sidebar nav{display:grid;gap:5px}
.staff-sidebar nav button{border:0;background:transparent;color:#bfc1bc;border-radius:10px;padding:12px 13px;text-align:left;font-weight:700;cursor:pointer;display:flex;gap:12px;align-items:center}
.staff-sidebar nav button span{font-size:17px;width:20px;text-align:center}.staff-sidebar nav button:hover,.staff-sidebar nav button.active{background:#fff;color:#1f211f}
.staff-sidebar-footer{margin-top:auto;display:grid;gap:8px}
.staff-sidebar-footer a,.staff-sidebar-footer button{border:0;background:transparent;color:#c9cbc6;text-decoration:none;text-align:left;padding:9px 12px;font-size:13px;cursor:pointer}
.staff-main{min-width:0;max-width:none;margin:0;padding:0 clamp(24px,4vw,64px) 70px}
.staff-topbar{min-height:116px;padding:0;background:transparent;color:inherit;border-bottom:1px solid #dddeda;display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:34px}
.staff-topbar h1{margin:4px 0 0;font-size:31px;letter-spacing:-.035em}
.staff-period-nav{display:flex;align-items:center;border:1px solid #d8d9d4;background:#fff;border-radius:14px;padding:4px}
.staff-period-nav button{border:0;background:transparent;color:#20201f;width:38px;height:44px;font-size:24px;cursor:pointer;border-radius:10px}.staff-period-nav button:hover{background:#f0f1ed}
.staff-period-nav div{min-width:155px;text-align:center;display:grid;gap:2px}.staff-period-nav small{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#898b86}.staff-period-nav strong{color:#20201f;font-size:13px}
.staff-view{display:none}.staff-view.active{display:block}
.staff-welcome-card{background:#dfece0;border-radius:19px;padding:25px 29px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.staff-welcome-card h2{font-size:27px;letter-spacing:-.035em;margin:4px 0 6px}.staff-welcome-card p:last-child{margin:0;max-width:760px;color:#59645a;font-size:13px;line-height:1.55}
.staff-status-pill{background:#fff;color:#385c40;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.staff-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.staff-metrics article{background:#fff;border:1px solid #dedfda;border-radius:16px;padding:21px;display:grid;gap:7px}.staff-metrics small{color:#72746f;font-weight:700}.staff-metrics strong{font-size:27px;letter-spacing:-.04em}.staff-metrics span{font-size:11px;color:#92938f}
.staff-dashboard-grid,.staff-history-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px}
.staff-panel{background:#fff;border:1px solid #dedfda;border-radius:17px;padding:22px;margin-bottom:18px}
.staff-panel-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:18px}.staff-panel-heading h2{margin:4px 0 0;font-size:21px}.staff-panel-heading button{border:0;background:transparent;text-decoration:underline;font-weight:700;cursor:pointer}
.staff-attendance-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(190px,1.4fr) 70px auto;align-items:center;gap:14px;border-top:1px solid #ecece8;padding:14px 0}
.staff-attendance-row:first-child{border-top:0}.staff-attendance-row>div:first-child{display:grid;gap:3px}.staff-attendance-row small{font-size:11px;color:#888}.staff-attendance-row.has-exception small{color:#b7463a}.staff-attendance-times{display:flex;flex-wrap:wrap;gap:5px}.staff-attendance-times span{font-size:12px;background:#f3f3f0;border-radius:7px;padding:6px 8px}.staff-attendance-times i{font-style:normal;color:#999}
.staff-attendance-row>button{border:1px solid #d7d8d3;background:#fff;border-radius:8px;padding:8px 10px;font-weight:700;font-size:11px;cursor:pointer}
.staff-pay-breakdown{margin:0}.staff-pay-breakdown div{display:flex;justify-content:space-between;border-top:1px solid #ecece8;padding:12px 0}.staff-pay-breakdown div:first-child{border-top:0}.staff-pay-breakdown dt{color:#696b66;font-size:13px}.staff-pay-breakdown dd{margin:0;font-weight:800}.staff-pay-breakdown .total{border-top:2px solid #252624;margin-top:5px;font-size:16px}
.staff-section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.staff-section-heading h2{font-size:30px;letter-spacing:-.04em;margin:5px 0}.staff-section-heading p:last-child{margin:0;color:#737570}
.staff-correction-row{display:grid;grid-template-columns:170px 1fr 130px 90px;align-items:center;gap:16px;border-top:1px solid #e9eae6;padding:15px 0}.staff-correction-row:first-child{border-top:0}.staff-correction-row>div{display:grid;gap:3px}.staff-correction-row p{margin:0;font-size:13px}.staff-correction-row>span{font-size:12px}.staff-correction-row>b{text-transform:capitalize;font-size:11px;border-radius:999px;padding:7px 10px;text-align:center;background:#f0f0ed}.staff-correction-row>b.pending{background:#fff1cf;color:#815a04}.staff-correction-row>b.approved{background:#dff0e1;color:#2c6737}.staff-correction-row>b.declined{background:#f5dfdc;color:#8b3c34}
.staff-table-wrap{overflow:auto}.staff-table{border-collapse:collapse;width:100%;min-width:700px}.staff-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#898b86;padding:0 12px 12px}.staff-table td{border-top:1px solid #e9eae6;padding:15px 12px;font-size:13px}.staff-table td:last-child{font-weight:800}.staff-empty-cell{text-align:center!important;color:#888;padding:48px!important}
.staff-table-action{border:1px solid #d8d9d4;border-radius:8px;background:#fff;padding:7px 9px;font-size:10px;font-weight:750;white-space:nowrap;cursor:pointer}.staff-table-action:hover{background:#f2f3ef}
.staff-history-row{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e9eae6;padding:15px 0}.staff-history-row:first-child{border-top:0}.staff-history-row div{display:grid;gap:4px}.staff-history-row small{color:#81837e;font-size:11px}.staff-history-row>strong{font-size:16px}
.staff-dialog{border:0;border-radius:20px;padding:0;width:min(520px,calc(100vw - 28px));box-shadow:0 30px 90px #0004}.staff-dialog::backdrop{background:#151714aa}.staff-dialog form{padding:28px;display:grid;gap:18px}.staff-dialog-heading{display:flex;justify-content:space-between;gap:15px}.staff-dialog-heading h2{margin:4px 0 0}.staff-dialog-heading button{border:0;background:#f0f0ed;border-radius:50%;width:34px;height:34px;font-size:22px;cursor:pointer}.staff-dialog form>p:not(.staff-form-error){margin:0;color:#70726d;line-height:1.5;font-size:13px}.staff-time-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.staff-dialog-actions{display:flex;justify-content:flex-end;gap:9px}.staff-dialog-actions>button:first-child{border:0;background:transparent;font-weight:700;cursor:pointer}
@media(max-width:1050px){.staff-metrics{grid-template-columns:repeat(2,1fr)}.staff-dashboard-grid,.staff-history-grid{grid-template-columns:1fr}.staff-app{grid-template-columns:220px 1fr}.staff-sidebar{padding-inline:12px}.staff-correction-row{grid-template-columns:150px 1fr 100px}}
@media(max-width:760px){.staff-login-shell{display:block}.staff-login-card{min-height:100vh;box-sizing:border-box;padding:34px 24px}.staff-login-art{display:none}.staff-app{display:block;padding-bottom:72px}.staff-sidebar{position:fixed;z-index:30;bottom:0;top:auto;width:100%;height:auto;padding:7px;background:#1f211f}.staff-sidebar>.staff-login-brand,.staff-identity,.staff-sidebar-footer{display:none}.staff-sidebar nav{grid-template-columns:repeat(4,1fr);gap:2px}.staff-sidebar nav button{display:grid;place-items:center;gap:2px;padding:7px 3px;font-size:10px}.staff-sidebar nav button span{font-size:18px}.staff-main{padding:0 14px 30px}.staff-topbar{min-height:135px;align-items:flex-start;padding-top:18px;margin-bottom:22px;flex-direction:column;justify-content:center}.staff-topbar h1{font-size:27px}.staff-period-nav{width:100%;box-sizing:border-box;justify-content:space-between}.staff-period-nav div{flex:1}.staff-welcome-card{align-items:flex-start;flex-direction:column;padding:22px}.staff-metrics{grid-template-columns:1fr 1fr;gap:9px}.staff-metrics article{padding:16px}.staff-metrics strong{font-size:22px}.staff-section-heading{align-items:flex-start;flex-direction:column}.staff-attendance-row{grid-template-columns:1fr auto;gap:8px}.staff-attendance-times{grid-column:1/3}.staff-attendance-row>button{grid-column:1/3}.staff-correction-row{grid-template-columns:1fr auto}.staff-correction-row p,.staff-correction-row>span{grid-column:1/3}.staff-time-fields{grid-template-columns:1fr}}
.owner-attendance-request{display:grid;grid-template-columns:50px 150px 180px minmax(180px,1fr) auto;gap:14px;align-items:center;border-top:1px solid #e7e8e3;padding:16px 0}.owner-attendance-request:first-child{border-top:0}.owner-attendance-request img{width:44px;height:44px;border-radius:50%;object-fit:cover}.owner-attendance-request-person,.owner-attendance-request>div:nth-child(3){display:grid;gap:3px}.owner-attendance-request small{font-size:11px;color:#81837e}.owner-attendance-request p{margin:0;color:#5f615d;font-size:13px;line-height:1.45}
@media(max-width:1050px){.owner-attendance-request{grid-template-columns:44px 130px 1fr auto}.owner-attendance-request p{grid-column:2/4}.owner-attendance-request .owner-decision-actions{grid-column:4;grid-row:1/3}}
@media(max-width:700px){.owner-attendance-request{grid-template-columns:44px 1fr}.owner-attendance-request>div:nth-child(3),.owner-attendance-request p,.owner-attendance-request .owner-decision-actions{grid-column:1/3}.owner-attendance-request .owner-decision-actions{grid-row:auto}}
.staff-login-shell.hidden,.staff-app.hidden{display:none}

.checkout-square-tip{display:grid;gap:10px;margin:15px 0;padding:15px;border:1px solid #b9d2be;border-radius:13px;background:#eef7ef}
.checkout-square-tip label{display:grid;gap:3px;color:#26472d;font-size:.78rem;font-weight:800}
.checkout-square-tip label small{color:#67806c;font-size:.61rem;font-weight:650}
.checkout-square-tip>div{display:flex;align-items:center;border:1px solid #9fbaa5;border-radius:10px;background:#fff;padding:0 12px}
.checkout-square-tip>div span{color:#3e6547;font-weight:850}
.checkout-square-tip input{width:100%;border:0!important;background:transparent!important;padding:11px 8px!important;font-size:1rem!important;font-weight:800;outline:0!important}
.checkout-square-tip p{margin:0;color:#607564;font-size:.62rem;line-height:1.45}

.owner-transaction-date{display:flex;align-items:end;gap:7px}
.owner-transaction-date label{display:grid;gap:5px}.owner-transaction-date label span{color:#747a75;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.owner-transaction-date input,.owner-transaction-date button{box-sizing:border-box;height:42px;border:1px solid #d6dad5;border-radius:9px;background:#fff;padding:0 12px;color:#2d312d;font:inherit;font-size:.7rem;font-weight:750}
.owner-transaction-date button{cursor:pointer}.owner-transaction-date>button:first-child,.owner-transaction-date>button:nth-child(3){width:42px;padding:0;font-size:1.2rem}
.owner-transaction-list{display:grid;gap:10px}
.owner-transaction-card{overflow:hidden;border:1px solid #e0e3df;border-radius:13px;background:#fff}
.owner-transaction-card summary{display:grid;grid-template-columns:84px minmax(180px,1fr) 100px 110px 22px;align-items:center;gap:14px;padding:15px 17px;cursor:pointer;list-style:none}
.owner-transaction-card summary::-webkit-details-marker{display:none}.owner-transaction-card[open] summary{border-bottom:1px solid #e1e4e0;background:#f8faf7}
.owner-transaction-time{color:#4f6655;font-size:.73rem;font-weight:850}.owner-transaction-card summary>span{display:grid;gap:3px}.owner-transaction-card summary>span strong{font-size:.77rem}.owner-transaction-card summary small{color:#7d837e;font-size:.57rem}.owner-transaction-card summary>b{text-align:right;font-size:.88rem}.owner-transaction-card summary>i{color:#7d837e;font-style:normal}.owner-transaction-card[open] summary>i{transform:rotate(180deg)}
.owner-transaction-detail{display:grid;grid-template-columns:1.05fr 1fr .95fr;gap:0;background:#fff}
.owner-transaction-detail>section{min-width:0;padding:19px;border-right:1px solid #e5e7e4}.owner-transaction-detail>section:last-child{border-right:0;background:#fafbf9}
.owner-transaction-detail h3{margin:0 0 13px;font-size:.78rem}.owner-transaction-detail ul{display:grid;gap:0;margin:0 0 14px;padding:0;list-style:none}
.owner-transaction-detail li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #eceeeb;padding:9px 0;font-size:.65rem}.owner-transaction-detail li:first-child{border-top:0}.owner-transaction-detail li>span{display:grid;gap:3px}.owner-transaction-detail li small{color:#858a86;font-size:.53rem;text-transform:capitalize}
.owner-transaction-detail dl{margin:0}.owner-transaction-detail dl div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #eceeeb;padding:8px 0;font-size:.61rem}.owner-transaction-detail dt{color:#707671}.owner-transaction-detail dd{overflow-wrap:anywhere;margin:0;text-align:right;font-weight:800}.owner-transaction-detail dl .total{border-top:2px solid #303530;font-size:.7rem}
.owner-transaction-method,.owner-transaction-provider>p{margin:0 0 12px;color:#717872;font-size:.58rem;line-height:1.45;text-transform:capitalize}
.owner-transaction-detail .owner-transaction-subheading{margin-top:18px}
.owner-transaction-earning{align-items:center}.owner-transaction-earning-total{display:grid;flex:0 0 auto;gap:2px;text-align:right}.owner-transaction-earning-total small{text-transform:uppercase}.owner-transaction-earning-total strong{font-size:.72rem}
.owner-transaction-commission-note{margin:8px 0 0;border-radius:8px;background:#f4f7f2;padding:10px;color:#637066;font-size:.55rem;line-height:1.5}
.owner-evidence-button{display:grid;gap:3px;margin-top:15px;border:1px solid #1f4d35;border-radius:10px;background:#244f39;padding:11px 13px;color:#fff;text-decoration:none;transition:background .16s ease,transform .16s ease}
.owner-evidence-button:hover{background:#173d2a;transform:translateY(-1px)}.owner-evidence-button:focus-visible{outline:3px solid #a9cfb5;outline-offset:2px}
.owner-evidence-button span{font-size:.68rem;font-weight:850}.owner-evidence-button small{color:#d9ecdf;font-size:.52rem;line-height:1.35;text-transform:none}
@media(max-width:1050px){.owner-transaction-detail{grid-template-columns:1fr 1fr}.owner-transaction-provider{grid-column:1/3}.owner-transaction-heading{align-items:stretch}.owner-transaction-date{flex-wrap:wrap}}
@media(max-width:700px){.owner-transaction-card summary{grid-template-columns:65px 1fr 75px}.owner-transaction-card summary>span:nth-child(3){display:none}.owner-transaction-card summary>b{grid-column:3}.owner-transaction-card summary>i{display:none}.owner-transaction-detail{display:block}.owner-transaction-detail>section{border-right:0;border-bottom:1px solid #e5e7e4}.owner-transaction-provider{grid-column:auto}}

/* Shared customer communications */
.messages-body{font-family:Inter,"Avenir Next","Segoe UI",Arial,sans-serif;color:#242724}
.messages-main{min-width:0}
.messages-simulation-badge{display:flex;align-items:center;gap:8px;border:1px solid #d9ddd8;border-radius:999px;background:#f7f8f5;padding:9px 13px;color:#626862;font-size:.69rem;font-weight:750}
.messages-simulation-badge span{width:8px;height:8px;border-radius:50%;background:#d89a34;box-shadow:0 0 0 4px #f7e9ce}
.messages-sidebar-note{margin:28px 3px 0;padding:20px 16px;border-top:1px solid #dedfdb;border-bottom:1px solid #dedfdb}
.messages-sidebar-note h2{margin:6px 0 10px;font-size:1.03rem;line-height:1.25}.messages-sidebar-note>p:last-child{margin:0;color:#777d78;font-size:.67rem;line-height:1.55}
.messages-body{overflow:hidden}
.messages-workspace{display:grid;grid-template-columns:minmax(380px,40%) minmax(520px,60%);grid-template-rows:minmax(0,1fr);height:calc(100vh - 86px);min-height:0;overflow:hidden;border-top:0;border-right:0;border-bottom:0;border-left:1px solid #dedfdb;border-radius:0;background:#fff;box-shadow:0 12px 35px #18221b0a}
.messages-list-panel{display:flex;min-width:0;flex-direction:column;border-right:1px solid #e2e4e0}
.messages-list-heading{padding:22px 20px 14px}.messages-list-heading h2{margin:0 0 15px;font-size:1.38rem;letter-spacing:-.025em}.messages-list-heading input{box-sizing:border-box;width:100%;border:1px solid #cfd4ce;border-radius:11px;background:#fbfcfa;padding:12px 13px;color:#242724;font:inherit;font-size:.79rem;line-height:1.3}.messages-list-heading input:focus{border-color:#6d776d;outline:3px solid #dfe8df}
.messages-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0 20px 16px}.messages-filters button{min-height:34px;border:1px solid #e2e5e0;border-radius:9px;background:#f2f4f1;padding:8px 9px;color:#555c55;font-size:.65rem;font-weight:800;line-height:1.1;white-space:normal;cursor:pointer}.messages-filters button:hover{border-color:#cbd1ca;background:#e9ece7}.messages-filters button.active{border-color:#242724;background:#242724;color:#fff}
.messages-thread-list{min-height:0;overflow-y:auto;border-top:1px solid #e9eae7}
.messages-thread-list .messages-thread{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;width:100%;border:0;border-bottom:1px solid #e7eae5;border-radius:0;background:#fff;color:#242724;padding:16px 18px;text-align:left;cursor:pointer}.messages-thread-list .messages-thread:hover{background:#f7f8f5}.messages-thread-list .messages-thread.active{background:#edf2ec}.messages-thread.active:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:#31543a}
.messages-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#dfe9df;color:#284b31;font-size:.81rem;font-weight:900}
.messages-thread-copy{display:grid;min-width:0;gap:4px}.messages-thread-copy>span{display:flex;justify-content:space-between;gap:10px}.messages-thread-copy strong{overflow:hidden;font-size:.79rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.messages-thread-copy time{color:#777e77;font-size:.57rem;white-space:nowrap}.messages-thread-copy small{overflow:hidden;color:#6f766f;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.messages-thread-copy p{overflow:hidden;margin:2px 0;color:#454c45;font-size:.69rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.messages-thread-copy b{justify-self:start;border-radius:999px;background:#edf0ec;padding:5px 8px;color:#565d56;font-size:.53rem;letter-spacing:.02em;text-transform:uppercase}.messages-thread-copy b.new,.messages-thread-copy b.needs_reply{background:#fff0d8;color:#7a4b07}.messages-thread-copy b.waiting{background:#e4edf6;color:#2d5276}.messages-thread>i{position:absolute;right:16px;bottom:15px;display:grid;place-items:center;min-width:19px;height:19px;border-radius:50%;background:#242724;color:#fff;font-size:.52rem;font-style:normal}
.messages-conversation{display:flex;min-width:0;min-height:0;height:100%;overflow:hidden;flex-direction:column;background:#f8f9f6}
.messages-conversation-header{display:flex;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid #dce0da;background:#fff}.messages-conversation-header h2{margin:3px 0 5px;font-size:1.36rem;letter-spacing:-.025em}.messages-conversation-header p:not(.ops-eyebrow){margin:0 0 6px;color:#535a53;font-size:.71rem}.messages-conversation-header small{color:#747b74;font-size:.61rem}.messages-conversation-header label{display:grid;align-self:start;gap:6px;color:#666d66;font-size:.57rem;font-weight:800;text-transform:uppercase}.messages-conversation-header select{border:1px solid #cbd0ca;border-radius:9px;background:#fff;padding:9px 10px;color:#303530;font:inherit;font-size:.65rem;text-transform:none}
.messages-timeline{display:flex;min-height:0;flex:1;flex-direction:column;gap:13px;overflow-y:auto;padding:24px}
.message-bubble{align-self:flex-start;width:min(78%,540px);border:1px solid #dce0da;border-radius:5px 14px 14px 14px;background:#fff;padding:14px 16px;box-shadow:0 5px 16px #1e281f08}.message-bubble.outbound{align-self:flex-end;border-color:#c6d9c8;border-radius:14px 5px 14px 14px;background:#e5f0e5}.message-bubble>div{display:flex;justify-content:space-between;gap:12px}.message-bubble strong{font-size:.67rem}.message-bubble div span{color:#737a73;font-size:.54rem}.message-bubble p{margin:9px 0 8px;color:#303630;font-size:.75rem;line-height:1.55}.message-bubble>small{color:#666d66;font-size:.53rem;text-transform:capitalize}.message-bubble>small.failed{color:#b44334;font-weight:800}.message-bubble>a{display:grid;gap:5px;margin:9px 0;color:#3d463e;font-size:.59rem;text-decoration:none}.message-bubble img{width:180px;max-height:140px;border-radius:9px;object-fit:cover}
.messages-reply{position:relative;z-index:2;display:grid;grid-template-columns:120px minmax(0,1fr);flex:0 0 auto;gap:10px;padding:14px 20px;border-top:2px solid #c7cfc6;background:#fff;box-shadow:0 -8px 20px #2632290c}.messages-reply:before{content:"Write a message";position:absolute;top:-24px;left:20px;border:1px solid #c7cfc6;border-bottom:0;border-radius:8px 8px 0 0;background:#fff;padding:6px 10px;color:#414941;font-size:.55rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.messages-reply label{display:grid;gap:6px;color:#626a62;font-size:.56rem;font-weight:800;text-transform:uppercase}.messages-reply select,.messages-reply textarea{box-sizing:border-box;width:100%;border:1px solid #9fa99f;border-radius:9px;background:#fff;padding:10px 11px;color:#2e342e;font:inherit;font-size:.72rem;line-height:1.35}.messages-reply select:focus,.messages-reply textarea:focus{border-color:#596c5c;outline:3px solid #dfe8df}.messages-reply textarea{min-height:68px;resize:none}.messages-reply>div{grid-column:1/3;display:flex;align-items:center;justify-content:space-between;gap:15px}.messages-reply small{color:#707770;font-size:.57rem}.messages-reply button,.messages-simulator button{border:0;border-radius:9px;background:#232623;color:#fff;padding:10px 15px;font-size:.64rem;font-weight:800;cursor:pointer}
.messages-simulator{display:flex;align-items:end;justify-content:flex-end;gap:9px;padding:10px 20px;border-top:1px dashed #d1d5d0;background:#f3f4f1}.messages-simulator label{display:grid;gap:4px;color:#6f766f;font-size:.53rem;font-weight:800;text-transform:uppercase}.messages-simulator select{border:1px solid #cbd0ca;border-radius:8px;background:#fff;padding:8px;color:#343a34;font:inherit;font-size:.61rem;text-transform:none}.messages-simulator button{background:#687068}
.messages-empty,.messages-empty-state{display:grid;place-items:center;align-content:center;gap:7px;min-height:180px;padding:25px;color:#858b85;text-align:center}.messages-empty strong,.messages-empty-state h2{margin:0;color:#444944;font-size:.84rem}.messages-empty span,.messages-empty-state p{margin:0;font-size:.61rem}.messages-empty-state{height:100%;box-sizing:border-box}.messages-empty-state>span{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#e7ece5;color:#45604a;font-size:1.1rem}
@media(max-width:1100px){.messages-workspace{grid-template-columns:350px minmax(500px,1fr);overflow-x:auto}.messages-main{padding-right:0}.messages-simulation-badge{display:none}}
.ops-retention-warning{margin-top:14px;border:1px solid #e0c578;border-radius:12px;background:#fff7dc;padding:15px;color:#5e4917}.ops-retention-warning strong{font-size:.76rem}.ops-retention-warning p{margin:7px 0 11px;font-size:.64rem;line-height:1.5}.ops-retention-warning>label{display:flex;align-items:flex-start;gap:8px;font-size:.61rem;font-weight:750}.ops-retention-warning input{margin-top:2px}.ops-retention-warning.cancellation{border-color:#cbdacb;background:#f0f6ef;color:#304d35}.ops-retention-warning>div{display:flex;flex-wrap:wrap;gap:8px}.ops-retention-warning button{border:1px solid #9eb69f;border-radius:8px;background:#fff;padding:9px 11px;color:#304d35;font-size:.59rem;font-weight:800;cursor:pointer}.ops-retention-warning button:last-child{border-color:#d2d7d1;background:transparent;color:#666c66}

/* Calendar appointment workspace: calm, scan-first hierarchy */
.ops-dialog-panel{display:flex;width:min(560px,96vw);overflow:hidden;padding:0;flex-direction:column;background:#fff}
.ops-dialog-topbar{position:sticky;top:0;z-index:20;display:flex;min-height:72px;box-sizing:border-box;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-bottom:1px solid #e7e9e6;background:#fff}
.ops-dialog-close{position:static;flex:0 0 auto;width:40px;height:40px;border:0;background:#f2f3f1!important;font-size:1.5rem;line-height:1}
.ops-dialog-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ops-dialog-header-actions:empty{min-height:40px}
.ops-dialog-header-actions .ops-drawer-actions-menu{margin:0}.ops-dialog-header-actions .ops-actions-popover{top:47px}
.ops-header-edit-button,.ops-header-save-button,.ops-header-cancel-button{min-height:40px;border-radius:999px;padding:9px 18px;font-size:.73rem;font-weight:850}
.ops-header-edit-button,.ops-header-cancel-button{border:1px solid #dfe1dd;background:#f2f3f1!important;color:#2b2e2a!important}.ops-header-save-button{background:#202320!important;color:#fff!important}
.ops-dialog-body{min-height:0;overflow-y:auto;padding:28px 30px 44px}
.ops-dialog-body>#dialog-status{margin:0 0 7px;color:#6e756e;font-size:.62rem;letter-spacing:.11em}
.ops-dialog-panel h2{margin:0 0 24px;color:#20231f;font-size:1.72rem;letter-spacing:-.035em;line-height:1.1}
.ops-visit-overview{display:grid;grid-template-columns:1fr auto;gap:5px 14px;margin-bottom:18px;padding:20px;border:1px solid #e2e5e0;border-radius:14px;background:#fbfcfa}
.ops-visit-overview>.ops-status-pill{grid-column:1/3;justify-self:start}.ops-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#eaf3eb;color:#2e6b3b;font-size:.57rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.ops-visit-overview>.ops-new-client-pill{position:absolute;top:19px;right:19px;display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#fff5ca;color:#73540b;font-size:.57rem;font-weight:900}.ops-visit-overview{position:relative}
.ops-message-customer-button.disabled{cursor:not-allowed;opacity:.65}
.ops-status-pill.pending{background:#fff2d7;color:#825b0b}.ops-status-pill.canceled,.ops-status-pill.no-show{background:#f6e8e6;color:#93463d}.ops-status-pill.completed{background:#edf0ec;color:#606760}
.ops-visit-overview>strong{margin-top:9px;font-size:1.18rem;letter-spacing:-.02em}.ops-visit-overview>p{grid-column:1/3;margin:0;color:#555c55;font-size:.74rem}
.ops-visit-overview>div{grid-column:1/3;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e4e7e2;color:#777e77;font-size:.62rem}.ops-visit-overview>div b{color:#303530;font-size:.68rem}
.ops-customer-contact,.ops-context-section{margin-top:22px;padding-top:22px;border-top:6px solid #f2f3f1}
.ops-customer-contact .ops-section-title-row,.ops-context-section>.ops-section-title-row{margin-bottom:12px}
.ops-customer-contact h3,.ops-context-section h3,.ops-editor-section h3{margin:0;color:#242724;font-size:.98rem;letter-spacing:-.015em}
.ops-section-title-row>a{color:#3e5d46;font-size:.67rem;font-weight:800}
.ops-section-title-row>span{display:grid;min-width:24px;height:24px;place-items:center;border-radius:999px;background:#eff1ed;color:#626862;font-size:.58rem;font-weight:850}
.ops-compact-details{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}.ops-compact-details>div{display:grid;grid-template-columns:1fr;gap:4px;padding:0;border:0}.ops-compact-details dt{font-size:.57rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.ops-compact-details dd{overflow-wrap:anywhere;font-size:.75rem;font-weight:700}
.ops-appointment-primary-actions{margin:0 0 18px}.ops-appointment-primary-actions>a,.ops-appointment-primary-actions>button{min-height:42px;border-radius:10px;font-size:.68rem}
.ops-visit-list{gap:0;border-top:1px solid #e7e9e6}.ops-visit-service{border:0;border-bottom:1px solid #e7e9e6;border-radius:0;padding:15px 0}
.ops-visit-service.focused{margin:5px 0;border:1px solid #91aa83;border-radius:11px;padding:14px;box-shadow:0 0 0 3px #e8f0e4}
.ops-visit-service-heading{align-items:flex-start}.ops-visit-service-heading>div{display:grid;gap:3px}.ops-visit-service-heading strong{font-size:.82rem}.ops-visit-service-heading>span{font-size:.78rem;font-weight:800}.ops-visit-service p,.ops-visit-service time{font-size:.66rem}
.ops-contributor-summary{margin:11px 0 0!important;padding-top:10px;border-top:1px dashed #dfe2dc}.ops-contributor-summary summary{color:#496451;cursor:pointer;font-size:.63rem;font-weight:850;list-style:none}.ops-contributor-summary summary::-webkit-details-marker{display:none}.ops-contributor-summary summary:after{float:right;content:"⌄"}.ops-contributor-summary[open] summary:after{transform:rotate(180deg)}
.ops-contributor-summary>div{display:grid;gap:7px;margin-top:10px}.ops-contributor-summary span{display:grid;grid-template-columns:minmax(105px,1fr) auto;gap:5px 8px;color:#646b64;font-size:.64rem}.ops-contributor-summary span b{color:#303530;text-align:right}
.ops-inline-edit{width:auto;margin-top:10px;border:0;background:#eff2ed!important;color:#3d5743!important;font-weight:800}
.ops-visit-totals{margin:14px 0 0}.ops-visit-totals>div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;color:#666d66;font-size:.7rem}.ops-visit-totals dd{margin:0;color:#2b2f2b;font-weight:800}.ops-visit-totals .total{margin-top:3px;padding-top:12px;border-top:1px solid #dfe2dd;color:#242724;font-size:.8rem;font-weight:850}
.ops-client-note{padding:12px 0}.ops-client-note p{font-size:.72rem;line-height:1.55}.ops-note-form{grid-template-columns:1fr;margin-top:12px}.ops-note-form textarea{min-height:76px;background:#fbfcfa;font:inherit;font-size:.7rem}.ops-note-form button{justify-self:end;width:auto;border-radius:9px}
.ops-history-section{padding-bottom:2px}.ops-history-card{padding:13px 0}.ops-history-card strong{font-size:.77rem}.ops-history-card.upcoming>div strong{color:#24723a}.ops-history-card>div span{border-radius:999px;background:#eff1ed;padding:4px 7px;font-size:.54rem;font-weight:800}.ops-history-card.upcoming>div span{background:#e7f3e9;color:#28693a}.ops-history-card time,.ops-history-card p,.ops-empty-compact{font-size:.65rem;line-height:1.5}

/* Cleaner appointment editor */
.owner-review-lines{margin:18px 0;border:1px solid #e2c98a;border-radius:12px;background:#fffaf0}
.owner-review-lines>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;cursor:pointer;color:#58451d}
.owner-review-lines>summary strong{font-size:.76rem}.owner-review-lines>summary span{font-size:.58rem}
.owner-review-lines[open]>summary{border-bottom:1px solid #ead9ad}
.staff-welcome-actions{display:grid;justify-items:stretch;gap:9px;min-width:250px}.staff-welcome-actions .staff-primary-button{width:100%;min-height:64px;padding:16px 26px;font-size:1rem;line-height:1.15;box-shadow:0 5px 16px #17331f24;touch-action:manipulation}
.staff-location-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-6px 0 18px;border:1px solid #d9e5d7;border-radius:10px;background:#f4f8f2;padding:11px 14px;color:#405746}
.staff-location-note strong{font-size:.63rem}.staff-location-note span{font-size:.57rem;line-height:1.4;text-align:right}
@media(max-width:700px){.staff-welcome-card{align-items:stretch;flex-direction:column}.staff-welcome-actions{width:100%;min-width:0}.staff-welcome-actions .staff-primary-button{width:100%;min-height:64px;font-size:1rem}.staff-location-note{align-items:flex-start;flex-direction:column}.staff-location-note span{text-align:left}}

/* Owner content never renders before server-verified authorization. */
.owner-access-gate{display:none;min-height:100vh;box-sizing:border-box;place-items:center;padding:24px;background:#f4f3ee}
.ops-access-gate{display:none;min-height:100vh;box-sizing:border-box;place-items:center;padding:24px;background:#f4f3ee}
.ops-auth-pending .ops-access-gate{display:grid}
.ops-auth-pending .ops-shell{display:none}
.owner-auth-pending .owner-access-gate,.owner-auth-denied .owner-access-gate{display:grid}
.owner-auth-pending .owner-shell,.owner-auth-denied .owner-shell{display:none}
.owner-access-gate-card{width:min(520px,100%);box-sizing:border-box;border:1px solid #deded7;border-radius:22px;background:#fff;padding:42px;text-align:center;box-shadow:0 24px 70px #2a2a240f}
.owner-access-gate-card>span{display:grid;width:54px;height:54px;margin:0 auto 22px;place-items:center;border-radius:50%;background:#1f211f;color:#fff;font:28px Georgia,serif}
.owner-access-gate-card.denied>span{background:#9a493d;font:800 24px Inter,ui-sans-serif,sans-serif}
.owner-access-gate-card h1{margin:7px 0 12px;font-size:clamp(1.8rem,5vw,2.7rem);letter-spacing:-.045em}
.owner-access-gate-card>p:last-of-type{margin:0 auto;color:#6e716c;line-height:1.6}
.owner-access-gate-card>div{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.owner-access-gate-card a{border:1px solid #d7dad5;border-radius:10px;background:#fff;padding:12px 16px;color:#303330;font-size:.78rem;font-weight:800;text-decoration:none}
.owner-access-gate-card a:first-child{border-color:#242724;background:#242724;color:#fff}

/* Cleaner appointment editor */
.ops-visit-editor{gap:18px}.ops-editor-guidance{border:1px solid #dce6da;border-radius:12px;background:#f5f9f4;padding:15px}.ops-editor-guidance strong{font-size:.76rem}.ops-editor-guidance p{margin:5px 0 0;color:#667066;font-size:.67rem;line-height:1.5}
.ops-editor-section{display:grid;gap:12px;padding-top:20px;border-top:1px solid #e5e8e3}.ops-editor-section:first-of-type{padding-top:0;border-top:0}
.ops-visit-edit-card{margin-bottom:10px;border:1px solid #dfe3dd;border-radius:12px;background:#fff;padding:16px}.ops-edit-card-heading>div{display:grid;gap:2px}.ops-edit-card-heading span{color:#828882;font-size:.55rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.ops-edit-card-heading strong{font-size:.87rem}
.ops-edit-service-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 92px}.ops-visit-editor input,.ops-visit-editor select{min-height:42px;box-sizing:border-box;border-color:#d5dad3;border-radius:9px}
.ops-contributor-editor{margin-top:14px;padding-top:0;border:1px solid #e2e5e0;border-radius:10px;background:#f8f9f7}.ops-contributor-editor>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;cursor:pointer;list-style:none}.ops-contributor-editor>summary::-webkit-details-marker{display:none}.ops-contributor-editor>summary span{display:grid;gap:3px}.ops-contributor-editor>summary strong{font-size:.68rem}.ops-contributor-editor>summary small{color:#747b74;font-size:.57rem}.ops-contributor-editor>summary b{color:#3f6048;font-size:.61rem}
.ops-contributor-editor-body{padding:0 12px 12px;border-top:1px solid #e0e3de}.ops-contributor-heading{margin-top:12px}.ops-editor-summary{border:1px solid #d8e1d5;border-radius:11px;background:#f0f6ee;padding:15px}.ops-editor-summary strong{font-size:1.08rem}.ops-editor-footer-actions{margin-top:4px}
@media(max-width:700px){.ops-dialog-panel{width:100vw}.ops-dialog-topbar{min-height:64px;padding:11px 14px}.ops-dialog-body{padding:22px 18px 38px}.ops-dialog-panel h2{font-size:1.45rem}.ops-compact-details{grid-template-columns:1fr}.ops-appointment-primary-actions{grid-template-columns:1fr 1fr}.ops-edit-service-grid{grid-template-columns:1fr}.ops-contributor-row{grid-template-columns:1fr 1fr}.ops-compact-datetime-grid{grid-template-columns:1fr}.ops-compact-time-picker{grid-template-columns:68px 8px 68px minmax(78px,1fr)}.ops-header-edit-button,.ops-header-save-button,.ops-header-cancel-button{padding-inline:13px}}
