.connected-telegram-card{appearance:none;width:100%;font:inherit;text-align:left;cursor:pointer;position:relative;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.connected-telegram-card:hover,.connected-telegram-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 48%,var(--line));box-shadow:0 12px 28px color-mix(in srgb,var(--primary) 12%,transparent);outline:none}.connected-telegram-card span{display:block;margin-top:10px;color:var(--primary);font-size:10px;font-weight:750}.telegram-connections-sheet{width:min(680px,calc(100vw - 32px));max-height:min(82dvh,760px);overflow:hidden}.telegram-connections-list{display:grid;gap:9px;max-height:60dvh;overflow:auto;padding:2px 3px 6px}.telegram-connection-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface-muted)}.telegram-connection-avatar{display:grid;width:46px;height:46px;place-items:center;border-radius:14px;background:linear-gradient(145deg,var(--primary),color-mix(in srgb,var(--primary) 72%,#9b7cff));color:#fff;font-size:13px;font-weight:800}.telegram-connection-person strong,.telegram-connection-person small{display:block}.telegram-connection-person strong{color:var(--text);font-size:13px}.telegram-connection-person small{margin-top:4px;color:var(--muted);font-size:10px}.telegram-connection-status{padding:7px 10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-size:9px;font-weight:800}.telegram-connections-loading,.telegram-connections-empty{padding:42px 20px;text-align:center;color:var(--muted)}@media(max-width:600px){.telegram-connections-sheet{width:calc(100vw - 20px);max-height:88dvh}.telegram-connections-list{max-height:68dvh}.telegram-connection-row{grid-template-columns:42px minmax(0,1fr);gap:10px}.telegram-connection-avatar{width:42px;height:42px}.telegram-connection-status{grid-column:2;justify-self:start}.connected-telegram-card span{font-size:9px}}
:root {
  --app-safe-top:max(env(safe-area-inset-top),var(--tg-content-safe-top,0px));
  --app-safe-right:max(env(safe-area-inset-right),var(--tg-content-safe-right,0px));
  --app-safe-bottom:max(env(safe-area-inset-bottom),var(--tg-content-safe-bottom,0px));
  --app-safe-left:max(env(safe-area-inset-left),var(--tg-content-safe-left,0px));
  --bg: #f5f5f7;
  --surface: rgba(255,255,255,.88);
  --surface-solid: #fff;
  --surface-muted:#fafafa;
  --surface-hover:#f7f5ff;
  --card-text-base:#111;
  --text: #17171c;
  --muted: #777780;
  --line: #e9e9ed;
  --primary: #6557eb;
  --primary-dark: #5648dd;
  --violet-soft: #eeeafd;
  --green: #31a875;
  --green-soft: #e7f7f0;
  --blue: #4586dd;
  --blue-soft: #e9f2fd;
  --amber: #e89b38;
  --amber-soft: #fdf2df;
  --rose: #e06073;
  --rose-soft: #fdecef;
  --shadow: 0 1px 2px rgba(20,20,30,.03), 0 12px 32px rgba(34,34,55,.045);
  --radius: 20px;
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.notification-sound-test {
  margin:10px 14px 12px;
  padding:9px 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  font:inherit;
  font-size:8px;
  font-weight:700;
  cursor:pointer;
}
.notification-sound-test:disabled { opacity:.55;cursor:wait; }

.product-commission-basis{align-self:start;margin-bottom:10px}

.tips-payment-control{display:grid;grid-template-columns:minmax(105px,auto) minmax(0,1fr);align-items:center;gap:8px}.tips-payment-control select{min-width:0;height:42px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink);padding:0 12px;font:inherit}.tips-payment-control small{grid-column:1/-1;color:var(--muted)}.compact-payment-section .tips-field{grid-template-columns:minmax(0,.75fr) minmax(140px,.55fr) minmax(260px,1fr)}
@media(max-width:700px){.compact-payment-section .tips-field{grid-template-columns:1fr}.tips-payment-control{grid-template-columns:minmax(105px,.55fr) minmax(0,1fr)}}
.backup-settings{border:1px solid var(--line);border-radius:15px;background:var(--surface-muted);overflow:hidden}.backup-settings summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;cursor:pointer;list-style:none}.backup-settings summary::-webkit-details-marker{display:none}.backup-settings summary span{display:grid;gap:4px}.backup-settings summary strong{font-size:11px}.backup-settings summary small,.backup-warning{color:var(--muted);font-size:8px}.backup-settings summary svg{width:15px;height:15px;fill:none;stroke:currentColor;transition:transform .2s}.backup-settings[open] summary svg{transform:rotate(180deg)}.backup-settings-content{display:grid;gap:14px;padding:16px;border-top:1px solid var(--line)}.backup-status{padding:12px;border-radius:12px;background:var(--surface);font-size:9px;line-height:1.5}.backup-status strong{display:block;margin-bottom:3px}.backup-actions{display:flex;flex-wrap:wrap;gap:8px}.backup-warning{margin:0;line-height:1.5}

.staff-access-hint{margin:-4px 0 14px;color:var(--muted);font-size:12px;line-height:1.45}
.staff-crm-access[hidden],.staff-access-hint[hidden]{display:none!important}

html[data-theme="dark"]{
  color-scheme:dark;
  --bg:#111217;--surface:rgba(29,30,38,.9);--surface-solid:#1d1e26;--text:#f4f4f7;
  --surface-muted:#181920;--surface-hover:#272832;--card-text-base:#f4f4f7;
  --muted:#a1a2ad;--line:#343640;--primary:#8579ff;--primary-dark:#7467f2;
  --violet-soft:#2c2947;--green-soft:#183b30;--blue-soft:#192f49;--amber-soft:#49341d;
  --rose-soft:#48262d;--shadow:0 1px 2px rgba(0,0,0,.2),0 16px 38px rgba(0,0,0,.22);
}

* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; color: var(--text); background: var(--bg); min-height: 100vh; -webkit-font-smoothing: antialiased; }
html.telegram-mini-app,html.telegram-mini-app body{overscroll-behavior-y:none;background:var(--bg)}html.telegram-mini-app body{min-height:var(--tg-viewport-height,100dvh)}html.telegram-fullscreen .topbar{height:62px;padding-top:0}html.telegram-fullscreen .sidebar{padding-top:24px}
.page>.page-heading>div:first-child,.page>:not(.page-heading):not(.calendar-toolbar):not(.calendar-card){
  zoom:var(--ui-scale,1);
}
.page>:not(.page-heading):not(.calendar-toolbar):not(.calendar-card){
  width:calc(100% / var(--ui-scale,1));
  max-width:none;
}
body.auth-locked { overflow: hidden; }
body.auth-locked .app-shell, body.auth-locked .mobile-nav { display: none; }
body.auth-checking .auth-gate{background:var(--bg)}
body.auth-checking .auth-card{display:none}
button, input, select { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.app-shell { display: flex; min-height: 100vh; }
.auth-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 0,#eeecff 0,transparent 45%),#f5f5f7}
.auth-gate[hidden]{display:none}.auth-card{width:min(430px,100%);padding:30px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 30px 90px rgba(40,35,80,.12);backdrop-filter:blur(24px)}
.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:34px}.auth-brand>div{display:grid}.auth-brand strong{font-size:18px}.auth-brand small{margin-top:2px;color:var(--muted);font-size:9px}.auth-heading{margin-bottom:22px}.auth-heading h1{margin:4px 0 7px;font-size:24px;letter-spacing:-.8px}.auth-heading span{display:block;color:var(--muted);font-size:10px;line-height:1.6}.auth-submit{width:100%;height:46px;margin-top:5px}.auth-error{min-height:16px;margin:13px 0 0;color:var(--rose);font-size:9px;text-align:center}
.auth-text-button{display:block;margin:0 0 8px auto;padding:2px 0;border:0;background:transparent;color:var(--primary);font:inherit;font-size:9px;font-weight:750;cursor:pointer}.auth-text-button:hover{text-decoration:underline}.auth-back-button{margin:13px auto 0}.auth-error.success{color:var(--green)}
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; width: 232px; padding: 24px 14px 18px; display: flex; flex-direction: column; background: rgba(250,250,251,.92); backdrop-filter: blur(24px); border-right: 1px solid var(--line);transition:transform .28s cubic-bezier(.2,.8,.2,1); }
.brand { width:100%;display: flex; align-items: center; gap: 11px; padding: 0 10px 28px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 13px; box-shadow: 0 8px 20px rgba(81,39,190,.25); overflow:hidden; flex:0 0 auto; }
.brand-mark img{display:block;width:100%;height:100%}
.brand-name { font-size: 20px; font-weight: 700; letter-spacing: -.7px; }
.main-nav { display: grid; gap: 3px; }
.nav-item { position: relative; border: 0; background: transparent; border-radius: 12px; display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; color: #73737c; cursor: pointer; text-align: left; font-weight: 500; font-size: 13px; transition: .18s ease; }
.nav-item svg { width: 19px; height: 19px; }
.nav-item:hover { background: #f0eff5; color: #303039; }
.nav-item.active { color: var(--primary); background: var(--violet-soft); font-weight: 600; }
.nav-badge { margin-left: auto; min-width: 20px; height: 20px; padding: 0 6px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); color: white; font-size: 10px; }
.sidebar-bottom { margin-top: auto; }
.sidebar-calculator{margin-top:auto;padding:9px;border:1px solid var(--line);border-radius:16px;background:var(--surface-solid);box-shadow:0 8px 24px rgba(40,35,80,.06)}.sidebar-calculator+.sidebar-bottom{margin-top:8px}.sidebar-calc-switches{display:grid;grid-template-columns:1.2fr .8fr;gap:5px}.sidebar-calc-toggle{display:grid;grid-template-columns:1fr 1fr;padding:2px;border-radius:9px;background:var(--surface-muted)}.sidebar-calc-toggle button{height:25px;padding:0 4px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:7px;font-weight:750;cursor:pointer}.sidebar-calc-toggle.entry-type [data-calc-type=expense].active{background:#fff0f2;color:#d95166}.sidebar-calc-toggle.entry-type [data-calc-type=income].active,.sidebar-calc-toggle.payment-type [data-calc-payment=cash].active{background:#eaf8f2;color:#24956f}.sidebar-calc-toggle.payment-type [data-calc-payment=card].active{background:#edf4ff;color:#377fd4}.sidebar-calculator output{display:block;min-height:39px;padding:8px 3px 5px;text-align:right;font-size:22px;font-weight:800;letter-spacing:-.7px;overflow:hidden}.sidebar-calculator output::after{content:" ₴";font-size:10px;color:var(--muted)}.sidebar-calc-keypad{display:grid;grid-template-columns:31px 1fr;gap:3px}.sidebar-calc-operators{display:grid;grid-template-rows:repeat(4,29px);gap:3px}.sidebar-calc-operators button{border:0;border-radius:7px;background:#eaf2fb;color:#367fb2;font-size:15px;font-weight:800;cursor:pointer}.sidebar-calc-operators button.active{background:#367fb2;color:#fff}.sidebar-calc-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.sidebar-calc-keys button{height:29px;border:0;border-radius:7px;background:var(--surface-muted);font-size:11px;font-weight:700;cursor:pointer}.sidebar-calc-keys button:hover{background:var(--violet-soft);color:var(--primary)}.sidebar-calc-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:7px}.sidebar-calc-category{min-height:29px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);font-size:7px;font-weight:700;line-height:1.15;cursor:pointer}.sidebar-calc-category:hover{border-color:var(--primary);color:var(--primary)}.sidebar-calc-more{grid-column:1/-1;height:20px;border:0;background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}
.sidebar-calc-categories.product-search-open{display:block}.sidebar-calc-product-search{padding:3px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:10px;background:var(--surface-solid)}.sidebar-calc-product-search>div{display:flex;gap:3px}.sidebar-calc-product-search input{min-width:0;width:100%;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface-muted);color:var(--text);font-size:8px;outline:none}.sidebar-calc-product-search input:focus{border-color:var(--primary)}.sidebar-calc-product-search>div button{width:28px;border:0;border-radius:7px;background:var(--surface-muted);color:var(--muted);cursor:pointer}.sidebar-calc-product-search section{max-height:210px;margin-top:4px;overflow:auto;overscroll-behavior:contain}.sidebar-calc-product-search section>strong{display:block;padding:6px 7px 3px;color:var(--muted);font-size:6px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.sidebar-calc-product-search section button{width:100%;display:grid;gap:2px;padding:7px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer}.sidebar-calc-product-search section button:hover{background:var(--violet-soft)}.sidebar-calc-product-search section span{font-size:8px;font-weight:750}.sidebar-calc-product-search section small,.sidebar-calc-product-search section p{margin:0;color:var(--muted);font-size:7px}.sidebar-calc-product-search section p{padding:10px;text-align:center}.sidebar-calc-search-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:2px 3px 5px}.sidebar-calc-product-search section .sidebar-calc-search-categories button{min-height:28px;padding:5px;border:1px solid var(--line);border-radius:7px;font-size:7px;font-weight:700;text-align:center}
.sidebar-calc-product-match{display:grid;align-content:center;gap:2px;overflow:hidden}.sidebar-calc-product-match span{overflow:hidden;text-overflow:ellipsis}.sidebar-calc-product-match small{color:var(--muted);font-size:6px;font-weight:650}
.sidebar-calculator{position:relative}.sidebar-calc-close,.sidebar-calc-categories-title{display:none}.sidebar-calculator output{cursor:zoom-in}.sidebar-calculator output:focus-visible{outline:2px solid color-mix(in srgb,var(--primary) 55%,transparent);outline-offset:2px;border-radius:6px}.sidebar-calc-backdrop{position:fixed;z-index:10050;inset:0;display:grid;place-items:center;padding:24px;background:rgba(18,18,28,.46);backdrop-filter:blur(7px);animation:sidebarCalcBackdropIn .18s ease-out}.sidebar-calc-backdrop[hidden]{display:none}.sidebar-calculator-modal-open{overflow:hidden}.sidebar-calculator.expanded{width:min(620px,calc(100vw - 36px));max-height:calc(100dvh - 36px);margin:0;padding:26px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:28px;overflow:auto;background:var(--surface-solid);box-shadow:0 34px 110px rgba(22,20,55,.34);animation:sidebarCalcOpen .2s cubic-bezier(.2,.8,.2,1)}.sidebar-calculator.expanded .sidebar-calc-close{position:absolute;z-index:2;top:12px;right:12px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface-muted);color:var(--muted);font-size:20px;cursor:pointer}.sidebar-calculator.expanded .sidebar-calc-switches{grid-template-columns:1.2fr .8fr;gap:10px;padding-right:30px}.sidebar-calculator.expanded .sidebar-calc-toggle{padding:4px;border-radius:14px}.sidebar-calculator.expanded .sidebar-calc-toggle button{height:44px;border-radius:11px;font-size:12px}.sidebar-calculator.expanded output{min-height:82px;padding:18px 5px 10px;font-size:48px;cursor:default}.sidebar-calculator.expanded output::after{font-size:18px}.sidebar-calculator.expanded .sidebar-calc-keypad{grid-template-columns:58px 1fr;gap:8px}.sidebar-calculator.expanded .sidebar-calc-operators{grid-template-rows:repeat(4,60px);gap:7px}.sidebar-calculator.expanded .sidebar-calc-operators button{border-radius:14px;font-size:25px}.sidebar-calculator.expanded .sidebar-calc-keys{gap:7px}.sidebar-calculator.expanded .sidebar-calc-keys button{height:60px;border-radius:14px;font-size:20px}.sidebar-calculator.expanded .sidebar-calc-categories{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.sidebar-calculator.expanded .sidebar-calc-categories-title{display:block;grid-column:1/-1;margin-bottom:2px;color:var(--muted);font-size:11px}.sidebar-calculator.expanded .sidebar-calc-category{min-height:52px;padding:9px;border-radius:13px;font-size:11px}.sidebar-calculator.expanded .sidebar-calc-product-match small{font-size:8px}.sidebar-calculator.expanded .sidebar-calc-more{height:42px;border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:12px;font-size:11px;font-weight:750}.sidebar-calculator.expanded .sidebar-calc-product-search{padding:9px;border-radius:15px}.sidebar-calculator.expanded .sidebar-calc-product-search input{height:42px;font-size:12px}.sidebar-calculator.expanded .sidebar-calc-product-search>div button{width:42px;font-size:18px}.sidebar-calculator.expanded .sidebar-calc-product-search section{max-height:36dvh}.sidebar-calculator.expanded .sidebar-calc-product-search section>strong{font-size:9px}.sidebar-calculator.expanded .sidebar-calc-product-search section button{padding:11px;font-size:11px}.sidebar-calculator.expanded .sidebar-calc-product-search section span{font-size:11px}.sidebar-calculator.expanded .sidebar-calc-product-search section small,.sidebar-calculator.expanded .sidebar-calc-product-search section p{font-size:9px}.sidebar-calculator.expanded .sidebar-calc-search-categories{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.sidebar-calculator.expanded .sidebar-calc-product-search section .sidebar-calc-search-categories button{min-height:42px;font-size:10px}@keyframes sidebarCalcBackdropIn{from{opacity:0}to{opacity:1}}@keyframes sidebarCalcOpen{from{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:none}}@media(max-width:650px){.sidebar-calc-backdrop{padding:max(12px,var(--app-safe-top)) max(12px,var(--app-safe-right)) max(12px,var(--app-safe-bottom)) max(12px,var(--app-safe-left))}.sidebar-calculator.expanded{width:100%;max-height:calc(var(--tg-viewport-height,100dvh) - var(--app-safe-top) - var(--app-safe-bottom) - 24px);padding:18px;border-radius:22px}.sidebar-calculator.expanded .sidebar-calc-switches{padding-right:34px}.sidebar-calculator.expanded .sidebar-calc-toggle button{height:40px;font-size:10px}.sidebar-calculator.expanded output{min-height:67px;padding-top:13px;font-size:38px}.sidebar-calculator.expanded .sidebar-calc-keypad{grid-template-columns:50px 1fr}.sidebar-calculator.expanded .sidebar-calc-operators{grid-template-rows:repeat(4,52px)}.sidebar-calculator.expanded .sidebar-calc-keys button{height:52px}.sidebar-calculator.expanded .sidebar-calc-categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sidebar-calculator.expanded .sidebar-calc-category{min-height:44px;font-size:9px}.sidebar-calculator.expanded .sidebar-calc-search-categories{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sidebar-calculator output{white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.sidebar-calculator output::-webkit-scrollbar{display:none}
.profile-mini { display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding: 16px 5px 0; margin-top: 8px; }
.profile-mini div:nth-child(2) { min-width: 0; display: grid; }
.profile-mini strong { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profile-mini span { font-size: 10px; color: var(--muted); margin-top: 2px; }
.profile-mini .icon-button { margin-left: auto; border: 0; }
.avatar { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 13px; display: grid; place-items: center; color: white; font-size: 11px; font-weight: 700; background: linear-gradient(145deg,#b99d86,#876c5b); }
.avatar-owner { background: linear-gradient(145deg,#292934,#555463); }

.main { position:relative;width: calc(100% - 232px); margin-left: 232px; min-width: 0; }
.main{transition:width .28s cubic-bezier(.2,.8,.2,1),margin-left .28s cubic-bezier(.2,.8,.2,1)}.app-shell.sidebar-collapsed .sidebar{transform:translateX(-105%)}.app-shell.sidebar-collapsed .main{width:100%;margin-left:0}.app-shell.sidebar-collapsed .mobile-brand{display:flex;margin-right:auto}.app-shell.sidebar-collapsed .mobile-brand img{width:34px;height:34px;border-radius:11px}.app-shell.sidebar-collapsed .mobile-brand span{display:none}
.topbar { position: relative; z-index: 15; height: 70px; padding: 0 34px; display: flex; align-items: center; justify-content: flex-end; gap:18px; background: rgba(245,245,247,.78); backdrop-filter: blur(22px); border-bottom: 1px solid rgba(228,228,233,.75);transition:height .44s ease,padding .44s ease,background-color .44s ease,box-shadow .44s ease; }
.topbar-actions { position: relative; display: flex; align-items: center; gap: 10px;transition:gap .44s ease,transform .44s ease; }
.telegram-bar-shortcut{display:none}.telegram-bar-shortcut[hidden]{display:none!important}.telegram-bar-shortcut span{font-size:20px;line-height:1}
.topbar-actions>.icon-button,.topbar-actions .scale-control>.icon-button,.topbar-actions>.primary-button{transition-duration:.44s}
.tools-control{position:relative}.tools-toggle{position:relative;border-color:transparent;background:linear-gradient(155deg,#38a4d8,#1777ae);color:#fff;box-shadow:0 7px 18px rgba(24,126,181,.24)}.tools-toggle:hover{filter:brightness(1.05)}.tools-glyph{width:22px;height:20px;display:grid;align-content:space-between}.tools-glyph i{position:relative;display:block;height:8px;border:2px solid #fff;border-radius:999px;background:rgba(255,255,255,.16)}.tools-glyph i::after{content:"";position:absolute;top:50%;width:5px;height:5px;border-radius:50%;transform:translateY(-50%);box-shadow:0 1px 2px rgba(0,0,0,.16)}.tools-glyph i:first-child::after{left:2px;background:#ff4f5f}.tools-glyph i:last-child::after{right:2px;background:#27d17f}.tools-popover{position:absolute;z-index:44;top:calc(100% + 10px);right:0;width:292px;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--surface-solid) 97%,transparent);box-shadow:0 22px 65px rgba(30,30,50,.2);backdrop-filter:blur(22px)}.tools-popover[hidden]{display:none}.tool-action{min-width:0;min-height:74px;display:grid;place-items:center;align-content:center;gap:6px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted);color:var(--text);font:inherit;cursor:pointer;transition:.18s}.tool-action:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--line));background:var(--violet-soft);color:var(--primary)}.tool-action>span{font-size:19px;line-height:1}.tool-action small{font-size:8px;font-weight:750}.tool-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}.tool-action-icon{position:relative;display:grid;place-items:center}.tools-notification-count,.notification-dot{position:absolute;z-index:3;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface-solid);border-radius:999px;background:#f05f70;color:#fff;font-size:8px;font-weight:850;line-height:1}.tools-notification-count{top:-5px;right:-5px}.tool-action .notification-dot{top:-10px;right:-13px}.tools-notification-count.hidden,.notification-dot.hidden{display:none}
.appearance-button span{font-size:19px;line-height:1}.scale-control{position:relative}.scale-control>.icon-button span{font-size:10px;font-weight:800}.scale-popover{position:absolute;z-index:46;top:48px;right:0;width:245px;padding:15px;background:var(--surface-solid);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px rgba(20,20,30,.18)}.scale-popover[hidden]{display:none}.scale-popover>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.scale-popover strong{font-size:10px}.scale-popover output{color:var(--primary);font-size:9px;font-weight:700}.scale-popover input{width:100%;accent-color:var(--primary)}.scale-hints{display:flex;align-items:center;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:7px}.scale-hints button{padding:4px 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface-solid);color:var(--text);font-size:7px;cursor:pointer}
.barista-call-button img{width:30px;height:30px;object-fit:contain}.barista-call-button.sending img{animation:master-bell-ring .55s ease-in-out infinite}.barista-call-button.sent{border-color:#8ad8b6;background:#dff8ec;color:#137a55}
.tools-popover{width:326px;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tools-popover .scale-control{width:100%}.tools-popover .tool-action{width:100%;min-height:72px;padding:8px 6px;gap:5px}.tools-popover .tool-action>span{font-size:18px}.tools-popover .tool-action small{font-size:7.5px;white-space:nowrap}.tools-popover .barista-call-button img{width:15px;height:15px}.tools-popover .notification-button svg{width:10px;height:10px}.tools-popover .tool-action-icon{width:15px;height:15px}.tools-popover .notification-dot{top:-8px;right:-10px;min-width:14px;height:14px;padding:0 3px;border-width:1px;font-size:6px}
.mobile-management-action{display:none}
.interface-language{display:grid!important;gap:9px;margin-top:13px!important;padding-top:13px;border-top:1px solid var(--line)}.interface-language>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.interface-language button{height:31px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:800;cursor:pointer;transition:.16s}.interface-language button:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));color:var(--text)}.interface-language button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 5px 13px color-mix(in srgb,var(--primary) 24%,transparent)}
.icon-button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.8); cursor: pointer; }
.icon-button.tools-toggle{border-color:var(--line);background:rgba(255,255,255,.8);color:#686b73;box-shadow:none}.icon-button.tools-toggle:hover{background:var(--surface-hover);filter:none}.icon-button.tools-toggle .tools-glyph{width:24px;height:20px}.icon-button.tools-toggle .tools-glyph i{height:8px;border:2px solid currentColor;border-radius:999px}.icon-button.tools-toggle .tools-glyph i:first-child{background:transparent}.icon-button.tools-toggle .tools-glyph i:last-child{background:#8f929a}.icon-button.tools-toggle .tools-glyph i::after{width:5px;height:5px;background:#a4a7ae;box-shadow:none}.icon-button.tools-toggle .tools-glyph i:last-child::after{background:#e5e6e9}
.icon-button.small { width: 32px; height: 32px; border-radius: 10px; }
.icon-button.small svg { width: 16px; }
.voice-assistant-button span{font-size:16px;filter:saturate(.7)}
.notification-button { position: relative; }
.notification-button::before,.notification-button::after,.tools-toggle::before,.tools-toggle::after{content:"";position:absolute;z-index:-1;inset:-4px;border:2px solid color-mix(in srgb,var(--primary) 68%,transparent);border-radius:inherit;opacity:0;pointer-events:none}.notification-alert{z-index:2;animation:notificationBellJump .72s cubic-bezier(.2,.9,.25,1) 2}.notification-alert::before{animation:notificationWave 1.55s ease-out 3}.notification-alert::after{animation:notificationWave 1.55s ease-out .42s 3}@keyframes notificationBellJump{0%,100%{transform:translateY(0) rotate(0)}18%{transform:translateY(-7px) rotate(-9deg)}38%{transform:translateY(1px) rotate(7deg)}58%{transform:translateY(-4px) rotate(-5deg)}78%{transform:translateY(0) rotate(3deg)}}@keyframes notificationWave{0%{opacity:.7;transform:scale(.78)}72%,100%{opacity:0;transform:scale(2.05)}}@media(prefers-reduced-motion:reduce){.notification-alert,.notification-alert::before,.notification-alert::after{animation:none}.notification-alert{box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 18%,transparent)}}
.notification-popover{position:absolute;z-index:45;top:calc(100% + 8px);right:0;width:min(390px,calc(100vw - 28px));padding:8px;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 65px rgba(30,30,50,.18);backdrop-filter:blur(22px)}.notification-popover[hidden]{display:none}.notification-popover-head{display:flex;align-items:center;justify-content:space-between;padding:9px 9px 11px}.notification-popover-head>div{display:grid}.notification-popover-head strong{font-size:12px}.notification-popover-head small{margin-top:3px;color:var(--muted);font-size:7px}.notification-feed{display:grid;max-height:430px;overflow:auto}.notification-card{border-top:1px solid var(--line)}.notification-card:first-child{border-top:0}.notification-card.unread{background:var(--surface-hover)}.notification-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;width:100%;padding:10px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.notification-item:hover{background:#f7f6fd;border-radius:11px}.notification-item.unread{background:transparent}.notification-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--violet-soft);color:var(--primary);font-size:13px}.notification-item.move .notification-symbol{background:var(--amber-soft);color:var(--amber)}.notification-item strong{display:block;font-size:9px}.notification-item p{margin:3px 0;color:var(--muted);font-size:7.5px;line-height:1.45}.notification-item time{font-size:6.5px;color:#aaa}.notification-decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 10px 10px 53px}.notification-decision-actions button{min-height:34px;padding:7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:7px;font-weight:800;cursor:pointer}.notification-decision-actions .approve{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--green-soft);color:var(--green)}.notification-decision-actions .reject{border-color:color-mix(in srgb,var(--red) 35%,var(--line));color:var(--red)}.notification-decision-actions button:disabled{opacity:.5;cursor:wait}.notification-empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:9px}
.notification-head-actions{display:flex;align-items:center;gap:5px}.notification-read-all{position:relative;width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface-solid);color:var(--muted);cursor:pointer;transition:.16s}.notification-read-all:hover:not(:disabled){border-color:rgba(49,168,117,.42);background:var(--green-soft);transform:translateY(-1px)}.notification-read-all:disabled{opacity:.35;cursor:default}.notification-read-all svg{width:19px;height:19px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.notification-read-all .notification-read-check-bg{fill:#31a875;stroke:#fff;stroke-width:1.3}.notification-read-all .notification-read-check{stroke:#fff;stroke-width:1.8}.notification-read-all::after{content:attr(data-tooltip);position:absolute;z-index:4;top:calc(100% + 7px);right:0;width:max-content;max-width:190px;padding:6px 8px;border-radius:8px;background:#24242b;color:#fff;font-size:7px;font-weight:700;line-height:1.25;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(-3px);transition:.14s}.notification-read-all:hover:not(:disabled)::after,.notification-read-all:focus-visible:not(:disabled)::after{opacity:1;transform:none}
.menu-button, .mobile-brand, .compact, .header-bookmark-toggle { display: none; }.mobile-brand{padding:0;border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer}.mobile-brand img{width:30px;height:30px;border-radius:10px}.mobile-brand span{font-weight:700}

html[data-theme="dark"] .sidebar{background:rgba(22,23,29,.94)}
.sidebar .sidebar-calculator{width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;border-left:0;border-right:0;border-radius:0}
.staff-client-discounts{margin:8px 0 10px;padding:16px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--violet-soft) 42%,var(--surface-solid))}.staff-profile-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer}.staff-profile-section-heading::-webkit-details-marker{display:none}.staff-profile-section-heading>span{min-width:0}.staff-profile-section-heading strong,.staff-profile-section-heading small{display:block}.staff-client-discounts .staff-profile-section-heading strong{font-size:12px}.staff-client-discounts .staff-profile-section-heading small{margin-top:4px;color:var(--muted);font-size:8px}.staff-profile-section-heading>i{font-style:normal;font-size:18px;color:var(--muted);transition:transform .18s}.staff-client-discounts[open] .staff-profile-section-heading>i,.staff-bonus-model-settings[open] .staff-profile-section-heading>i{transform:rotate(180deg)}.staff-profile-section-heading:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:4px}.staff-discount-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}.staff-discount-slot{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:7px;padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid)}.staff-discount-admin-exclusion{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 5px 1px;border-top:1px solid var(--line);color:var(--muted);font-size:7px;font-weight:750}.staff-discount-admin-exclusion .switch{flex:0 0 auto}.staff-discount-slots b{height:34px;display:grid;place-items:center;border-radius:9px;background:var(--green-soft);color:var(--green);font-size:10px}.staff-discount-slots select{min-width:0;height:34px;padding:0 7px;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:8px}@media(max-width:700px){.staff-discount-slots{grid-template-columns:1fr}}
.staff-discount-picker{position:relative;min-width:0}.staff-discount-picker-button{width:100%;height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px;border:0;border-radius:9px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.staff-discount-picker-button:hover,.staff-discount-picker-button[aria-expanded="true"]{background:var(--surface-muted)}.staff-discount-picker-button strong,.staff-discount-picker-button small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-discount-picker-button strong{font-size:9px}.staff-discount-picker-button small{margin-top:2px;color:var(--muted);font-size:7px}.staff-discount-picker-button i{color:var(--muted);font-style:normal}.staff-discount-picker-popover{position:absolute;z-index:50;top:calc(100% + 8px);left:-49px;width:min(390px,calc(100vw - 40px));padding:7px;border:1px solid var(--line);border-radius:15px;background:var(--surface-solid);box-shadow:0 20px 55px rgba(24,22,45,.2)}.staff-discount-picker-popover[hidden]{display:none}.staff-discount-search{width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:11px;outline:0;background:var(--surface-muted);color:var(--text);font:inherit;font-size:10px}.staff-discount-search:focus{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.staff-discount-results{max-height:280px;margin-top:6px;overflow:auto}.staff-discount-results button{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.staff-discount-results button:first-child{grid-template-columns:minmax(0,1fr)}.staff-discount-results button:hover,.staff-discount-results button:focus{background:var(--surface-muted);outline:0}.staff-discount-results strong,.staff-discount-results small{display:block}.staff-discount-results strong{font-size:9px}.staff-discount-results small{margin-top:2px;color:var(--muted);font-size:7px}.staff-discount-results em{color:var(--primary);font-size:7px;font-style:normal;font-weight:750;white-space:nowrap}.staff-discount-empty{padding:18px;color:var(--muted);font-size:9px;text-align:center}@media(max-width:700px){.staff-discount-picker-popover{position:fixed;z-index:90;top:50%;left:50%;width:calc(100vw - 28px);transform:translate(-50%,-50%)}.staff-discount-results{max-height:52dvh}}
.staff-discount-percent{height:42px;display:grid;grid-template-columns:minmax(0,1fr) 12px;align-items:center;padding:0 4px;border-radius:9px;background:var(--green-soft);color:var(--green)}.staff-discount-percent input{min-width:0;width:100%;padding:0;border:0;outline:0;background:transparent;color:inherit;font:inherit;font-size:10px;font-weight:850;text-align:right}.staff-discount-percent input:focus{border-radius:6px;box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 25%,transparent)}.staff-discount-percent i{font-size:9px;font-style:normal;font-weight:850}
.appointment-check-row,.appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(92px,128px) 30px}
@media(max-width:600px){.appointment-check-row,.appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(74px,94px) 28px}}
html[data-theme="dark"] .topbar{background:rgba(17,18,23,.82);border-bottom-color:var(--line)}
html[data-theme="dark"] .icon-button,html[data-theme="dark"] .secondary-button,html[data-theme="dark"] .select-button,
html[data-theme="dark"] .modal-sheet,html[data-theme="dark"] .cancelled-row,html[data-theme="dark"] .week-master-filter button,
html[data-theme="dark"] .month-day,html[data-theme="dark"] .week-time-slot,html[data-theme="dark"] .planner-slot{background:var(--surface-solid);color:var(--text)}
html[data-theme="dark"] .panel,html[data-theme="dark"] .metric-card,html[data-theme="dark"] .stats-strip{border-color:var(--line)}
html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] textarea,
html[data-theme="dark"] .search,html[data-theme="dark"] .week-master-filter,html[data-theme="dark"] .cancelled-date-toolbar{background:#181920;color:var(--text)}
html[data-theme="dark"] .day-calendar,html[data-theme="dark"] .week-time-grid,html[data-theme="dark"] .month-planner{background:var(--surface-solid)}
html[data-theme="dark"] .day-corner,html[data-theme="dark"] .master-column-head,html[data-theme="dark"] .week-time-corner,
html[data-theme="dark"] .week-time-head{background:rgba(29,30,38,.97)}
html[data-theme="dark"] .master-column-head:not(.off-duty){background:color-mix(in srgb,var(--staff-color,#8790A3) 27%,#1d1e26)}
html[data-theme="dark"] .planner-time,html[data-theme="dark"] .week-time-label{background:#181920}
html[data-theme="dark"] .nav-item:hover,html[data-theme="dark"] .month-day:hover,html[data-theme="dark"] .cancelled-row:hover{background:#272832;color:var(--text)}
html[data-theme="dark"] .week-time-slot.off-hours,html[data-theme="dark"] .planner-slot.off-hours,html[data-theme="dark"] .planner-slot.off-shift-slot{background:rgba(145,55,70,.3);border-left-color:rgba(220,99,118,.3)}

.primary-button, .secondary-button, .select-button { border-radius: 12px; min-height: 40px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; font-weight: 600; font-size: 12px; cursor: pointer; transition: .18s ease; white-space: nowrap; }
.danger-button{min-height:40px;padding:0 15px;border:1px solid #f1c4cb;border-radius:12px;background:#fff4f5;color:#c94e60;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.danger-button:hover{background:#fdecef}.danger-button:disabled{opacity:.5}.restore-button{color:var(--green);border-color:#bde5d4}.cancelled-button span{min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:grid;place-items:center;background:var(--rose-soft);color:var(--rose);font-size:8px}
#appointmentModal .modal-actions button[hidden]{display:none!important}
.primary-button { background: var(--primary); color: white; box-shadow: 0 6px 14px rgba(101,87,235,.18); }
.primary-button:hover { background: var(--primary-dark); transform: translateY(-1px); }
.primary-button:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.secondary-button, .select-button { background: var(--surface-solid); border: 1px solid var(--line); color: #4f4f58; box-shadow: 0 1px 1px rgba(0,0,0,.02); }
.secondary-button:hover, .select-button:hover { border-color: #d5d4dc; }
.primary-button svg, .secondary-button svg { width: 16px; height: 16px; }
.select-button { min-height: 34px; padding: 0 11px; font-size: 11px; }
.select-button svg { width: 14px; }
.text-button { border: 0; background: transparent; color: var(--primary); font-size: 11px; font-weight: 600; cursor: pointer; }

.content { max-width: 1480px; margin: 0 auto; padding: 28px 38px 60px; }
.main:has(#page-calendar.active) .content{max-width:none;padding:0}
.page { display: none; animation: pageIn .25s ease; }
.page.active { display: block; }
@keyframes pageIn { from { opacity: 0; transform: translateY(5px); } }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 27px; }
.page-heading h1 { margin: 2px 0 6px; font-size: clamp(25px,2.2vw,34px); line-height: 1.15; letter-spacing: -1.25px; }
.page-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.page-heading .eyebrow, .eyebrow { text-transform: uppercase; letter-spacing: 1.1px; color: var(--primary); font-size: 9px; font-weight: 700; }
.heading-actions { display: flex; gap: 9px; }

.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 14px; }
.metric-card { position: relative; min-height: 132px; display: flex; align-items: flex-start; gap: 13px; padding: 19px; background: var(--surface); border: 1px solid rgba(231,231,236,.9); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.overview-new-clients-card{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.overview-new-clients-card::after{content:"›";position:absolute;right:16px;bottom:12px;color:var(--primary);font-size:19px;font-weight:700;opacity:.7}.overview-new-clients-card:hover,.overview-new-clients-card:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 30%,var(--line));box-shadow:0 16px 36px rgba(55,46,125,.13);outline:0}.overview-new-clients-card:active{transform:translateY(0)}
.metric-icon { flex: 0 0 auto; width: 39px; height: 39px; border-radius: 12px; display: grid; place-items: center; }
.metric-icon svg { width: 18px; }
.violet { background: var(--violet-soft); color: var(--primary); }
.green { background: var(--green-soft); color: var(--green); }
.blue { background: var(--blue-soft); color: var(--blue); }
.amber { background: var(--amber-soft); color: var(--amber); }
.metric-copy { min-width: 0; display: grid; }
.metric-copy > span { color: var(--muted); font-size: 10px; margin: 1px 0 5px; }
.metric-copy strong { font-size: 22px; letter-spacing: -.6px; line-height: 1.2; }
.metric-copy small { margin-top: 8px; font-size: 8.5px; font-style: normal; font-weight: 600; }
.metric-copy small em { color: #9b9ba3; font-style: normal; font-weight: 400; margin-left: 2px; }
.positive { color: var(--green); }
.muted { color: var(--muted); }
.mini-bars { position: absolute; right: 16px; bottom: 19px; height: 32px; display: flex; align-items: flex-end; gap: 3px; }
.mini-bars i { width: 3px; border-radius: 3px; background: #d8d2fb; }
.mini-bars i:nth-child(1){height:28%}.mini-bars i:nth-child(2){height:45%}.mini-bars i:nth-child(3){height:37%}.mini-bars i:nth-child(4){height:72%}.mini-bars i:nth-child(5){height:56%}.mini-bars i:nth-child(6){height:88%;background:var(--primary)}.mini-bars i:nth-child(7){height:70%}
.ring-chart { position: absolute; right: 17px; bottom: 15px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--blue) 0 17%,#e9edf3 17% 100%); }
.ring-chart::after { content:""; position:absolute; inset:5px; border-radius:50%; background:var(--surface-solid); }
.ring-chart span { z-index:1; font-size:7px; font-weight:700; }
.progress { position: absolute; bottom: 20px; left: 70px; right: 18px; height: 5px; border-radius: 4px; background: #efeff2; overflow: hidden; }
.progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#f0b14e,#e38b33); }

.overview-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(280px,.85fr); gap: 14px; margin-bottom: 14px; }
.hourly-insight{display:flex;align-items:center;gap:12px;min-width:0;max-width:900px;flex:1;margin-right:auto;padding:9px 14px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:14px;background:linear-gradient(105deg,color-mix(in srgb,var(--primary) 13%,var(--surface-solid)),var(--surface-solid));box-shadow:0 9px 26px rgba(71,57,180,.1);animation:insight-arrive .45s cubic-bezier(.2,.8,.2,1)}.hourly-insight-icon{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:11px;background:var(--primary);color:#fff;font-size:16px;box-shadow:0 7px 16px rgba(101,87,235,.25)}.hourly-insight>div{min-width:0;flex:1}.hourly-insight small{display:block;margin-bottom:2px;color:var(--primary);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hourly-insight p{margin:0;color:var(--text);font-size:12px;font-weight:700;line-height:1.35}.hourly-insight time{flex:0 0 auto;color:var(--muted);font-size:8px}@keyframes insight-arrive{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}
@media(max-width:768px){.hourly-insight{display:none!important}}
.hourly-insight{max-height:58px;overflow:hidden;padding-top:8px;padding-bottom:8px;cursor:pointer}.hourly-insight p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.hourly-insight.expanded{max-height:none;overflow:visible;align-self:stretch}.hourly-insight.expanded p{display:block;overflow:visible}.topbar.insight-expanded{height:auto;min-height:70px;padding-top:10px;padding-bottom:10px;align-items:flex-start}.topbar.insight-expanded .topbar-actions{margin-top:4px}.appointment-workflow-sheet{overscroll-behavior:contain}body.appointment-modal-open{overflow:hidden;overscroll-behavior:none}@media(max-width:1180px) and (min-width:769px){.topbar{gap:10px;padding-left:18px;padding-right:18px}.hourly-insight{gap:8px;padding-left:10px;padding-right:10px}.hourly-insight-icon{width:30px;height:30px}.hourly-insight p{-webkit-line-clamp:1;font-size:10px}.hourly-insight small{font-size:7px}.hourly-insight time{display:none}.hourly-insight.expanded p{font-size:11px}}
.header-compact .topbar{position:fixed;top:10px;left:calc(50% + 116px);right:auto;z-index:43;width:max-content;max-width:calc(100vw - 24px);height:48px!important;min-height:48px;padding:5px 6px!important;justify-content:center;gap:4px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:18px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent)!important;box-shadow:0 10px 30px rgba(29,25,70,.18);backdrop-filter:blur(20px) saturate(1.25);transform:translateX(-50%);overflow:visible;animation:headerActionsIsland .44s cubic-bezier(.2,.8,.2,1) both}.header-compact .hourly-insight,.header-compact .topbar>.menu-button,.header-compact .topbar-actions>.compact{display:none!important}.header-compact .mobile-brand{display:flex!important;width:32px;height:32px;margin:0!important;padding:0;gap:0}.header-compact .mobile-brand img{width:32px;height:32px;border-radius:11px;box-shadow:0 5px 14px rgba(94,59,235,.28)}.header-compact .mobile-brand span{display:none}.header-compact .topbar-actions{position:relative;top:auto;left:auto;margin:0;padding:0;gap:4px;border:0;background:transparent;box-shadow:none;backdrop-filter:none;transform:none;pointer-events:auto}.header-compact .app-shell.sidebar-collapsed .topbar{left:50%}.header-compact .topbar-actions>.icon-button,.header-compact .scale-control>.icon-button{width:32px;height:32px;border:0;border-radius:10px;background:transparent}.header-compact .appearance-button span{font-size:15px}.header-compact .voice-assistant-button span{font-size:14px}@keyframes headerActionsIsland{from{opacity:.45;transform:translate(-50%,10px) scale(.94)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@media(max-width:768px){.header-compact .topbar{left:50%}}
.header-compact .topbar{top:0;height:16px!important;min-height:16px;padding:0!important;gap:4px;border:0;border-radius:0;background:transparent!important;box-shadow:none;backdrop-filter:none;animation:headerBookmarkDock .44s cubic-bezier(.2,.8,.2,1) both}
.header-compact .mobile-brand,.header-compact .topbar-actions>.icon-button,.header-compact .scale-control>.icon-button{width:30px;height:30px;min-height:30px;align-items:flex-end;padding:0 0 2px!important;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-top:0;border-radius:0 0 10px 10px;background:color-mix(in srgb,var(--surface-solid) 95%,transparent);box-shadow:0 5px 14px rgba(29,25,70,.16);transform:translateY(-14px);backdrop-filter:blur(16px);cursor:pointer}
.header-compact .mobile-brand img{width:15px;height:15px;margin:auto auto 0;border-radius:5px;box-shadow:none}.header-compact .topbar-actions svg{width:14px;height:14px}.header-compact .appearance-button span,.header-compact .voice-assistant-button span{font-size:12px;line-height:14px}.header-compact .scale-control>.icon-button span{font-size:8px}.header-compact .notification-dot{top:15px;right:3px;width:5px;height:5px}
@keyframes headerBookmarkDock{from{opacity:.35;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%,0)}}
.hourly-insight[hidden]{display:none!important}
.header-compact .topbar{top:0;left:70%;width:max-content;height:28px!important;min-height:28px;padding:0!important;overflow:visible}.header-compact .header-bookmark-toggle{display:grid;width:38px;height:28px;place-items:end center;padding:0 0 5px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--line));border-top:0;border-radius:0 0 13px 13px;background:linear-gradient(160deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 28%,transparent);cursor:pointer;animation:bookmarkTongue .44s cubic-bezier(.2,.8,.2,1) both}.header-compact .header-bookmark-toggle svg{width:15px;height:15px}.header-compact .mobile-brand,.header-compact .topbar-actions{display:none!important}
.header-compact.header-bookmark-open .topbar{height:48px!important;padding:5px 6px!important;gap:4px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-top:0;border-radius:0 0 18px 18px;background:color-mix(in srgb,var(--surface-solid) 95%,transparent)!important;box-shadow:0 10px 30px rgba(29,25,70,.18);backdrop-filter:blur(20px) saturate(1.25);animation:bookmarkIslandOpen .44s cubic-bezier(.2,.8,.2,1) both}.header-compact.header-bookmark-open .header-bookmark-toggle{width:32px;height:32px;padding:0;place-items:center;border:0;border-radius:10px;box-shadow:none}.header-compact.header-bookmark-open .topbar-actions{display:flex!important}.header-compact.header-bookmark-open .topbar-actions>.compact{display:inline-flex!important}.header-compact.header-bookmark-open .topbar-actions>.icon-button,.header-compact.header-bookmark-open .scale-control>.icon-button,.header-compact.header-bookmark-open .tools-toggle{width:32px;height:32px;min-height:32px;padding:0!important;place-items:center;border:0;border-radius:10px;background:transparent;box-shadow:none;transform:none;backdrop-filter:none}.header-compact.header-bookmark-open .notification-dot{top:4px;right:4px}
@keyframes bookmarkTongue{from{opacity:.4;transform:translateY(-20px)}to{opacity:1;transform:none}}@keyframes bookmarkIslandOpen{from{opacity:.55;transform:translate(-50%,-8px) scale(.88)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
.header-compact .app-shell.sidebar-collapsed .topbar{left:70%}@media(max-width:768px){.header-compact .topbar,.header-compact .app-shell.sidebar-collapsed .topbar{left:50%}}
.payment-value-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.85fr);gap:12px;align-items:start}.payment-method-field{min-width:0;margin:0;padding:0;border:0}.payment-method-field legend{margin-bottom:7px;color:var(--muted);font-size:8px}.payment-method-switch{display:grid;grid-template-columns:1fr 1fr 1.15fr;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.payment-method-switch label{cursor:pointer}.payment-method-switch input{position:absolute;opacity:0;pointer-events:none}.payment-method-switch span{height:34px;display:grid;place-items:center;border-radius:9px;color:var(--muted);font-size:9px;font-weight:700;transition:.18s}.payment-method-switch input:checked+span{background:var(--surface-solid);color:var(--primary);box-shadow:0 3px 12px rgba(30,30,50,.09)}.payment-method-switch .wallet-pay{display:flex;align-items:center;justify-content:center;gap:5px}.wallet-pay b{font:inherit}.wallet-pay i{font-style:normal;font-size:13px;line-height:1}.wallet-pay i:last-child{font-weight:800;color:#4285f4}.payment-method-field>small{display:block;margin-top:6px;color:var(--muted);font-size:7px}
.paid-amount-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.appointment-discount-price{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:11px;background:var(--green-soft)}.appointment-discount-price span{display:grid}.appointment-discount-price small{font-size:6px}.appointment-discount-price s{color:var(--muted);font-size:9px}.appointment-discount-price strong{color:var(--green);font-size:11px}.appointment-discount-price>b{color:var(--green);font-size:11px}@media(max-width:600px){.paid-amount-heading{align-items:flex-start;flex-direction:column}.appointment-discount-price{width:100%;justify-content:space-between}}
.appointment-discount-price[hidden]{display:none!important}
.paid-amount-field .unit-input{position:relative}.paid-amount-field .unit-input>input{padding-right:210px}.paid-amount-field .unit-input>.appointment-discount-price{position:absolute;z-index:2;top:50%;right:31px;width:auto;max-width:190px;padding:5px 8px;transform:translateY(-50%);white-space:nowrap}.paid-amount-field .unit-input>.appointment-discount-price small{font-size:5.5px}.paid-amount-field .unit-input>.appointment-discount-price s{font-size:8px}.paid-amount-field .unit-input>.appointment-discount-price strong{font-size:9px}@media(max-width:600px){.paid-amount-field .unit-input>input{padding-right:165px}.paid-amount-field .unit-input>.appointment-discount-price{right:28px;max-width:150px;gap:5px;padding:4px 6px}}
.paid-amount-field .unit-input>input{padding-right:145px}.paid-amount-field .unit-input>.appointment-discount-price{min-width:94px;justify-content:center}.paid-amount-field .unit-input>.appointment-discount-price>span:first-child,.paid-amount-field .unit-input>.appointment-discount-price>b,.paid-amount-field .unit-input>.appointment-discount-price small{display:none}.paid-amount-field .unit-input>.appointment-discount-price>span:last-child{display:block}.paid-amount-field .unit-input>.appointment-discount-price strong{display:block;font-size:10px;line-height:1.2;text-align:center}@media(max-width:600px){.paid-amount-field .unit-input>input{padding-right:135px}}
@media(max-width:768px){.payment-value-row{grid-template-columns:1fr}}
.bottom-grid { grid-template-columns: minmax(0,1.65fr) minmax(280px,.85fr); }
.panel { background: var(--surface); border: 1px solid rgba(231,231,236,.92); border-radius: var(--radius); box-shadow: var(--shadow); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 21px 14px; }
.panel-heading h2 { margin: 0 0 3px; font-size: 14px; letter-spacing: -.25px; }
.panel-heading p { margin: 0; color: var(--muted); font-size: 9px; }
.appointment-list { padding: 0 10px 10px; max-height: 335px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.appointment-list-empty { min-height: 110px; display:grid; place-items:center; padding:20px; color:var(--muted); font-size:10px; text-align:center; }
.appointment { display: grid; grid-template-columns: 52px 4px minmax(140px,1.25fr) minmax(120px,1fr) auto; align-items: center; gap: 12px; min-height: 65px; padding: 8px 11px; border-top: 1px solid #f0f0f2; }
.appointment-button{width:100%;background:transparent;border-right:0;border-bottom:0;border-left:0;text-align:left;cursor:pointer}.appointment-button:hover{background:var(--surface-hover);border-radius:11px}
.appointment:first-child { border-top: 0; }
.appointment time { font-size: 11px; font-weight: 700; }
.appointment .appointment-color { width: 3px; height: 35px; border-radius: 3px; background: var(--primary); }
.appointment .client-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.client-cell strong, .service-cell strong { display:block; font-size:10px; white-space: nowrap; overflow:hidden; text-overflow:ellipsis; }
.client-cell small, .service-cell small { display:block; color:var(--muted); font-size:8px; margin-top:3px; }
.client-cell .overview-master{color:var(--text);font-weight:700}
.appointment .avatar { width: 31px; height: 31px; border-radius: 10px; font-size: 9px; }
.status-pill { padding: 5px 8px; border-radius: 8px; background: var(--green-soft); color: var(--green); font-size: 8px; font-weight: 700; white-space: nowrap; }
.status-pill.wait { background: var(--amber-soft); color: var(--amber); }
.attendance-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 8px;border-radius:8px;font-size:8px;font-weight:800;white-space:nowrap}.attendance-badge.confirmed{background:#daf5e8;color:#17885c}.attendance-badge.reschedule{background:#ffe3e7;color:#c83e54}
.appointment.client-confirmed{background:#f2fcf7}.appointment.client-reschedule{background:#fff3f4}.appointment.client-reschedule .appointment-color{background:#dc5266!important}

.team-load { padding: 2px 20px 12px; max-height: 290px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.team-load-item { display: grid; grid-template-columns: 36px minmax(90px,1fr) 48px; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid #f0f0f2; }
.team-load-item:first-child { border-top:0; }
.team-load-item .avatar { width:34px;height:34px;border-radius:11px;font-size:9px; }
.load-info strong { display:block; font-size:9px; }
.load-info small { display:block; font-size:8px;color:var(--muted);margin:3px 0 5px; }
.load-bar { height:4px;background:#efeff2;border-radius:3px;overflow:hidden; }
.load-bar i { display:block;height:100%;border-radius:inherit;background:var(--primary); }
.load-percent { font-size:9px;font-weight:700;text-align:right; }
.panel-footer-note { border-top:1px solid #f0f0f2;padding:14px 20px;color:var(--muted);font-size:8px;display:flex;align-items:center;gap:7px; }
.status-dot { width:7px;height:7px;border-radius:50%;display:inline-block; }
.status-dot.green { background:var(--green);box-shadow:0 0 0 3px var(--green-soft); }

.chart-panel { min-height: 260px; }
.chart-summary { padding: 0 21px; display:flex; align-items:center;gap:10px; }
.chart-summary strong { font-size:22px;letter-spacing:-.6px; }
.chart-summary span { padding:4px 7px;border-radius:7px;background:var(--green-soft);font-size:8px;font-weight:700; }
.chart-summary span.negative{background:var(--rose-soft);color:var(--rose)}.chart-summary span.neutral{background:var(--surface-muted);color:var(--muted)}
.revenue-period-picker{position:relative}.revenue-period-picker .select-button[aria-expanded="true"]{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 9%,transparent)}.revenue-period-picker .select-button[aria-expanded="true"] svg{transform:rotate(180deg)}.revenue-period-menu{position:absolute;z-index:30;top:calc(100% + 7px);right:0;width:155px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid);box-shadow:0 18px 45px rgba(30,27,55,.18)}.revenue-period-menu[hidden]{display:none}.revenue-period-menu button{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;font-size:9px;font-weight:750;text-align:left;cursor:pointer}.revenue-period-menu button:hover,.revenue-period-menu button.active{background:var(--violet-soft);color:var(--primary)}.revenue-period-menu small{color:var(--muted);font-size:7px;font-weight:500}
.revenue-chart { position:relative;height:155px;margin:4px 20px 15px; }
.revenue-chart[aria-busy="true"]{opacity:.55}.revenue-chart svg { position:absolute;inset:0 0 20px;width:100%;height:130px;overflow:visible; }
.revenue-chart .area { fill:url(#overviewRevenueArea);stroke:none; }
.revenue-chart .line { fill:none;stroke:var(--primary);stroke-width:2.7;vector-effect:non-scaling-stroke;filter:drop-shadow(0 4px 5px rgba(101,87,235,.16)); }
.revenue-chart-hit{fill:transparent;stroke:none;pointer-events:all}.revenue-chart-dot{fill:var(--surface-solid);stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .14s,r .14s}.revenue-chart-point{cursor:pointer;outline:0}.revenue-chart-point:hover .revenue-chart-dot,.revenue-chart-point:focus .revenue-chart-dot,.revenue-chart-point.active .revenue-chart-dot{opacity:1;r:5}.revenue-chart-empty{fill:var(--muted);font-size:9px}.revenue-chart-tooltip{position:absolute;z-index:5;min-width:112px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);box-shadow:0 12px 28px rgba(25,23,50,.16);backdrop-filter:blur(10px);pointer-events:none;transform:translate(-50%,-100%);text-align:center}.revenue-chart-tooltip[hidden]{display:none}.revenue-chart-tooltip strong,.revenue-chart-tooltip small{display:block}.revenue-chart-tooltip strong{font-size:10px}.revenue-chart-tooltip small{margin-top:3px;color:var(--muted);font-size:6.5px;white-space:nowrap}
.grid-lines { position:absolute;inset:8px 0 27px;display:flex;flex-direction:column;justify-content:space-between; }
.grid-lines i { border-top:1px dashed #ececf0; }
.chart-labels { position:absolute;bottom:0;left:0;right:0;height:14px;color:#a0a0a8;font-size:8px; }
.chart-labels span{position:absolute;top:0;white-space:nowrap;transform:translateX(-50%)}.chart-labels span:first-child{transform:none}.chart-labels span:last-child{transform:translateX(-100%)}
html[data-theme="dark"] .revenue-period-menu,html[data-theme="dark"] .revenue-chart-tooltip{background:rgba(29,30,38,.97);border-color:var(--line);color:var(--text)}html[data-theme="dark"] .grid-lines i{border-color:#32333d}
.attention-list { padding: 0 11px 12px; }
.attention-list button { width:100%;border:0;background:transparent;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;text-align:left;padding:12px 10px;border-top:1px solid #f0f0f2;cursor:pointer;border-radius:10px; }
.attention-list button:hover { background:#f8f8fa; }
.attention-list button:first-child{border-top:0}
.attention-list button > span:nth-child(2){min-width:0}
.attention-list strong{display:block;font-size:9px}
.attention-list small{display:block;color:var(--muted);font-size:7.5px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attention-list button>b{min-width:23px;height:23px;padding:0 6px;display:grid;place-items:center;border-radius:8px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:800}
.attention-icon { width:34px;height:34px;border-radius:11px;display:grid;place-items:center; }
.attention-icon svg{width:16px}
.rose{background:var(--rose-soft);color:var(--rose)}
.attention-sheet{width:min(720px,100%)}.attention-sheet .modal-header p:last-child{margin:5px 0 0;color:var(--muted);font-size:8px}.attention-detail-list{display:grid;max-height:min(65vh,620px);overflow:auto;border:1px solid var(--line);border-radius:15px;background:var(--surface-solid)}.attention-detail-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:11px;min-height:68px;padding:11px 13px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left}.attention-detail-row:first-child{border-top:0}.appointment-attention-row{cursor:pointer}.appointment-attention-row:hover{background:var(--surface-hover)}.attention-detail-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;font-size:15px;font-weight:800}.attention-detail-avatar.change{background:var(--rose-soft);color:var(--rose)}.attention-detail-avatar.payment{background:var(--amber-soft);color:var(--amber)}.attention-detail-avatar.birthday{background:var(--blue-soft);color:var(--blue)}.attention-detail-row>span:nth-child(2){min-width:0}.attention-detail-row strong,.attention-detail-row small{display:block}.attention-detail-row strong{font-size:10px}.attention-detail-row small{margin-top:4px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attention-detail-side{text-align:right}.attention-detail-side b{font-size:8px}.attention-arrow{color:var(--muted);font-size:17px}.attention-detail-empty{min-height:190px;display:grid;place-items:center;align-content:center;gap:6px;padding:30px;text-align:center;color:var(--muted);font-size:10px}.attention-detail-empty small{display:block;font-size:8px}.birthday-row{grid-template-columns:42px minmax(0,1fr) auto auto}.birthday-row time{color:var(--muted);font-size:8px;font-weight:700}.attention-congratulate{min-height:34px;padding:0 11px;font-size:8px}.planner-event.attention-focus{z-index:16;animation:attentionCalendarFocus 1.05s ease 2;box-shadow:0 0 0 4px rgba(101,87,235,.22),0 12px 30px rgba(61,48,150,.24)}@keyframes attentionCalendarFocus{50%{transform:scale(1.035);filter:brightness(1.07);box-shadow:0 0 0 7px rgba(101,87,235,.13),0 15px 34px rgba(61,48,150,.28)}}
.new-clients-sheet{width:min(760px,100%)}.new-clients-sheet .modal-header p:last-child{margin:5px 0 0;color:var(--muted);font-size:8px}.new-clients-audit{display:flex;align-items:flex-start;gap:9px;margin:0 0 12px;padding:11px 13px;border-radius:14px;background:var(--blue-soft);color:var(--text);font-size:8px;line-height:1.45}.new-clients-audit::before{content:"✓";width:21px;height:21px;flex:0 0 21px;display:grid;place-items:center;border-radius:7px;background:var(--blue);color:#fff;font-weight:800}.new-clients-list{display:grid;max-height:min(65vh,620px);overflow:auto;border:1px solid var(--line);border-radius:15px;background:var(--surface-solid)}.new-client-row{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr) minmax(110px,.7fr) auto;align-items:center;gap:11px;min-height:70px;padding:11px 13px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}.new-client-row:first-child{border-top:0}.new-client-row:hover{background:var(--surface-hover)}.new-client-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:800}.new-client-main,.new-client-date{min-width:0}.new-client-main strong,.new-client-main small,.new-client-date strong,.new-client-date small{display:block}.new-client-main strong{font-size:10px}.new-client-main small,.new-client-date small{margin-top:4px;color:var(--muted);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.new-client-date strong{font-size:8px}.new-client-possible-match{display:inline-flex!important;width:max-content;margin-top:6px!important;padding:3px 7px;border-radius:999px;background:var(--amber-soft);color:var(--amber)!important;font-weight:700}.new-client-arrow{color:var(--muted);font-size:17px}

.calendar-toolbar { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px; }
.calendar-view-controls{display:flex;align-items:center;gap:8px;flex:0 0 auto}.calendar-view-controls>#calendarToday{min-height:37px;padding:0 15px}
.main>.calendar-duty-admins{position:absolute;z-index:18;top:14px;left:34px;display:flex;align-items:center;pointer-events:none}.main>.calendar-duty-admins[hidden]{display:none}.calendar-duty-avatars{display:flex;align-items:center}.calendar-duty-admin-button{position:relative;display:grid;place-items:center;flex:0 0 44px;margin:0 0 0 -9px;padding:0;border:0;border-radius:50%;background:transparent;cursor:pointer;pointer-events:auto;transition:transform .18s ease,filter .18s ease}.calendar-duty-admin-button:first-child{margin-left:0}.calendar-duty-admin-button:hover{transform:translateY(-1px) scale(1.06);filter:brightness(1.04)}.calendar-duty-admin-button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);outline-offset:3px}.calendar-duty-admin-button:disabled{cursor:wait}.calendar-duty-admin-button.sending{animation:dutyAdminCallPulse .6s ease-in-out infinite alternate}.calendar-duty-admin-button.sent{transform:scale(1.1);filter:saturate(1.25) brightness(1.08)}.calendar-duty-admin-button.arrival-ack{filter:saturate(1.18);z-index:2}.calendar-duty-admin-button.arrival-ack .calendar-duty-avatar-ring{animation:dutyAdminArrivalShake .55s ease-in-out infinite}.calendar-duty-avatar-ring{width:44px;height:44px;display:grid;place-items:center;padding:3px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#feda75,#fa7e1e 28%,#d62976 58%,#962fbf 78%,#4f5bd5);box-shadow:0 4px 14px rgba(70,40,110,.17)}.calendar-duty-avatar-ring>img,.calendar-duty-avatar-ring>i{display:grid;width:100%;height:100%;place-items:center;border:2px solid var(--surface-solid);border-radius:50%!important;overflow:hidden;object-fit:cover;object-position:center;background:var(--surface-solid);color:#fff;font-size:11px;font-style:normal;font-weight:800}@keyframes dutyAdminCallPulse{to{transform:scale(.92);filter:brightness(1.15)}}@keyframes dutyAdminArrivalShake{0%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(7deg) scale(1.05)}75%{transform:rotate(-7deg) scale(1.05)}}.duty-admin-model-shell{position:relative;width:66px;height:66px;display:grid;place-items:center;overflow:visible;contain:layout style;isolation:isolate}.duty-admin-model{display:block;width:66px;height:66px;pointer-events:auto;touch-action:none;cursor:grab;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden;animation:dutyAdminCompositorIdle 2.4s ease-in-out infinite alternate}.duty-admin-model:active{cursor:grabbing}.duty-admin-model-fallback{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--violet-soft);font-size:23px;box-shadow:0 4px 14px rgba(70,40,110,.17)}.duty-admin-model-fallback[hidden]{display:none}@keyframes dutyAdminCompositorIdle{to{transform:translate3d(0,-1.5px,0) scale(1.012)}}@media(prefers-reduced-motion:reduce){.duty-admin-model,.calendar-duty-admin-button.sending,.calendar-duty-admin-button.arrival-ack .calendar-duty-avatar-ring{animation:none}}
.header-compact .main>.calendar-duty-admins{display:none!important}
.calendar-toolbar-actions{display:flex;align-items:center;gap:10px}.show-all-toggle{display:flex;align-items:center;gap:7px;padding:0 11px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid);color:var(--muted);font-size:9px;cursor:pointer}.show-all-toggle[hidden]{display:none}.show-all-toggle input{width:15px;height:15px;accent-color:var(--primary)}
.calendar-mobile-management-row{display:contents}
.checkbox-pair-controls{display:flex;align-items:center;gap:6px}.checkbox-pair-controls[hidden],.calendar-pair-action[hidden]{display:none}.calendar-pair-button,.calendar-pair-action{position:relative;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid);color:var(--muted);display:grid;place-items:center;cursor:pointer}.calendar-pair-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.calendar-pair-button.active{color:var(--primary);border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface-solid))}.calendar-pair-button span{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 4px;border-radius:10px;background:var(--primary);color:#fff;font-size:10px;line-height:19px}.calendar-pair-action{font-size:25px;font-weight:700}.calendar-pair-action.cancel{color:#dc3545;border-color:#dc3545}.calendar-pair-action.confirm{color:#18a665;border-color:#18a665}.calendar-pair-action:disabled{opacity:.4;cursor:not-allowed}.checkbox-pair-selectable{cursor:pointer!important}.checkbox-pair-selected{outline:3px solid var(--primary)!important;outline-offset:-3px;box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 20%,transparent)!important}.checkbox-pair-selected::after{content:attr(data-pair-order);position:absolute!important;right:5px!important;bottom:5px!important;top:auto!important;left:auto!important;width:22px!important;height:22px!important;border-radius:50%!important;background:var(--primary)!important;color:#fff!important;display:grid!important;place-items:center!important;font-size:11px!important;font-weight:800!important;opacity:1!important}.checkbox-already-paired{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--primary) 55%,transparent)}
.segmented { display:flex;padding:3px;border-radius:11px;background:#eaeaee; }
.segmented button { min-height:31px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:10px;cursor:pointer; }
.segmented button.active{background:var(--surface-solid);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.08);font-weight:600}
.date-switcher{position:relative;display:flex;align-items:center;gap:10px}
.date-switcher strong{font-size:12px}
.calendar-card{padding:0;overflow:visible;border-radius:0}
.calendar-scroll{overflow-x:auto;overflow-y:auto;max-height:none;padding:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.calendar-sticky-masters{position:sticky;top:0;z-index:28;height:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .12s ease}.calendar-sticky-masters.active{visibility:visible;opacity:1}.calendar-sticky-masters-viewport{position:absolute;top:0;left:0;right:0;height:var(--calendar-sticky-master-height,68px);overflow:hidden;background:var(--surface-solid);border-bottom:1px solid var(--line);box-shadow:0 7px 18px rgba(34,35,48,.12)}.calendar-sticky-masters-track{position:absolute;top:0;left:0;display:grid;height:100%;min-width:100%;will-change:transform}.calendar-sticky-masters-track>.day-corner,.calendar-sticky-masters-track>.master-column-head{position:relative!important;top:auto!important;height:100%;box-sizing:border-box;z-index:auto}.calendar-sticky-masters-track .master-call-button{cursor:default}
html.telegram-mini-app .calendar-sticky-masters{top:max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px))}

@media (min-width:651px){
  html.desktop-browser-top-drawer #page-calendar>.calendar-toolbar{position:relative;top:7px}
  #page-calendar .calendar-scroll{background:var(--surface-solid)}
}
.week-grid{display:grid;grid-template-columns:50px repeat(7,minmax(110px,1fr));min-width:880px;position:relative}
.week-head{height:62px;text-align:center;border-bottom:1px solid var(--line);padding:8px}
.week-head strong{display:block;font-size:14px}.week-head span{font-size:8px;color:var(--muted)}
.week-head.today strong{width:28px;height:28px;display:grid;place-items:center;background:var(--primary);color:white;border-radius:10px;margin:0 auto 2px}
.time-head{border-bottom:1px solid var(--line)}
.time-cell{height:56px;border-bottom:1px solid #f0f0f2;color:var(--muted);font-size:8px;padding-top:5px}
.day-cell{height:56px;border-left:1px solid #f0f0f2;border-bottom:1px solid #f0f0f2;position:relative}
.calendar-event{margin:3px 4px;padding:6px 7px;height:49px;border-radius:8px;background:var(--violet-soft);border-left:3px solid var(--primary);font-size:8px;overflow:hidden}
.calendar-event.green-event{background:var(--green-soft);border-color:var(--green)}.calendar-event.amber-event{background:var(--amber-soft);border-color:var(--amber)}
.calendar-event strong{display:block;margin-bottom:3px;white-space:nowrap}.calendar-event span{color:var(--muted)}
.calendar-view{min-width:100%}
.calendar-card{width:100%;max-width:100%}.day-calendar{display:grid;grid-template-columns:62px repeat(var(--master-count),var(--master-column-width,116px));grid-template-rows:calc(68px * var(--ui-scale,1)) repeat(56,calc(25px * var(--ui-scale,1)));min-width:100%;position:relative;background:var(--surface-solid)}
.calendar-current-time{position:absolute;z-index:7;left:0;right:0;height:0;pointer-events:none;color:#23b998;transition:top 1s linear}.calendar-current-time time{position:absolute;left:5px;top:0;width:51px;padding:2px 4px;transform:translateY(-50%);border-radius:6px;background:color-mix(in srgb,#23b998 14%,var(--surface-solid));color:#16876f;font-size:calc(7px * var(--ui-scale,1));font-weight:800;text-align:center;box-shadow:0 0 0 1px color-mix(in srgb,#23b998 24%,transparent)}.calendar-current-time i{position:absolute;left:62px;right:0;top:0;height:2px;background:linear-gradient(90deg,rgba(35,185,152,.72),rgba(35,185,152,.38) 72%,rgba(35,185,152,.12));box-shadow:0 0 7px rgba(35,185,152,.17)}.calendar-current-time i::before{content:"";position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:#23b998;box-shadow:0 0 0 3px rgba(35,185,152,.13)}
.day-corner,.master-column-head{position:sticky;top:0;z-index:8;background:color-mix(in srgb,var(--surface-solid) 96%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.day-corner{grid-column:1;grid-row:1;display:grid;place-items:center;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.5px}
.master-column-head{grid-row:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px;border-left:1px solid var(--line);background:color-mix(in srgb,var(--staff-color,#8790A3) 34%,var(--surface-solid));transition:background .22s ease}
.master-column-head.off-duty{background:#fff2f3;color:#b94254}.master-column-head.off-duty small{color:#d16c7b}
.master-column-head .avatar{width:calc(34px * var(--ui-scale,1));height:calc(34px * var(--ui-scale,1));border-radius:11px}.master-column-head span:last-child{min-width:0}.master-column-head strong{display:block;font-size:calc(9px * var(--ui-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.master-column-head small{display:block;font-size:calc(7px * var(--ui-scale,1));color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.master-call-button{width:calc(27px * var(--ui-scale,1));height:calc(27px * var(--ui-scale,1));flex:0 0 auto;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,var(--staff-color,#8790A3) 45%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--surface-solid) 82%,var(--staff-color,#8790A3));color:color-mix(in srgb,var(--staff-color,#8790A3) 72%,#30313a);cursor:pointer;box-shadow:0 3px 10px rgba(34,35,48,.08);transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}
.master-call-wrap{position:relative;flex:0 0 auto;display:grid;place-items:center}.master-call-button svg{width:calc(15px * var(--ui-scale,1));height:calc(15px * var(--ui-scale,1));fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.master-call-button:hover{transform:translateY(-1px) scale(1.05);background:var(--surface-solid);box-shadow:0 5px 14px rgba(34,35,48,.13)}.master-call-button:disabled{cursor:wait}.master-call-button.sending svg,.master-call-button.arrival-ack svg{animation:master-bell-ring .55s ease-in-out infinite}.master-call-button.sent{color:#137a55;background:#dff8ec;border-color:#8ad8b6;transform:scale(1.08)}.master-call-button.arrival-ack{color:#137a55;background:#dff8ec;border-color:#58c89a;box-shadow:0 0 0 4px rgba(65,196,145,.18),0 5px 16px rgba(22,125,87,.22)}
.master-arrival-bubble{position:absolute;z-index:14;top:calc(100% + 7px);left:50%;transform:translateX(-50%);min-width:54px;padding:7px 12px;border-radius:12px;background:#137a55;color:#fff;font-size:10px;font-weight:800;line-height:1;text-align:center;white-space:nowrap;box-shadow:0 8px 22px rgba(19,122,85,.28);pointer-events:none;animation:master-arrival-pop .24s ease-out}.master-arrival-bubble::before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background:#137a55;transform:translateX(-50%) rotate(45deg);border-radius:2px 0 0}
@keyframes master-bell-ring{0%,100%{transform:rotate(0)}25%{transform:rotate(16deg)}75%{transform:rotate(-16deg)}}
@keyframes master-arrival-pop{from{opacity:0;transform:translateX(-50%) translateY(-5px) scale(.88)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
.day-corner,.master-column-head{position:sticky;top:0;z-index:8}.day-corner{left:0;z-index:12}.planner-time{position:sticky;left:0;grid-column:1;padding:7px 8px 0 0;text-align:right;color:var(--muted);font-size:calc(8px * var(--ui-scale,1));border-bottom:1px solid #eeeeF2;background:var(--surface-muted);z-index:6}
.planner-time.quarter{padding:0;border-bottom:1px dotted #eeeeF2}
.planner-time.half-hour,.planner-slot.half-hour-slot{box-shadow:inset 0 1px 0 #cfd0d9}.planner-slot.quarter-slot{border-bottom:1px dotted #eeeeF2}
.planner-time.full-hour,.week-time-label.full-hour{font-weight:800;color:var(--text)}
.planner-slot{border:0;border-left:1px solid #eeeeF2;border-bottom:1px solid #eeeeF2;background:var(--surface-solid);cursor:pointer;min-width:0}
.planner-slot:hover{background:#f4f1ff;box-shadow:inset 0 0 0 1px #b8aff7}.planner-slot:hover::after{content:"＋";color:var(--primary);font-weight:700}
.planner-slot.off-hours{background:rgba(225,91,111,.16);border-left-color:rgba(213,83,102,.24);cursor:not-allowed}
.planner-slot.off-hours.bookable-off-hours{cursor:pointer}.planner-slot.off-hours.bookable-off-hours:hover{background:rgba(225,91,111,.16);box-shadow:inset 0 0 0 1px rgba(207,76,96,.38)}.planner-slot.off-hours.bookable-off-hours:hover::after{content:"＋ вне графика";color:#b64b5d;font-size:7px}
.planner-slot.off-shift-slot{background:rgba(225,91,111,.11);border-left-color:rgba(213,83,102,.18);cursor:pointer}.planner-slot.off-shift-slot:hover{background:rgba(225,91,111,.18);box-shadow:inset 0 0 0 1px rgba(207,76,96,.42)}.planner-slot.off-shift-slot:hover::after{content:"＋ смена";color:#b64b5d;font-size:7px}.empty-calendar-team{position:absolute;z-index:10;left:62px;right:0;top:68px;padding:40px;text-align:center;color:var(--muted)}.empty-calendar-team strong,.empty-calendar-team span{display:block}.empty-calendar-team strong{color:var(--text);font-size:12px}.empty-calendar-team span{font-size:8px;margin-top:5px}
.planner-event{position:relative;z-index:5;margin:2px 4px;padding:0 7px 10px;border:0;border-radius:8px;text-align:left;overflow:hidden;cursor:pointer;background:#e8f5ef;color:#227955;border-left:3px solid #31a875;box-shadow:0 2px 5px rgba(30,80,55,.08);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}
#page-calendar .planner-event:not(.appointment-paid){border-left-width:1.5px}
.planner-event:hover{filter:brightness(.97);transform:translateY(-1px)}.planner-event strong,.planner-event span,.planner-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-event strong{font-size:calc(8px * var(--ui-scale,1))}.planner-event span{font-size:calc(7.5px * var(--ui-scale,1));margin-top:2px}.planner-event small{font-size:calc(6.5px * var(--ui-scale,1));opacity:.7;margin-top:2px}
.planner-event.calendar-live-enter,.week-schedule-event.calendar-live-enter,.month-appointment.calendar-live-enter{animation:calendarLiveEnter .62s cubic-bezier(.2,.82,.2,1) both}
@keyframes calendarLiveEnter{0%{opacity:0;transform:translateY(10px) scale(.965);filter:blur(3px);box-shadow:0 0 0 0 rgba(101,87,235,0)}55%{opacity:1;filter:blur(0);box-shadow:0 0 0 5px rgba(101,87,235,.13),0 12px 28px rgba(61,48,150,.16)}100%{transform:translateY(0) scale(1);box-shadow:0 2px 5px rgba(30,80,55,.08)}}
@media (prefers-reduced-motion:reduce){.calendar-live-enter{animation:none!important}}
.planner-event-timebar{display:flex!important;align-items:center;justify-content:space-between;gap:5px;flex:none;margin:0 -7px 4px!important;padding:3px 7px;background:color-mix(in srgb,var(--card-color) 82%,#24212f);color:#fff;font-weight:750;letter-spacing:.01em}.planner-event-timebar time{flex:none}.planner-event-timebar .attendance-badge{margin:0!important;color:inherit!important;background:rgba(255,255,255,.18)!important}.planner-event-client{display:block;line-height:1.1;font-weight:800}.planner-event-services{display:grid!important;gap:1px;margin-top:3px!important;white-space:normal!important;overflow:visible!important}.planner-event-services i{position:relative;display:block;min-width:0;padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;font-style:normal}.planner-event-services i::before{content:"";position:absolute;left:1px;top:.48em;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.75}.planner-event-phone{margin-top:3px!important}.planner-event.client-confirmed .planner-event-timebar{background:#269d6c}.planner-event.client-reschedule .planner-event-timebar{background:#d9475e}.planner-event.event-medium{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr);align-items:center;column-gap:5px;padding-bottom:9px}.planner-event.event-medium .planner-event-timebar{grid-column:1/-1;width:auto}.planner-event.event-medium .planner-event-client{grid-column:1}.planner-event.event-medium .planner-event-services{grid-column:2;display:block!important;margin:0!important;min-width:0;white-space:nowrap!important}.planner-event.event-medium .planner-event-services i{display:inline;padding:0}.planner-event.event-medium .planner-event-services i+ i::before{content:" · ";position:static;width:auto;height:auto;background:none}.planner-event.event-medium .planner-event-services i:first-child::before{display:none}.planner-event.event-medium .planner-event-phone{grid-column:3;margin:0!important}.planner-event.event-compact{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:5px;padding:2px 28px 3px 3px;line-height:1;overflow:hidden}.planner-event.event-compact .planner-event-timebar{display:block!important;margin:0!important;padding:3px 5px;border-radius:5px;font-size:clamp(5.5px,calc(7px * var(--ui-scale,1)),8px)}.planner-event.event-compact .planner-event-timebar .attendance-badge{display:none}.planner-event.event-compact .planner-event-client{font-size:clamp(6px,calc(7.5px * var(--ui-scale,1)),9px);white-space:nowrap}.planner-event.event-compact .planner-event-services{display:block!important;min-width:0;margin:0!important;white-space:nowrap!important;font-size:clamp(5.5px,calc(6.5px * var(--ui-scale,1)),8px)}.planner-event.event-compact .planner-event-services i{display:inline;padding:0}.planner-event.event-compact .planner-event-services i::before{display:none}.planner-event.event-compact .planner-event-services i+ i::before{content:" · ";display:inline;position:static;width:auto;height:auto;background:none}.planner-event.event-compact .planner-event-phone{margin:0!important;font-size:clamp(5px,calc(6px * var(--ui-scale,1)),7px);white-space:nowrap}.planner-event.event-compact .payment-badge{right:3px;bottom:3px;transform:scale(.78);transform-origin:right bottom}.week-schedule-event .planner-event-services{display:grid;gap:1px}.week-schedule-event .planner-event-services i{position:relative;display:block;padding-left:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal}.week-schedule-event .planner-event-services i::before{content:"";position:absolute;left:1px;top:.48em;width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.7}
.planner-event.tone-1{background:#eeeafd;color:#5748d7;border-color:#6557eb}.planner-event.tone-2{background:#e9f2fd;color:#3372c5;border-color:#4586dd}.planner-event.tone-3{background:#fdf2df;color:#b77726;border-color:#e89b38}
.planner-event.custom-card:not(.client-confirmed):not(.client-reschedule){background:color-mix(in srgb,var(--card-color) 15%,var(--surface-solid));color:color-mix(in srgb,var(--card-color) 78%,var(--card-text-base));border-color:var(--card-color)}.week-appointment.custom-card:not(.client-confirmed):not(.client-reschedule),.month-appointment.custom-card:not(.client-confirmed):not(.client-reschedule){background:color-mix(in srgb,var(--card-color) 15%,var(--surface-solid));color:color-mix(in srgb,var(--card-color) 80%,var(--card-text-base))}
.planner-event.client-confirmed{background:#dff7eb!important;color:#17744f!important;border-color:#25a873!important;box-shadow:inset 0 0 0 1px #a8e6c8}.planner-event.client-reschedule{background:#ffe0e4!important;color:#af3045!important;border-color:#d9475e!important;box-shadow:inset 0 0 0 1px #f1a7b2}.planner-event .attendance-badge{float:right;padding:1px 4px;font-size:7px;background:rgba(255,255,255,.76)}
.planner-event[draggable=true]{cursor:grab}.planner-event[draggable=true]:active{cursor:grabbing}.planner-event.dragging{opacity:.38;transform:scale(.98)}
.appointment-resize-handle{position:absolute!important;z-index:12;left:0;right:0;bottom:0;height:18px!important;display:grid!important;place-items:end center;overflow:visible!important;cursor:ns-resize;touch-action:none}.appointment-resize-handle i{display:block;width:min(24px,34%);height:3px;margin-bottom:1px;border-radius:99px;background:currentColor;opacity:.42;transition:.15s}.appointment-resize-handle:hover i{width:min(34px,42%);opacity:.75}.planner-event.resizing,.week-schedule-event.resizing{z-index:15;overflow:visible;cursor:ns-resize;box-shadow:0 10px 28px rgba(40,34,90,.2)}.planner-event.resizing::after,.week-schedule-event.resizing::after{content:attr(data-resize-label);position:absolute;right:4px;bottom:-24px;z-index:20;padding:4px 7px;border-radius:7px;background:#202026;color:#fff;font-size:7px;font-weight:700;white-space:nowrap;box-shadow:0 5px 15px rgba(0,0,0,.18)}
.calendar-card-markers{position:absolute!important;z-index:13;right:5px;bottom:9px;display:flex!important;align-items:center;justify-content:flex-end;gap:3px;margin:0!important;overflow:visible!important;pointer-events:none}.calendar-card-marker{display:grid!important;place-items:center;width:18px!important;height:18px!important;min-width:18px;border:1px solid rgba(255,255,255,.72);border-radius:7px;background:rgba(255,255,255,.94);box-shadow:0 2px 7px rgba(28,24,66,.2);overflow:visible!important}.calendar-card-marker svg{display:block;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.checkbox-group-marker{color:#6557eb}.shared-client-marker{color:#087f8c}.week-schedule-event .calendar-card-markers{right:3px;bottom:8px;gap:2px}.week-schedule-event .calendar-card-marker{width:15px!important;height:15px!important;min-width:15px;border-radius:5px}.week-schedule-event .calendar-card-marker svg{width:11px;height:11px}.month-appointment{position:relative;padding-right:24px}.month-appointment .calendar-card-markers{right:2px;bottom:2px;gap:1px}.month-appointment .calendar-card-marker{width:13px!important;height:13px!important;min-width:13px;border-radius:4px}.month-appointment .calendar-card-marker svg{width:9px;height:9px}.planner-event.event-compact .calendar-card-marker{width:14px!important;height:14px!important;min-width:14px;border-radius:5px}.planner-event.event-compact .calendar-card-marker svg{width:10px;height:10px}@media(max-width:700px){.calendar-card-markers{right:3px;gap:2px}.calendar-card-marker{width:15px!important;height:15px!important;min-width:15px}.calendar-card-marker svg{width:11px;height:11px}}
html[data-theme="dark"] .calendar-card-marker{border-color:rgba(255,255,255,.16);background:rgba(28,31,42,.94);box-shadow:0 2px 8px rgba(0,0,0,.35)}
.calendar-card-marker.client-approved-marker{width:24px!important;height:24px!important;min-width:24px;border:0!important;border-radius:50%;background:transparent!important;box-shadow:0 2px 6px rgba(120,0,14,.24)!important}.client-approved-marker img{display:block;width:100%;height:100%;object-fit:contain}.week-schedule-event .calendar-card-marker.client-approved-marker{width:20px!important;height:20px!important;min-width:20px}.month-appointment .calendar-card-marker.client-approved-marker{width:16px!important;height:16px!important;min-width:16px}.planner-event.event-compact .calendar-card-marker.client-approved-marker{width:18px!important;height:18px!important;min-width:18px}
.new-client-ribbon{position:absolute!important;z-index:11;right:-21px;bottom:8px;width:76px;height:11px;display:grid!important;place-items:center;overflow:visible!important;pointer-events:none;transform:rotate(-45deg);background:linear-gradient(180deg,#ff3c45,#e40d1b);color:#fff!important;box-shadow:0 2px 7px rgba(161,9,22,.32);font-size:7px!important;font-weight:900!important;line-height:1!important;letter-spacing:.12em;text-indent:.12em;text-shadow:0 1px 1px rgba(107,0,8,.28);white-space:nowrap!important}.planner-event.new-client-card .calendar-card-markers,.week-schedule-event.new-client-card .calendar-card-markers{right:43px}.planner-event.event-compact .new-client-ribbon{right:-16px;bottom:5px;width:52px;height:8px;font-size:5px!important}.week-schedule-event .new-client-ribbon{right:-17px;bottom:5px;width:58px;height:9px;font-size:5.5px!important}.month-appointment.new-client-card{overflow:hidden}.month-appointment .new-client-ribbon{right:-13px;bottom:3px;width:42px;height:7px;font-size:4.5px!important}.month-appointment.new-client-card .calendar-card-markers{right:24px}
.appointment-drag-active .planner-slot[data-slot-master]{position:relative;background:var(--surface-hover)}.appointment-drag-active .planner-slot[data-slot-master]::after{content:"";position:absolute;inset:3px;border:1px dashed #b8aff7;border-radius:6px}
.appointment-drag-active .planner-slot.drop-target,.appointment-drag-active .week-time-slot.drop-target{background:#ded9ff;box-shadow:inset 0 0 0 2px var(--primary)}.appointment-drag-active .planner-slot.drop-target::after,.appointment-drag-active .week-time-slot.drop-target::after{content:"Перенести";display:grid;place-items:center;color:var(--primary);font-size:7px;font-weight:700;border:0}
.appointment-drag-time-preview{position:fixed;z-index:10020;min-width:96px;padding:7px 10px;border:1px solid rgba(255,255,255,.22);border-radius:11px;background:rgba(27,25,38,.94);color:#fff;text-align:center;pointer-events:none;transform:translate(-50%,-100%);box-shadow:0 12px 32px rgba(20,18,38,.3);backdrop-filter:blur(14px);animation:dragTimeAppear .14s ease}.appointment-drag-time-preview::after{content:"";position:absolute;left:50%;bottom:-5px;width:10px;height:10px;background:rgba(27,25,38,.94);transform:translateX(-50%) rotate(45deg)}.appointment-drag-time-preview strong,.appointment-drag-time-preview small{position:relative;z-index:1;display:block;white-space:nowrap}.appointment-drag-time-preview strong{font-size:11px;letter-spacing:.2px}.appointment-drag-time-preview small{margin-top:2px;color:#cbc7e6;font-size:7px}.appointment-drag-time-preview strong::before{content:"→ ";color:#9f94ff}@keyframes dragTimeAppear{from{opacity:0;transform:translate(-50%,-92%) scale(.94)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}
.calendar-saving{pointer-events:none;opacity:.72}
.week-planner{display:grid;grid-template-columns:180px repeat(7,minmax(130px,1fr));min-width:1100px;background:var(--surface-solid)}
.week-master-label,.week-date-head{position:sticky;top:0;z-index:6;height:58px;border:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 96%,transparent)}
.week-master-label{display:flex;align-items:center;padding:0 14px;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.5px}
.week-date-head{border-left:1px solid var(--line);cursor:pointer}.week-date-head span{display:block;font-size:8px;color:var(--muted)}.week-date-head strong{font-size:14px}.week-date-head.today strong{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:9px;background:var(--primary);color:white}
.week-master{min-height:105px;display:flex;align-items:flex-start;gap:9px;padding:15px 12px;border-bottom:1px solid var(--line)}.week-master .avatar{width:34px;height:34px;border-radius:11px}.week-master strong{display:block;font-size:9px}.week-master small{display:block;font-size:7px;color:var(--muted);margin-top:3px}
.week-master-day{min-height:105px;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;background:var(--surface-solid);text-align:left;cursor:pointer;overflow:hidden}.week-master-day:hover{background:var(--surface-hover)}.week-appointment{display:block;padding:5px 6px;margin-bottom:4px;border-radius:6px;background:var(--violet-soft);color:#5748d7;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-appointment b{font-weight:700}.week-master-day>small{font-size:7px;color:var(--muted)}.week-add{display:grid;place-items:center;height:100%;min-height:80px;color:#aaa;font-size:8px}.week-master-day:hover .week-add{color:var(--primary)}
.week-appointment.client-confirmed,.month-appointment.client-confirmed{background:#dff7eb;color:#17744f}.week-appointment.client-reschedule,.month-appointment.client-reschedule{background:#ffe0e4;color:#af3045}.week-appointment .attendance-badge,.month-appointment .attendance-badge{padding:1px 3px;font-size:6px}
.week-master-filter{display:flex;align-items:center;gap:7px;padding:12px;margin-bottom:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted);overflow-x:auto;scrollbar-width:thin}.week-master-filter button{flex:0 0 auto;display:flex;align-items:center;gap:6px;min-height:35px;padding:5px 9px;border:1px solid #e1e1e7;border-radius:10px;background:var(--surface-solid);color:var(--text);font-size:8px;cursor:pointer}.week-master-filter button.active{border-color:#afa6fb;background:var(--violet-soft);color:var(--primary);box-shadow:inset 0 0 0 1px #d6d0ff}.week-master-filter i{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;color:white;font-size:6px;font-style:normal;font-weight:700}.week-master-filter b{padding:2px 5px;border-radius:6px;background:#eeeef2;font-size:7px}.week-master-filter>small{margin-left:auto;flex:0 0 auto;color:var(--muted);font-size:7px}
.week-master-filter .week-multi-master-toggle{font-weight:750;border-style:dashed}.week-master-filter .week-multi-master-toggle.active{border-style:solid}
.week-time-grid{display:grid;grid-template-columns:58px repeat(7,minmax(calc(125px * var(--ui-scale,1)),1fr));grid-template-rows:calc(56px * var(--ui-scale,1)) repeat(56,calc(25px * var(--ui-scale,1)));min-width:calc(940px * var(--ui-scale,1));position:relative;background:var(--surface-solid)}.week-time-corner,.week-time-head{position:sticky;top:0;z-index:8;background:color-mix(in srgb,var(--surface-solid) 96%,transparent);backdrop-filter:blur(10px);border:0;border-bottom:1px solid var(--line)}.week-time-corner{grid-column:1;grid-row:1;display:grid;place-items:center;color:var(--muted);font-size:calc(7px * var(--ui-scale,1));text-transform:uppercase}.week-time-head{grid-row:1;border-left:1px solid var(--line);cursor:pointer}.week-time-head span,.week-time-head small{display:block;color:var(--muted);font-size:calc(7px * var(--ui-scale,1))}.week-time-head strong{display:inline-grid;place-items:center;width:calc(25px * var(--ui-scale,1));height:calc(25px * var(--ui-scale,1));font-size:calc(11px * var(--ui-scale,1))}.week-time-head.today strong{border-radius:8px;background:var(--primary);color:white}.week-time-label{grid-column:1;padding:4px 6px 0 0;text-align:right;border-bottom:1px solid #ececf1;background:var(--surface-muted);color:var(--muted);font-size:calc(7px * var(--ui-scale,1));z-index:2}.week-time-label.quarter{padding:0;border-bottom:1px dotted #ededf1}.week-time-slot{border:0;border-left:1px solid #eeeef2;border-bottom:1px dotted #ededf1;background:var(--surface-solid);cursor:pointer}.week-time-slot:nth-of-type(even){border-bottom-style:solid}.week-time-slot:hover{background:#f4f1ff}.week-time-slot.off-hours{background:rgba(225,91,111,.16)}.week-time-slot:disabled{cursor:default}
.week-time-label.half-hour,.week-time-slot.half-hour-slot{box-shadow:inset 0 1px 0 #c8cad4}.week-time-slot.quarter-slot{border-bottom:1px dotted #ececf1}
.week-schedule-event{position:relative;z-index:5;min-width:0;margin:1px;padding:4px 5px 8px;border:0;border-left:3px solid var(--card-color);border-radius:7px;text-align:left;overflow:hidden;background:color-mix(in srgb,var(--card-color) 16%,var(--surface-solid));color:color-mix(in srgb,var(--card-color) 80%,var(--card-text-base));cursor:pointer;box-shadow:0 2px 7px rgba(35,30,70,.08)}.week-schedule-event strong,.week-schedule-event span,.week-schedule-event small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-schedule-event strong{font-size:7px}.week-schedule-event span{font-size:6.5px;margin-top:2px}.week-schedule-event small{font-size:6px;opacity:.72;margin-top:2px}.week-schedule-event.client-confirmed{background:#dff7eb;color:#17744f;border-color:#25a873}.week-schedule-event.client-reschedule{background:#ffe0e4;color:#af3045;border-color:#d9475e}.week-schedule-event .attendance-badge{display:inline-flex;padding:1px 3px;font-size:5px}
.month-planner{display:grid;grid-template-columns:repeat(7,minmax(calc(120px * var(--ui-scale,1)),1fr));min-width:calc(840px * var(--ui-scale,1));background:var(--surface-solid)}
.month-weekday{height:calc(34px * var(--ui-scale,1));display:grid;place-items:center;border-bottom:1px solid var(--line);color:var(--muted);font-size:calc(8px * var(--ui-scale,1));text-transform:uppercase;font-weight:600}
.month-day{position:relative;min-height:calc(120px * var(--ui-scale,1));padding:10px;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-solid);text-align:left;cursor:pointer;overflow:hidden}.month-day:hover{background:var(--surface-hover)}.month-day.outside{background:var(--surface-muted);color:#aaa}.month-day>strong{display:inline-grid;place-items:center;width:calc(25px * var(--ui-scale,1));height:calc(25px * var(--ui-scale,1));font-size:calc(10px * var(--ui-scale,1))}.month-day.today>strong{border-radius:8px;background:var(--primary);color:white}.month-count{float:right;padding:3px 6px;border-radius:7px;background:#f1f0f5;color:var(--muted);font-size:calc(7px * var(--ui-scale,1))}.month-appointment{display:block;margin-top:5px;padding:4px 5px;border-radius:5px;background:var(--violet-soft);color:#5748d7;font-size:calc(7px * var(--ui-scale,1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-day>small{display:block;margin-top:5px;color:var(--muted);font-size:calc(7px * var(--ui-scale,1))}
#page-calendar .month-day.off-duty,#page-calendar .month-day.off-duty.outside{background:color-mix(in srgb,var(--rose) 18%,var(--surface-solid))}
#page-calendar .month-day.off-duty:hover{background:color-mix(in srgb,var(--rose) 24%,var(--surface-solid))}

.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface-solid);border:1px solid var(--line);border-radius:18px;margin-bottom:14px;box-shadow:var(--shadow)}
.stats-strip div{padding:18px 22px;border-left:1px solid var(--line)}.stats-strip div:first-child{border-left:0}
.stats-strip span{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.stats-strip strong{font-size:18px}
.table-panel{overflow:hidden}.table-tools{display:flex;justify-content:space-between;gap:12px;padding:17px 18px;border-bottom:1px solid var(--line)}
.search{height:40px;min-width:300px;max-width:460px;flex:1;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface-muted)}
.search svg{width:16px;color:var(--muted)}.search input{border:0;outline:0;background:transparent;width:100%;font-size:11px}
.client-row{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(130px,1fr) 120px 110px 50px;align-items:center;gap:15px;min-height:66px;padding:9px 18px;border-top:1px solid #f0f0f2;font-size:9px}
.client-row.header{min-height:38px;background:var(--surface-muted);color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.4px;border-top:0}
.client-row:not(.header){cursor:pointer}.client-row:not(.header):hover{background:var(--surface-hover)}
.client-name{display:flex;align-items:center;gap:10px}.client-name .avatar{width:34px;height:34px;border-radius:11px}.client-name strong{display:block;font-size:10px}.client-name small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.loyalty{padding:5px 8px;border-radius:7px;background:var(--violet-soft);color:var(--primary);font-weight:600;width:max-content}

.team-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px}.master-list-panel{overflow:hidden;display:flex;flex-direction:column}
.master-list-tools{display:grid;gap:8px;padding:0 14px 11px;border-bottom:1px solid var(--line)}.master-search{height:39px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.master-search svg{width:15px;color:var(--muted)}.master-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:10px}.master-list-tools select{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--text);font-size:9px}#masterList{padding:7px 10px 12px;max-height:none;overflow:visible}.master-item{position:relative;width:100%;border:0;background:transparent;display:flex;align-items:center;gap:11px;padding:11px;border-radius:13px;text-align:left;cursor:pointer;will-change:transform;transition:background-color .22s ease,box-shadow .22s ease,opacity .18s ease,filter .18s ease}.master-list-empty{display:grid;gap:5px;padding:32px 15px;text-align:center;color:var(--muted)}.master-list-empty strong{color:var(--text);font-size:10px}.master-list-empty small{font-size:8px;line-height:1.5}
.master-item.active{background:var(--violet-soft)}.master-item .avatar{width:38px;height:38px}.master-item div{min-width:0}.master-item strong{display:block;font-size:10px}.master-item small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.master-item b{margin-left:auto;font-size:8px;color:var(--green)}
.master-drag-grip{width:8px;flex:0 0 8px;display:none;gap:2px;opacity:.35}.master-drag-grip i{display:block;width:3px;height:3px;border-radius:50%;background:currentColor;box-shadow:5px 0 currentColor}.master-reorder-enabled .master-item{cursor:grab}.master-reorder-enabled .master-item:active{cursor:grabbing}.master-reorder-enabled .master-drag-grip{display:grid}.master-item.dragging{z-index:8;opacity:.28;filter:saturate(.65);box-shadow:0 16px 38px rgba(39,32,92,.2)}
.former-staff-section{margin-top:auto;border-top:1px solid var(--line)}.former-staff-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:13px 15px;border:0;background:var(--surface-muted);color:var(--text);font:inherit;font-size:9px;font-weight:700;cursor:pointer}.former-staff-toggle b{min-width:21px;padding:3px 6px;border-radius:7px;background:var(--surface-solid);color:var(--muted);font-size:7px}.former-staff-toggle i{margin-left:auto;font-style:normal;transition:.18s}.former-staff-toggle[aria-expanded="true"] i{transform:rotate(180deg)}#formerStaffList{max-height:280px;overflow:auto;padding:6px;background:var(--surface-muted)}.former-master-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border-radius:11px}.former-master-item+.former-master-item{border-top:1px solid var(--line)}.former-master-item .avatar{width:34px;height:34px;filter:saturate(.45)}.former-master-item strong,.former-master-item small{display:block}.former-master-item strong{font-size:8.5px}.former-master-item small{margin-top:3px;color:var(--muted);font-size:6.5px;line-height:1.35}.former-master-item button{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-solid);color:var(--primary);font-size:6.5px;cursor:pointer}.former-staff-empty{padding:18px 12px;color:var(--muted);font-size:7px;line-height:1.5;text-align:center}
.master-profile-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.archive-master-button{min-height:42px;padding:0 14px;border:1px solid #f0c9cf;border-radius:12px;background:#fff5f6;color:#b43c50;font:inherit;font-size:8px;font-weight:700;cursor:pointer}.archive-master-button[data-confirm="true"]{background:#c73f55;border-color:#c73f55;color:#fff}.archive-master-button:disabled{opacity:.55;cursor:wait}
.schedule-editor{padding:22px}.schedule-profile{display:flex;align-items:center;gap:13px;padding-bottom:20px;border-bottom:1px solid var(--line)}.schedule-profile .avatar{width:48px;height:48px}.schedule-profile h2{margin:0;font-size:15px}.schedule-profile p{margin:4px 0 0;font-size:9px;color:var(--muted)}.schedule-profile button{margin-left:auto}
.master-profile-card{display:grid;gap:18px}.master-profile-hero{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}.master-profile-photo{width:76px;height:76px;flex:0 0 76px;border-radius:23px;object-fit:cover;box-shadow:0 8px 24px rgba(35,30,70,.12)}.master-profile-photo.fallback{display:grid;place-items:center;color:#fff;font-size:18px;font-weight:700}.master-profile-hero>div{min-width:0;flex:1}.master-profile-kicker{display:block;margin-bottom:5px;color:var(--primary);font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.9px}.master-profile-hero h2{margin:0;font-size:20px}.master-profile-hero p{margin:5px 0 0;color:var(--muted);font-size:10px}.master-profile-hero button{margin-left:auto}.master-profile-contacts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.master-profile-contacts>a,.master-profile-contacts>span{min-width:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-muted);color:var(--text);text-decoration:none}.master-profile-contacts a:not(.empty):hover{border-color:#aaa0f5;background:var(--violet-soft)}.master-profile-contacts small,.master-profile-contacts strong{display:block}.master-profile-contacts small{color:var(--muted);font-size:7px}.master-profile-contacts strong{margin-top:5px;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.master-profile-contacts .empty strong{color:var(--muted)}.master-daily-message{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #ddd8ff;border-radius:16px;background:linear-gradient(135deg,var(--violet-soft),var(--surface-solid))}.master-daily-message>span{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:var(--primary);color:#fff;font-size:17px}.master-daily-message>div{min-width:0;flex:1}.master-daily-message small,.master-daily-message strong{display:block}.master-daily-message small{margin-bottom:5px;color:var(--primary);font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.6px}.master-daily-message strong{font-size:11px;line-height:1.45}.master-daily-message.praise{border-color:#bce8d5;background:linear-gradient(135deg,var(--green-soft),var(--surface-solid))}.master-daily-message.praise>span{background:var(--green)}.master-daily-message.praise small{color:var(--green)}.master-daily-message.motivation{border-color:#f2d9ad;background:linear-gradient(135deg,var(--amber-soft),var(--surface-solid))}.master-daily-message.motivation>span{background:#df9b32}.master-daily-message.motivation small{color:#b97819}.staff-daily-telegram{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border:0;border-radius:13px;background:#229ed9;color:#fff;cursor:pointer;box-shadow:0 7px 16px rgba(34,158,217,.24);transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.staff-daily-telegram:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 9px 20px rgba(34,158,217,.34)}.staff-daily-telegram:active:not(:disabled){transform:translateY(0)}.staff-daily-telegram:disabled{opacity:.34;cursor:not-allowed;box-shadow:none}.staff-daily-telegram svg{width:20px;height:20px;fill:currentColor}.master-profile-form{padding-top:3px}.master-profile-form>.primary-button{float:right}
.staff-rank-trigger{display:flex!important;align-items:center;gap:8px;width:max-content;max-width:100%;margin:0 0 7px!important;padding:4px 8px 4px 5px;border:1px solid color-mix(in srgb,#d99b28 38%,var(--line));border-radius:11px;background:linear-gradient(135deg,color-mix(in srgb,#ffd86a 18%,var(--surface-solid)),var(--surface-solid));color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:.18s}.staff-rank-trigger:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(168,113,18,.12)}.staff-rank-emblem{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(145deg,#ffdc65,#c98718);color:#fff;text-shadow:0 1px 2px #8c5b0d}.staff-rank-trigger>span:nth-child(2){display:grid;gap:2px}.staff-rank-trigger strong{font-size:8px}.staff-rank-trigger small{color:var(--muted);font-size:6px}.staff-rank-trigger i{margin-left:5px;color:#a46a0d;font-size:7px;font-style:normal;font-weight:800}.staff-ranks-overlay{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:rgba(20,17,31,.62);backdrop-filter:blur(8px)}.staff-ranks-sheet{position:relative;width:min(540px,100%);max-height:90dvh;overflow:auto;padding:18px;border:1px solid rgba(255,215,108,.48);border-radius:25px;background:var(--surface-solid);box-shadow:0 30px 90px rgba(16,11,31,.35)}.staff-ranks-close{position:absolute;z-index:2;right:28px;top:28px;width:34px;height:34px;border:1px solid rgba(255,255,255,.35);border-radius:11px;background:rgba(25,17,47,.28);color:#fff;font-size:20px;cursor:pointer}.staff-ranks-banner{display:flex;align-items:center;gap:15px;padding:23px;border-radius:19px;background:radial-gradient(circle at 15% 0,#8f7cff,#332365 70%);color:#fff;overflow:hidden}.staff-ranks-banner>span{width:60px;height:60px;flex:0 0 60px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.4);border-radius:19px;background:rgba(255,255,255,.14);font-size:30px;box-shadow:inset 0 0 24px rgba(255,255,255,.12)}.staff-ranks-banner small{font-size:7px;font-weight:900;letter-spacing:1.4px;opacity:.7}.staff-ranks-banner h2{margin:4px 0;font-size:20px}.staff-ranks-banner p{margin:0;font-size:9px;opacity:.82}.staff-ranks-banner.rank-legend{background:radial-gradient(circle at 15% 0,#ffdc73,#7c321d 75%)}.staff-rank-progress{padding:17px 4px 12px}.staff-rank-progress>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:8px}.staff-rank-progress strong{color:#a36c10}.staff-rank-progress>i{display:block;height:8px;overflow:hidden;border-radius:99px;background:var(--surface-muted)}.staff-rank-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8668f2,#ffc447);box-shadow:0 0 12px #e9ae38}.staff-ranks-path{display:grid;gap:7px}.staff-rank-step{display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.staff-rank-step>span{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--muted) 12%,var(--surface-solid));color:var(--muted);font-size:17px}.staff-rank-step strong,.staff-rank-step small{display:block}.staff-rank-step strong{font-size:10px}.staff-rank-step small{margin-top:3px;color:var(--muted);font-size:7px}.staff-rank-step em{color:var(--muted);font-size:7px;font-style:normal;font-weight:800}.staff-rank-step.reached>span{background:linear-gradient(145deg,#ffe172,#d09322);color:#fff}.staff-rank-step.current{border-color:#e5b646;background:linear-gradient(135deg,color-mix(in srgb,#ffd761 14%,var(--surface-solid)),var(--surface-solid));box-shadow:0 6px 20px rgba(195,139,26,.1)}.staff-rank-step.current em{color:#b3770e}.staff-ranks-hint{margin:13px 4px 2px;color:var(--muted);font-size:7px;line-height:1.5;text-align:center}@media(max-width:600px){.master-profile-hero{align-items:flex-start;flex-wrap:wrap}.master-profile-hero>div{min-width:calc(100% - 90px)}.master-profile-hero>button:last-child{width:100%;margin:0}.staff-rank-trigger i{display:none}.staff-ranks-overlay{align-items:end;padding:0}.staff-ranks-sheet{max-height:92dvh;border-radius:25px 25px 0 0;padding-bottom:calc(18px + var(--app-safe-bottom))}.staff-ranks-banner{padding:19px}.staff-ranks-banner>span{width:50px;height:50px;flex-basis:50px}}
.master-profile-contacts .empty{pointer-events:none}
.schedule-title{display:flex;align-items:center;justify-content:space-between;margin:20px 0 10px}.schedule-title h3{font-size:12px;margin:0}.schedule-title span{font-size:8px;color:var(--muted)}
.day-schedule{display:grid;grid-template-columns:110px 50px minmax(230px,1fr) 32px;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #f1f1f3}.day-name{font-size:10px;font-weight:600}.day-name small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.switch{position:relative;width:36px;height:21px}.switch input{opacity:0;width:0;height:0}.switch i{position:absolute;inset:0;background:#d8d8dd;border-radius:20px;cursor:pointer;transition:.2s}.switch i::after{content:"";position:absolute;width:17px;height:17px;left:2px;top:2px;border-radius:50%;background:var(--surface-solid);box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.2s}.switch input:checked+i{background:var(--primary)}.switch input:checked+i::after{transform:translateX(15px)}
.consumables-service-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.consumables-service-toggle>span:first-child{display:grid;gap:3px}.consumables-service-toggle small,.consumables-cost-field small{color:var(--muted);font-size:12px}.consumables-service-toggle .switch{flex:0 0 36px}
.service-consumables-settings{display:grid;gap:8px}.salary-consumables-toggle[hidden]{display:none}.salary-consumables-toggle{background:color-mix(in srgb,var(--violet-soft) 45%,var(--surface-soft))}
.payroll-tier-editor{grid-column:1/-1;width:min(100%,720px);min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.payroll-tier-heading{display:flex;align-items:center;justify-content:space-between;margin:0;cursor:pointer;list-style:none}.payroll-tier-heading::-webkit-details-marker{display:none}.payroll-tier-heading strong{font-size:18px;line-height:1.2}.payroll-tier-heading button{width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--primary);font-size:24px;cursor:pointer}.payroll-tier-chevron{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--muted);font-size:20px;transition:transform .18s ease}.payroll-tier-editor[open] .payroll-tier-chevron{transform:rotate(180deg)}.payroll-tier-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.payroll-tier-toolbar small{color:var(--muted);font-size:10px}.payroll-tier-toolbar button,.payroll-tier-row>[data-remove-tier]{min-width:38px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--primary);font-size:12px;font-weight:750;cursor:pointer}.payroll-tier-row>[data-remove-tier]{width:38px;padding:0;color:#d95768;font-size:24px}.payroll-tier-rows{display:grid;gap:8px}.payroll-tier-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px;align-items:end;gap:12px;min-width:0}.commission-form .payroll-tier-row label{min-width:0;font-size:13px;font-weight:600;color:var(--text)}.commission-form .payroll-tier-row input{height:42px;margin-top:6px;font-size:14px;font-weight:700}.payroll-tier-row label>span input{min-width:0;width:100%}.payroll-tier-row>[data-remove-tier]:disabled{opacity:.35;cursor:default}@media(max-width:680px){.payroll-tier-editor{width:100%;padding:12px}.payroll-tier-heading strong{font-size:16px}.payroll-tier-row{gap:8px}.commission-form .payroll-tier-row label{font-size:11px}}
.time-range{display:flex;align-items:center;gap:8px}.time-range input{width:88px;border:1px solid var(--line);border-radius:9px;padding:8px;font-size:9px;background:var(--surface-muted)}.time-range span{color:var(--muted);font-size:9px}
.day-schedule.off .time-range{opacity:.35;pointer-events:none}.day-schedule.off .remove-day{opacity:.25}
.remove-day{border:0;background:transparent;color:#aaa;cursor:pointer;font-size:18px}.schedule-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}

.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:14px}.service-card{padding:19px}.service-card-top{display:flex;align-items:flex-start;justify-content:space-between}.service-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center}.service-icon svg{width:19px}.service-card h2{font-size:13px;margin:16px 0 4px}.service-card p{font-size:9px;color:var(--muted);margin:0 0 16px}.service-meta{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.service-meta span{font-size:9px;color:var(--muted)}.service-meta strong{font-size:11px}
.category-section{margin-bottom:14px;padding:16px}.category-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.category-section-head h2{margin:0 0 3px;font-size:12px}.category-section-head p{margin:0;color:var(--muted);font-size:8px}.category-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.category-chip{min-width:175px;display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid);text-align:left;cursor:pointer;transition:.16s}.category-chip:hover{border-color:#cec9f5}.category-chip.active{background:var(--surface-hover);border-color:#a99ff3;box-shadow:0 4px 12px rgba(101,87,235,.08)}.category-symbol{flex:0 0 auto;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:9px;font-weight:700}.category-symbol.all{background:#efeff3;color:#555}.category-chip strong{display:block;font-size:9px}.category-chip small{display:block;margin-top:3px;color:var(--muted);font-size:7px;white-space:nowrap}.empty-services{grid-column:1/-1;padding:45px;text-align:center}.empty-services .service-icon{margin:0 auto}.empty-services h2{font-size:13px;margin:14px 0 5px}.empty-services p{font-size:8px;color:var(--muted);margin:0 0 16px}
.service-card{cursor:pointer;transition:.18s}.service-card:hover{transform:translateY(-2px);border-color:#dcd9f5;box-shadow:0 14px 38px rgba(40,35,90,.08)}.unit-input{position:relative}.unit-input input{padding-right:44px}.unit-input span{position:absolute;right:12px;top:13px;color:var(--muted);font-size:9px;pointer-events:none}.service-form-preview{display:flex;align-items:center;gap:11px;padding:13px;margin:2px 0 20px;border-radius:14px;background:var(--surface-muted);border:1px solid var(--line)}.service-form-preview strong{display:block;font-size:10px}.service-form-preview small{display:block;font-size:8px;color:var(--muted);margin-top:3px}
.service-catalog-search{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:0 15px;min-height:48px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.service-catalog-search:focus-within{border-color:#a99ff3;box-shadow:0 0 0 3px rgba(101,87,235,.1)}.service-catalog-search svg{width:18px;height:18px;color:var(--muted)}.service-catalog-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit}.category-chip-wrap{position:relative;flex:0 0 auto}.category-chip-wrap .category-chip{width:100%;padding-right:31px}.category-delete-button{position:absolute;right:7px;top:7px;width:23px;height:23px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}.category-delete-button:hover{background:#fff0f2;color:#c94e60}.service-delete-button{margin-right:auto}
.team-heading-actions{display:flex;align-items:center;gap:9px}#categoryModal .category-sheet{width:min(760px,100%)}.category-sheet .modal-header small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.category-manager-list{display:grid;gap:8px;max-height:min(52dvh,520px);overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 8px 2px}.category-manager-empty{padding:28px 16px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);font-size:9px;text-align:center}.category-manager-row{display:grid;grid-template-columns:38px minmax(150px,1fr) 125px auto auto;align-items:end;gap:8px;padding:10px;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted)}.category-manager-symbol{align-self:center;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;font-size:13px;font-weight:850}.category-manager-row .field{gap:4px;margin:0}.category-manager-row .field input,.category-manager-row .field select{height:36px;background:var(--surface-solid);font-size:9px}.category-manager-meta{grid-column:2/4;color:var(--muted);font-size:7px}.category-manager-row>button{min-height:36px;padding:0 11px}.category-manager-delete{border:1px solid color-mix(in srgb,var(--red) 30%,var(--line));border-radius:10px;background:var(--surface-solid);color:var(--red);font:inherit;font-size:8px;font-weight:750;cursor:pointer}.category-manager-delete:disabled{opacity:.45;cursor:wait}#categoryForm{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.category-manager-create-title{display:grid;gap:4px;margin-bottom:10px}.category-manager-create-title strong{font-size:11px}.category-manager-create-title small{color:var(--muted);font-size:7px}.category-manager-create-fields{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;align-items:end;gap:9px}.category-manager-create-fields .field{margin:0}.category-manager-create-fields>.primary-button{min-height:42px}
@media(max-width:700px){.team-heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.team-heading-actions button{width:100%;min-height:46px;padding:0 10px}.category-manager-list{max-height:50dvh}.category-manager-row{grid-template-columns:34px minmax(0,1fr) auto}.category-manager-row .category-manager-color{grid-column:2/4}.category-manager-meta{grid-column:2/4}.category-manager-row>button.primary-button{grid-column:2}.category-manager-row>.category-manager-delete{grid-column:3}.category-manager-create-fields{grid-template-columns:1fr}.category-manager-create-fields>.primary-button{width:100%}}
.catalog-type-switch{display:inline-flex!important;align-items:center;gap:4px;padding:4px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.catalog-type-switch button{min-height:42px;padding:0 18px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:20px;font-weight:800;letter-spacing:-.5px;cursor:pointer;transition:.18s}.catalog-type-switch button:hover{color:var(--text)}.catalog-type-switch button.active{background:var(--surface-solid);color:var(--primary);box-shadow:0 4px 14px rgba(41,35,85,.09)}
.consumable-list{grid-column:1/-1;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:18px;background:var(--surface-solid)}.consumable-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:9px 12px;border-radius:14px;background:var(--surface-muted);transition:.16s}.consumable-row:hover{background:var(--surface-hover)}.consumable-swatch{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:linear-gradient(145deg,#fff,#e9e7ef);box-shadow:inset 0 0 0 5px rgba(255,255,255,.55),0 4px 10px rgba(40,35,70,.08)}.consumable-row>div:nth-child(2){min-width:0}.consumable-row strong,.consumable-row small{display:block}.consumable-row strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.consumable-row small{margin-top:4px;color:var(--muted);font-size:8px}.consumable-row small b{display:inline;color:var(--text);font-size:9px}.consumable-actions{display:flex;align-items:center;gap:7px}.consumable-actions button{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid);font-size:24px;line-height:1;cursor:pointer;transition:.16s}.consumable-actions button:hover{transform:translateY(-1px)}.consumable-actions .remove{color:#e15264}.consumable-actions .add{color:#22aa65}.consumable-sheet{width:min(480px,100%)}.consumable-current{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.consumable-current small{color:var(--muted);font-size:9px}.consumable-current .unit-input{width:min(180px,55%)}.consumable-current .unit-input input{width:100%;height:42px;border:1px solid var(--line);border-radius:11px;padding:0 38px 0 12px;background:var(--surface-solid);color:var(--text);outline:0;font-size:13px;font-weight:800;text-align:right}.consumable-current .unit-input input:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}.consumable-current .unit-input span{top:13px}.consumable-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:-7px 0 18px}.consumable-presets[hidden]{display:none}.consumable-presets button{height:40px;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:11px;background:var(--violet-soft);color:var(--primary);font:inherit;font-size:10px;font-weight:800;cursor:pointer}.consumable-presets button:hover{border-color:var(--primary);background:color-mix(in srgb,var(--violet-soft) 70%,var(--surface-solid))}@media(max-width:650px){.catalog-type-switch{width:100%;display:grid!important;grid-template-columns:repeat(4,1fr)}.catalog-type-switch button{min-width:0;padding:0 5px;font-size:12px}.consumable-list{padding:6px}.consumable-row{grid-template-columns:34px minmax(0,1fr) auto;gap:8px;padding:8px}.consumable-swatch{width:32px;height:32px}.consumable-actions{gap:4px}.consumable-actions button{width:34px;height:34px}.consumable-row strong{font-size:10px}}
.finance-metrics{grid-template-columns:repeat(3,1fr)}.finance-metrics .metric-card{min-height:110px}.finance-account-card{position:relative;overflow:hidden}.finance-account-card::after{content:"";position:absolute;right:15px;bottom:15px;width:32px;height:22px;border-radius:7px;opacity:.72}.finance-account-card.card-account::after{background:linear-gradient(135deg,#6557eb,#8f84fa);box-shadow:inset 0 -7px rgba(255,255,255,.22)}.finance-account-card.cash-account::after{width:31px;height:31px;border-radius:50%;background:#e9ad31;box-shadow:inset 0 0 0 5px #f8d878}
.finance-net-profit-card{grid-column:span 2;justify-content:space-between;align-items:center}.finance-net-profit-breakdown{display:grid;gap:7px;min-width:210px;padding-left:18px;border-left:1px solid var(--line)}.finance-net-profit-breakdown span{display:flex;justify-content:space-between;gap:18px;color:var(--muted);font-size:10px}.finance-net-profit-breakdown strong{color:var(--text);font-size:11px;white-space:nowrap}
.finance-revenue-trigger{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.finance-revenue-trigger:hover{transform:translateY(-2px);border-color:rgba(101,87,235,.38);box-shadow:0 15px 38px rgba(45,39,100,.12)}.finance-revenue-trigger:focus-visible{outline:3px solid rgba(101,87,235,.22);outline-offset:2px}.finance-payments-sheet{width:min(1040px,calc(100vw - 32px));max-height:min(88vh,900px);overflow:auto}.finance-payments-note{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:var(--surface-soft);color:var(--muted);font-size:13px;line-height:1.45}.finance-payments-list{display:grid;gap:12px}.finance-payment-row{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.finance-payment-summary>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.finance-payment-summary strong{font-size:17px}.finance-payment-summary p{margin:6px 0 3px;font-weight:650}.finance-payment-summary small{color:var(--muted)}.finance-payment-source{padding:4px 8px;border-radius:99px;background:#fff3d9;color:#a36a00;font-size:11px;font-weight:750}.finance-payment-editor{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:10px;margin-top:14px}.finance-payment-editor label{display:grid;gap:6px;color:var(--muted);font-size:12px}.finance-payment-editor input,.finance-payment-editor select{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font:inherit}.finance-payment-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:12px}.finance-payment-actions button{min-height:40px}
.finance-discounts-trigger .discounts-show-hint{color:#d8892e}.finance-discounts-sheet{width:min(980px,calc(100vw - 32px));max-height:min(88vh,860px);overflow:auto}.finance-discounts-list{border:1px solid var(--line);border-radius:17px;overflow:hidden}.finance-discount-head,.finance-discount-row{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(120px,.65fr));align-items:center;gap:14px}.finance-discount-head{padding:10px 15px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.finance-discount-row{padding:14px 15px;border-top:1px solid var(--line);background:var(--surface-solid)}.finance-discount-row:first-of-type{border-top:0}.finance-discount-main strong,.finance-discount-main span,.finance-discount-main small,.finance-discount-row>div>small,.finance-discount-row>div>strong{display:block}.finance-discount-main strong{font-size:11px}.finance-discount-main span{margin-top:4px;font-size:9px;font-weight:700}.finance-discount-main small,.finance-discount-row>div>small{margin-top:3px;color:var(--muted);font-size:7px}.finance-discount-row>div>strong{margin-top:4px;font-size:11px}.finance-discount-value strong{color:#d8892e}.finance-discounts-empty{min-height:250px;display:grid;place-content:center;justify-items:center;gap:7px;padding:24px;text-align:center;color:var(--muted)}.finance-discounts-empty>span{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:rgba(232,155,56,.14);color:#d8892e;font-size:17px;font-weight:850}.finance-discounts-empty strong{color:var(--text);font-size:12px}.finance-discounts-empty small{font-size:8px}
html[data-theme="dark"] .finance-payment-source{background:rgba(232,155,56,.16);color:#f1bd63}
@media(max-width:650px){.finance-payments-sheet,.finance-discounts-sheet{width:calc(100vw - 16px);max-height:92dvh}.finance-payment-editor{grid-template-columns:1fr}.finance-payment-actions{display:grid;grid-template-columns:1fr 1fr}.finance-payment-actions button{width:100%}.finance-discount-head{display:none}.finance-discounts-list{display:grid;gap:9px;border:0;border-radius:0;overflow:visible}.finance-discount-row{grid-template-columns:1fr 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:15px}.finance-discount-main{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--line)}.finance-discount-value{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-top:4px}.finance-discount-value strong{margin-top:0!important}}
.appointment-history-toggle{margin:-5px 0 14px}.appointment-client-history{margin:-7px 0 14px}
.appointment-transfer-history{margin:-3px 0 15px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.appointment-transfer-history>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.appointment-transfer-history>div:first-child strong{font-size:9px}.appointment-transfer-history>div:first-child span{min-width:22px;padding:3px 6px;border-radius:8px;background:var(--surface-solid);color:var(--primary);font-size:7px;font-weight:800;text-align:center}.appointment-transfer-history>div:last-child>small{display:block;padding:8px 2px;color:var(--muted);font-size:7px}.transfer-history-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:9px 2px;border-top:1px solid var(--line)}.transfer-history-row:first-child{border-top:0}.transfer-history-row>span{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:var(--violet-soft);color:var(--primary);font-size:12px}.transfer-history-row strong,.transfer-history-row small,.transfer-history-row em{display:block}.transfer-history-row strong{font-size:7.5px}.transfer-history-row small{margin-top:3px;color:var(--text);font-size:7px}.transfer-history-row em{margin-top:4px;color:var(--muted);font-size:6.5px;font-style:normal}
.transfer-confirm-sheet{width:min(560px,100%)}.transfer-client{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:13px;border-radius:13px;background:var(--surface-muted)}.transfer-client .avatar{width:38px;height:38px}.transfer-client strong,.transfer-client small{display:block}.transfer-client strong{font-size:10px}.transfer-client small{margin-top:3px;color:var(--muted);font-size:8px}.transfer-route{display:grid;grid-template-columns:1fr 34px 1fr;align-items:stretch;gap:8px}.transfer-route>div{padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid)}.transfer-route>div:last-child{border-color:#cfc9ff;background:var(--violet-soft)}.transfer-route>span{display:grid;place-items:center;color:var(--primary);font-size:18px}.transfer-route small,.transfer-route strong{display:block}.transfer-route small{margin-bottom:6px;color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.5px}.transfer-route strong{font-size:9px;line-height:1.45}.transfer-note{margin:12px 0 4px;color:var(--muted);font-size:7.5px}
.booking-history-row .history-comment{display:block;margin-top:6px;padding:6px 8px;border-radius:8px;background:var(--surface-muted);color:var(--text);font-size:7px;font-style:normal;line-height:1.4;white-space:normal}.booking-history-row .history-comment.cancellation{background:#fff2f4;color:#a33d50}.client-history-row .history-comment{display:block;margin-top:5px;color:var(--muted);font-size:7px;font-style:normal;line-height:1.35;white-space:normal}.history-comment.consumables{color:#a56b08}.history-comment.consumables>strong{display:block;color:inherit;font-size:inherit}.history-consumable-list{display:grid!important;gap:3px;margin-top:5px}.history-consumable-list>span{display:flex!important;align-items:baseline;justify-content:space-between;gap:10px}.history-consumable-list b{min-width:0;color:var(--text);font-size:7px;font-weight:650}.history-consumable-list i{flex:0 0 auto;color:var(--muted);font-size:7px;font-style:normal;font-variant-numeric:tabular-nums}
.history-service-list{display:grid;gap:4px}.history-service-list>span{display:grid!important;grid-template-columns:10px minmax(0,1fr);gap:2px;align-items:start}.history-service-list>span[hidden]{display:none!important}.history-service-list i{color:var(--primary);font-size:11px;font-style:normal;line-height:1}.history-service-list b{font-size:9px;line-height:1.3}.history-service-list button{justify-self:start;margin-top:3px;padding:4px 8px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:8px;background:var(--violet-soft);color:var(--primary);font:inherit;font-size:7px;font-weight:800;cursor:pointer}
.finance-sections{display:inline-flex;margin:0 0 12px}.payroll-rules{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px;margin-bottom:14px}.payroll-rules>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.payroll-rules strong{font-size:10px;margin-right:4px}.payroll-rules span{padding:6px 9px;border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:7px}.payroll-rules p{max-width:390px;margin:0;color:var(--muted);font-size:8px;line-height:1.5}.payroll-staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:0 18px}.payroll-staff-item{padding:15px;border:1px solid var(--line);border-radius:15px}.payroll-person{display:flex;align-items:center;gap:10px}.payroll-person .avatar{width:38px;height:38px}.payroll-person>div{min-width:0;flex:1}.payroll-person strong,.payroll-person small{display:block}.payroll-person strong{font-size:9px}.payroll-person small{margin-top:3px;color:var(--muted);font-size:7px}.payroll-person>b{font-size:11px}.payroll-numbers{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:13px 0}.payroll-numbers span{padding:8px;border-radius:10px;background:var(--surface-muted)}.payroll-numbers .tips-payroll-number{background:rgba(49,168,117,.11)}.payroll-numbers small,.payroll-numbers strong{display:block}.payroll-numbers small{font-size:6px;color:var(--muted)}.payroll-numbers strong{margin-top:4px;font-size:8px}.payroll-target{height:6px;border-radius:6px;background:var(--surface-muted);overflow:hidden}.payroll-target i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#6557eb,#31a875)}.payroll-target-label{display:block;margin-top:5px;color:var(--muted);font-size:6.5px}.commission-form{display:flex;align-items:end;gap:8px;margin-top:12px}.commission-form label{flex:1;color:var(--muted);font-size:7px}.commission-form input{width:80px;height:36px;margin-top:5px;padding:0 22px 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--text);font:inherit}.commission-form label{position:relative}.commission-form label>b{position:absolute;left:62px;bottom:11px;color:var(--muted)}.commission-form button{height:36px}.payroll-daily-card{margin-top:14px;padding-bottom:16px}.payroll-daily-list{padding:0 18px}.payroll-day-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;padding:11px 0;border-top:1px solid var(--line);font-size:8px}.payroll-day-row:first-child{border-top:0}.payroll-day-row span{color:var(--muted);line-height:1.7}

.no-show-button{border:1px solid #c9994b;background:rgba(201,153,75,.1);color:#9a6819}.visit-no-show{position:relative!important;overflow:hidden!important;filter:grayscale(.35);opacity:.72;background:var(--surface-muted)!important;color:var(--muted)!important}.visit-no-show::before,.visit-no-show::after{content:"";position:absolute;z-index:8;left:7%;top:48%;width:86%;height:5px;border-radius:55% 45% 60% 40%;pointer-events:none;background:linear-gradient(90deg,transparent 0,#a72f48 7%,#d24d62 42%,#97263e 91%,transparent 100%);box-shadow:0 1px 0 rgba(255,255,255,.25);transform:rotate(19deg)}.visit-no-show::after{transform:rotate(-17deg);height:4px;opacity:.9}.tips-field{margin-top:12px}
.payroll-metrics{grid-template-columns:repeat(7,minmax(0,1fr))}
.payroll-balance-metric{border-color:color-mix(in srgb,var(--primary) 30%,var(--line));background:linear-gradient(145deg,var(--surface-solid),var(--violet-soft))}.payroll-balance-metric.settled{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:linear-gradient(145deg,var(--surface-solid),var(--green-soft))}
.payroll-person-total{display:grid;text-align:right}.payroll-person-total small{color:var(--muted);font-size:7px}.payroll-person-total b{margin-top:3px;font-size:13px}.payroll-payout-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:7px;margin:12px 0}.payroll-payout-actions button{min-width:0;min-height:36px;height:auto;padding:8px 11px;font-size:8px;line-height:1.25;white-space:normal}.payroll-payout-actions button:disabled{opacity:.45;cursor:not-allowed}.bonus-payout-button:not(:disabled){border-color:#e0c46e;color:#9a6d09;background:#fff9e9}
.payroll-ledger-card{margin-top:14px;padding-bottom:16px}.payroll-ledger-list{display:grid;padding:0 18px}.payroll-ledger-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line)}.payroll-ledger-row:first-child{border-top:0}.payroll-ledger-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--violet-soft);color:var(--primary);font-size:12px;font-weight:800}.payroll-ledger-row>span:nth-child(2){min-width:0}.payroll-ledger-row strong,.payroll-ledger-row small,.payroll-ledger-row em{display:block}.payroll-ledger-row strong{font-size:9px}.payroll-ledger-row small{margin-top:3px;color:var(--muted);font-size:7px}.payroll-ledger-row em{margin-top:4px;color:var(--muted);font-size:7px;font-style:normal}.payroll-ledger-meta{text-align:right}.payroll-ledger-meta b{font-size:10px}.payroll-ledger-actions{display:flex;gap:6px}.payroll-edit-button,.payroll-void-button{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-solid);color:var(--primary);font:inherit;font-size:7px;cursor:pointer}.payroll-void-button{border-color:#efb8c0;background:#fff4f5;color:#bd4557}.payroll-ledger-row.voided{opacity:.58}.payroll-ledger-row.voided .payroll-ledger-icon{background:var(--surface-muted);color:var(--muted)}.payroll-ledger-row.voided .payroll-ledger-meta b{text-decoration:line-through}.payroll-ledger-row .void-reason{color:#bd4557}
.payroll-telegram-button{display:flex;align-items:center;gap:8px;padding:10px 14px;border:0;border-radius:12px;background:#229ed9;color:#fff;font:inherit;font-weight:700;cursor:pointer}.payroll-telegram-button svg,.payroll-telegram-task-sheet .modal-actions svg{width:18px;height:18px;fill:currentColor;stroke:none}.payroll-telegram-task-sheet{width:min(720px,calc(100vw - 28px))}.payroll-telegram-task-sheet form{display:grid;gap:16px}.payroll-telegram-task-list{display:grid;max-height:min(52vh,520px);overflow:auto;border:1px solid var(--line);border-radius:16px}.payroll-telegram-task-row{display:grid;grid-template-columns:auto minmax(0,1fr) 150px;align-items:center;gap:14px;padding:13px 14px;border-top:1px solid var(--line)}.payroll-telegram-task-row:first-child{border-top:0}.payroll-telegram-task-row strong,.payroll-telegram-task-row small{display:block}.payroll-telegram-task-row small{margin-top:3px;color:var(--muted)}.payroll-task-check{position:relative;display:grid;place-items:center;width:26px;height:26px}.payroll-task-check input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.payroll-task-check span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);border-radius:7px;color:transparent;background:var(--surface-solid)}.payroll-task-check input:checked+span{border-color:#229ed9;background:#229ed9;color:#fff}.payroll-task-amount{display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid)}.payroll-task-amount input{min-width:0;width:100%;padding:10px;border:0;background:transparent;text-align:right;font:inherit;font-weight:700}.payroll-task-amount span{padding-right:11px;color:var(--muted)}.payroll-telegram-task-summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:var(--violet-soft)}.payroll-telegram-task-summary strong{font-size:22px}.payroll-telegram-task-sheet .modal-actions .primary-button{display:flex;align-items:center;justify-content:center;gap:8px}
.payroll-task-source-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px;border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.payroll-task-source-switch button{min-height:36px;border:0;border-radius:9px;background:transparent;color:var(--muted);font:inherit;font-weight:700;cursor:pointer}.payroll-task-source-switch button.active{background:var(--surface-solid);color:var(--primary);box-shadow:0 3px 10px rgba(32,25,62,.09)}
@media(max-width:620px){.payroll-ledger-card>.panel-heading{align-items:flex-start}.payroll-telegram-button{padding:10px}.payroll-telegram-button span{display:none}.payroll-telegram-task-row{grid-template-columns:auto minmax(0,1fr) 112px;gap:9px;padding:11px 10px}.payroll-telegram-task-row small{font-size:10px}.payroll-task-amount input{padding:9px 5px}.payroll-task-amount span{padding-right:7px}}
.payroll-payment-sheet{width:min(560px,100%)}.payroll-payment-sheet .modal-header small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.payroll-payment-sheet textarea{width:100%;min-height:80px;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--surface-muted);color:var(--text);font:inherit}.payroll-payment-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:15px}.payroll-payment-balance span{padding:12px;border-radius:12px;background:var(--surface-muted)}.payroll-payment-balance small,.payroll-payment-balance strong{display:block}.payroll-payment-balance small{color:var(--muted);font-size:7px}.payroll-payment-balance strong{margin-top:5px;font-size:12px}.payroll-payment-sheet .field>small{display:block;margin-top:5px;color:var(--muted);font-size:7px}
.payroll-payment-split{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.payroll-payment-split .field{margin-bottom:6px}.payroll-payment-total{display:flex;justify-content:space-between;align-items:center;margin:3px 0 5px;padding:11px 13px;border-radius:12px;background:var(--violet-soft);color:var(--text);font-size:11px}.payroll-payment-total strong{font-size:14px;color:var(--primary)}.payroll-payment-help{display:block;margin:0 0 14px;color:var(--muted);font-size:8px;line-height:1.55}@media(max-width:620px){.payroll-payment-split{grid-template-columns:1fr 1fr}.payroll-payment-split .field:last-child:not([hidden]){grid-column:1/-1}}
.payroll-guarantee-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 15px;padding:13px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:14px;background:var(--violet-soft)}.payroll-guarantee-fields[hidden]{display:none}.payroll-guarantee-fields .field{margin:0}.payroll-guarantee-fields>p{grid-column:1/-1;margin:0;color:var(--muted);font-size:9px}.payroll-guarantee-fields>p strong{color:var(--text)}@media(max-width:620px){.payroll-guarantee-fields{grid-template-columns:1fr 1fr}.payroll-guarantee-fields .field:last-of-type{grid-column:1/-1}}
.appointment-datetime-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(120px,1fr) minmax(120px,1fr);gap:10px}.appointment-datetime-row .field{min-width:0;margin-bottom:14px}.appointment-datetime-row input,.appointment-datetime-row select{min-width:0;font-weight:700;text-align:center}
@media(max-width:600px){.appointment-datetime-row{grid-template-columns:1.28fr .86fr .86fr;gap:6px}.appointment-datetime-row .field>span{font-size:8px}.appointment-datetime-row input,.appointment-datetime-row select{height:44px;padding:0 5px;font-size:11px}.appointment-datetime-section{padding-left:10px;padding-right:10px}}
.client-history-icon{position:relative;margin-left:auto;width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:13px;background:var(--surface-muted);color:var(--primary);cursor:pointer;touch-action:manipulation;transition:.18s}.client-history-icon:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 14%,transparent)}.client-history-icon svg{width:19px;height:19px;fill:none;stroke:currentColor}.client-history-icon b{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface-solid);border-radius:999px;background:var(--primary);color:#fff;font-size:7px}.client-history-icon:disabled{opacity:.38;cursor:not-allowed;transform:none;box-shadow:none}.modal-backdrop.client-history-modal{z-index:90}.client-history-sheet{width:min(680px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column}.client-history-sheet .modal-header small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.client-visit-history-list{max-height:none;min-height:180px;flex:1;overflow:auto;border-radius:15px}.client-visit-history-list .booking-history-row{grid-template-columns:minmax(120px,.8fr) minmax(180px,1.4fr) auto;padding:14px}.client-visit-history-list .booking-history-row strong{font-size:10px}.client-visit-history-list .booking-history-row small{font-size:8px}.client-visit-history-list .booking-history-row>b{font-size:8px}.appointment-client-lookup{margin-top:12px}
.client-comment-bubble{position:relative;margin-left:auto;max-width:min(48%,360px);min-width:46px;min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:16px 16px 16px 5px;background:var(--surface-muted);color:var(--muted);font:inherit;font-size:8px;line-height:1.35;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.client-comment-bubble::after{content:"";position:absolute;left:7px;bottom:-6px;width:10px;height:10px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-muted);transform:skewY(-35deg)}.client-comment-bubble.has-comment{color:var(--text);background:var(--violet-soft);border-color:color-mix(in srgb,var(--primary) 24%,var(--line))}.client-comment-bubble.has-comment::after{background:var(--violet-soft)}.client-comment-composer{margin-bottom:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted)}.client-comment-composer .field{margin-bottom:10px}.client-comment-composer textarea{width:100%;min-height:190px;resize:vertical}.client-comment-composer .primary-button{width:100%}.client-history-sheet.comment-editor-mode .modal-header{justify-content:flex-end;margin-bottom:10px}.client-history-sheet.comment-editor-mode .modal-header>div{display:none}.client-comment-history-row{width:100%;display:block;padding:13px 14px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer}.client-comment-history-row:hover{background:var(--violet-soft)}.client-comment-history-row small,.client-comment-history-row strong{display:block}.client-comment-history-row small{margin-bottom:5px;color:var(--muted);font-size:7px}.client-comment-history-row strong{font-size:9px;line-height:1.5}
.client-tool-icons{display:flex;align-items:center;gap:7px;margin-left:auto}.client-tool-icons .client-history-icon{margin-left:0}.modal-backdrop.client-submodal{z-index:90}.client-compact-sheet{width:min(460px,100%)}.client-compact-sheet .modal-header small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.transfer-history-sheet{width:min(600px,100%);max-height:82vh;overflow:auto}.transfer-history-sheet .appointment-transfer-history{margin:0}
@media(max-width:600px){.client-history-icon{width:36px;height:36px;flex-basis:36px}.client-workflow-section .appointment-section-title{flex-wrap:wrap}.client-comment-bubble{order:3;width:calc(100% - 37px);max-width:none;margin-left:37px}.client-tool-icons{gap:5px}.client-history-sheet{max-height:88vh}.client-comment-composer textarea{min-height:160px}.client-visit-history-list .booking-history-row{grid-template-columns:1fr auto;gap:8px}.client-visit-history-list .booking-history-row>span:nth-child(2){grid-column:1/-1;grid-row:2}.client-visit-history-list .booking-history-row>b{grid-column:2;grid-row:1}}
.modal-heading-with-colors{min-width:0;flex:1}.modal-title-color-row{display:flex;align-items:center;gap:12px;min-width:0}.modal-title-color-row h2{flex:0 1 auto}.modal-header-close{flex:0 0 auto;margin-left:10px}.modern-color-picker.compact-color-picker{min-height:40px;gap:6px;overflow:visible;padding:0}.modern-color-picker.compact-color-picker input[type=color]{display:none}.modern-color-picker.compact-color-picker>span{width:25px;height:25px;flex-basis:25px;border-radius:8px}.modern-color-picker.compact-color-picker>span:hover{transform:none}.modern-color-picker.compact-color-picker>span.active{transform:scale(1.08);box-shadow:0 0 0 2px var(--primary),0 4px 10px color-mix(in srgb,var(--choice) 25%,transparent)}
.appointment-status-controls{display:flex;align-items:center;gap:6px;margin-left:auto}.appointment-status-chip{--status-color:var(--muted);--status-bg:var(--surface-muted);height:34px;display:flex;align-items:center;gap:5px;padding:0 8px;border:1px solid color-mix(in srgb,var(--status-color) 38%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--status-color) 10%,var(--surface-solid));color:var(--status-color);cursor:pointer}.appointment-status-chip svg{width:15px;height:15px;flex:0 0 15px;fill:none;stroke:currentColor;stroke-width:1.8}.appointment-status-chip select{max-width:112px;padding:0 16px 0 0;border:0;outline:0;appearance:auto;background:transparent;color:inherit;font:inherit;font-size:8px;font-weight:800;cursor:pointer}.appointment-status-chip[data-status="pending"]{--status-color:#b77918}.visit-status-chip[data-status="confirmed"]{--status-color:#377dcc}.visit-status-chip[data-status="completed"],.payment-status-chip[data-status="paid"]{--status-color:#279368}.visit-status-chip[data-status="cancelled"]{--status-color:#c84c61}.visit-status-chip[data-status="no_show"]{--status-color:#70717c}.payment-status-chip[data-status="unpaid"]{--status-color:#777985}.payment-status-chip[data-status="refunded"]{--status-color:#8a63c7}@media(max-width:760px){.appointment-status-controls{order:5;width:100%;margin-left:0}.appointment-status-chip{flex:1;min-width:0}.appointment-status-chip select{width:100%;max-width:none}.modal-title-color-row{flex-wrap:wrap}}
.appointment-header-datetime{width:min(520px,100%);display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(100px,.8fr) minmax(100px,.8fr) auto;align-items:end;gap:7px;margin:7px 0 9px}.appointment-header-datetime label{display:grid;gap:3px;min-width:0}.appointment-header-datetime label>span{color:var(--muted);font-size:7px;font-weight:700}.appointment-header-datetime input{width:100%;height:32px;min-width:0;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--text);font:inherit;font-size:9px;font-weight:750;outline:0}.appointment-header-datetime input:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}.appointment-header-datetime>strong{min-width:45px;height:32px;display:grid;place-items:center;padding:0 9px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));border-radius:9px;background:var(--green-soft);color:var(--green);font-size:10px;white-space:nowrap}
.appointment-header-datetime .time-stepper{gap:3px}.time-stepper-controls{display:grid!important;grid-template-columns:auto 1fr 1fr auto 1fr 1fr;align-items:center;gap:2px;height:20px}.time-stepper-controls b{font-size:6px;font-weight:800;text-transform:uppercase}.time-stepper-controls button{min-width:0;height:20px;padding:0;border:1px solid var(--line);border-radius:5px;background:var(--surface-solid);color:var(--primary);font-size:7px;line-height:1;cursor:pointer}.time-stepper-controls button:hover,.time-stepper-controls button:active{border-color:var(--primary);background:var(--violet-soft)}
@media(max-width:600px){.appointment-workflow-sheet .modal-header{align-items:center}.appointment-workflow-sheet .modal-header h2{font-size:16px;white-space:nowrap}.modal-title-color-row{gap:8px}.modern-color-picker.compact-color-picker{gap:3px;min-height:32px}.modern-color-picker.compact-color-picker>span{width:19px;height:19px;flex-basis:19px;border-width:2px;border-radius:6px}.modal-header-close{width:38px;height:38px;margin-left:6px}}
@media(max-width:600px){:is(#bookingModal,#appointmentModal) .modal-title-color-row{flex-wrap:wrap}:is(#bookingModal,#appointmentModal) .booking-header-master{flex:1 1 120px;max-width:180px}:is(#bookingModal,#appointmentModal) .booking-header-master select{height:32px;font-size:9px}}
@media(max-width:600px){.appointment-header-datetime{grid-template-columns:1.2fr .82fr .82fr auto;gap:4px}.appointment-header-datetime input{height:30px;padding:0 5px;font-size:8px}.appointment-header-datetime>strong{min-width:39px;height:30px;padding:0 5px;font-size:9px}}
.appointment-add-item{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;margin:2px 0 14px}.service-workflow-section>.field .appointment-add-item{margin-bottom:0}.appointment-add-item input{width:100%;height:42px;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:10px}.appointment-add-item button{display:grid;place-items:center;border:0;border-radius:12px;background:var(--primary);color:#fff;cursor:pointer}.appointment-add-item button svg{width:18px;height:18px;fill:none;stroke:currentColor}.appointment-check-items{display:grid;gap:6px;margin-top:-4px}.appointment-check-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,128px) 30px;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid)}.appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(92px,128px)}.appointment-check-row>span{min-width:0;padding:2px 4px}.appointment-check-row>span strong{display:block;font-size:11px;line-height:1.35;overflow-wrap:anywhere}.appointment-item-price{height:30px;display:flex;align-items:center;gap:4px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--muted)}.appointment-item-price input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:8px;font-weight:800;text-align:right}.appointment-item-price>span{font-size:8px}.appointment-check-row button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:9px;background:var(--surface-muted);color:var(--muted);cursor:pointer}.appointment-check-row button svg{width:14px;height:14px;fill:none;stroke:currentColor}.appointment-check-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px;border-radius:11px;background:color-mix(in srgb,var(--primary) 9%,var(--surface-solid));color:var(--text);font-size:14px;font-weight:900;line-height:1}.appointment-check-total>span{white-space:nowrap}.appointment-check-total strong{color:var(--primary);font-size:20px;font-weight:900;line-height:1}.appointment-accordion-toggle{width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.appointment-accordion-toggle>b{margin-left:auto;font-size:17px;color:var(--muted);transition:.18s}.appointment-accordion-toggle.expanded>b{transform:rotate(180deg)}.appointment-payment-section{padding-bottom:1px}.appointment-payment-section:has(#appointmentPaymentContent[hidden]){padding-bottom:2px}.appointment-payment-section #appointmentPaymentContent:not([hidden]){padding-top:2px}
.appointment-check-row{grid-template-columns:minmax(0,1fr) 54px minmax(92px,128px) 30px}.appointment-check-main{grid-template-columns:minmax(0,1fr) 54px minmax(92px,128px)}.appointment-item-quantity{height:30px;display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted)}.appointment-item-quantity input{width:100%;min-width:0;height:100%;padding:0 6px;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:8px;font-weight:800;text-align:center}.appointment-item-quantity input:disabled{color:var(--muted);opacity:.75}.appointment-check-row:not(.appointment-check-main){transition:border-color .16s,box-shadow .16s}.appointment-check-row:not(.appointment-check-main):focus-within{border-color:color-mix(in srgb,var(--primary) 36%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 7%,transparent)}
.compact-payment-section{padding:12px 14px 1px}.compact-payment-section .field{margin-bottom:10px}.compact-payment-section .payment-value-row{align-items:end;gap:10px}.compact-payment-section .payment-method-field legend{margin-bottom:5px}.compact-payment-section .compact-payment-extras{grid-template-columns:1fr;gap:10px}.compact-payment-section .tips-field{margin-top:0}.compact-payment-section .unit-input input{height:40px}.compact-payment-section #appointmentPriceHint{margin-top:4px}.compact-payment-section #appointmentConsumablesField[hidden]{display:none}.appointment-consumables-fields{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:10px;min-width:0}.appointment-consumables-fields .field{min-width:0}.consumables-grams-field{position:relative}.consumables-grams-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.consumables-grams-heading>span{color:#5f5f67;font-size:9px;font-weight:600}.consumables-grams-heading button{width:28px;height:28px;border:0;border-radius:9px;background:var(--primary);color:#fff;font-size:18px;line-height:1;cursor:pointer}.appointment-consumable-rows{display:grid;gap:6px}.appointment-consumable-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 28px;gap:6px;align-items:center}.appointment-consumable-picker{position:relative}.appointment-consumable-picker>input{width:100%;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0 10px;color:var(--text);font:inherit;font-size:9px}.appointment-consumable-picker>input:focus{outline:2px solid rgba(101,87,235,.2);border-color:var(--primary)}.compact-payment-section .compact-grams-input input{height:34px;padding-left:8px}.compact-payment-section .compact-grams-input span{top:9px}.remove-appointment-consumable{width:28px;height:28px;border:0;border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:16px;cursor:pointer}.appointment-consumable-suggestions{left:0;right:0;top:calc(100% + 5px);max-height:220px;overflow:auto;z-index:40}.appointment-consumable-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;padding:10px 12px;text-align:left;color:var(--text);cursor:pointer}.appointment-consumable-option:hover{background:var(--surface-muted)}.appointment-consumable-option small{color:var(--muted);white-space:nowrap}.appointment-consumable-empty{display:block;padding:12px;color:var(--muted)}@media(max-width:620px){.appointment-consumables-fields{grid-template-columns:1fr}.appointment-consumable-row{grid-template-columns:minmax(0,1fr) 76px 28px}}
.payment-side-column{min-width:0;display:grid;align-content:end;gap:8px}.payment-side-column .appointment-status-controls{order:initial;width:auto;display:flex;justify-content:flex-end;gap:7px;margin:0}.payment-side-column .appointment-status-chip{position:relative;width:42px;height:42px;flex:0 0 42px;justify-content:center;padding:0;border-radius:13px;overflow:hidden}.payment-side-column .appointment-status-chip svg{width:21px;height:21px;flex-basis:21px;pointer-events:none}.payment-side-column .appointment-status-chip select{position:absolute;inset:0;width:100%;max-width:none;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.payment-side-column .payment-method-field{width:100%}@media(max-width:768px){.payment-side-column .appointment-status-controls{justify-content:flex-start}.payment-side-column .appointment-status-chip{flex:0 0 42px}.payment-side-column{gap:6px}}
.split-payment-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;color:var(--text);font-size:9px;font-weight:700}.split-payment-toggle .switch{transform:scale(.72);transform-origin:right center}.split-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:7px}.split-payment-fields[hidden],.payment-method-switch[hidden]{display:none}.split-payment-fields>label>span{display:block;margin-bottom:4px;color:var(--muted);font-size:8px}.split-payment-fields .unit-input input{height:40px;width:100%;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted);color:var(--text);font:inherit}.split-payment-fields .unit-input span{top:12px;right:10px}
@media(max-width:800px){.payroll-policy-form{grid-template-columns:minmax(0,1fr)}.payroll-policy-form>.payroll-bonus-editor,.payroll-policy-form>button[type="submit"]{grid-column:1;width:100%}.payroll-policy-form>label:first-child{width:100%}}
.shift-role-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.shift-role-switch[hidden]{display:none}.shift-role-switch button{min-height:30px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:8px;font-weight:800;cursor:pointer}.shift-role-switch button.active{background:var(--primary);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 24%,transparent)}
.appointment-add-item{display:block;grid-template-columns:none}.appointment-check-main{grid-template-columns:minmax(0,1fr) 54px minmax(92px,128px) 30px}
@media(max-width:600px){.appointment-check-row,.appointment-check-main{grid-template-columns:minmax(0,1fr) 42px minmax(74px,94px) 28px;gap:6px;padding:8px}}
.payroll-policy-form{display:grid;grid-template-columns:repeat(5,minmax(78px,1fr)) auto;align-items:end}.payroll-policy-form label>span{display:block;position:relative}.payroll-policy-form input{width:100%}.payroll-policy-form label>span>b{position:absolute;right:9px;bottom:10px;color:var(--muted)}.payroll-policy-form button{white-space:nowrap}
.payroll-person strong{font-size:14px}.payroll-person small{font-size:11px}.payroll-person>b{font-size:16px}.payroll-person-total small{font-size:11px}.payroll-person-total b{font-size:18px}.payroll-numbers small{font-size:10px}.payroll-numbers strong{font-size:14px}.payroll-payout-actions button{font-size:12px;font-weight:700}.payroll-target{height:8px;margin-top:15px}.payroll-target-label{margin-top:9px;padding:11px 14px;border-radius:10px;background:var(--violet-soft);color:var(--primary);font-size:13px;font-weight:800}.payroll-policy-form label{font-size:11px}.payroll-policy-form input{font-size:13px}
.payroll-staff-item{min-width:0;border:1.5px solid color-mix(in srgb,var(--text) 18%,var(--line));background:var(--surface-solid);box-shadow:0 5px 16px rgba(35,31,64,.045)}
.payroll-numbers{grid-template-columns:repeat(4,minmax(0,1fr))}.payroll-numbers span{min-width:0}.payroll-numbers small{min-height:2.35em;line-height:1.18;overflow-wrap:anywhere}.payroll-numbers strong{white-space:nowrap}
.payroll-staff-item>.payroll-target{position:relative;height:24px;margin-top:15px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:9px;background:var(--surface-muted)}.payroll-staff-item>.payroll-target i{position:absolute;inset:0 auto 0 0;height:100%;opacity:.25}.payroll-staff-item>.payroll-target span{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--text);font-size:11px;font-weight:800;white-space:nowrap}
.payroll-progress-level{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 2px -9px}.payroll-progress-level strong{color:var(--primary);font-size:13px;font-weight:900;letter-spacing:.04em}.payroll-progress-level span{color:var(--muted);font-size:10px;font-weight:700}
.payroll-policy-form{grid-template-columns:minmax(0,1fr);align-items:start;justify-items:start;gap:8px}.payroll-policy-form>.payroll-bonus-editor{grid-column:1;width:min(100%,380px);padding:4px 8px;border-radius:11px;background:var(--surface-muted)}.payroll-policy-form>.payroll-bonus-editor[open]{width:100%;padding:12px}.payroll-policy-form>.payroll-bonus-editor:not([open]) .payroll-tier-heading{min-height:28px}.payroll-policy-form>.payroll-bonus-editor:not([open]) .payroll-bonus-icon{width:23px;height:23px;border-radius:7px;font-size:13px}.payroll-policy-form>.payroll-bonus-editor:not([open]) .payroll-tier-chevron{width:25px;height:25px;border-radius:8px;font-size:16px}.payroll-commission-field{width:min(100%,260px);display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;color:var(--text)!important;font-size:12px!important;font-weight:700}.payroll-commission-field>span{position:relative;width:94px;flex:0 0 94px}.payroll-commission-field input{height:38px!important;margin:0!important}.payroll-commission-field b{position:absolute;right:12px;bottom:11px;color:var(--muted)}.payroll-policy-form>button[type="submit"]{grid-column:1;width:auto;min-width:145px;height:34px;margin:0;padding:0 14px}
html[data-theme="dark"] .payroll-staff-item{box-shadow:none}
@media(max-width:1400px){.payroll-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1150px){.payroll-staff-grid{grid-template-columns:1fr}}
.finance-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:8px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.7)}.finance-dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}.finance-donut-card,.finance-payment-card,.finance-staff-card{padding-bottom:18px}.finance-donut{width:155px;height:155px;margin:8px auto 18px;border-radius:50%;display:grid;place-items:center;position:relative}.finance-donut::after{content:"";position:absolute;width:92px;height:92px;border-radius:50%;background:var(--surface-solid)}.finance-donut>span{position:relative;z-index:1;display:grid;text-align:center}.finance-donut strong{font-size:20px}.finance-donut small{font-size:7px;color:var(--muted)}.finance-staff-donut .finance-donut-avatar{position:absolute;z-index:3;left:50%;top:50%;width:27px;height:27px;display:grid;place-items:center;overflow:hidden;border:2px solid var(--surface-solid);border-radius:9px;background:var(--avatar-color);color:#fff;font-size:9px;font-weight:800;line-height:1;box-shadow:0 3px 10px rgba(28,29,40,.24);transform:translate(calc(-50% + var(--avatar-x)),calc(-50% + var(--avatar-y)))}.finance-donut-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.finance-staff-donut .finance-donut-center{z-index:2}.finance-legend{display:grid;padding:0 18px}.finance-legend>div,.finance-payment-list>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.finance-legend i,.finance-payment-list i{width:8px;height:8px;border-radius:3px}.finance-legend strong,.finance-legend small,.finance-payment-list strong,.finance-payment-list small{display:block}.finance-legend strong,.finance-payment-list strong{font-size:8px}.finance-legend small,.finance-payment-list small{margin-top:2px;font-size:6.5px;color:var(--muted)}.finance-legend b,.finance-payment-list b{font-size:8px}.finance-payment-total{display:grid;gap:5px;padding:21px 18px 14px}.finance-payment-total span{color:var(--muted);font-size:7px}.finance-payment-total strong{font-size:22px}.finance-payment-stack{display:flex;height:16px;margin:0 18px 18px;overflow:hidden;border-radius:8px;background:var(--surface-muted)}.finance-payment-stack i{display:block;min-width:3px;height:100%}.finance-payment-list{display:grid;padding:0 18px}.finance-staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px}.finance-staff-item{padding:13px;border:1px solid var(--line);border-radius:14px}.finance-staff-top{display:flex;align-items:center;gap:9px}.finance-staff-top .avatar{width:35px;height:35px}.finance-staff-top>span:nth-child(2){min-width:0;flex:1}.finance-staff-top strong,.finance-staff-top small{display:block}.finance-staff-top strong{font-size:8px}.finance-staff-top small{margin-top:3px;font-size:6.5px;color:var(--muted)}.finance-staff-top>b{font-size:9px}.staff-share-ring{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--ring) var(--share),#ededf2 0);position:relative}.staff-share-ring::after{content:"";position:absolute;width:26px;height:26px;border-radius:50%;background:var(--surface-solid)}.staff-share-ring i{position:relative;z-index:1;font-size:6px;font-style:normal;font-weight:700}.finance-progress{height:5px;margin:11px 0 6px;border-radius:4px;background:#eeeef2;overflow:hidden}.finance-progress i{display:block;height:100%;border-radius:4px}.finance-staff-item>small{font-size:6.5px;color:var(--muted)}.finance-empty{width:100%;padding:45px 18px;text-align:center;color:var(--muted);font-size:9px}.appointment-client-summary{display:flex;align-items:center;gap:10px;padding:12px;margin-bottom:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-muted)}.appointment-client-summary>span:nth-child(2){min-width:0;flex:1}.appointment-client-summary strong,.appointment-client-summary small{display:block}.appointment-client-summary strong{font-size:10px}.appointment-client-summary small{margin-top:3px;font-size:8px;color:var(--muted)}.appointment-client-summary b{font-size:7px;color:var(--green)}.paid-amount-field small{font-size:7px;color:var(--muted)}.mark-paid-button{color:var(--green);border-color:#bde5d4}
.finance-breakdown-heading{overflow:visible}.finance-breakdown-picker{position:relative;min-width:0}.finance-breakdown-toggle{display:flex;align-items:center;gap:7px;padding:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:13px;font-weight:800;letter-spacing:-.2px;cursor:pointer}.finance-breakdown-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;transition:transform .18s}.finance-breakdown-toggle[aria-expanded="true"]{color:var(--primary)}.finance-breakdown-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}.finance-breakdown-picker>p{margin-top:5px}.finance-breakdown-menu{left:0;right:auto;top:calc(100% + 7px);width:190px}.finance-staff-donut .finance-donut-avatar.category{font-size:8px;letter-spacing:-.4px}.finance-breakdown-card{overflow:visible!important}
.finance-flow-card{padding-bottom:17px;overflow:hidden}.finance-flow-badge{margin:17px 18px 0 0;padding:6px 9px;border-radius:9px;background:var(--green-soft);color:var(--green);font-size:7px;font-weight:800}.finance-flow-badge.negative{background:var(--rose-soft);color:var(--rose)}.finance-flow-summary{display:flex;align-items:stretch;gap:9px;padding:0 18px 8px}.finance-flow-summary>div{min-width:112px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted)}.finance-flow-summary span,.finance-flow-summary strong{display:block}.finance-flow-summary span{margin-bottom:4px;color:var(--muted);font-size:7px}.finance-flow-summary strong{font-size:13px}.finance-flow-summary>div:first-child strong{color:var(--green)}.finance-flow-summary>div:nth-child(2) strong{color:var(--rose)}.finance-flow-summary .finance-flow-net{background:color-mix(in srgb,var(--primary) 7%,var(--surface-solid));border-color:color-mix(in srgb,var(--primary) 18%,var(--line))}.finance-flow-net strong.positive{color:var(--green)}.finance-flow-net strong.negative{color:var(--rose)}.finance-flow-chart{position:relative;height:225px;margin:0 18px}.finance-flow-chart .grid-lines{inset:15px 0 31px}.finance-flow-chart svg{position:absolute;inset:0 0 28px;width:100%;height:190px;overflow:visible}.finance-flow-area{fill:url(#financeFlowArea);stroke:none}.finance-flow-line{fill:none;stroke:var(--primary);stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 5px 6px rgba(101,87,235,.17))}.finance-flow-line.negative{stroke:var(--rose);filter:drop-shadow(0 5px 6px rgba(224,96,115,.15))}.finance-flow-zero{stroke:color-mix(in srgb,var(--muted) 55%,transparent);stroke-width:1;stroke-dasharray:5 5;vector-effect:non-scaling-stroke}.finance-flow-hit{fill:transparent;pointer-events:all}.finance-flow-dot{fill:var(--surface-solid);stroke:var(--primary);stroke-width:2.2;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .14s,r .14s}.finance-flow-point.negative .finance-flow-dot{stroke:var(--rose)}.finance-flow-point{cursor:pointer;outline:0}.finance-flow-point:hover .finance-flow-dot,.finance-flow-point:focus .finance-flow-dot,.finance-flow-point.active .finance-flow-dot{opacity:1;r:5.5}.finance-flow-labels{position:absolute;left:0;right:0;bottom:0;height:18px;color:var(--muted);font-size:7px}.finance-flow-labels span{position:absolute;white-space:nowrap;transform:translateX(-50%)}.finance-flow-labels span:first-child{transform:none}.finance-flow-labels span:last-child{transform:translateX(-100%)}.finance-flow-tooltip{position:absolute;z-index:6;min-width:180px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--surface-solid) 96%,transparent);box-shadow:0 13px 30px rgba(25,23,50,.17);backdrop-filter:blur(11px);pointer-events:none;transform:translate(-50%,-100%)}.finance-flow-tooltip[hidden]{display:none}.finance-flow-tooltip strong,.finance-flow-tooltip small,.finance-flow-tooltip b{display:block}.finance-flow-tooltip strong{margin-bottom:6px;font-size:9px}.finance-flow-tooltip small{margin-top:4px;color:var(--muted);font-size:7px}.finance-flow-tooltip small i{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:3px}.finance-flow-tooltip i.income{background:var(--green)}.finance-flow-tooltip i.outgoing{background:var(--rose)}.finance-flow-tooltip b{margin-top:7px;padding-top:7px;border-top:1px solid var(--line);font-size:7px}.finance-flow-empty{fill:var(--muted);font-size:10px}html[data-theme="dark"] .finance-flow-tooltip{background:rgba(29,30,38,.97);border-color:var(--line)}
.appointment-client-name{display:flex;align-items:center;gap:7px;min-width:0}.appointment-client-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-loyalty-badge{flex:0 0 auto;padding:3px 6px;border-radius:7px;background:#eeeef2;color:#6f6f79;font-size:6.5px;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.25px}.client-loyalty-badge.loyalty-silver{background:linear-gradient(135deg,#edf0f4,#d9dee6);color:#687180}.client-loyalty-badge.loyalty-gold{background:linear-gradient(135deg,#fff4c9,#f5d76b);color:#85620c}.client-loyalty-badge.loyalty-vip{background:linear-gradient(135deg,#2c174f,#6d32c9);color:#fff;box-shadow:0 3px 9px rgba(80,37,151,.2)}
.cancelled-sheet{width:min(680px,100%)}.cancelled-date-toolbar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:end;gap:9px;margin-bottom:13px;padding:11px;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted)}.cancelled-date-toolbar .field{margin:0}.cancelled-date-toolbar .icon-button{font-size:22px}.cancelled-list{display:grid;max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:15px}.cancelled-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:0;border-top:1px solid var(--line);background:var(--surface-solid);text-align:left;cursor:pointer}.cancelled-row:first-child{border-top:0}.cancelled-row:hover{background:var(--surface-hover)}.cancelled-row strong,.cancelled-row small,.cancelled-row b,.cancelled-row em{display:block}.cancelled-row strong{font-size:9px}.cancelled-row small{margin-top:3px;font-size:7px;color:var(--muted)}.cancelled-row em{margin-top:5px;color:#bb4556;font-size:7px;font-style:normal;font-weight:600;line-height:1.4}.cancelled-row>span:last-child{text-align:right}.cancelled-row b{font-size:8px}.cancelled-empty{display:grid;justify-items:center;gap:6px;padding:45px 20px;text-align:center}.cancelled-empty>span{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:var(--green-soft);color:var(--green)}.cancelled-empty strong{font-size:11px}.cancelled-empty small{max-width:330px;color:var(--muted);font-size:8px;line-height:1.5}
.cancel-appointment-sheet{width:min(520px,100%)}.cancel-appointment-summary{display:grid;gap:4px;padding:13px;margin-bottom:16px;border-radius:14px;background:#fff5f6;border:1px solid #f5d5da}.cancel-appointment-summary strong{font-size:11px}.cancel-appointment-summary small{color:var(--muted);font-size:8px}.field-label{display:block;margin-bottom:8px;color:#5f5f67;font-size:9px;font-weight:600}.cancel-reason-presets{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}.cancel-reason-presets button{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted);color:var(--text);font-size:8px;cursor:pointer}.cancel-reason-presets button:hover,.cancel-reason-presets button.active{border-color:#e36a7c;background:#fff0f2;color:#ae3346}.cancel-appointment-sheet textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--surface-muted);color:var(--text);outline:0;font:inherit;font-size:10px}.cancel-appointment-sheet textarea:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}
.finance-donut-empty{background:#ededf2!important}
.placeholder-panel{text-align:center;padding:55px 25px}.placeholder-icon{width:58px;height:58px;border-radius:18px;background:var(--violet-soft);color:var(--primary);display:grid;place-items:center;margin:0 auto 16px}.placeholder-panel h2{font-size:17px;margin:0 0 8px}.placeholder-panel p{max-width:480px;margin:0 auto 22px;color:var(--muted);font-size:10px;line-height:1.7}
.automation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.automation-card{padding:20px}.automation-top{display:flex;justify-content:space-between}.automation-card h2{font-size:13px;margin:20px 0 6px}.automation-card p{font-size:9px;color:var(--muted);min-height:28px}.message-stat{display:block;border-top:1px solid var(--line);padding-top:14px;margin-top:16px;font-size:8px;color:var(--muted)}
.campaign-audience-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}.campaign-audience-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-solid);color:var(--text);text-align:left}.campaign-audience-card:is(button){cursor:pointer;transition:.18s}.campaign-audience-card:is(button):hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 10px 25px color-mix(in srgb,var(--primary) 10%,transparent)}.campaign-audience-card small,.campaign-audience-card strong,.campaign-audience-card span{display:block}.campaign-audience-card small{color:var(--muted);font-size:11px}.campaign-audience-card strong{margin-top:7px;font-size:22px}.campaign-audience-card span{margin-top:10px;color:var(--primary);font-size:9px;font-weight:700}.campaign-history-panel{padding:18px}.campaign-history{display:grid;gap:10px}.campaign-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px;padding:14px;border:1px solid var(--line);border-radius:14px}.campaign-row>span{display:grid;gap:4px}.campaign-row small{color:var(--muted)}.campaign-recipients{margin-top:7px;padding:8px 10px;border-radius:10px;background:var(--surface-muted);line-height:1.6;color:var(--text)!important}.campaign-status{padding:7px 10px;border-radius:10px;background:var(--violet-soft);color:var(--primary);font-weight:700}.campaign-stats{display:flex;gap:12px;font-size:12px}.campaign-stats .sent{color:#26966a}.campaign-stats .interested,.campaign-interest{color:#8b5a00}.campaign-stats .failed{color:#d95768}.campaign-empty{padding:45px;text-align:center;color:var(--muted)}.campaign-sheet{max-width:720px}.campaign-sheet textarea{resize:vertical}.campaign-preview{margin-top:14px;padding:16px;border-radius:16px;background:linear-gradient(145deg,#eef5ff,#f4efff);color:#20202a}.campaign-preview small,.campaign-preview strong{display:block}.campaign-preview p{white-space:pre-wrap;margin:10px 0 0;line-height:1.5}.campaign-audience-sheet{width:min(720px,calc(100% - 24px));max-height:min(82vh,760px);overflow:auto}.campaign-audience-list{display:grid;gap:9px}.campaign-audience-person{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.campaign-audience-person strong,.campaign-audience-person small{display:block}.campaign-audience-person small{margin-top:4px;color:var(--muted)}.campaign-audience-person button{min-height:38px;padding:0 12px;border:0;border-radius:10px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer}.campaign-audience-person button:disabled{opacity:.55}@media(max-width:800px){.campaign-audience-grid{grid-template-columns:repeat(2,1fr)}.campaign-row{grid-template-columns:1fr}.campaign-stats{flex-wrap:wrap}.campaign-sheet .form-row{grid-template-columns:1fr}.campaign-audience-person{grid-template-columns:1fr}.campaign-audience-person button{width:100%}}
.settings-layout{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(440px,1.3fr);gap:14px}.settings-card{padding:22px}.settings-wide{grid-column:1/-1}.settings-card h2{margin:0;font-size:14px}.settings-head{display:flex;justify-content:space-between;margin-bottom:16px}.settings-head p{margin:5px 0 0;color:var(--muted);font-size:8px}.account-box{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px;border-radius:15px;background:var(--surface-muted)}.account-box .avatar{width:44px;height:44px}.account-box strong,.access-row strong{display:block;font-size:10px}.account-box small,.access-row small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.role-pill{display:inline-flex;margin-top:7px;padding:4px 7px;border-radius:7px;background:var(--violet-soft);color:var(--primary);font-size:7px;font-weight:700}.settings-form{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:8px;margin-bottom:14px}.settings-form input,.settings-form select{height:40px;min-width:0;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted);font-size:9px;outline:0}.settings-form input:focus,.settings-form select:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}.enterprise-form{grid-template-columns:1fr 1fr 1fr 1fr auto}.access-list{display:grid;border:1px solid var(--line);border-radius:14px;overflow:hidden}.access-list:empty{display:none}.access-row{display:flex;align-items:center;gap:11px;padding:11px 13px;border-top:1px solid var(--line)}.access-row:first-child{border-top:0}.access-row>div:nth-child(2){min-width:0;flex:1}.access-meta{text-align:right}.access-meta b{display:block;font-size:8px}.access-meta small{font-size:7px}
.price-list-current,.price-list-empty,.price-list-processing{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-muted)}.price-list-current>div:nth-child(2),.price-list-empty>div,.price-list-processing>div{min-width:0;flex:1}.price-list-current strong,.price-list-empty strong,.price-list-processing strong{display:block;font-size:11px}.price-list-current small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.price-list-current p,.price-list-empty p,.price-list-processing p{margin:6px 0 0;color:var(--muted);font-size:8px;line-height:1.45}.price-list-icon{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:13px;background:var(--rose-soft);color:var(--rose);font-size:10px;font-weight:900;letter-spacing:.05em}.price-list-actions{display:flex;align-items:center;gap:8px}.price-list-actions .secondary-button{text-decoration:none}.price-list-spinner{width:28px;height:28px;flex:0 0 28px;border:3px solid var(--violet-soft);border-top-color:var(--primary);border-radius:50%;animation:price-list-spin .8s linear infinite}@keyframes price-list-spin{to{transform:rotate(360deg)}}
@media(max-width:620px){.price-list-current,.price-list-empty{align-items:flex-start;flex-wrap:wrap}.price-list-current strong,.price-list-empty strong,.price-list-processing strong{font-size:14px}.price-list-current small,.price-list-current p,.price-list-empty p,.price-list-processing p{font-size:10px}.price-list-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.price-list-actions .secondary-button,.price-list-actions .primary-button,.price-list-empty>.primary-button{justify-content:center}.price-list-empty>.primary-button{width:100%}}
.telegram-business-status{display:grid;gap:10px}.telegram-business-empty,.telegram-business-connection{padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted)}.telegram-business-empty strong,.telegram-business-connection strong{font-size:10px}.telegram-business-empty p,.telegram-business-connection p{margin:6px 0;color:var(--muted);font-size:8px;line-height:1.55}.telegram-business-empty small,.telegram-business-connection small{color:var(--muted);font-size:8px}.telegram-business-connection{display:flex;align-items:center;gap:12px}.telegram-business-connection.connected{border-color:rgba(62,180,122,.35)}.telegram-business-connection>div{min-width:0;flex:1}.telegram-business-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--violet-soft);font-size:18px}.telegram-business-connection .secondary-button{flex:none}
.telegram-staff-assistant-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid);cursor:pointer}.telegram-staff-assistant-toggle>span{display:grid;gap:3px}.telegram-staff-assistant-toggle b{font-size:9px}.telegram-staff-assistant-toggle small{line-height:1.45}.telegram-staff-assistant-toggle input{position:absolute;opacity:0;pointer-events:none}.telegram-staff-assistant-toggle input:disabled+.notification-toggle{opacity:.45}.telegram-staff-assistant-toggle input:checked+.notification-toggle{background:var(--primary)}.telegram-staff-assistant-toggle input:checked+.notification-toggle:after{transform:translateX(14px)}
.notification-settings{margin-top:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted);overflow:hidden}.notification-settings summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;cursor:pointer;list-style:none}.notification-settings summary::-webkit-details-marker{display:none}.notification-settings summary span{display:grid;gap:4px}.notification-settings summary strong{font-size:10px}.notification-settings summary small{color:var(--muted);font-size:8px}.notification-settings summary svg{width:15px;height:15px;fill:none;stroke:currentColor;transition:transform .2s}.notification-settings[open] summary svg{transform:rotate(180deg)}.notification-preferences{display:grid;border-top:1px solid var(--line)}.notification-preference{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid var(--line);cursor:pointer}.notification-preference:first-child{border-top:0}.notification-preference span{display:grid;gap:3px}.notification-preference strong{font-size:9px}.notification-preference small{color:var(--muted);font-size:7px;line-height:1.35}.notification-preference input{position:absolute;opacity:0;pointer-events:none}.notification-toggle{position:relative;width:32px;height:18px;flex:0 0 auto;border-radius:10px;background:#c9cbd4;transition:.2s}.notification-toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:.2s}.notification-preference input:checked+.notification-toggle{background:var(--primary)}.notification-preference input:checked+.notification-toggle:after{transform:translateX(14px)}
.profile-settings-form{display:grid;gap:2px;margin-top:17px;padding-top:17px;border-top:1px solid var(--line)}.profile-password-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-settings-form>.primary-button{justify-self:start}
.telegram-login-notice{display:flex;align-items:center;gap:10px;padding:11px 12px;margin-bottom:12px;border:1px solid #cfe7ff;border-radius:13px;background:#eef8ff;color:#2377ad}.telegram-login-notice>span{font-size:20px}.telegram-login-notice strong,.telegram-login-notice small{display:block}.telegram-login-notice strong{font-size:10px}.telegram-login-notice small{margin-top:3px;font-size:8px;color:#5d7f95}.telegram-avatar{width:44px;height:44px;flex:0 0 44px;border-radius:14px;object-fit:cover}.telegram-avatar.fallback{display:grid;place-items:center;background:#e9f6ff;font-size:20px}.telegram-account.connected{box-shadow:inset 3px 0 #2aabee}
.telegram-auto-login{display:flex;align-items:center;gap:9px;margin:2px 0 12px;color:var(--text);font-size:9px;cursor:pointer}.telegram-auto-login input{width:17px;height:17px;accent-color:var(--primary)}

.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(25,25,30,.35);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;overscroll-behavior:contain;opacity:0;pointer-events:none;transition:.22s}
.modal-backdrop:not(.open){display:none}
.modal-backdrop#clientModal.client-modal-over-record{z-index:95;background:rgba(25,25,30,.24);backdrop-filter:blur(3px)}
.modal-backdrop.open{opacity:1;pointer-events:auto}.modal-sheet{width:min(560px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--surface-solid);border-radius:24px;padding:23px;box-shadow:0 25px 80px rgba(0,0,0,.22);transform:translateY(10px) scale(.98);transition:.25s}.modal-backdrop.open .modal-sheet{transform:none}
html:has(.modal-backdrop.open),body:has(.modal-backdrop.open){overflow:hidden;overscroll-behavior:none}
.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:21px}.modal-header h2{font-size:20px;margin:3px 0 0}.field{display:grid;gap:7px;margin-bottom:14px}.field>span{font-size:9px;color:#5f5f67;font-weight:600}.field input,.field select{width:100%;height:42px;border:1px solid var(--line);border-radius:11px;padding:0 12px;background:var(--surface-muted);color:var(--text);outline:0;font-size:11px}.field .unit-input input{padding-right:44px}.field input:focus,.field select:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}.input-wrap{position:relative}.input-wrap svg{position:absolute;left:12px;top:12px;width:16px;color:var(--muted)}.input-wrap input{padding-left:38px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-preview{display:flex;gap:11px;padding:13px;border-radius:13px;background:var(--surface-hover);margin:2px 0 20px}.booking-preview strong{font-size:9px}.booking-preview p{font-size:8px;color:var(--muted);margin:4px 0 0;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:9px}
.copy-appointment-button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.copy-appointment-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.calendar-clipboard-menu{position:fixed;z-index:10080;width:min(300px,calc(100vw - 16px));display:grid;gap:6px;padding:7px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface-solid) 97%,transparent);box-shadow:0 18px 48px rgba(24,21,55,.24);backdrop-filter:blur(18px)}.calendar-clipboard-menu[hidden]{display:none}.calendar-clipboard-menu button{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:11px;color:var(--text);text-align:left;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}.calendar-clipboard-menu button:hover{transform:translateY(-1px);filter:brightness(.98);box-shadow:0 5px 14px rgba(34,35,48,.09)}.calendar-clipboard-menu button:disabled{opacity:.55;cursor:wait;transform:none}.calendar-clipboard-menu .calendar-clipboard-new{background:#e7f7f0;border-color:#b9e4d1;color:#187a58}.calendar-clipboard-menu .calendar-clipboard-paste{background:#f1f1f4;border-color:#dedee5;color:#555862}.calendar-clipboard-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,currentColor 10%,var(--surface-solid));color:inherit;font-size:19px;font-weight:800}.calendar-clipboard-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.calendar-clipboard-menu strong,.calendar-clipboard-menu small{display:block}.calendar-clipboard-menu strong{font-size:10px}.calendar-clipboard-menu small{margin-top:3px;color:currentColor;font-size:7px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.consumable-barcode-input{position:relative}.consumable-barcode-input input{padding-right:54px}.consumable-barcode-input button{position:absolute;right:5px;top:5px;display:grid;place-items:center;width:34px;height:32px;padding:0;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--primary) 9%,var(--surface-solid));color:var(--primary);cursor:pointer}.consumable-barcode-input button span{font-size:22px;line-height:1}.consumable-barcode-field.scanning .consumable-barcode-input button{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--violet-soft)}.consumable-barcode-field.scanning #consumableBarcodeHint{color:var(--primary);font-weight:700}
.product-barcode-field{grid-column:1/-1}.catalog-barcode-input{position:relative}.catalog-barcode-input input{padding-right:54px}.catalog-barcode-input button{position:absolute;right:5px;top:5px;display:grid;place-items:center;width:34px;height:32px;padding:0;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--primary) 9%,var(--surface-solid));color:var(--primary);cursor:pointer}.catalog-barcode-input button span{font-size:22px;line-height:1}.product-barcode-field.scanning .catalog-barcode-input button{background:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--violet-soft)}.product-barcode-field.scanning #productBarcodeHint{color:var(--primary);font-weight:700}.appointment-service-heading .appointment-barcode-button{margin-left:auto;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--primary) 9%,var(--surface-solid));color:var(--primary);cursor:pointer}.appointment-barcode-button span{font-size:24px;line-height:1}
.appointment-workflow-sheet{width:min(760px,100%);max-height:min(92vh,900px);overflow:auto;scrollbar-gutter:stable}.appointment-workflow-sheet .modal-header{position:sticky;z-index:22;top:-23px;margin:-23px -23px 14px;padding:23px 23px 15px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.appointment-form-section{position:relative;margin-bottom:11px;padding:15px 15px 1px;border:1px solid var(--line);border-radius:17px;background:var(--surface-solid)}.appointment-form-section:nth-of-type(even){background:var(--surface-muted)}.appointment-section-title{display:flex;align-items:center;gap:10px;margin-bottom:13px}.appointment-section-title>span{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:9px;background:var(--violet-soft);color:var(--primary);font-size:8px;font-weight:800}.appointment-section-title strong,.appointment-section-title small{display:block}.appointment-section-title strong{font-size:11px}.appointment-section-title small{margin-top:3px;color:var(--muted);font-size:7px}.appointment-form-section>.field:last-child{margin-bottom:14px}.appointment-mark-section{padding-bottom:14px;background:linear-gradient(135deg,var(--surface-solid),var(--violet-soft))}.modern-color-picker{display:flex;align-items:center;gap:9px;min-height:42px;overflow-x:auto;padding:2px 1px;scrollbar-width:none}.modern-color-picker input[type=color]{order:2;width:34px;height:34px;flex:0 0 34px;padding:2px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);cursor:pointer}.modern-color-picker>span{width:31px;height:31px;flex:0 0 31px;border-radius:10px;background:var(--choice);border:3px solid var(--surface-solid);box-shadow:0 0 0 1px color-mix(in srgb,var(--choice) 35%,var(--line));cursor:pointer;transition:.16s}.modern-color-picker>span:hover{transform:translateY(-2px)}.modern-color-picker>span.active{box-shadow:0 0 0 2px var(--primary),0 5px 13px color-mix(in srgb,var(--choice) 25%,transparent);transform:scale(1.06)}.modern-color-picker small{order:3;flex:0 0 auto;color:var(--muted);font-size:7px}.client-workflow-section .client-history-toggle{margin-bottom:11px}.service-workflow-section{background:linear-gradient(135deg,var(--surface-solid),color-mix(in srgb,var(--amber-soft) 42%,var(--surface-solid)))}.payment-row{align-items:start}.appointment-workflow-sheet .modal-actions{position:sticky;z-index:20;bottom:-23px;margin:5px -23px -23px;padding:14px 23px calc(14px + max(env(safe-area-inset-bottom),var(--tg-content-safe-bottom,0px)));background:color-mix(in srgb,var(--surface-solid) 94%,transparent);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.compact-workflow-section{padding-top:10px}.compact-workflow-section .appointment-datetime-row .field{margin-bottom:9px}.client-compact-tools{justify-content:flex-end;margin-bottom:7px}.client-compact-tools .client-comment-bubble{margin-left:0}.compact-workflow-section .client-lookup-row>.field{margin-bottom:9px}.compact-workflow-section .client-suggestions{top:48px}.appointment-client-lookup{margin-top:0!important}.client-card-field{position:relative}.client-card-link{position:absolute;z-index:3;right:8px;top:50%;width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--primary) 9%,var(--surface-solid));color:var(--primary);cursor:pointer;transform:translateY(-50%)}.client-card-link[hidden]{display:none}.input-wrap .client-card-link svg,.client-card-link svg{position:static;inset:auto;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.client-lookup-row.client-selected .field:last-of-type input,.appointment-client-lookup.client-selected input{padding-right:42px}.client-card-link:hover{transform:translate(1px,-50%);box-shadow:0 5px 12px color-mix(in srgb,var(--primary) 14%,transparent)}
@media(max-width:600px){.client-compact-tools{flex-wrap:nowrap!important}.client-compact-tools .client-comment-bubble{order:initial;width:auto;max-width:min(45%,240px);margin-left:0}.client-card-link{right:7px;top:50%}}
.booking-header-master{position:relative;flex:0 1 150px;min-width:105px}.booking-header-master::after{content:"⌄";position:absolute;right:10px;top:50%;translate:0 -55%;color:var(--primary);font-size:12px;pointer-events:none}.booking-header-master select{width:100%;height:34px;padding:0 28px 0 11px;appearance:none;border:1px solid color-mix(in srgb,var(--primary) 32%,var(--line));border-radius:11px;background:var(--violet-soft);color:var(--primary);font:inherit;font-size:10px;font-weight:800;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-extra-service-field{margin-top:10px}
.voice-assistant-sheet{width:min(560px,100%);text-align:center}.voice-assistant-sheet .modal-header{text-align:left}.assistant-chat{display:flex;flex-direction:column;gap:8px;min-height:120px;max-height:280px;margin-bottom:14px;padding:12px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted);text-align:left}.assistant-chat-empty{margin:auto;color:var(--muted);font-size:8px;text-align:center}.assistant-message{max-width:84%;padding:9px 11px;border-radius:13px;background:var(--surface-solid);color:var(--text);font-size:9px;line-height:1.5;white-space:pre-wrap;box-shadow:0 2px 8px rgba(20,20,35,.05)}.assistant-message.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:4px}.assistant-message.assistant{align-self:flex-start;border-bottom-left-radius:4px}.assistant-message time{display:block;margin-top:4px;font-size:6px;opacity:.55}.voice-orb{position:relative;width:58px;height:58px;margin:0 auto 10px;border:0;border-radius:50%;background:linear-gradient(145deg,#7c70ff,#5141e9);box-shadow:0 10px 28px rgba(92,75,235,.25);color:#fff;font-size:22px;cursor:pointer}.voice-orb i{position:absolute;inset:-7px;border:2px solid rgba(101,87,235,.2);border-radius:50%;opacity:0}.voice-orb.listening i{animation:voicePulse 1.25s infinite}.voice-orb.listening{animation:voiceGlow 1.25s infinite}.voice-status{display:block;font-size:10px}.voice-example{max-width:430px;margin:6px auto 12px;color:var(--muted);font-size:7px;line-height:1.5}.voice-command-field{text-align:left}.voice-command-field textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--surface-muted);color:var(--text);font:inherit;font-size:11px;outline:0}.voice-result{margin:0 0 15px;padding:12px;border-radius:13px;background:var(--violet-soft);color:var(--text);font-size:9px;line-height:1.55;text-align:left}.voice-result.error{background:var(--amber-soft)}@keyframes voicePulse{0%{transform:scale(.9);opacity:.8}100%{transform:scale(1.25);opacity:0}}@keyframes voiceGlow{50%{box-shadow:0 15px 45px rgba(92,75,235,.5)}}
.voice-candidates{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.voice-candidates button{min-height:34px;padding:0 11px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:10px;background:var(--surface-solid);color:var(--text);font-size:8px;font-weight:700;cursor:pointer}.voice-candidates button:first-child{background:var(--primary);color:#fff;border-color:var(--primary)}
.client-lookup-row{position:relative}.client-lookup-row.client-selected input{border-color:#77c7a6;background:#f4fbf8}.client-suggestions{position:absolute;z-index:20;top:66px;left:0;right:0;max-height:290px;overflow:auto;padding:6px;background:var(--surface-solid);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(25,25,35,.16)}.client-suggestions[hidden]{display:none}.client-suggestion{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 48px auto;align-items:center;gap:9px;padding:9px;border:0;border-radius:10px;background:var(--surface-solid);text-align:left;cursor:pointer}.client-suggestion:hover,.client-suggestion:focus{background:var(--surface-hover);outline:0}.suggestion-avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--violet-soft);color:var(--primary);font-size:9px;font-weight:700}.client-suggestion strong{display:block;font-size:9px}.client-suggestion small{display:block;color:var(--muted);font-size:7px;margin-top:2px}.suggestion-meta{text-align:center}.suggestion-meta b{display:block;font-size:9px}.suggestion-state{display:grid;gap:3px;padding:14px;color:var(--muted);font-size:9px;text-align:center}.suggestion-state strong{color:var(--text)}.suggestion-state span{font-size:7px}
.client-sheet{width:min(650px,100%)}.client-card-contact{display:flex;align-items:center;gap:11px;padding:14px;border-radius:14px;background:var(--surface-muted)}.client-card-contact .suggestion-avatar{width:42px;height:42px;border-radius:13px}.client-card-contact strong{display:block;font-size:11px}.client-card-contact small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.client-card-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:14px 0;border:1px solid var(--line);border-radius:14px}.client-card-stats div{padding:14px;border-left:1px solid var(--line)}.client-card-stats div:first-child{border-left:0}.client-card-stats span{display:block;font-size:7px;color:var(--muted);margin-bottom:4px}.client-card-stats strong{font-size:12px}.client-history-title{display:flex;align-items:center;justify-content:space-between;margin:17px 2px 8px}.client-history-title h3{margin:0;font-size:11px}.client-history-title span{font-size:8px;color:var(--muted)}.client-history{max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:14px}.client-history-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:12px;padding:11px 13px;border-top:1px solid var(--line)}.client-history-row:first-child{border-top:0}.client-history-row strong{display:block;font-size:8px}.client-history-row small{display:block;font-size:7px;color:var(--muted);margin-top:3px}
.client-edit-form{display:grid;gap:11px;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:#fcfcfd}.client-edit-form textarea{min-height:76px;resize:vertical;border:1px solid var(--line);border-radius:11px;padding:11px;font:inherit;font-size:10px;background:var(--surface-solid);color:var(--text)}.client-edit-form>.primary-button{justify-self:end}
.color-picker-field>div{display:flex;align-items:center;gap:10px;min-height:45px;padding:6px 9px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid)}.color-picker-field input[type=color]{width:48px;height:34px;padding:2px;border:0;border-radius:9px;background:transparent;cursor:pointer}.color-picker-field small{font-size:7px;color:var(--muted);line-height:1.35}
.client-history-toggle{width:100%;min-height:44px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted);color:var(--text);text-align:left;cursor:pointer}.client-history-toggle svg{width:18px;height:18px;fill:none;stroke:var(--primary)}.client-history-toggle b{font-size:8px;color:var(--muted)}.client-history-toggle:disabled{opacity:.55;cursor:not-allowed}.booking-client-history{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface-solid)}.booking-history-row{display:grid;grid-template-columns:1fr 1.2fr auto;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--line)}.booking-history-row:first-child{border-top:0}.booking-history-row span strong,.booking-history-row span small{display:block}.booking-history-row strong{font-size:8px}.booking-history-row small{font-size:7px;color:var(--muted);margin-top:2px}.booking-history-row>b{padding:4px 6px;border-radius:7px;background:#f0efff;color:var(--primary);font-size:7px}.booking-history-row.cancelled>b,.booking-history-row.no_show>b{background:#ffe7ea;color:#c23f54}.booking-history-row.completed>b{background:#e5f7ee;color:#26815d}
.booking-discount-notice{display:flex;align-items:center;gap:10px;margin:10px 0;padding:12px;border:1px solid #c9eadb;border-radius:13px;background:var(--green-soft)}.booking-discount-notice[hidden]{display:none}.booking-discount-notice>span{flex:0 0 auto;padding:7px 9px;border-radius:9px;background:var(--green);color:#fff;font-size:10px;font-weight:800}.booking-discount-notice strong,.booking-discount-notice small{display:block}.booking-discount-notice strong{font-size:9px}.booking-discount-notice small{margin-top:3px;color:var(--muted);font-size:7px}.client-discount-fields small{color:var(--muted);font-size:7px}
.staff-default-note{display:flex;gap:10px;padding:13px;margin:2px 0 20px;border-radius:13px;background:var(--surface-hover);color:var(--primary)}.staff-default-note svg{width:18px}.staff-default-note strong{display:block;font-size:9px;color:var(--text)}.staff-default-note small{display:block;font-size:7px;color:var(--muted);margin-top:3px}
.staff-color-field>small{margin-top:8px;color:var(--muted)}.staff-color-palette{display:grid;grid-template-columns:repeat(10,32px);gap:8px;margin-top:8px}.staff-color-swatch{width:32px;height:32px;padding:0;border:3px solid var(--surface-solid);border-radius:10px;background:var(--swatch);box-shadow:0 0 0 1px var(--line);cursor:pointer;transition:transform .16s,box-shadow .16s}.staff-color-swatch:hover{transform:translateY(-2px)}.staff-color-swatch.selected{box-shadow:0 0 0 3px var(--primary);transform:scale(1.06)}
.staff-avatar-photo{display:block;object-fit:cover;object-position:center;border-radius:inherit;background:#8790a3;color:transparent}
.staff-appearance-card{display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid #d9d4ff;border-radius:13px;background:linear-gradient(135deg,var(--violet-soft),var(--surface-solid));box-shadow:0 5px 16px rgba(73,57,190,.05)}.staff-appearance-heading{margin-right:auto}.staff-appearance-heading strong{display:block;font-size:9px;white-space:nowrap}.staff-photo-controls{display:flex;align-items:center;gap:7px}.staff-photo-button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;border-radius:9px;background:var(--primary);color:#fff;font-size:8px;font-weight:750;cursor:pointer;box-shadow:0 5px 13px rgba(101,87,235,.16)}.staff-photo-button input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.staff-photo-remove{min-height:34px;padding:0 11px}.staff-appearance-card .staff-color-field>span{font-size:9px;font-weight:700;color:var(--text)}
.staff-color-picker{position:relative;width:165px}.staff-palette-button{width:100%;min-height:34px;display:grid;grid-template-columns:25px minmax(0,1fr) 23px;align-items:center;gap:7px;padding:4px 7px;border:1px solid var(--line);border-radius:9px;background:var(--surface-solid);color:var(--text);text-align:left;cursor:pointer}.staff-palette-button:hover,.staff-palette-button[aria-expanded="true"]{border-color:#aaa0f5;box-shadow:0 0 0 3px rgba(101,87,235,.1)}.staff-palette-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:7px;background:var(--violet-soft);font-size:13px}.staff-palette-button strong{display:block;font-size:8px}.staff-palette-button i{width:20px;height:20px;border:3px solid var(--surface-solid);border-radius:7px;background:var(--selected-color);box-shadow:0 0 0 1px var(--line)}.staff-color-popover{position:absolute;z-index:12;top:calc(100% + 7px);right:0;width:min(410px,calc(100vw - 48px));padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid);box-shadow:0 16px 40px rgba(25,25,35,.18)}.staff-color-popover[hidden]{display:none}.staff-color-popover .staff-color-palette{margin:0}
.week-master-filter button>img{width:22px;height:22px;flex:0 0 22px;border-radius:7px;object-fit:cover;object-position:center}
@media(max-width:600px){.staff-color-palette{grid-template-columns:repeat(5,32px)}.staff-appearance-card{align-items:stretch;flex-wrap:wrap;padding:9px}.staff-appearance-heading{width:100%}.staff-photo-controls{flex:1}.staff-photo-button,.staff-photo-remove{flex:1}.staff-color-picker{width:145px}}
.shift-planner-sheet{width:min(680px,100%)}.shift-planner-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.shift-count{padding:6px 9px;border-radius:8px;background:var(--green-soft);color:var(--green);font-size:8px;font-weight:700}.shift-pattern{display:flex;align-items:flex-end;gap:10px;padding:12px;margin-bottom:13px;border-radius:13px;background:var(--surface-muted);border:1px solid var(--line)}.shift-pattern label{display:grid;gap:5px;flex:1}.shift-pattern label span{font-size:8px;color:var(--muted);font-weight:600}.shift-pattern input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--surface-solid);font-size:10px}.shift-calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:15px;overflow:hidden}.shift-weekday{height:30px;display:grid;place-items:center;background:var(--surface-muted);border-bottom:1px solid var(--line);font-size:7px;color:var(--muted);text-transform:uppercase;font-weight:700}.shift-day{min-height:66px;padding:7px;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-solid);text-align:left;cursor:pointer;transition:.15s}.shift-day:hover{filter:brightness(.97)}.shift-day strong,.shift-day span{display:block}.shift-day strong{width:23px;height:23px;display:grid;place-items:center;border-radius:8px;font-size:9px}.shift-day span{font-size:6.5px;margin-top:5px;color:var(--muted)}.shift-day.working{background:#edf9f3}.shift-day.working strong{background:var(--green);color:white}.shift-day.working span{color:#328162}.shift-day.day-off{background:var(--surface-solid)}.shift-day.day-off strong{color:#888}.shift-day.outside{opacity:.25;cursor:default}.shift-legend{display:flex;align-items:center;gap:15px;padding:11px 3px 16px;color:var(--muted);font-size:7px}.shift-legend span{display:flex;align-items:center;gap:5px}.shift-legend i{width:8px;height:8px;border-radius:3px}.shift-legend i.work{background:var(--green)}.shift-legend i.off{background:#dedee3}.shift-legend small{margin-left:auto;font-size:7px}
.shift-planner-actions .shift-clear-future{margin-right:auto}@media(max-width:700px){.shift-planner-actions{display:grid;grid-template-columns:1fr 1fr}.shift-planner-actions .shift-clear-future{grid-column:1/-1;width:100%;margin:0}.shift-planner-actions button{width:100%;min-width:0}}
.shift-time-selector{display:grid;grid-template-columns:1fr auto auto auto;align-items:end;gap:9px;padding:12px;margin-bottom:13px;border-radius:13px;background:#f3f1ff;border:1px solid #e4e0ff}.shift-time-selector>div strong,.shift-time-selector>div small{display:block}.shift-time-selector>div strong{font-size:10px}.shift-time-selector>div small{font-size:7px;color:var(--muted);margin-top:3px}.shift-time-selector label{display:grid;gap:4px}.shift-time-selector label span{font-size:7px;color:var(--muted);font-weight:600}.shift-time-selector input{width:102px;height:38px;border:1px solid #dcd7fa;border-radius:10px;padding:0 8px;background:var(--surface-solid);font-size:10px}.shift-time-arrow{padding-bottom:12px;color:var(--muted)}.shift-legend b{font-weight:500}
.shift-patterns-bar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:13px}.shift-pattern-control{position:relative;min-width:0}.shift-pattern-button{width:100%;height:32px;padding:0 8px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:10px;background:var(--violet-soft);color:var(--primary);font:inherit;font-size:9px;font-weight:800;cursor:pointer}.shift-pattern-button:hover,.shift-pattern-button[aria-expanded="true"]{border-color:var(--primary);background:var(--primary);color:#fff}.shift-pattern-popover{position:absolute;z-index:25;top:calc(100% + 7px);left:0;width:280px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-solid);box-shadow:0 18px 48px rgba(27,24,55,.2)}.shift-pattern-popover[hidden]{display:none}.shift-pattern-popover>strong{display:block;margin-bottom:11px;font-size:11px}.shift-pattern-popover label{display:grid;gap:5px}.shift-pattern-popover label span{color:var(--muted);font-size:8px;font-weight:650}.shift-pattern-popover input{width:100%;height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted);color:var(--text);font:inherit;font-size:10px}.shift-pattern-popover .primary-button{width:100%;min-height:38px;margin-top:10px}
.weekday-pattern-popover{width:310px}.weekday-pattern-options{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday-pattern-options label{cursor:pointer}.weekday-pattern-options input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.weekday-pattern-options span{height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--muted);font-size:8px;font-weight:800;transition:.16s}.weekday-pattern-options input:checked+span{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 5px 12px color-mix(in srgb,var(--primary) 20%,transparent)}.weekday-pattern-popover>small{display:block;margin-top:10px;color:var(--muted);font-size:7px;line-height:1.45}@media(max-width:650px){.shift-patterns-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.shift-pattern-popover,.weekday-pattern-popover{position:fixed;z-index:75;top:50%;left:50%;width:min(330px,calc(100vw - 28px));transform:translate(-50%,-50%)}.weekday-pattern-options span{height:38px}}
.toast{position:fixed;z-index:60;right:24px;bottom:24px;display:flex;align-items:center;gap:11px;background:#202026;color:white;border-radius:15px;padding:13px 17px;box-shadow:0 14px 40px rgba(0,0,0,.25);transform:translateY(30px);opacity:0;pointer-events:none;transition:.3s}.toast.show{transform:none;opacity:1}.toast-check{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--green);font-size:12px}.toast strong{display:block;font-size:10px}.toast p{margin:2px 0 0;font-size:8px;color:#b9b9bf}
.toast.error .toast-check{background:var(--rose)}
.toast.notification .toast-check{background:var(--primary)}.calendar-hover-time{position:fixed;z-index:70;padding:6px 9px;border-radius:8px;background:#202026;color:#fff;font-size:11px;font-weight:850;line-height:1;letter-spacing:.02em;box-shadow:0 7px 20px rgba(0,0,0,.25);pointer-events:none;transform:translateY(-100%)}.calendar-hover-time[hidden]{display:none}
.mobile-nav{display:none}
.payroll-staff-grid[hidden],.payroll-daily-card[hidden],.payroll-ledger-card[hidden]{display:none!important}.payroll-employee-tabs{flex:0 0 auto}.admin-payroll-item .payroll-ledger-list{margin-top:14px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.admin-payroll-policy-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width: 1150px) {
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .appointment{grid-template-columns:45px 3px minmax(130px,1fr) minmax(100px,.8fr)}.appointment .status-pill{display:none}
}
@media (max-width: 900px) {
  .sidebar{transform:translateX(-100%);transition:.25s;box-shadow:15px 0 50px rgba(0,0,0,.12)}.sidebar.open{transform:none}
  .main{width:100%;margin-left:0}.topbar{height:62px;padding:0 20px;justify-content:space-between}.menu-button{display:grid}.mobile-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;letter-spacing:-.5px}.compact{display:inline-flex}
  .content{padding:24px 20px 80px}.overview-grid,.bottom-grid{grid-template-columns:1fr}.team-layout{grid-template-columns:1fr}.master-list-panel{height:min(48vh,430px);max-height:none}.master-list-panel #masterList{flex:1;min-height:0;max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain}.automation-grid{grid-template-columns:1fr 1fr}
  .settings-layout{grid-template-columns:1fr}.settings-wide{grid-column:auto}.settings-form,.enterprise-form{grid-template-columns:1fr 1fr}
  .finance-dashboard{grid-template-columns:1fr}.finance-staff-grid{grid-template-columns:1fr 1fr}
}
@media (max-width: 650px) {
  html,body{width:100%;max-width:100%;overflow-x:clip}body{min-height:100dvh;padding-bottom:calc(92px + var(--app-safe-bottom))}
  .app-shell{min-height:var(--tg-viewport-height,100dvh)}
  .auth-gate{overflow-y:auto;place-items:start center;padding:calc(18px + var(--app-safe-top)) max(14px,var(--app-safe-right)) calc(18px + var(--app-safe-bottom)) max(14px,var(--app-safe-left))}
  .auth-card{margin:auto 0;max-width:100%}
  .topbar{padding:0 16px}.main>.calendar-duty-admins{left:76px}.topbar .notification-button{display:grid}.topbar-actions>.compact{display:none}.compact{padding:0 12px}.compact span{display:none}
  .content{min-width:0;padding:20px max(13px,var(--app-safe-right)) 30px max(13px,var(--app-safe-left))}.page,.page>*{min-width:0}.page-heading{align-items:flex-start;margin-bottom:20px}.page-heading h1{font-size:26px}.page-heading>button,.heading-actions{display:none}.desktop-only{display:none!important}
  #page-overview .metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;margin-right:0;padding-right:0;gap:9px}
  #page-overview .metric-card{min-width:0;min-height:100px;padding:12px 10px;gap:8px;scroll-snap-align:none}
  #page-overview .metric-icon{width:32px;height:32px;border-radius:10px}#page-overview .metric-icon svg{width:15px}
  #page-overview .metric-copy>span{font-size:8px;margin-bottom:3px;line-height:1.25}#page-overview .metric-copy strong{font-size:18px}#page-overview .metric-copy small{margin-top:5px;font-size:6.5px;line-height:1.25}
  #page-overview .mini-bars,#page-overview .ring-chart{display:none}#page-overview .progress{left:10px;right:10px;bottom:10px;height:4px}
  .panel,.metric-card{border-radius:17px}.panel-heading{padding:18px 16px 12px}
  .appointment-list{padding:0 5px 8px}.appointment{grid-template-columns:42px 3px minmax(0,1fr);gap:9px;padding:8px;min-height:63px}.appointment .service-cell{display:none}
  .team-panel{display:block}.team-load{max-height:280px;padding:0 14px 10px}.team-load-item{grid-template-columns:36px minmax(0,1fr) 42px}.chart-panel{min-height:250px}.attention-list{padding:0 6px 8px}
  .mobile-nav{position:fixed;z-index:30;display:flex;left:max(10px,var(--app-safe-left));right:max(10px,var(--app-safe-right));bottom:max(8px,calc(var(--app-safe-bottom) + 5px));height:68px;padding:5px;border:1px solid rgba(255,255,255,.68);border-radius:27px;background:color-mix(in srgb,var(--surface-solid) 72%,transparent);box-shadow:0 16px 42px rgba(28,25,55,.18),inset 0 1px 0 rgba(255,255,255,.72);-webkit-backdrop-filter:blur(28px) saturate(1.45);backdrop-filter:blur(28px) saturate(1.45);overflow:hidden}
  .mobile-nav button{position:relative;min-width:0;flex:1 1 0;border:0;border-radius:22px;background:transparent;color:#8d8d98;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 2px;font-size:7.5px;font-weight:650;line-height:1;transition:color .24s ease,background-color .24s ease,box-shadow .24s ease,transform .18s ease}.mobile-nav button:active{transform:scale(.94)}.mobile-nav svg{width:20px;height:20px;transition:transform .24s ease}.mobile-nav .bar-nav-icon{font-size:19px;line-height:20px}.mobile-nav button.active{color:var(--primary);background:color-mix(in srgb,var(--surface-solid) 72%,var(--primary) 8%);box-shadow:0 7px 20px rgba(35,31,70,.12),inset 0 0 0 1px rgba(255,255,255,.5)}.mobile-nav button.active svg{transform:translateY(-1px)}
  html.telegram-mini-app .mobile-nav{left:max(12px,var(--tg-content-safe-left,0px));right:max(12px,var(--tg-content-safe-right,0px));background:color-mix(in srgb,var(--surface-solid) 66%,transparent);border-color:color-mix(in srgb,#fff 66%,var(--line));-webkit-backdrop-filter:blur(32px) saturate(1.55);backdrop-filter:blur(32px) saturate(1.55)}
  .calendar-toolbar{flex-wrap:wrap}.date-switcher{order:-1;width:100%;justify-content:center}.calendar-toolbar>.secondary-button{display:none}.calendar-view-controls{width:100%}.calendar-view-controls .segmented{flex:1}.calendar-view-controls .segmented button{flex:1}.calendar-view-controls>#calendarToday{flex:0 0 auto;padding:0 12px}.calendar-card{padding:8px;border-radius:15px}
  .stats-strip{grid-template-columns:1fr 1fr}.stats-strip div{padding:14px}.stats-strip div:nth-child(3){border-left:0;border-top:1px solid var(--line)}.stats-strip div:nth-child(4){border-top:1px solid var(--line)}
  .table-tools{padding:12px}.search{min-width:0}.table-tools .secondary-button{display:none}.client-row{grid-template-columns:minmax(170px,1fr) 85px;padding:9px 12px}.client-row>:nth-child(2),.client-row>:nth-child(4),.client-row>:nth-child(5){display:none}.client-row.header>:nth-child(3){display:block}
  .team-layout{gap:10px}.schedule-editor{padding:16px}.schedule-profile{flex-wrap:wrap}.schedule-profile button{display:inline-flex;width:100%;margin:2px 0 0}.day-schedule{grid-template-columns:83px 40px minmax(0,1fr);gap:8px}.day-schedule .remove-day{display:none}.time-range{min-width:0}.time-range input{width:100%;min-width:0;padding:7px 5px}.schedule-footer{position:sticky;bottom:calc(72px + var(--app-safe-bottom));z-index:5;background:var(--surface-solid);padding:10px 0}
  .master-list-panel{height:min(52vh,460px)}.master-list-tools{grid-template-columns:minmax(0,1fr) 145px;padding:0 12px 10px}.master-search,.master-list-tools select{height:44px}.master-search input,.master-list-tools select{font-size:16px}#masterList{padding:7px 7px 14px}.master-item{min-height:64px;padding:10px}.master-item .avatar{width:43px;height:43px}
  .service-grid,.automation-grid{grid-template-columns:1fr}.finance-metrics{display:grid;grid-template-columns:1fr}.finance-metrics .metric-card{min-width:0}.finance-net-profit-card{grid-column:auto;align-items:flex-start;flex-direction:column}.finance-net-profit-breakdown{width:100%;min-width:0;padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}.form-row{grid-template-columns:1fr}.modal-backdrop{align-items:flex-end;padding:var(--app-safe-top) var(--app-safe-right) 0 var(--app-safe-left);overflow:hidden;overscroll-behavior:none}.modal-sheet{width:100%;max-width:100%;min-height:0;border-radius:24px 24px 0 0;padding:20px 18px calc(20px + var(--app-safe-bottom));max-height:calc(var(--tg-viewport-height,100dvh) - var(--app-safe-top));overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.modal-header{gap:12px}.modal-header>div{min-width:0}.modal-header h2{overflow-wrap:anywhere}.modal-actions{flex-wrap:wrap}.toast{left:max(13px,var(--app-safe-left));right:max(13px,var(--app-safe-right));bottom:calc(82px + var(--app-safe-bottom))}
  .shift-pattern{align-items:stretch;flex-direction:column}.shift-time-selector{grid-template-columns:1fr 1fr auto 1fr}.shift-time-selector>div{grid-column:1/-1}.shift-time-selector input{width:100%;font-size:16px}.shift-day{min-height:54px;padding:5px}.shift-day span{font-size:5.5px}.shift-legend{flex-wrap:wrap}.shift-legend small{width:100%;margin-left:0}
  .auth-card{padding:24px;border-radius:23px}.settings-form,.enterprise-form{grid-template-columns:1fr}.settings-card{padding:17px}
  .finance-toolbar{flex-wrap:wrap;gap:8px}.finance-toolbar .date-switcher{order:0;width:100%}.finance-staff-grid{grid-template-columns:1fr}.finance-bars{height:210px;padding-left:14px;padding-right:14px}.finance-flow-summary{display:grid;grid-template-columns:1fr 1fr;padding:0 13px 7px}.finance-flow-summary .finance-flow-net{grid-column:1/-1}.finance-flow-chart{height:205px;margin:0 13px}.finance-flow-chart svg{height:170px}.finance-flow-tooltip{min-width:158px}.appointment-edit-sheet .modal-actions{position:sticky;bottom:0;padding-top:10px;background:var(--surface-solid);flex-wrap:wrap}.appointment-edit-sheet .modal-actions .primary-button{flex:1}
  .page-heading{flex-wrap:wrap}.page-heading>#addServiceBtn,.page-heading>#addMasterBtn,.page-heading>#logoutBtn{display:inline-flex;width:100%;min-height:46px}.page-heading>#logoutBtn{width:auto}
  .client-lookup-row{position:static}.appointment-workflow-sheet .client-suggestions{position:fixed;z-index:120;left:max(14px,var(--app-safe-left));right:max(14px,var(--app-safe-right));bottom:calc(14px + var(--app-safe-bottom));top:auto;max-height:min(38dvh,calc(var(--tg-viewport-height,100dvh) - var(--app-safe-top) - var(--app-safe-bottom) - 150px));margin:0;padding:8px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;border-radius:19px;box-shadow:0 22px 65px rgba(25,25,35,.24);animation:mobileChoiceOpen .18s ease-out both}.client-suggestion{grid-template-columns:36px minmax(0,1fr) auto;min-height:54px;padding:11px 9px}.client-suggestion .loyalty{display:none}.suggestion-meta{min-width:42px}
  .field input,.field select{height:48px;font-size:16px}.field>span{font-size:10px}.primary-button,.secondary-button{min-height:44px}.modal-actions button{min-height:44px}
  .category-section{padding:13px}.category-section-head{align-items:flex-start;gap:10px}.category-section-head .secondary-button{padding:0 12px}.category-chip{min-width:145px;padding:10px}.service-card{padding:17px}.service-card h2{font-size:14px}
  .calendar-scroll{margin:0 -8px;padding:0 8px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.day-corner,.master-column-head{position:sticky;top:0;z-index:8}.day-corner{left:0;z-index:10}.planner-time{position:sticky;left:0;z-index:6;background:var(--surface-solid)}.calendar-toolbar .segmented{width:100%}.calendar-toolbar .segmented button{flex:1}.calendar-toolbar-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.calendar-toolbar-actions .cancelled-button{order:3;width:100%}.show-all-toggle{min-height:44px}
  #page-calendar .calendar-card{padding:0;border-radius:0}#page-calendar .calendar-scroll{margin:0;padding:0;max-height:none}
  .week-time-grid{grid-template-columns:30px repeat(7,minmax(0,1fr));min-width:100%;grid-template-rows:50px repeat(56,24px)}.week-time-corner{font-size:0}.week-time-head{padding:2px 0}.week-time-head span{font-size:6px}.week-time-head strong{width:21px;height:21px;font-size:9px}.week-time-head small{display:none}.week-time-label{padding-right:3px;font-size:5.5px}.week-schedule-event{margin:1px;padding:2px 2px;border-left-width:2px;border-radius:5px}.week-schedule-event strong{font-size:5.5px}.week-schedule-event span,.week-schedule-event small,.week-schedule-event .attendance-badge{display:none}.week-master-filter{padding:8px;margin-left:-8px;margin-right:-8px}.week-master-filter button{min-height:32px;padding:4px 7px}.week-master-filter i{width:21px;height:21px}.week-master-filter>small{display:none}
  .topbar-actions{gap:6px}.tools-toggle{width:36px;height:36px}.tools-popover{position:fixed;top:64px;left:12px;right:12px;width:auto}.appearance-button span{font-size:17px}.scale-popover{position:fixed;top:64px;left:12px;right:12px;width:auto}
  .notification-popover{position:fixed;top:calc(64px + var(--app-safe-top));left:max(10px,var(--app-safe-left));right:max(10px,var(--app-safe-right));width:auto;max-height:calc(var(--tg-viewport-height,100dvh) - 155px - var(--app-safe-top) - var(--app-safe-bottom))}.notification-feed{max-height:calc(var(--tg-viewport-height,100dvh) - 230px - var(--app-safe-top) - var(--app-safe-bottom))}.notification-item{padding:13px 10px}
  .profile-password-row{grid-template-columns:1fr}.profile-settings-form>.primary-button{width:100%}.account-box{padding:12px}.access-row{align-items:flex-start;flex-wrap:wrap}.access-meta{margin-left:45px;text-align:left}
  .settings-card h2{font-size:16px}.settings-head p{font-size:9px;line-height:1.5}.settings-form input,.settings-form select{height:46px;font-size:16px}
  .finance-dashboard{gap:10px}.finance-donut-card,.finance-payment-card,.finance-staff-card{overflow:hidden}.finance-donut{width:140px;height:140px}.finance-legend,.finance-payment-list{padding:0 13px}.finance-payment-total{padding-left:13px;padding-right:13px}.finance-payment-stack{margin-left:13px;margin-right:13px}.finance-staff-grid{padding:0 13px}.finance-staff-top{flex-wrap:wrap}.finance-staff-top>b{margin-left:auto}.staff-share-ring{margin-left:auto}
  .finance-staff-card>.panel-heading{display:grid;gap:12px}.payroll-employee-tabs{width:100%;overflow-x:auto}.payroll-employee-tabs button{white-space:nowrap;flex:1}.admin-payroll-policy-form{grid-template-columns:1fr}
  .client-sheet,.shift-planner-sheet,.service-sheet,.category-sheet,.appointment-edit-sheet{width:100%}.client-edit-form>.primary-button{width:100%}.client-edit-form textarea{font-size:16px}.client-card-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.client-card-stats div{padding:10px}.client-card-stats div:nth-child(3){border-top:1px solid var(--line);border-left:0}.client-card-stats div:nth-child(4){border-top:1px solid var(--line)}.client-history-row{grid-template-columns:1fr auto}.client-history-row>div:nth-child(2){display:none}
  .appointment-edit-sheet .danger-button{width:100%;min-height:46px}.cancelled-sheet,.cancel-appointment-sheet{width:100%}.cancelled-row{padding:14px 10px}.cancelled-list{max-height:55vh}.cancel-reason-presets button{min-height:42px;font-size:10px}.cancel-appointment-sheet textarea{font-size:16px}
}

@media (max-width:650px) {
  html.telegram-mini-app .telegram-bar-shortcut:not([hidden]){
    display:grid;
    place-items:center;
    color:#8b5b34;
    border-color:color-mix(in srgb,#b77b45 28%,var(--line));
    background:linear-gradient(145deg,color-mix(in srgb,#d9ad78 14%,var(--surface-solid)),var(--surface-solid));
    box-shadow:0 8px 22px rgba(126,80,42,.12);
  }
  html.telegram-mini-app .header-bookmark-toggle{
    display:none!important;
  }
  html.telegram-mini-app.header-compact .topbar{
    display:none!important;
  }
  html.telegram-mini-app #page-calendar .calendar-view-controls{
    position:relative;
    order:-2;
    width:100%;
    justify-content:center;
  }
  html.telegram-mini-app #page-calendar #calendarModes{
    width:50vw;
    max-width:220px;
    min-width:168px;
    flex:0 0 auto;
  }
  html.telegram-mini-app #page-calendar #calendarModes button{
    min-width:0;
    flex:1 1 0;
    padding-left:4px;
    padding-right:4px;
  }
  html.telegram-mini-app #page-calendar #calendarToday{
    position:absolute;
    right:0;
  }
  html.telegram-mini-app #page-calendar .date-switcher{
    order:-1;
  }
  html.telegram-mini-app:not(.header-compact) .topbar{
    position:relative;
    height:calc(62px + max(env(safe-area-inset-top),var(--tg-safe-top,0px)));
    padding:calc(max(env(safe-area-inset-top),var(--tg-safe-top,0px)) + 6px) max(12px,var(--tg-content-safe-right,0px)) 6px max(12px,var(--tg-content-safe-left,0px));
    justify-content:center;
    border-bottom-color:transparent;
    background:color-mix(in srgb,var(--bg) 91%,transparent);
  }
  html.telegram-mini-app:not(.header-compact) .topbar>.menu-button,
  html.telegram-mini-app:not(.header-compact) .topbar>.mobile-brand,
  html.telegram-mini-app:not(.header-compact) .topbar>.header-bookmark-toggle{
    display:none!important;
  }
  html.telegram-mini-app:not(.header-compact) .topbar-actions{
    width:max-content;
    max-width:calc(100vw - max(150px,calc(var(--tg-content-safe-left,0px) + var(--tg-content-safe-right,0px))));
    justify-content:center;
    gap:5px;
  }
  html.telegram-mini-app:not(.header-compact) .topbar-actions>.icon-button,
  html.telegram-mini-app:not(.header-compact) .scale-control>.icon-button,
  html.telegram-mini-app:not(.header-compact) .tools-toggle{
    width:38px;
    height:38px;
    flex:0 0 38px;
  }
  html.telegram-mini-app .content{
    padding-top:calc(20px + max(0px,var(--tg-content-safe-top,0px) - var(--tg-safe-top,0px)));
  }
  html.telegram-mini-app #page-overview .page-heading{
    margin-top:4px;
  }
  html.telegram-mini-app.header-compact .topbar,
  html.telegram-mini-app.header-compact .app-shell.sidebar-collapsed .topbar{
    top:max(env(safe-area-inset-top),var(--tg-safe-top,0px));
  }
  html.telegram-mini-app .topbar{
    transition:background-color .28s ease,border-radius .28s ease,box-shadow .28s ease;
  }
  html.telegram-mini-app.telegram-header-compact .main{
    padding-top:calc(62px + var(--tg-content-safe-top,0px));
  }
  html.telegram-mini-app.telegram-header-compact .topbar{
    position:fixed;
    top:calc(max(env(safe-area-inset-top),var(--tg-safe-top,0px)) + 5px);
    left:50%;
    right:auto;
    z-index:42;
    width:max-content;
    max-width:calc(100vw - 176px);
    height:44px;
    min-height:44px;
    padding:4px 6px;
    justify-content:center;
    gap:5px;
    border:1px solid color-mix(in srgb,var(--line) 75%,transparent);
    border-radius:16px;
    background:color-mix(in srgb,var(--surface-solid) 88%,transparent);
    box-shadow:0 8px 28px rgba(29,25,70,.16);
    backdrop-filter:blur(22px) saturate(1.35);
    transform:translateX(-50%);
    animation:telegramHeaderDock .34s cubic-bezier(.2,.85,.25,1.15) both;
  }
  html.telegram-mini-app.telegram-header-compact .topbar .menu-button{display:none}
  html.telegram-mini-app.telegram-header-compact .mobile-brand{gap:0}
  html.telegram-mini-app.telegram-header-compact .mobile-brand img{width:30px;height:30px;border-radius:10px}
  html.telegram-mini-app.telegram-header-compact .mobile-brand span{width:0;opacity:0;overflow:hidden}
  html.telegram-mini-app.telegram-header-compact .topbar-actions{gap:4px}
  html.telegram-mini-app.telegram-header-compact .topbar-actions>.icon-button,
  html.telegram-mini-app.telegram-header-compact .scale-control>.icon-button,
  html.telegram-mini-app.telegram-header-compact .tools-toggle{
    width:30px;height:30px;border:0;border-radius:10px;background:transparent;
  }
  html.telegram-mini-app.telegram-header-compact .appearance-button span{font-size:15px}
  html.telegram-mini-app.telegram-header-compact .voice-assistant-button span{font-size:14px}
  html.telegram-mini-app.telegram-header-compact .notification-dot{top:4px;right:4px}
  html.telegram-mini-app.telegram-header-compact .scale-popover{top:calc(max(env(safe-area-inset-top),var(--tg-safe-top,0px)) + 55px)}
  html.telegram-mini-app.telegram-header-compact .notification-popover{top:calc(max(env(safe-area-inset-top),var(--tg-safe-top,0px)) + 55px)}
  html.telegram-mini-app.telegram-ios.telegram-header-compact .mobile-brand img{
    box-shadow:0 0 0 2px color-mix(in srgb,var(--surface-solid) 82%,transparent),0 5px 14px rgba(94,59,235,.3);
  }
}

/* Compact, actionable visit history inside an appointment client card. */
.client-visit-history-list .booking-history-row[role="button"]{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}
.client-visit-history-list .booking-history-row[role="button"]:hover{background:color-mix(in srgb,var(--primary) 5%,var(--surface-solid))}
.client-visit-history-list .booking-history-row[role="button"]:focus-visible{position:relative;z-index:1;outline:2px solid var(--primary);outline-offset:-2px}
.client-visit-history-list .history-visit-price{display:block;margin-top:7px;color:var(--text);font-size:16px!important;font-weight:850;line-height:1.05;font-variant-numeric:tabular-nums}
.client-visit-history-list .booking-history-row>.history-status-dot{width:9px;height:9px;min-width:9px;padding:0;border:0;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.client-visit-history-list .booking-history-row.completed>.history-status-dot{background:#25a873;box-shadow:0 0 0 3px rgba(37,168,115,.13)}
.client-visit-history-list .booking-history-row.cancelled>.history-status-dot{background:#d9475e;box-shadow:0 0 0 3px rgba(217,71,94,.12)}
.client-visit-history-list .booking-history-row.no_show>.history-status-dot{background:#8b8d98;box-shadow:0 0 0 3px rgba(139,141,152,.13)}
@media(max-width:600px){.client-visit-history-list .history-visit-price{font-size:14px!important}}

/* Telegram client response lives in the appointment header on every density. */
#page-calendar .planner-event-timebar .attendance-badge,
#page-calendar .month-appointment .attendance-badge {
  display:inline-grid!important;
  place-items:center;
  width:18px;
  height:18px;
  min-width:18px;
  padding:0!important;
  margin:0!important;
  border:1.5px solid currentColor;
  border-radius:6px;
  background:#fff!important;
  box-shadow:0 1px 3px rgba(20,25,40,.16);
  line-height:1;
}
#page-calendar .attendance-badge.confirmed {color:#168a57!important}
#page-calendar .attendance-badge.reschedule {color:#d43c50!important}
#page-calendar .attendance-badge svg {
  display:block;
  width:12px;
  height:12px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#page-calendar .attendance-badge>span {display:none!important}
#page-calendar .planner-event.event-compact .planner-event-timebar .attendance-badge {
  display:inline-grid!important;
  width:15px;
  height:15px;
  min-width:15px;
  border-radius:5px;
}
#page-calendar .planner-event.event-compact .attendance-badge svg {width:10px;height:10px}
#page-calendar .month-appointment .attendance-badge {
  width:14px;
  height:14px;
  min-width:14px;
  border-radius:4px;
  vertical-align:middle;
}
#page-calendar .month-appointment .attendance-badge svg {width:9px;height:9px}
html[data-theme="dark"] #page-calendar :is(.planner-event-timebar,.month-appointment) .attendance-badge {
  background:#20242f!important;
}

/* Google Reviews KPI reuses the quest board but behaves as a verified challenge. */
.google-kpi-note{background:linear-gradient(145deg,#fff2b8,#e8c96e)!important}.google-kpi-note>strong{font-size:25px}.google-kpi-progress{height:9px;margin:10px 0;border-radius:9px;background:#6b4b2633;overflow:hidden}.google-kpi-progress>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9a6819,#e2a832)}
.google-kpi-create{display:grid;gap:13px}.google-kpi-create>small{color:#79542f;font:9px/1.4 Georgia,serif}.google-kpi-create select[multiple]{min-height:96px}.google-kpi-detail{display:grid;gap:17px}.google-kpi-loading,.google-kpi-empty{padding:28px;text-align:center;color:#795b37}.google-kpi-hero{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.google-kpi-hero>div{display:grid;gap:5px;padding:15px;border:1px solid #a57b43;border-radius:12px;background:#f7e7bd99}.google-kpi-hero small{color:#795b37}.google-kpi-hero strong{font:700 26px Georgia,serif}.google-kpi-hero span{font-size:10px}.google-kpi-milestones{display:flex;gap:7px;margin:0;padding:0;list-style:none;overflow:auto}.google-kpi-milestones li{min-width:104px;display:grid;gap:4px;padding:9px;border:1px solid #b38b56;border-radius:9px;opacity:.62}.google-kpi-milestones li.reached{background:#dcebbf;border-color:#678c43;opacity:1}.google-kpi-milestones span{font-size:9px}.google-kpi-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.google-kpi-stats span{display:grid;gap:3px;padding:9px;border-radius:8px;background:#d4b87955;font-size:9px}.google-kpi-stats b{font-size:15px}.google-kpi-daily{height:82px;display:flex;align-items:flex-end;gap:7px;padding:9px;border-bottom:1px solid #a57b43}.google-kpi-daily>span{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.google-kpi-daily i{width:min(22px,80%);min-height:5px;border-radius:5px 5px 0 0;background:#a46e25}.google-kpi-daily small{font-size:7px}.google-kpi-contributors{display:flex;flex-wrap:wrap;gap:7px}.google-kpi-contributors>span{padding:7px 9px;border-radius:12px;background:#d4b87955;font-size:9px}.google-review-add{padding:12px;border:1px dashed #8c6737;border-radius:10px}.google-review-add summary{font-weight:700;cursor:pointer}.google-review-add form{display:grid;gap:12px;margin-top:13px}.google-review-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.google-review-form-grid label{display:grid;gap:4px;font-size:9px}.google-review-form-grid input,.google-review-form-grid select,.google-review-form-grid textarea{width:100%;min-width:0;padding:8px;border:1px solid #aa8657;border-radius:7px;background:#fff9e9;color:#382313}.google-review-add button,.google-review-actions button{min-height:36px;padding:0 13px;border:0;border-radius:8px;background:#65411f;color:#fff;cursor:pointer}.google-review-list{display:grid;gap:8px}.google-review-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:11px;border:1px solid #b89767;border-radius:10px;background:#f8e9c4}.google-review-row>div:first-child{display:grid;gap:3px}.google-review-row small,.google-review-row p{margin:0;font-size:9px}.google-review-row>a{color:#6e451e;font-size:9px}.google-review-status{padding:5px 7px;border-radius:10px;font-size:8px;background:#ead299}.google-review-status.confirmed{background:#cae5be;color:#315d25}.google-review-status.rejected{background:#ebc1b9;color:#79352b}.google-review-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:7px}.google-review-actions button:last-child{background:#8a3f31}
@media(max-width:700px){.google-kpi-hero{grid-template-columns:1fr}.google-kpi-stats{grid-template-columns:1fr 1fr}.google-review-form-grid{grid-template-columns:1fr}.google-review-row{grid-template-columns:minmax(0,1fr) auto}.google-review-row>a{grid-column:2}.google-kpi-detail{padding-bottom:20px}}
@keyframes telegramHeaderDock{
  from{opacity:.35;transform:translate(-50%,18px) scale(.9)}
  to{opacity:1;transform:translate(-50%,0) scale(1)}
}
.client-feedback-panel{margin-bottom:20px;padding-bottom:12px}
.client-list-limit{padding:14px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:8px;text-align:center}
.client-feedback-list{height:78px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:68px;gap:10px;padding:0 20px 10px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scroll-padding-top:0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.client-feedback-list::-webkit-scrollbar{display:none}.client-feedback-row{min-height:68px;border:1px solid var(--line);background:var(--surface-solid);border-radius:16px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;text-align:left;color:inherit;scroll-snap-align:start;scroll-snap-stop:always}
.client-feedback-row>span:last-child{text-align:right}.client-feedback-row small,.client-card-feedback-row small{display:block;color:var(--muted);margin-top:3px}
.feedback-face{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#f3f1ff;font-size:21px}
.feedback-face.bad{background:#fff0f1}.feedback-face.ok{background:#fff8e8}.feedback-face.great{background:#eaf9f2}
.client-rating{display:block;color:#e29a26;margin-top:3px}
.client-card-feedback{display:grid;gap:8px;margin-bottom:22px}
.client-card-feedback-row{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid var(--line);border-radius:15px}
@media(max-width:700px){
  .client-feedback-list{grid-template-columns:1fr;padding:0 14px 10px}
  .client-feedback-row{grid-template-columns:auto minmax(0,1fr);padding:11px}
  .client-feedback-row>span:last-child{grid-column:2;text-align:left}
  .transfer-route{grid-template-columns:1fr}.transfer-route>span{height:22px;transform:rotate(90deg)}.transfer-confirm-sheet .modal-actions{display:grid;grid-template-columns:1fr 1fr}.appointment-transfer-history{padding:10px}
  body.appointment-modal-open #bookingModal.open,body.appointment-modal-open #appointmentModal.open{top:var(--modal-viewport-top,0);bottom:auto;height:var(--modal-viewport-height,100dvh)}.appointment-workflow-sheet{height:calc(var(--modal-viewport-height,var(--tg-viewport-height,100dvh)) - var(--app-safe-top));max-height:none;padding:18px 12px calc(18px + var(--app-safe-bottom));overflow-y:scroll;overflow-anchor:none;scroll-padding:90px 0 130px}.appointment-workflow-sheet .modal-header{top:-18px;margin:-18px -12px 10px;padding:18px 14px 13px}.appointment-form-section{padding:13px 12px 1px;border-radius:15px}.appointment-mark-section{padding-bottom:12px}.appointment-section-title{margin-bottom:11px}.appointment-section-title strong{font-size:12px}.appointment-section-title small{font-size:8px;line-height:1.35}.modern-color-picker{gap:7px}.modern-color-picker>span{width:30px;height:30px;flex-basis:30px}.appointment-workflow-sheet .modal-actions{bottom:calc(-18px - var(--app-safe-bottom));margin:5px -12px calc(-18px - var(--app-safe-bottom));padding:12px 12px calc(12px + var(--app-safe-bottom));flex-wrap:wrap}.appointment-workflow-sheet .modal-actions button{flex:1;min-width:125px}
}

/* Dark appearance is kept at the end so it wins over component-specific light colors. */
html[data-theme="dark"] .auth-gate{background:radial-gradient(circle at 50% 0,#292544 0,transparent 45%),var(--bg)}
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .notification-popover,
html[data-theme="dark"] .finance-toolbar,
html[data-theme="dark"] .service-form-preview,
html[data-theme="dark"] .account-box,
html[data-theme="dark"] .client-edit-form,
html[data-theme="dark"] .appointment-client-summary,
html[data-theme="dark"] .client-card-contact,
html[data-theme="dark"] .booking-history-row,
html[data-theme="dark"] .cancelled-date-toolbar{background:var(--surface-solid);border-color:var(--line)}
html[data-theme="dark"] .panel,
html[data-theme="dark"] .metric-card,
html[data-theme="dark"] .service-card,
html[data-theme="dark"] .finance-staff-item,
html[data-theme="dark"] .category-section,
html[data-theme="dark"] .settings-card,
html[data-theme="dark"] .schedule-editor,
html[data-theme="dark"] .master-list-panel,
html[data-theme="dark"] .client-feedback-row,
html[data-theme="dark"] .client-card-feedback-row{background:var(--surface);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .appointment,
html[data-theme="dark"] .client-row,
html[data-theme="dark"] .master-item,
html[data-theme="dark"] .access-row,
html[data-theme="dark"] .client-history-row,
html[data-theme="dark"] .notification-item,
html[data-theme="dark"] .finance-legend>div{border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .secondary-button,
html[data-theme="dark"] .select-button,
html[data-theme="dark"] .icon-button,
html[data-theme="dark"] .scale-hints button{background:var(--surface-solid);border-color:var(--line);color:var(--text)}
html[data-theme="dark"] .field>span,
html[data-theme="dark"] .field-label{color:var(--muted)}
html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea{color:var(--text);border-color:var(--line)}
html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder{color:#737581;opacity:1}
html[data-theme="dark"] .notification-item:hover,
html[data-theme="dark"] .client-suggestion:hover,
html[data-theme="dark"] .client-suggestion:focus,
html[data-theme="dark"] .master-item:hover,
html[data-theme="dark"] .category-chip:hover{background:var(--surface-hover)}
html[data-theme="dark"] .segmented{background:#292a33}
html[data-theme="dark"] .segmented button.active{background:#3a3b47;color:#fff}
html[data-theme="dark"] .table-tools,
html[data-theme="dark"] .panel-heading,
html[data-theme="dark"] .client-card-stats,
html[data-theme="dark"] .client-history,
html[data-theme="dark"] .cancelled-list{border-color:var(--line)}
html[data-theme="dark"] .telegram-bar-shortcut{color:#e5b27c;border-color:#69503a;background:linear-gradient(145deg,#3b3028,#29272a)}
html[data-theme="dark"] .danger-button{background:#3c2027;border-color:#69323d;color:#ff9cac}
html[data-theme="dark"] .mark-paid-button,
html[data-theme="dark"] .restore-button{color:#64d7a6;border-color:#315f4d}
html[data-theme="dark"] .category-symbol.all,
html[data-theme="dark"] .week-master-filter b,
html[data-theme="dark"] .month-count{background:#33343e;color:#d4d5dc}
html[data-theme="dark"] .finance-progress,
html[data-theme="dark"] .finance-donut-empty{background:#34353f!important}
html[data-theme="dark"] .nav-item{color:#aaaab5}
html[data-theme="dark"] .nav-item.active{color:#a89fff}
html[data-theme="dark"] .profile-mini{border-color:var(--line)}
html[data-theme="dark"] .mobile-nav{background:color-mix(in srgb,#202126 72%,transparent);border-color:rgba(255,255,255,.13);box-shadow:0 18px 48px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.1)}
html[data-theme="dark"] .mobile-nav button{color:#9b9ca8}
html[data-theme="dark"] .mobile-nav button.active{color:#b7afff;background:rgba(255,255,255,.1);box-shadow:0 7px 22px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.08)}
html[data-theme="dark"] #page-overview .appointment.client-confirmed{background:#e8f8f0;color:#155e43}
html[data-theme="dark"] #page-overview .appointment.client-confirmed time,
html[data-theme="dark"] #page-overview .appointment.client-confirmed strong{color:#155e43}
html[data-theme="dark"] #page-overview .appointment.client-confirmed small{color:#4f806d}
html[data-theme="dark"] #page-overview .appointment.client-reschedule{background:#fff0f2;color:#8f3041}
html[data-theme="dark"] #page-overview .appointment.client-reschedule time,
html[data-theme="dark"] #page-overview .appointment.client-reschedule strong{color:#8f3041}
html[data-theme="dark"] #page-overview .appointment.client-reschedule small{color:#a56470}
html[data-theme="dark"] .booking-history-row .history-comment.cancellation{background:#3a2229;color:#ff9bad}
html[data-theme="dark"] .bonus-payout-button:not(:disabled){background:#342d1d;border-color:#6f5a29;color:#f0cf72}
html[data-theme="dark"] .payroll-void-button{background:#3c2027;border-color:#69323d;color:#ff9cac}
.assistant-sound-toggle{align-self:center;border:1px solid var(--line);border-radius:999px;background:var(--surface-solid);color:var(--muted);padding:7px 12px;font:inherit;font-size:11px;cursor:pointer}.assistant-sound-toggle.active{color:var(--primary);background:var(--primary-soft);border-color:#d9d3ff}
.voice-orb.listening span{font-size:22px}.touch-drag-ghost{position:fixed!important;z-index:9999!important;width:min(220px,58vw)!important;min-height:64px;transform:translate(-50%,-50%) scale(1.04);pointer-events:none;opacity:.94;box-shadow:0 18px 45px rgba(20,18,45,.28)!important}.touch-calendar-dragging{user-select:none;-webkit-user-select:none}.touch-calendar-dragging .planner-slot{touch-action:none}
.touch-calendar-dragging .planner-event.dragging{pointer-events:none}
@media (pointer:coarse){.planner-event,.week-schedule-event{touch-action:manipulation;-webkit-touch-callout:none}.touch-calendar-dragging .week-schedule-event.dragging{pointer-events:none}}
.waitlist-count{min-width:20px;height:20px;display:inline-grid;place-items:center;margin-left:5px;padding:0 6px;border-radius:999px;background:var(--primary);color:#fff;font-size:9px;font-weight:800}.waitlist-count.empty{background:var(--surface-muted);color:var(--muted)}.waitlist-sheet{width:min(900px,100%)}.waitlist-layout{min-height:360px}.waitlist-section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.waitlist-section-title strong,.waitlist-section-title small{display:block}.waitlist-section-title strong{font-size:16px}.waitlist-section-title small{margin-top:4px;color:var(--muted);font-size:10px}.waitlist-action{min-height:38px;padding:0 15px;font-size:10px}.waitlist-list{display:grid;gap:10px;max-height:58vh;overflow:auto;padding-right:3px;overscroll-behavior:contain}.waitlist-item{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:13px;padding:15px;border:1px solid var(--line);border-radius:17px;background:var(--surface-muted)}.waitlist-item.matched{border-color:#a9dfc8;background:linear-gradient(135deg,var(--green-soft),var(--surface-solid))}.waitlist-item-avatar{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--violet-soft);color:var(--primary);font-size:12px;font-weight:800}.waitlist-item-copy{min-width:0}.waitlist-item-copy>div{display:flex;align-items:center;gap:8px}.waitlist-item-copy strong{font-size:12px}.waitlist-item-copy>div span{padding:4px 8px;border-radius:999px;background:var(--green);color:#fff;font-size:8px;font-weight:800}.waitlist-item-copy a{display:inline-block;margin-top:3px;color:var(--muted);font-size:9px;text-decoration:none}.waitlist-item-copy p{margin:8px 0 2px;font-size:10px;font-weight:700}.waitlist-item-copy small{color:var(--muted);font-size:9px}.waitlist-item-copy em,.waitlist-item-copy b{display:block;margin-top:7px;font-size:9px;font-style:normal}.waitlist-item-copy em{color:var(--muted)}.waitlist-item-copy b{color:var(--green)}.waitlist-item-actions{display:flex;align-items:center;gap:7px}.waitlist-empty{min-height:250px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.waitlist-empty span{width:52px;height:52px;display:grid;place-items:center;margin-bottom:12px;border-radius:17px;background:var(--green-soft);color:var(--green);font-size:22px}.waitlist-empty strong{color:var(--text);font-size:13px}.waitlist-empty p{margin:6px 0;font-size:10px}.waitlist-form{max-width:680px;margin:auto}.waitlist-form h3{margin:0 0 16px;font-size:18px}
.waitlist-item[role="button"]{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.waitlist-item[role="button"]:hover,.waitlist-item[role="button"]:focus-visible{border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:0 10px 28px color-mix(in srgb,var(--primary) 10%,transparent);outline:0;transform:translateY(-1px)}.waitlist-item-copy em span{color:var(--text);font-weight:750}.waitlist-dates-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 7px;color:var(--muted);font-size:9px}.waitlist-dates-heading button{width:30px;height:30px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:9px;background:var(--violet-soft);color:var(--primary);font-size:18px;line-height:1;cursor:pointer}.waitlist-date-list{display:grid;gap:7px;margin-bottom:12px}.waitlist-date-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:7px}.waitlist-date-row input{width:100%;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-muted);color:var(--text);font:inherit}.waitlist-date-row button{border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--muted);font-size:18px;cursor:pointer}.waitlist-date-row button:disabled{visibility:hidden}
.calendar-jump{position:relative;width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--muted);cursor:pointer}.calendar-jump svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8}.calendar-date-popover{position:absolute;z-index:45;top:calc(100% + 10px);right:0;width:520px;padding:20px;border:1px solid var(--line);border-radius:22px;background:var(--surface-solid);box-shadow:0 24px 70px rgba(25,22,55,.22);backdrop-filter:blur(22px)}.calendar-date-popover[hidden]{display:none}.calendar-date-popover-head{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;gap:12px;margin-bottom:16px}.calendar-date-popover-head strong{text-align:center;text-transform:capitalize;font-size:18px}.calendar-date-popover-head button{width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted);font-size:25px;cursor:pointer}.calendar-date-weekdays,.calendar-date-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-date-weekdays{margin-bottom:7px}.calendar-date-weekdays span{padding:7px 0;color:var(--muted);font-size:11px;font-weight:800;text-align:center;text-transform:uppercase}.calendar-date-days button{aspect-ratio:1;border:0;border-radius:14px;background:transparent;color:var(--text);font-size:15px;font-weight:650;cursor:pointer}.calendar-date-days button:hover{background:var(--violet-soft);color:var(--primary)}.calendar-date-days button.outside{color:var(--muted);opacity:.38}.calendar-date-days button.today{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--primary) 45%,transparent)}.calendar-date-days button.selected{background:var(--primary);color:#fff;box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 28%,transparent)}@media(max-width:650px){.calendar-date-popover{position:fixed;top:50%;left:50%;right:auto;width:min(520px,calc(100vw - 24px));padding:16px;transform:translate(-50%,-50%)}.calendar-date-popover-head strong{font-size:16px}.calendar-date-days button{border-radius:11px;font-size:13px}}
.calendar-mobile-show-all{display:none}
@media(max-width:650px){
  html:not(.telegram-mini-app) .main:has(#page-calendar.active)>.topbar{display:none}
  html.telegram-mini-app:not(.master-access-mode):not(.header-compact) .topbar{margin-top:56px}
  html.telegram-mini-app:not(.master-access-mode).telegram-header-compact .main{padding-top:calc(118px + var(--tg-content-safe-top,0px))}
  html.telegram-mini-app:not(.master-access-mode).telegram-header-compact .topbar{top:calc(max(env(safe-area-inset-top),var(--tg-safe-top,0px)) + 61px)}
  html.telegram-fullscreen .topbar{height:62px;padding-top:0;padding-left:max(16px,var(--tg-content-safe-left,0px));padding-right:max(16px,var(--tg-content-safe-right,0px))}
  html.telegram-fullscreen .sidebar{padding-top:24px}
  #page-clients .heading-actions{display:flex;width:100%;gap:8px}
  #page-clients .heading-actions button{flex:1;min-width:0;padding:0 10px}
  .planner-event,.week-schedule-event{touch-action:manipulation;-webkit-touch-callout:none}
  .payroll-staff-grid{grid-template-columns:1fr;padding:0 12px}.payroll-staff-item{padding:17px}.payroll-person strong{font-size:14px}.payroll-person small{font-size:10px}.payroll-person>b{font-size:16px}.payroll-numbers{grid-template-columns:1fr 1fr}.payroll-numbers span{padding:12px}.payroll-numbers small{font-size:9px}.payroll-numbers strong{font-size:13px}.payroll-target-label{font-size:12px;padding:12px}.payroll-day-row{grid-template-columns:75px minmax(0,1fr);gap:8px}.payroll-day-row>b{grid-column:2}.commission-form{align-items:stretch;flex-direction:column}.commission-form button{width:100%}.payroll-policy-form{display:grid;grid-template-columns:1fr 1fr}.payroll-policy-form label{font-size:10px}.payroll-policy-form input{height:44px;font-size:12px}.payroll-policy-form button{grid-column:1/-1}
  .master-profile-hero{align-items:flex-start;flex-wrap:wrap}.master-profile-photo{width:68px;height:68px;flex-basis:68px}.master-profile-hero button{width:100%;margin:0}.master-profile-contacts{grid-template-columns:1fr 1fr}.master-daily-message{align-items:flex-start;padding:14px}.master-daily-message strong{font-size:12px}.master-profile-form .form-row{grid-template-columns:1fr}.master-profile-form>.primary-button{float:none;width:100%}
  .waitlist-open{padding:0 10px;font-size:0}.waitlist-open::before{content:"Ожидание";font-size:9px}.waitlist-count{margin-left:4px}.waitlist-list{max-height:none;overflow:visible}.waitlist-item{grid-template-columns:42px minmax(0,1fr);padding:13px;gap:10px}.waitlist-item-avatar{width:42px;height:42px;border-radius:13px}.waitlist-item-actions{grid-column:1/-1;justify-content:flex-end}.waitlist-item-actions .waitlist-action{flex:1}.waitlist-sheet .modal-header p{font-size:9px}
}

.client-day-close-panel{
  display:grid;
  gap:10px;
  margin:12px 0 4px;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--violet-soft) 58%,var(--surface-solid));
}

.client-day-close-panel[hidden],.client-day-close-rows[hidden]{display:none!important}
#appointmentPaymentContent.client-day-close-active .paid-amount-field{display:none!important}
#appointmentPaymentContent.client-day-close-active .payment-value-row{grid-template-columns:1fr}
.client-day-close-toggle{display:flex;align-items:center;gap:10px;cursor:pointer}
.client-day-close-toggle input{width:20px;height:20px;accent-color:var(--primary);flex:0 0 auto}
.client-day-close-toggle span{display:grid;gap:2px}
.client-day-close-toggle strong{font-size:14px;color:var(--ink)}
.client-day-close-toggle small{font-size:11px;color:var(--muted)}
.client-day-close-rows{display:grid;gap:8px}
.client-day-close-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(125px,170px) minmax(115px,150px);
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-solid);
}
.client-day-close-row.has-consumables{grid-template-columns:minmax(0,1fr) repeat(3,minmax(105px,145px))}
.client-day-close-person{display:grid;gap:3px;min-width:0}
.client-day-close-person strong,.client-day-close-person span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-day-close-person strong{font-size:13px;color:var(--ink)}
.client-day-close-person span{font-size:12px;color:var(--muted)}
.client-day-close-person small{font-size:11px;color:var(--primary);font-weight:700}
.client-day-close-amount{display:grid;gap:4px}
.client-day-close-amount>span{font-size:10px;color:var(--muted)}
.client-day-close-amount .unit-input input{min-width:0}
.client-day-close-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-top:2px}
.client-day-close-summary span{font-size:12px;color:var(--muted)}
.client-day-close-summary strong{font-size:16px;color:var(--primary)}
@media(max-width:650px){
  .client-day-close-row,.client-day-close-row.has-consumables{grid-template-columns:1fr}
  .client-day-close-panel{padding:10px}
}
@media(max-width:650px){
  .payroll-metrics{grid-template-columns:1fr 1fr;gap:10px}
  .payroll-payout-actions{grid-template-columns:1fr}
  .payroll-payout-actions button{min-height:44px;font-size:10px}
  .payroll-ledger-list{padding:0 12px}
  .payroll-ledger-row{grid-template-columns:36px minmax(0,1fr) auto;align-items:start}
  .payroll-ledger-meta{grid-column:3;grid-row:1;text-align:right}
  .payroll-ledger-actions{grid-column:2/-1;width:100%}
  .payroll-ledger-actions button{flex:1;min-height:38px}
  .payroll-payment-balance{grid-template-columns:1fr 1fr 1fr}
  .payroll-payment-balance span{padding:10px 8px}
  .payroll-payment-balance strong{font-size:10px}
  .attention-detail-list{max-height:none}
  .new-clients-list{max-height:none}.new-client-row{grid-template-columns:38px minmax(0,1fr) auto}.new-client-avatar{width:36px;height:36px}.new-client-date{grid-column:2}.new-client-arrow{grid-column:3;grid-row:1 / span 2}
  .attention-detail-row{grid-template-columns:38px minmax(0,1fr) auto;padding:11px 9px;gap:9px}
  .attention-detail-avatar{width:38px;height:38px}
  .attention-detail-side{grid-column:2;text-align:left}.attention-arrow{grid-column:3;grid-row:1}
  .birthday-row{grid-template-columns:38px minmax(0,1fr) auto}.birthday-row time{grid-column:2}.attention-congratulate{grid-column:2/4;width:100%;min-height:40px}
}
.campaign-recipients{line-height:1.5}.campaign-recipient{display:flex;align-items:center;justify-content:space-between;gap:12px}.campaign-recipient+.campaign-recipient{margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}.campaign-recipient button{flex:none;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-solid);color:var(--primary);font:inherit;font-weight:700;cursor:pointer}.campaign-recipient button:disabled{opacity:.55}
.client-sheet{max-height:min(92dvh,900px);overflow:auto;scrollbar-gutter:stable}.client-sheet>.modal-header{position:sticky;z-index:3;top:-23px;margin:-23px -23px 14px;padding:23px 23px 14px;background:color-mix(in srgb,var(--surface-solid) 95%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}@media(max-width:760px){.client-sheet>.modal-header{top:-20px;margin:-20px -18px 14px;padding:20px 18px 14px}}
.campaign-templates-panel{margin-bottom:16px;padding:18px}.campaign-templates{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.campaign-templates button{min-width:0;padding:15px;text-align:left;border:1px solid var(--line);border-radius:15px;background:var(--surface-muted);color:var(--text);cursor:pointer;transition:.18s}.campaign-templates button:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--primary) 42%,var(--line));box-shadow:0 9px 24px color-mix(in srgb,var(--primary) 10%,transparent)}.campaign-templates span,.campaign-templates strong,.campaign-templates small{display:block}.campaign-templates span{font-size:22px}.campaign-templates strong{margin-top:9px;font-size:11px}.campaign-templates small{margin-top:4px;color:var(--muted);font-size:8px}@media(max-width:760px){#page-messages .page-heading>#createCampaignBtn{display:inline-flex;width:100%;min-height:48px;justify-content:center}.campaign-templates-panel{padding:14px}.campaign-templates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.campaign-templates button{padding:13px}.campaign-templates button:last-child{grid-column:1/-1}.campaign-sheet .modal-actions{position:sticky;bottom:calc(-20px - env(safe-area-inset-bottom));z-index:4;margin:14px -18px calc(-20px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface-solid) 95%,transparent);backdrop-filter:blur(16px)}}
.calendar-render-error{min-height:260px;display:grid;place-content:center;justify-items:center;gap:9px;padding:30px;text-align:center;color:var(--muted)}.calendar-render-error strong{color:var(--text);font-size:15px}.calendar-render-error span{font-size:10px}.calendar-render-error button{margin-top:6px;padding:10px 16px;border:0;border-radius:11px;background:var(--primary);color:#fff;font-weight:700;cursor:pointer}
.planner-event.appointment-paid,.week-schedule-event.appointment-paid{box-shadow:inset 0 0 0 1px rgba(23,118,83,.42),0 3px 9px rgba(20,91,65,.12)}.appointment-payment-badge{position:absolute!important;z-index:14;right:5px;bottom:5px;width:18px!important;height:18px!important;margin:0!important;display:grid!important;place-items:center;overflow:visible!important;border:1px solid rgba(190,133,14,.32);border-radius:999px;background:#fff4c9!important;color:#8c6100!important;font-size:10px!important;line-height:1!important;box-shadow:0 3px 8px rgba(132,88,0,.18)}.month-appointment .appointment-payment-badge{position:static!important;display:inline-grid!important;width:14px!important;height:14px!important;margin-left:3px!important;font-size:8px!important;vertical-align:middle}.payment-just-saved{z-index:18!important;animation:paymentCardComplete 1.8s cubic-bezier(.2,.8,.2,1)}.planner-event.payment-just-saved::before,.week-schedule-event.payment-just-saved::before{content:"";position:absolute;z-index:13;inset:-30% -70%;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgba(255,237,161,.82) 49%,rgba(255,255,255,.9) 52%,transparent 63%);transform:translateX(-65%) rotate(2deg);animation:paymentGoldenShine 1.25s ease .12s both}@keyframes paymentCardComplete{0%{transform:scale(.96)}18%{transform:scale(1.045)}38%{transform:scale(.992)}58%,100%{transform:scale(1)}20%,55%{box-shadow:0 0 0 5px rgba(233,183,65,.2),0 12px 28px rgba(141,96,10,.2)}}@keyframes paymentGoldenShine{0%{transform:translateX(-65%) rotate(2deg);opacity:0}20%{opacity:1}100%{transform:translateX(65%) rotate(2deg);opacity:0}}@media(prefers-reduced-motion:reduce){.payment-just-saved,.planner-event.payment-just-saved::before,.week-schedule-event.payment-just-saved::before{animation:none}}
.appointment-payment-badge{width:22px!important;height:22px!important;border-color:rgba(178,116,0,.38);background:linear-gradient(145deg,#fff6c7,#ffd65c)!important;color:#d28a00!important;box-shadow:0 3px 9px rgba(130,82,0,.24),inset 0 1px 0 rgba(255,255,255,.9)}.appointment-payment-badge svg{display:block!important;width:16px!important;height:16px!important;overflow:visible!important;fill:#f5b928;stroke:#9d6800;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}.appointment-payment-badge svg .coin-shine{fill:none;stroke:#fff1a4;stroke-width:1.3}.month-appointment .appointment-payment-badge{width:16px!important;height:16px!important}.month-appointment .appointment-payment-badge svg{width:12px!important;height:12px!important}
.planner-event.event-compact .appointment-payment-badge{right:3px!important;bottom:3px!important;transform:scale(.72);transform-origin:right bottom}
.appointment-payment-badge img{display:block;width:100%;height:100%;object-fit:contain}.planner-event-timebar-status{display:flex!important;align-items:center;justify-content:flex-end;gap:4px;margin:0!important;overflow:visible!important}.planner-event-timebar .appointment-payment-badge,.week-event-timebar .appointment-payment-badge{position:static!important;width:17px!important;height:17px!important;flex:0 0 17px;margin:0!important;border:0;background:transparent!important;box-shadow:none;transform:none!important}.planner-event-timebar .appointment-payment-badge img,.week-event-timebar .appointment-payment-badge img{width:17px;height:17px;filter:drop-shadow(0 1px 2px rgba(91,53,0,.28))}.week-event-timebar{display:flex!important;align-items:center;justify-content:space-between;gap:4px;min-width:0}.week-event-timebar>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-event-timebar .appointment-payment-badge{margin-left:auto!important}.planner-event.event-compact .planner-event-timebar{display:flex!important;align-items:center;gap:4px}.planner-event.event-compact .planner-event-timebar-status{margin-left:auto!important}.planner-event.event-compact .planner-event-timebar .appointment-payment-badge{width:14px!important;height:14px!important;flex-basis:14px}.planner-event.event-compact .planner-event-timebar .appointment-payment-badge img{width:14px;height:14px}
.planner-event.appointment-paid .planner-event-timebar,.week-schedule-event.appointment-paid .week-event-timebar{background:linear-gradient(110deg,#159667,#31bd85 58%,#22a875)!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.planner-event.appointment-paid,.week-schedule-event.appointment-paid{background:linear-gradient(145deg,#e1f7ed,#d6f2e5)!important;color:#176d4d!important;border-color:#28aa78!important;box-shadow:inset 0 0 0 1px rgba(73,190,139,.28),0 3px 10px rgba(30,126,84,.12)}.planner-event-paid-client{display:none!important;min-width:0;flex:1;margin:0 5px!important;color:inherit!important;font-size:calc(8px * var(--ui-scale,1))!important;font-weight:800!important;text-align:left;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis}.planner-event.appointment-paid .planner-event-paid-client{display:block!important}.planner-event.appointment-paid>.planner-event-client{display:none!important}.planner-event.appointment-paid .planner-event-phone{font-size:calc(8px * var(--ui-scale,1));font-weight:700;opacity:.9}.planner-event.appointment-paid.event-medium .planner-event-services{grid-column:1/3}.planner-event.appointment-paid.event-compact{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) minmax(0,.7fr);column-gap:5px;row-gap:0;padding:2px 3px 3px}.planner-event.appointment-paid.event-compact .planner-event-timebar{grid-column:1/-1;width:auto;min-height:0;padding:1px 5px}.planner-event.appointment-paid.event-compact .planner-event-services{grid-column:1;min-width:0}.planner-event.appointment-paid.event-compact .planner-event-phone{grid-column:2}.week-schedule-event.appointment-paid small{font-size:7px;font-weight:700;opacity:.9}.month-appointment.appointment-paid{background:#def5e9!important;color:#176d4d!important;border-color:#28aa78!important}
.payment-sparks{position:absolute!important;z-index:22;inset:0;display:block!important;overflow:hidden!important;pointer-events:none}.payment-sparks i{--spark-x:0px;--spark-y:-35px;position:absolute;left:78%;top:16px;width:6px;height:6px;display:block;border-radius:2px;background:#fff;box-shadow:0 0 9px rgba(255,255,255,.95);transform:translate(-50%,-50%) rotate(45deg) scale(0);animation:paymentSparkFly 1.15s cubic-bezier(.12,.72,.2,1) both}.payment-sparks i::after{content:"";position:absolute;inset:2px -2px;border-radius:2px;background:inherit}.payment-sparks i:nth-child(1){--spark-x:-72px;--spark-y:-4px;animation-delay:.04s}.payment-sparks i:nth-child(2){--spark-x:-48px;--spark-y:38px;animation-delay:.13s;background:#baffdf}.payment-sparks i:nth-child(3){--spark-x:-16px;--spark-y:54px;animation-delay:.08s}.payment-sparks i:nth-child(4){--spark-x:20px;--spark-y:43px;animation-delay:.18s;background:#d7ffe9}.payment-sparks i:nth-child(5){--spark-x:52px;--spark-y:16px;animation-delay:.1s}.payment-sparks i:nth-child(6){--spark-x:57px;--spark-y:-18px;animation-delay:.22s;background:#fff2a7}.payment-sparks i:nth-child(7){--spark-x:15px;--spark-y:-43px;animation-delay:.15s}.payment-sparks i:nth-child(8){--spark-x:-31px;--spark-y:-35px;animation-delay:.24s;background:#baffdf}@keyframes paymentSparkFly{0%{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(0)}18%{opacity:1;transform:translate(-50%,-50%) rotate(135deg) scale(1)}72%{opacity:.9}100%{opacity:0;transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) rotate(225deg) scale(.15)}}@media(prefers-reduced-motion:reduce){.payment-sparks{display:none!important}}
.payment-sparks.payment-celebration{position:fixed!important;z-index:70;inset:auto;display:block!important;overflow:visible!important;contain:none}.payment-celebration::before,.payment-celebration::after{content:"";position:absolute;left:50%;top:50%;width:min(90%,180px);aspect-ratio:1;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) scale(.15)}.payment-celebration::before{background:radial-gradient(circle,rgba(255,255,255,.98) 0 7%,rgba(116,255,199,.78) 18%,rgba(49,189,133,.2) 42%,transparent 68%);filter:blur(2px);animation:paymentCelebrationFlash .72s ease-out both}.payment-celebration::after{border:3px solid rgba(92,241,181,.85);box-shadow:0 0 18px rgba(49,189,133,.65),inset 0 0 18px rgba(49,189,133,.35);animation:paymentCelebrationRing 1.05s cubic-bezier(.12,.7,.18,1) .08s both}.payment-celebration i{left:50%;top:50%;width:8px;height:8px;box-shadow:0 0 12px rgba(255,255,255,1),0 0 20px rgba(49,189,133,.8)}.payment-celebration i:nth-child(1){--spark-x:-105px;--spark-y:-48px}.payment-celebration i:nth-child(2){--spark-x:-96px;--spark-y:68px}.payment-celebration i:nth-child(3){--spark-x:-30px;--spark-y:96px}.payment-celebration i:nth-child(4){--spark-x:55px;--spark-y:86px}.payment-celebration i:nth-child(5){--spark-x:112px;--spark-y:28px}.payment-celebration i:nth-child(6){--spark-x:98px;--spark-y:-64px}.payment-celebration i:nth-child(7){--spark-x:25px;--spark-y:-94px}.payment-celebration i:nth-child(8){--spark-x:-60px;--spark-y:-90px}@keyframes paymentCelebrationFlash{0%{opacity:0;transform:translate(-50%,-50%) scale(.08)}18%{opacity:1;transform:translate(-50%,-50%) scale(.72)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.55)}}@keyframes paymentCelebrationRing{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}25%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}}@media(prefers-reduced-motion:reduce){.payment-celebration{display:none!important}}
.booking-service-field{position:relative}.service-live-suggestions{position:absolute;z-index:35;top:calc(100% - 18px);left:0;right:0;max-height:300px;padding:6px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;border:1px solid var(--line);border-radius:15px;background:var(--surface-solid);box-shadow:0 18px 45px rgba(31,25,65,.18)}.service-live-suggestions.service-suggestions-portal{position:fixed;z-index:120;margin:0}.service-live-suggestions button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:0;border-radius:11px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.service-live-suggestions button:hover,.service-live-suggestions button:focus{background:var(--surface-muted);outline:none}.service-live-suggestions span,.service-live-suggestions strong,.service-live-suggestions small{display:block}.service-live-suggestions strong{font-size:12px}.service-live-suggestions small{margin-top:3px;color:var(--muted);font-size:9px}.service-live-suggestions b{flex:none;color:var(--primary);font-size:11px}.service-live-empty{padding:14px;color:var(--muted);text-align:center}@keyframes mobileChoiceOpen{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}@media(max-width:760px){.appointment-workflow-sheet .service-live-suggestions,.appointment-workflow-sheet .service-live-suggestions.service-suggestions-portal{position:absolute;z-index:120;top:calc(100% - 10px);left:0;right:0;bottom:auto;width:auto;max-height:min(260px,38dvh);border-radius:16px;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:mobileChoiceOpen .18s ease-out both}.service-live-suggestions button{min-height:54px;padding:12px}.service-live-suggestions strong{font-size:14px}.service-live-suggestions small,.service-live-suggestions b{font-size:11px}}
.service-suggestion-divider{position:sticky;top:-6px;z-index:1;margin:5px 4px;padding:8px 9px 5px;border-top:1px solid var(--line);background:var(--surface-solid);color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.service-suggestion-side{display:flex!important;flex:none;align-items:flex-end!important;gap:3px;text-align:right}.service-suggestion-side em{padding:3px 6px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-size:8px;font-style:normal;font-weight:800}@media(max-width:760px){.service-suggestion-divider{top:-8px}.service-suggestion-side em{font-size:9px}}
.payroll-staff-item.payroll-card-reordering{position:relative;z-index:3;transition:transform .62s cubic-bezier(.2,.82,.2,1),box-shadow .4s ease}.payroll-staff-item.payroll-card-paid-pulse{animation:payrollPaidPulse .72s ease both}@keyframes payrollPaidPulse{0%{box-shadow:0 0 0 0 rgba(49,168,117,0)}35%{box-shadow:0 0 0 5px rgba(49,168,117,.17),0 16px 34px rgba(49,168,117,.13)}100%{box-shadow:0 0 0 0 rgba(49,168,117,0)}}@media(prefers-reduced-motion:reduce){.payroll-staff-item.payroll-card-reordering{transition:none}.payroll-staff-item.payroll-card-paid-pulse{animation:none}}
.payroll-premium-stat{background:#fff7df!important}.payroll-premium-stat strong{color:#a66b00}.payroll-premium-hint{grid-column:1/-1;color:#a66b00;font-weight:600;margin-top:4px}
.payroll-ledger-row[data-edit-admin-pay]{cursor:pointer;border-radius:12px;transition:background .18s ease,transform .18s ease}.payroll-ledger-row[data-edit-admin-pay]:hover,.payroll-ledger-row[data-edit-admin-pay]:focus-visible{background:var(--violet-soft);transform:translateY(-1px);outline:none}.payroll-ledger-row[data-edit-admin-pay] .payroll-ledger-meta small{color:var(--primary);font-weight:700}

/* Calendar palette is intentionally softer in dark mode: minor divisions recede,
   while hours, headers and the current-time marker keep a clear hierarchy. */
html[data-theme="dark"] #page-calendar .calendar-card,
html[data-theme="dark"] #page-calendar .calendar-scroll,
html[data-theme="dark"] #page-calendar .day-calendar,
html[data-theme="dark"] #page-calendar .week-time-grid,
html[data-theme="dark"] #page-calendar .month-planner{background:#191a21}
html[data-theme="dark"] #page-calendar .day-corner,
html[data-theme="dark"] #page-calendar .master-column-head,
html[data-theme="dark"] #page-calendar .week-time-corner,
html[data-theme="dark"] #page-calendar .week-time-head{border-color:rgba(151,154,178,.16);background:rgba(27,28,36,.97)}
html[data-theme="dark"] #page-calendar .master-column-head:not(.off-duty){background:color-mix(in srgb,var(--staff-color,#8790a3) 17%,#1b1c24)}
.planner-event.event-phone-only{grid-template-columns:auto minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important;column-gap:8px!important;row-gap:0!important;padding:2px 4px 3px!important}.planner-event.event-phone-only .planner-event-timebar{grid-column:1/-1!important;grid-row:1!important;width:auto!important;margin:0!important;min-width:0;justify-content:flex-start!important}.planner-event.event-phone-only .planner-event-priority-client{display:block!important;order:1;min-width:0}.planner-event.event-phone-only .planner-event-timebar time{display:block!important;order:2;margin-left:auto}.planner-event.event-phone-only .planner-event-timebar-status{order:3;margin-left:0!important}.planner-event.event-phone-only .planner-event-paid-client,.planner-event.event-phone-only>.planner-event-client{display:none!important}.planner-event.event-phone-only>.planner-event-phone{grid-column:1!important;grid-row:2!important;align-self:center;min-width:0;margin:0!important;font-size:clamp(7px,calc(8px * var(--ui-scale,1)),10px)!important;font-weight:850!important;line-height:1.1;opacity:1!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planner-event.event-phone-only>.planner-event-services{display:block!important;grid-column:2!important;grid-row:2!important;align-self:center;min-width:0;margin:0!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.planner-event.event-phone-only>.planner-event-services i{display:inline;padding:0}.planner-event.event-phone-only>.planner-event-services i::before{display:none}.planner-event.event-phone-only>.planner-event-services i+ i::before{content:" · ";display:inline;position:static;width:auto;height:auto;background:none}.planner-event.event-span-1>.planner-event-services,.planner-event.event-span-2>.planner-event-services{display:none!important}.planner-event.event-medium:not(.event-phone-only) .planner-event-services{min-width:0;overflow:hidden!important;text-overflow:ellipsis}.planner-event.event-medium:not(.event-phone-only) .planner-event-phone{position:relative;z-index:2;padding-left:3px;background:inherit;font-weight:750;white-space:nowrap}
.planner-event{container-type:inline-size}.planner-event-priority-client{display:none!important;min-width:0;flex:1;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;font-size:calc(8px * var(--ui-scale,1))!important;font-weight:850!important}.planner-event.appointment-paid .planner-event-priority-client,.day-calendar.calendar-dense .planner-event-priority-client{display:block!important}.day-calendar.calendar-dense .planner-event>.planner-event-client{display:none!important}.day-calendar.calendar-dense .planner-event-timebar{justify-content:flex-start}.day-calendar.calendar-dense .planner-event-timebar time{order:2;margin-left:auto;font-size:clamp(5.5px,calc(6.5px * var(--ui-scale,1)),7px);letter-spacing:-.03em}.day-calendar.calendar-dense .planner-event-priority-client{order:1}.day-calendar.calendar-dense .planner-event-timebar-status{order:3}.planner-event.appointment-paid,.week-schedule-event.appointment-paid,.month-appointment.appointment-paid{border-color:#177653!important;box-shadow:inset 0 0 0 2px rgba(23,118,83,.58),0 3px 10px rgba(20,91,65,.16)!important}.planner-event .appointment-payment-badge,.week-schedule-event .appointment-payment-badge,.month-appointment .appointment-payment-badge{display:none!important}@container (max-width:210px){.planner-event.event-phone-only>.planner-event-services{display:none!important}.planner-event.event-phone-only{grid-template-columns:minmax(0,1fr)!important}}@container (max-width:104px){.planner-event.event-phone-only .planner-event-timebar time,.day-calendar.calendar-dense .planner-event-timebar time{display:none!important}}
html[data-theme="dark"] #page-calendar .planner-slot,
html[data-theme="dark"] #page-calendar .week-time-slot{border-left-color:rgba(157,160,184,.13);border-bottom-color:rgba(157,160,184,.08);background:#1b1c23}
html[data-theme="dark"] #page-calendar .planner-time,
html[data-theme="dark"] #page-calendar .week-time-label{border-bottom-color:rgba(157,160,184,.09);background:#17181f;color:#858794}
html[data-theme="dark"] #page-calendar .planner-time.quarter,
html[data-theme="dark"] #page-calendar .planner-slot.quarter-slot,
html[data-theme="dark"] #page-calendar .week-time-label.quarter,
html[data-theme="dark"] #page-calendar .week-time-slot.quarter-slot{border-bottom-color:rgba(157,160,184,.065)}
html[data-theme="dark"] #page-calendar .planner-time.half-hour,
html[data-theme="dark"] #page-calendar .planner-slot.half-hour-slot,
html[data-theme="dark"] #page-calendar .week-time-label.half-hour,
html[data-theme="dark"] #page-calendar .week-time-slot.half-hour-slot{box-shadow:inset 0 1px 0 rgba(173,176,199,.16)}
html[data-theme="dark"] #page-calendar .planner-time.full-hour,
html[data-theme="dark"] #page-calendar .week-time-label.full-hour{color:#c8cad3}
html[data-theme="dark"] #page-calendar .planner-slot:hover,
html[data-theme="dark"] #page-calendar .week-time-slot:hover{background:#252437;box-shadow:inset 0 0 0 1px rgba(133,121,255,.32)}
html[data-theme="dark"] #page-calendar .planner-slot.off-hours,
html[data-theme="dark"] #page-calendar .week-time-slot.off-hours,
html[data-theme="dark"] #page-calendar .planner-slot.off-shift-slot{border-left-color:rgba(214,91,112,.14);background:rgba(121,49,64,.14)}
html[data-theme="dark"] #page-calendar .month-weekday,
html[data-theme="dark"] #page-calendar .month-day{border-color:rgba(157,160,184,.12)}
html[data-theme="dark"] #page-calendar .month-day{background:#1b1c23}
html[data-theme="dark"] #page-calendar .month-day.outside{background:#17181e;color:#696b77}
html[data-theme="dark"] #page-calendar .month-day.off-duty,html[data-theme="dark"] #page-calendar .month-day.off-duty.outside{background:color-mix(in srgb,var(--rose) 25%,#1b1c23)}
html[data-theme="dark"] #page-calendar .month-day.off-duty:hover{background:color-mix(in srgb,var(--rose) 31%,#1b1c23)}
html[data-theme="dark"] #page-calendar .calendar-current-time time{background:#173a34;color:#5bd5bb;box-shadow:0 0 0 1px rgba(35,185,152,.22)}
html[data-theme="dark"] #page-calendar .planner-event.tone-1{background:#2b2946;color:#b8b0ff}
html[data-theme="dark"] #page-calendar .planner-event.tone-2{background:#1d3046;color:#91bff4}
html[data-theme="dark"] #page-calendar .planner-event.tone-3{background:#40311f;color:#efbd7b}
html[data-theme="dark"] #page-calendar .planner-event.client-confirmed,
html[data-theme="dark"] #page-calendar .week-schedule-event.client-confirmed,
html[data-theme="dark"] #page-calendar .month-appointment.client-confirmed{background:#183b30!important;color:#7de0b5!important;box-shadow:inset 0 0 0 1px rgba(49,168,117,.3)}
html[data-theme="dark"] #page-calendar .planner-event.client-reschedule,
html[data-theme="dark"] #page-calendar .week-schedule-event.client-reschedule,
html[data-theme="dark"] #page-calendar .month-appointment.client-reschedule{background:#48262d!important;color:#ff9cac!important;box-shadow:inset 0 0 0 1px rgba(224,96,115,.28)}
html[data-theme="dark"] #page-calendar .planner-event.appointment-paid,
html[data-theme="dark"] #page-calendar .week-schedule-event.appointment-paid,
html[data-theme="dark"] #page-calendar .month-appointment.appointment-paid{background:linear-gradient(145deg,#183b30,#15352b)!important;color:#83e2b9!important;border-color:#31a875!important;box-shadow:inset 0 0 0 1px rgba(73,190,139,.22),0 3px 10px rgba(0,0,0,.16)}
html[data-theme="dark"] #page-calendar .planner-event.appointment-paid,html[data-theme="dark"] #page-calendar .week-schedule-event.appointment-paid,html[data-theme="dark"] #page-calendar .month-appointment.appointment-paid{border-color:#247e5e!important;box-shadow:inset 0 0 0 2px rgba(36,126,94,.72),0 3px 10px rgba(0,0,0,.22)!important}
.appointment.client-confirmed:not(.appointment-paid),.planner-event.client-confirmed:not(.appointment-paid),.week-schedule-event.client-confirmed:not(.appointment-paid),.week-appointment.client-confirmed:not(.appointment-paid),.month-appointment.client-confirmed:not(.appointment-paid){background:#dff8f6!important;color:#11766f!important;border-color:#28a99f!important;box-shadow:inset 0 0 0 1px #a6e7e1!important}.planner-event.client-confirmed:not(.appointment-paid) .planner-event-timebar{background:#239b93!important}.appointment.appointment-paid{background:#e1f7ed!important;color:#176d4d!important;border-color:#28aa78!important}
html[data-theme="dark"] .appointment.client-confirmed:not(.appointment-paid),html[data-theme="dark"] #page-calendar .planner-event.client-confirmed:not(.appointment-paid),html[data-theme="dark"] #page-calendar .week-schedule-event.client-confirmed:not(.appointment-paid),html[data-theme="dark"] #page-calendar .month-appointment.client-confirmed:not(.appointment-paid){background:#173d3b!important;color:#7de0d8!important;border-color:#299f97!important;box-shadow:inset 0 0 0 1px rgba(55,190,180,.35)!important}
.planner-event.payment-just-saved,.week-schedule-event.payment-just-saved,.month-appointment.payment-just-saved{isolation:isolate;background:color-mix(in srgb,var(--surface-solid) 88%,#dff8f6)!important;animation:paymentCardSettle .62s ease-out both}.planner-event.payment-just-saved::before,.week-schedule-event.payment-just-saved::before,.month-appointment.payment-just-saved::before{content:"";position:absolute;z-index:0;inset:-2px;pointer-events:none;background:linear-gradient(145deg,#e1f7ed,#ccefdc);transform:none;clip-path:circle(0 at 50% 50%);animation:paymentGreenReveal .58s cubic-bezier(.2,.75,.25,1) both}.planner-event.payment-just-saved>*,.week-schedule-event.payment-just-saved>*,.month-appointment.payment-just-saved>*{position:relative;z-index:1}@keyframes paymentGreenReveal{to{clip-path:circle(85% at 50% 50%)}}@keyframes paymentCardSettle{0%{transform:scale(.985)}55%{transform:scale(1.018)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.planner-event.payment-just-saved,.week-schedule-event.payment-just-saved,.month-appointment.payment-just-saved{background:#e1f7ed!important}.planner-event.payment-just-saved::before,.week-schedule-event.payment-just-saved::before,.month-appointment.payment-just-saved::before{clip-path:none;animation:none}}
.appointment-status-chip.prepayment-status-button,.appointment-status-chip.cancel-payment-button{display:grid;place-items:center;border:1px solid #dedfe8;background:#f4f4f7;color:#9698a3}.appointment-status-chip.prepayment-status-button.active{border-color:#70c8a5;background:#e3f7ee;color:#159467;box-shadow:0 0 0 2px rgba(31,174,119,.1)}.appointment-status-chip.cancel-payment-button{color:#d74b5c;background:#fff0f2;border-color:#efb6bd;font-size:24px;font-weight:800}
.planner-event.appointment-prepaid,.week-schedule-event.appointment-prepaid,.month-appointment.appointment-prepaid{position:relative;isolation:isolate;overflow:hidden;border-color:#73c9a5!important}.planner-event.appointment-prepaid::before,.week-schedule-event.appointment-prepaid::before,.month-appointment.appointment-prepaid::before{content:"";position:absolute;z-index:0;pointer-events:none;left:-5%;right:-5%;bottom:0;height:var(--prepaid-percent);background:linear-gradient(180deg,rgba(116,224,177,.36),rgba(64,194,137,.55));transition:height .35s ease}.planner-event.appointment-prepaid::after,.week-schedule-event.appointment-prepaid::after{content:"";position:absolute;z-index:0;pointer-events:none;left:-25%;bottom:calc(var(--prepaid-percent) - 7px);width:150%;height:14px;background:radial-gradient(ellipse at 50% 100%,rgba(158,238,204,.65) 0 45%,transparent 47%) 0 0/38px 14px repeat-x;animation:prepaymentWave 4s linear infinite}.planner-event.appointment-prepaid>* ,.week-schedule-event.appointment-prepaid>*{position:relative;z-index:1}.month-appointment.appointment-prepaid{background:linear-gradient(to top,rgba(81,202,149,.42) var(--prepaid-percent),rgba(232,250,242,.55) var(--prepaid-percent))!important}@keyframes prepaymentWave{to{transform:translateX(38px)}}@media(prefers-reduced-motion:reduce){.planner-event.appointment-prepaid::after,.week-schedule-event.appointment-prepaid::after{animation:none}}
.appointment-header-datetime{margin-top:0;margin-bottom:7px}.appointment-header-datetime label{gap:0}.appointment-header-datetime select{width:100%;height:32px;min-width:0;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted);color:var(--text);font:inherit;font-size:9px;font-weight:750;outline:0}.appointment-header-datetime select:focus{border-color:#9e95ef;box-shadow:0 0 0 3px var(--violet-soft)}
@media(max-width:600px){.appointment-header-datetime select{height:30px;padding:0 5px;font-size:8px}}
.appointment-workflow-sheet .modal-heading-with-colors{position:relative}.appointment-workflow-sheet .appointment-header-datetime{width:100%;grid-template-columns:minmax(110px,1.15fr) minmax(82px,.8fr) minmax(82px,.8fr) auto;padding-left:270px}.appointment-workflow-sheet .modal-title-color-row{position:absolute;z-index:2;left:0;top:0;width:262px;height:34px;justify-content:flex-start!important;gap:7px;padding-left:118px;flex-wrap:nowrap!important}.appointment-workflow-sheet .modal-title-color-row h2{display:none}.appointment-workflow-sheet .modal-title-color-row .booking-header-master{min-width:0;max-width:none;flex:1}.appointment-workflow-sheet .compact-color-picker{position:absolute;left:0;top:4px;min-height:24px;gap:4px}.appointment-workflow-sheet .modern-color-picker.compact-color-picker>span{width:17px;height:17px;flex-basis:17px;border-width:2px;border-radius:5px}.appointment-workflow-sheet .modern-color-picker.compact-color-picker>span.active{transform:scale(1.05);box-shadow:0 0 0 2px var(--primary),0 3px 7px color-mix(in srgb,var(--choice) 22%,transparent)}
.appointment-client-lookup input[name="clientQuery"],.client-lookup-row.client-selected input{font-size:12px;font-weight:800;letter-spacing:.01em}.client-suggestion strong{font-size:11px;font-weight:850}.client-suggestion small{margin-top:3px;color:var(--text);font-size:9px;font-weight:700;opacity:.72}
.appointment-client-identity{position:absolute;z-index:2;left:38px;right:42px;top:0;height:42px;display:flex;align-items:center;gap:6px;min-width:0;pointer-events:none;white-space:nowrap;font-size:12px;letter-spacing:.01em}.appointment-client-identity[hidden]{display:none}.appointment-client-identity strong{min-width:0;max-width:34%;overflow:hidden;text-overflow:ellipsis;font-weight:800}.appointment-client-identity span{flex:0 0 auto;font-weight:800}.appointment-client-identity em{min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-style:normal;font-size:10px;font-weight:650;opacity:.62}.appointment-client-identity :is(span,em)::before{content:"·";margin-right:6px;color:var(--muted);opacity:.7}.appointment-client-lookup.client-selected input[name="clientQuery"]:not(:focus){color:transparent;caret-color:transparent}.appointment-client-lookup.client-selected input[name="clientQuery"]:focus+.appointment-client-identity{display:none}
@media(max-width:600px){.appointment-workflow-sheet .modal-heading-with-colors{padding-top:38px}.appointment-workflow-sheet .modal-title-color-row{width:min(270px,100%);height:32px;padding-left:122px}.appointment-workflow-sheet .appointment-header-datetime{grid-template-columns:1.2fr .82fr .82fr auto;padding:0}.appointment-workflow-sheet .compact-color-picker{top:4px}.appointment-workflow-sheet .modern-color-picker.compact-color-picker>span{width:18px;height:18px;flex-basis:18px}}
@media(max-width:600px){.appointment-client-identity{left:38px;right:40px;gap:4px;font-size:10px}.appointment-client-identity strong{max-width:30%}.appointment-client-identity em{font-size:9px}.appointment-client-identity :is(span,em)::before{margin-right:4px}}

/* Appointment editor: compact two-level identity block and creation audit. */
#appointmentModal .modal-heading-with-colors{min-height:70px}
#appointmentModal .modal-title-color-row{width:168px;height:68px;padding-left:0;align-items:flex-start}
#appointmentModal .modal-title-color-row .booking-header-master{position:absolute;left:0;top:34px;width:168px;max-width:168px}
#appointmentModal .appointment-header-datetime{min-height:68px;padding-left:370px;align-items:center}
.appointment-creation-meta{position:absolute;left:180px;top:37px;width:180px;color:var(--muted);font-size:7px;font-weight:700;line-height:1.35;white-space:normal}
.client-compact-tools .client-comment-bubble{flex:1 1 auto;width:auto;max-width:none!important;min-width:0;margin-left:0}
.client-compact-tools .client-tool-icons{flex:0 0 auto}
@media(max-width:760px){
  #appointmentModal .modal-heading-with-colors{min-height:0;padding-top:70px}
  #appointmentModal .modal-title-color-row{width:168px;height:66px;padding-left:0}
  #appointmentModal .appointment-header-datetime{min-height:0;padding-left:0}
  .appointment-creation-meta{left:178px;top:38px;width:calc(100% - 184px);font-size:6.5px}
}
@media(max-width:420px){
  #appointmentModal .modal-title-color-row .booking-header-master{width:145px;max-width:145px}
  .appointment-creation-meta{left:154px;width:calc(100% - 158px)}
  .client-compact-tools .client-comment-bubble{order:initial;width:auto;max-width:none!important;margin-left:0}
}

/* Final header composition: palette/audit above one aligned booking row. */
#appointmentModal .modal-heading-with-colors{min-height:0;padding-top:28px}
#appointmentModal .modal-title-color-row{top:0;width:210px;height:82px;padding:0}
#appointmentModal .compact-color-picker{left:0;top:4px}
#appointmentModal .modal-title-color-row .booking-header-master{left:0;top:48px;width:210px;max-width:210px}
#appointmentModal .appointment-creation-meta{left:140px;top:7px;width:220px;font-size:6.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#appointmentModal .appointment-header-datetime{grid-template-columns:minmax(130px,1.15fr) minmax(92px,.9fr) minmax(92px,.9fr) 52px;align-items:end;gap:6px;min-height:52px;margin:0;padding-left:220px}
#appointmentModal .time-stepper-controls{order:-1;margin:0 0 2px}
@media(max-width:600px){
  #appointmentModal .modal-header{position:sticky;align-items:flex-start}
  #appointmentModal .modal-heading-with-colors{width:100%;padding-top:28px}
  #appointmentModal .modal-header-close{position:absolute;right:14px;top:14px;margin:0}
  #appointmentModal .modal-title-color-row{width:108px;height:82px}
  #appointmentModal .modal-title-color-row .booking-header-master{left:0;top:48px;width:108px;max-width:108px}
  #appointmentModal .appointment-creation-meta{left:136px;top:8px;width:calc(100% - 188px);font-size:6px}
  #appointmentModal .appointment-header-datetime{grid-template-columns:minmax(88px,1.15fr) minmax(62px,.9fr) minmax(62px,.9fr) 42px;gap:4px;min-height:52px;padding-left:114px}
  #appointmentModal .booking-header-master select{padding-left:8px;padding-right:20px;font-size:7px}
}
@media(max-width:420px){
  #appointmentModal .modal-title-color-row{width:96px}
  #appointmentModal .modal-title-color-row .booking-header-master{width:96px;max-width:96px}
  #appointmentModal .appointment-creation-meta{left:130px;width:calc(100% - 178px)}
  #appointmentModal .appointment-header-datetime{grid-template-columns:minmax(80px,1.1fr) minmax(58px,.9fr) minmax(58px,.9fr) 40px;padding-left:102px}
}

/* Keep service prices readable: the main row has no quantity column. */
.appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(110px,140px) 30px}
.appointment-item-price{padding-inline:5px;gap:3px}
.appointment-item-price input{-moz-appearance:textfield;appearance:textfield;font-size:9px}
.appointment-item-price input::-webkit-inner-spin-button,.appointment-item-price input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:600px){
  .appointment-check-row{grid-template-columns:minmax(0,1fr) 42px minmax(96px,116px) 28px}
  .appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(104px,124px) 28px}
}
@media(max-width:520px){
  .appointment-item-price{padding-inline:3px}
  .appointment-item-price>span{display:none}
}

/* Compact mobile appointment header: identity row + one date/time row. */
@media(max-width:600px){
  #appointmentModal .modal-header{align-items:flex-start;padding-bottom:10px}
  #appointmentModal .modal-heading-with-colors{min-height:0;padding-top:54px}
  #appointmentModal .modal-title-color-row{top:0;width:318px;height:50px;padding:0}
  #appointmentModal .compact-color-picker{left:0;top:7px}
  #appointmentModal .modal-title-color-row .booking-header-master{left:136px;top:0;width:176px;max-width:176px}
  #appointmentModal .appointment-creation-meta{left:138px;top:36px;width:174px;font-size:6px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #appointmentModal .appointment-header-datetime{grid-template-columns:minmax(104px,1.15fr) minmax(76px,.9fr) minmax(76px,.9fr) 48px;align-items:start;gap:5px;min-height:0;margin:0;padding:0}
  #appointmentModal .appointment-header-datetime input{height:30px;border-radius:8px}
  #appointmentModal .appointment-header-datetime>strong{min-width:48px;height:30px;padding:0 4px;border-radius:8px}
  #appointmentModal .time-stepper-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;height:18px;margin-top:2px}
  #appointmentModal .time-stepper-controls b{display:none}
  #appointmentModal .time-stepper-controls button{height:18px;border-radius:5px;font-size:6px}
  #appointmentModal .modal-header-close{width:36px;height:36px;margin-left:5px;border-radius:11px}
}
@media(max-width:420px){
  #appointmentModal .modal-title-color-row{width:285px}
  #appointmentModal .modal-title-color-row .booking-header-master{left:130px;width:150px;max-width:150px}
  #appointmentModal .appointment-creation-meta{left:132px;width:148px}
  #appointmentModal .appointment-header-datetime{grid-template-columns:minmax(96px,1.15fr) minmax(70px,.9fr) minmax(70px,.9fr) 44px;gap:4px}
}
@media(min-width:769px){.modal-backdrop.open#bookingModal .appointment-workflow-sheet{transform:translateY(clamp(-120px,-10vh,-50px))}.modal-backdrop.open#appointmentModal .appointment-workflow-sheet{transform:translateY(10px)}}
.consumable-row strong b{display:inline;color:var(--text);font:inherit}
.consumable-transfer-actions{display:flex;justify-content:flex-end;gap:8px;margin:0 0 10px}.consumable-transfer-actions[hidden]{display:none}.consumable-transfer-actions .secondary-button{min-height:38px}.consumable-transfer-actions svg{width:15px;height:15px}.consumable-transfer-actions #importConsumablesBtn svg{transform:rotate(180deg)}@media(max-width:650px){.consumable-transfer-actions{display:grid;grid-template-columns:1fr 1fr}.consumable-transfer-actions #consumableHistoryBtn{grid-column:1/-1}.consumable-transfer-actions .secondary-button{width:100%;padding:0 8px;font-size:9px}}
.consumable-category-section{margin-bottom:12px;padding:16px}.consumable-category-section[hidden]{display:none}.consumable-category-section .category-section-head{margin-bottom:12px}.consumable-category-section .category-strip{padding-bottom:2px}.consumable-category-section .category-chip{min-width:185px}.consumable-category-section .category-chip.active{border-color:var(--primary);background:var(--violet-soft)}.consumable-category-section .category-symbol.violet{background:var(--violet-soft);color:var(--primary)}#consumableCategoryField small{margin-top:-2px;color:var(--muted);font-size:8px}@media(max-width:650px){.consumable-category-section{padding:12px}.consumable-category-section .category-chip{min-width:160px}}
.consumable-brand-filter{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.consumable-brand-filter[hidden]{display:none}.consumable-brand-filter>small{display:block;margin-bottom:8px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.consumable-brand-chip{flex:none;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:9px;font-weight:750;cursor:pointer}.consumable-brand-chip small{margin-left:5px;color:var(--muted)}.consumable-brand-chip.active{border-color:var(--primary);background:var(--violet-soft);color:var(--primary)}.consumable-actions .edit{color:var(--primary);font-size:16px}
.consumable-history-sheet{width:min(760px,100%);max-height:min(88dvh,850px);display:flex;flex-direction:column}.consumable-history-sheet .modal-header{flex:none}.consumable-history-sheet .modal-header small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.consumable-history-list{display:grid;gap:8px;min-height:180px;overflow:auto;padding-right:4px}.consumable-history-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-muted)}.consumable-history-delta{display:grid;place-items:center;min-height:38px;border-radius:11px;font-size:11px;font-weight:850}.consumable-history-delta.plus{background:var(--green-soft);color:var(--green)}.consumable-history-delta.minus{background:var(--red-soft);color:var(--red)}.consumable-history-row strong,.consumable-history-row small{display:block}.consumable-history-row strong{font-size:11px}.consumable-history-row p{margin:4px 0;color:var(--text);font-size:9px;line-height:1.45}.consumable-history-row small{margin-top:3px;color:var(--muted);font-size:8px}.consumable-history-empty{padding:50px 16px;color:var(--muted);text-align:center}.consumable-history-empty.error{color:var(--red)}@media(max-width:620px){.consumable-history-row{grid-template-columns:1fr}.consumable-history-delta{justify-self:start;min-height:32px;padding:0 12px}}

/* Appointment payment console: compact macOS-style grouping without changing form behaviour. */
.compact-payment-section{padding:0!important;overflow:visible;background:color-mix(in srgb,var(--surface-muted) 56%,var(--surface-solid))}.compact-payment-section #appointmentPaymentContent{display:grid;gap:10px;padding:12px}.payment-console-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-console-heading>strong{font-size:15px;letter-spacing:-.35px}.payment-console-heading .appointment-status-controls{margin:0}.payment-console-heading .appointment-status-chip{width:40px;height:40px;justify-content:center;padding:0;border-radius:13px;overflow:hidden;position:relative}.payment-console-heading .appointment-status-chip svg{width:19px;height:19px;pointer-events:none}.payment-console-heading .appointment-status-chip select{position:absolute;inset:0;width:100%;height:100%;max-width:none;padding:0;opacity:0;cursor:pointer}.compact-payment-section .payment-value-row{grid-template-columns:minmax(0,.82fr) minmax(285px,1.18fr);align-items:stretch;gap:10px;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.compact-payment-section .paid-amount-field{display:grid;align-content:end;margin:0;padding-right:10px;border-right:1px solid var(--line)}.compact-payment-section .paid-amount-field .unit-input input{height:38px}.compact-payment-section .payment-side-column{align-content:end}.compact-payment-section .payment-side-column .appointment-status-controls{display:none}.compact-payment-section .payment-method-field legend{font-size:8px;font-weight:700}.compact-payment-section .payment-method-switch{border-radius:11px}.compact-payment-section .payment-method-switch span{height:31px}.compact-payment-section .compact-payment-extras{display:grid;grid-template-columns:1fr!important;gap:8px;margin:0}.compact-payment-section .appointment-consumables-fields{display:block;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.compact-payment-section .consumables-grams-heading{min-height:32px;margin-bottom:7px}.compact-payment-section .consumables-grams-heading>span{color:var(--text);font-size:11px;font-weight:800}.compact-payment-section .consumables-grams-heading>span b{color:var(--muted);font:inherit}.compact-payment-section .consumables-grams-heading button{width:auto;height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;border-radius:9px;background:transparent;color:var(--primary);font-size:8px;font-weight:800}.compact-payment-section .consumables-grams-heading button:hover{background:var(--violet-soft)}.compact-payment-section .consumables-grams-heading button b{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-size:14px;line-height:1}.compact-payment-section .appointment-consumable-row{grid-template-columns:minmax(0,1fr) 92px 72px 28px;gap:7px;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted)}.compact-payment-section .appointment-consumable-picker>input,.compact-payment-section .compact-grams-input input{height:32px;background:var(--surface-solid)}.compact-payment-section .appointment-consumable-subtotal{min-width:0;color:var(--text);font-size:9px;text-align:right;white-space:nowrap}.compact-payment-section .consumables-cost-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);align-items:center;gap:12px;margin:8px 0 0!important;padding:9px 8px 0;border-top:1px solid var(--line)}.compact-payment-section .consumables-cost-field>span{margin:0;color:var(--muted);font-size:8px}.compact-payment-section .consumables-cost-field>span small{margin-left:5px;color:var(--primary);font-size:7px}.compact-payment-section .consumables-cost-field .unit-input input{height:34px;background:var(--surface-muted);font-weight:800;text-align:right}.compact-payment-section .tips-field{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);align-items:center;gap:12px;margin:0!important;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid)}.compact-payment-section .tips-field>span{margin:0;font-size:8px;font-weight:700}.compact-payment-section .tips-field .unit-input input{height:34px;background:var(--surface-muted);text-align:right}
.compact-payment-section .payment-value-row{display:block;padding:0;border:0;border-radius:0;background:transparent}
@media(max-width:700px){.compact-payment-section .payment-value-row{grid-template-columns:1fr}.compact-payment-section .paid-amount-field{padding:0 0 9px;border-right:0;border-bottom:1px solid var(--line)}.compact-payment-section .appointment-consumable-row{grid-template-columns:minmax(0,1fr) 74px 58px 27px}.compact-payment-section .appointment-consumable-subtotal{font-size:8px}.compact-payment-section .consumables-cost-field,.compact-payment-section .tips-field{grid-template-columns:1fr}.compact-payment-section .consumables-cost-field .unit-input input,.compact-payment-section .tips-field .unit-input input{text-align:left}}
@media(max-width:470px){.compact-payment-section #appointmentPaymentContent{padding:9px}.compact-payment-section .appointment-consumable-row{grid-template-columns:minmax(0,1fr) 68px 27px}.compact-payment-section .appointment-consumable-subtotal{grid-column:1/3;text-align:right}.compact-payment-section .remove-appointment-consumable{grid-column:3;grid-row:1}.compact-payment-section .consumables-grams-heading button{font-size:0;padding:0 6px}.compact-payment-section .consumables-grams-heading button b{font-size:14px}}

.service-card.product-card{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:0;border-radius:20px;background:var(--surface-solid)}.service-card.product-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 32%,var(--line));box-shadow:0 20px 45px rgba(39,32,92,.13)}.product-card-visual{position:relative;min-height:176px;display:grid;place-items:center;padding:30px 20px 14px;background:radial-gradient(circle at 50% 58%,var(--surface-solid) 0 34%,transparent 35%),linear-gradient(145deg,color-mix(in srgb,var(--violet-soft) 55%,var(--surface-solid)),var(--surface-muted))}.product-card-visual>img{width:128px;height:128px;display:block;object-fit:contain;border-radius:16px;box-shadow:0 13px 30px rgba(37,32,73,.1);transition:transform .24s ease}.product-card:hover .product-card-visual>img{transform:scale(1.045)}.product-brand{position:absolute;left:14px;top:14px;max-width:calc(100% - 64px);padding:6px 9px;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:99px;background:color-mix(in srgb,var(--surface-solid) 88%,transparent);color:var(--primary);font-size:8px;font-weight:850;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(8px)}.product-edit-button{position:absolute;z-index:2;right:12px;top:11px;background:color-mix(in srgb,var(--surface-solid) 88%,transparent);backdrop-filter:blur(8px)}.product-card-body{flex:1;display:flex;flex-direction:column;padding:16px 17px 17px}.product-category{color:var(--primary);font-size:8px;font-weight:750}.service-card.product-card h2{min-height:40px;margin:7px 0 15px;font-size:14px;line-height:1.4;letter-spacing:-.15px}.product-card-price{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:auto;padding-top:13px;border-top:1px solid var(--line)}.product-card-price span{color:var(--muted);font-size:9px}.product-card-price strong{font-size:16px;letter-spacing:-.35px}.product-stock{display:flex;align-items:center;gap:7px;margin-top:12px;padding:9px 10px;border-radius:11px;background:var(--green-soft);color:var(--green);font-size:8px}.product-stock strong{margin-left:auto;font-size:9px}.product-stock-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 15%,transparent)}.product-stock.low{background:var(--rose-soft);color:var(--rose)}.product-quantity-input{display:grid;grid-template-columns:minmax(0,1fr) 82px}.product-quantity-input input,.product-quantity-input select{height:42px;border:1px solid var(--line);background:var(--surface-muted);color:var(--text);font:inherit}.product-quantity-input input{min-width:0;padding:0 12px;border-radius:11px 0 0 11px}.product-quantity-input select{padding:0 9px;border-left:0;border-radius:0 11px 11px 0;font-size:9px;font-weight:750}.service-form-preview .service-icon:has(img:not([hidden])){overflow:hidden;background:color-mix(in srgb,var(--surface-solid) 72%,transparent)}.service-form-preview .service-icon img{width:100%;height:100%;display:block;object-fit:contain}.service-form-preview .service-icon img[hidden]{display:none}.product-form .service-title-field{grid-column:1/-1}.product-form .product-only-fields{display:grid}.service-only-field[hidden],.service-only-row[hidden],.product-only-fields[hidden]{display:none!important}.product-image-upload{min-height:38px;display:flex;align-items:center;justify-content:center;margin-top:7px;border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:11px;background:var(--violet-soft);color:var(--primary);font-size:9px;font-weight:800;cursor:pointer;transition:transform .18s ease,background .18s ease}.product-image-upload:hover{transform:translateY(-1px);background:color-mix(in srgb,var(--violet-soft) 78%,var(--surface-solid))}.product-image-upload input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.product-only-fields .field>small{margin-top:5px;color:var(--muted);font-size:7px}.product-stock-field{margin-top:10px}@media(max-width:620px){.product-form .product-only-fields{grid-template-columns:1fr}.service-grid:has(.product-card){grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.product-card-visual{min-height:142px;padding:29px 8px 8px}.product-card-visual>img{width:104px;height:104px}.product-card-body{padding:12px}.service-card.product-card h2{min-height:36px;font-size:11px}.product-card-price strong{font-size:13px}.product-stock{padding:8px;font-size:7px}}
.product-sell-button{width:100%;min-height:38px;margin-top:9px;border:0;border-radius:11px;background:var(--primary);color:#fff;font:inherit;font-size:9px;font-weight:850;cursor:pointer;box-shadow:0 7px 16px rgba(101,87,235,.2);transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.product-sell-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px rgba(101,87,235,.3)}.product-sell-button:disabled{background:var(--surface-muted);color:var(--muted);box-shadow:none;cursor:not-allowed}.product-sale-sheet{width:min(520px,100%)}.product-sale-summary{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--surface-muted)}.product-sale-summary img{width:72px;height:72px;flex:0 0 72px;border-radius:13px;object-fit:contain;background:#fff}.product-sale-summary span{min-width:0}.product-sale-summary small,.product-sale-summary strong,.product-sale-summary b{display:block}.product-sale-summary small{color:var(--primary);font-size:7px;font-weight:800;text-transform:uppercase}.product-sale-summary strong{margin-top:5px;font-size:12px;line-height:1.35}.product-sale-summary b{margin-top:5px;color:var(--muted);font-size:8px}.product-sale-total{display:flex;align-items:center;justify-content:space-between;margin:4px 0 10px;padding:14px 15px;border-radius:14px;background:var(--violet-soft);color:var(--primary)}.product-sale-total span{font-size:9px;font-weight:750}.product-sale-total strong{font-size:18px}.product-sale-note{margin:0 0 18px;color:var(--muted);font-size:8px;line-height:1.55}@media(max-width:620px){.product-sell-button{min-height:36px}.product-sale-sheet{width:calc(100vw - 16px)}}

.product-sale-client[hidden]{display:none!important}

/* Numeric values in booking/payment dialogs are typed directly; browser steppers only take up space. */
#bookingModal input[type="number"],#appointmentModal input[type="number"]{-moz-appearance:textfield;appearance:textfield}
#bookingModal input[type="number"]::-webkit-inner-spin-button,#bookingModal input[type="number"]::-webkit-outer-spin-button,#appointmentModal input[type="number"]::-webkit-inner-spin-button,#appointmentModal input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Phone comes first in the new-booking client row; keep the client-card action on that field. */
.client-lookup-row.client-selected .field:last-of-type input{padding-right:12px}
.client-lookup-row.client-selected .client-card-field input{padding-right:42px}

/* Compact master bonus control and barista payroll cards. */
.payroll-bonus-editor:not([open]){padding:6px 10px;border-radius:12px}.payroll-bonus-editor:not([open]) .payroll-tier-heading{min-height:32px}.payroll-bonus-editor:not([open]) .payroll-tier-heading strong{display:flex;align-items:center;gap:8px;font-size:14px}.payroll-bonus-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:9px;background:linear-gradient(135deg,#6557eb,#a995ff);color:#fff;font-size:15px;box-shadow:0 5px 13px rgba(101,87,235,.22)}.payroll-bonus-editor:not([open]) .payroll-tier-chevron{width:28px;height:28px}.bar-payroll-item .payroll-ledger-list{margin-top:14px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.bar-payroll-policy-form{max-width:430px}.bar-payroll-numbers{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:680px){.bar-payroll-numbers{grid-template-columns:1fr 1fr}.payroll-bonus-editor:not([open]){padding:5px 8px}}

/* Unified barcode scanner and product-sale commission controls. */
.topbar-barcode-button{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 30%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 13%,var(--surface-solid)),var(--surface-solid));box-shadow:0 8px 22px rgba(101,87,235,.12)}.topbar-barcode-button svg,.consumable-barcode-input button svg,.catalog-barcode-input button svg,.appointment-barcode-button svg,.master-barcode-button svg,.quick-barcode-field>svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.commission-settings-button{gap:8px}.commission-settings-button>span{display:grid;width:25px;height:25px;place-items:center;border-radius:8px;background:var(--violet-soft);color:var(--primary);font-weight:900}.commission-settings-button>b{font:inherit}.product-commission-field{grid-column:1/-1}.product-sale-commission{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:13px 15px;border-radius:13px;background:var(--green-soft);color:var(--green)}.product-sale-commission span{font-size:10px}.product-sale-commission strong{font-size:13px}.quick-product-scan-sheet{max-width:520px}.quick-barcode-field{display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid);color:var(--primary)}.quick-barcode-field input{padding-left:0;border:0}.quick-product-scan-sheet form>small,#productCommissionForm>small{display:block;margin:8px 0 16px;color:var(--muted);line-height:1.5}@media(max-width:700px){.topbar-barcode-button{width:42px;height:42px}.commission-settings-button>b{display:none}.commission-settings-button{padding:8px}.product-sale-sheet .form-row{grid-template-columns:1fr}}
.product-commission-payroll-number{background:var(--green-soft)!important}.product-commission-payroll-number strong{color:var(--green)}

/* Fast barcode assignment: move through adjacent catalog items without closing the editor. */
.catalog-modal-navigation{display:flex;align-items:center;gap:6px;margin-left:auto}.catalog-modal-navigation[hidden]{display:none}.catalog-modal-navigation button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--primary) 7%,var(--surface-solid));color:var(--primary);font:inherit;font-size:17px;font-weight:800;cursor:pointer;transition:transform .15s ease,background .15s ease}.catalog-modal-navigation button:hover{transform:translateY(-1px);background:var(--violet-soft)}.catalog-modal-navigation span{min-width:42px;color:var(--muted);font-size:8px;font-weight:800;text-align:center}.consumable-actions .scan{display:grid;place-items:center;color:var(--primary)}.consumable-actions .scan svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media(max-width:560px){.catalog-modal-navigation{order:3;width:100%;justify-content:flex-end;margin-top:8px}.catalog-modal-navigation button{width:34px;height:34px}.modal-header:has(.catalog-modal-navigation:not([hidden])){flex-wrap:wrap}}

/* Desktop quick actions tuck behind the top-right edge. */
@media (min-width:769px) {
  html.desktop-browser-top-drawer .main>.topbar {
    position:fixed!important;
    z-index:48!important;
    top:0!important;
    right:28px!important;
    left:auto!important;
    width:max-content!important;
    height:auto!important;
    min-height:0!important;
    padding:7px 9px 9px!important;
    justify-content:center!important;
    border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
    border-top:0;
    border-radius:0 0 18px 18px;
    background:color-mix(in srgb,var(--surface-solid) 96%,transparent);
    box-shadow:0 12px 34px rgba(29,25,70,.18);
    backdrop-filter:blur(20px) saturate(1.2);
    transform:translateY(calc(-100% + 7px))!important;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
  }
  html.desktop-browser-top-drawer .main>.topbar::after {
    content:"";
    position:absolute;
    left:50%;
    bottom:-7px;
    width:78px;
    height:14px;
    border-radius:0 0 12px 12px;
    background:color-mix(in srgb,var(--primary) 72%,var(--surface-solid));
    box-shadow:0 5px 12px color-mix(in srgb,var(--primary) 22%,transparent);
    transform:translateX(-50%);
  }
  html.desktop-browser-top-drawer.desktop-top-drawer-ready .main>.topbar:hover {
    transform:translateY(0)!important;
    box-shadow:0 16px 42px rgba(29,25,70,.22);
  }
  html.desktop-browser-top-drawer .main>.topbar>.menu-button,
  html.desktop-browser-top-drawer .main>.topbar>.mobile-brand,
  html.desktop-browser-top-drawer .main>.topbar>.hourly-insight { display:none!important; }
  html.desktop-browser-top-drawer .main>.topbar .topbar-actions { gap:8px; }
  html.desktop-browser-top-drawer .main>.topbar .topbar-actions>#calendarDutyAdmins {
    position:static;
    display:flex;
    align-items:center;
    margin-right:1px;
    pointer-events:auto;
  }
  html.desktop-browser-top-drawer .main>.topbar .topbar-actions>#calendarDutyAdmins[hidden] { display:none; }
}

/* Product editor: compact responsive sheet with one predictable scroll area. */
#serviceModal{padding:16px}#serviceModal .service-sheet{width:min(720px,calc(100vw - 32px));max-height:min(92dvh,820px);display:flex;flex-direction:column;overflow:hidden;padding:0}#serviceModal .modal-header{position:relative;z-index:3;flex:none;align-items:center;margin:0;padding:17px 19px 14px;border-bottom:1px solid var(--line);background:var(--surface-solid)}#serviceModal .modal-header h2{font-size:18px}#serviceModal #serviceForm{min-height:0;display:block;overflow-y:auto;overscroll-behavior:contain;padding:16px 19px 0;scrollbar-gutter:stable}#serviceModal .field{gap:5px;margin-bottom:10px}#serviceModal .field input,#serviceModal .field select{height:38px}#serviceModal .form-row{gap:10px}#serviceModal .product-only-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}#serviceModal .product-barcode-field{grid-column:1/-1}#serviceModal .product-commission-field{grid-column:auto}#serviceModal .product-stock-field{margin-top:8px}#serviceModal .product-image-upload{min-height:34px;margin-top:5px}#serviceModal .service-form-preview{min-height:48px;margin:2px 0 10px;padding:9px 11px}#serviceModal .service-form-preview .service-icon{width:34px;height:34px;flex:0 0 34px}#serviceModal .modal-actions{position:sticky;z-index:4;bottom:0;margin:5px -19px 0;padding:12px 19px;background:color-mix(in srgb,var(--surface-solid) 96%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(14px)}@media(max-width:620px){#serviceModal{align-items:flex-end;padding:0}#serviceModal .service-sheet{width:100%;max-height:96dvh;border-radius:22px 22px 0 0}#serviceModal .modal-header{padding:14px 14px 11px}#serviceModal #serviceForm{padding:13px 14px 0}#serviceModal .product-only-fields{grid-template-columns:1fr}#serviceModal .product-barcode-field,#serviceModal .product-commission-field{grid-column:1}#serviceModal .modal-actions{margin:5px -14px 0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));flex-wrap:wrap}#serviceModal .modal-actions button{flex:1;min-width:90px}.catalog-modal-navigation{order:0;width:auto;margin:0 0 0 auto}.modal-header:has(.catalog-modal-navigation:not([hidden])){flex-wrap:nowrap}.catalog-modal-navigation span{display:none}}
.service-rank-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.service-rank-prices .field span:first-child{white-space:nowrap}.service-rank-prices .unit-input input{min-width:0}@media(max-width:620px){.service-rank-prices{gap:7px}.service-rank-prices .field span:first-child{font-size:8px}.service-rank-prices .unit-input input{padding-left:9px;padding-right:30px}.service-rank-prices .unit-input span{right:9px}}

.staff-catalog-access{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 16px;padding:14px 15px;border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line));border-radius:14px;background:var(--violet-soft)}.staff-catalog-access[hidden]{display:none}.staff-catalog-access strong,.staff-catalog-access small{display:block}.staff-catalog-access strong{font-size:10px}.staff-catalog-access small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.45}.staff-catalog-access .switch{flex:0 0 auto}@media(max-width:880px){body.barista-catalog-access .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}body.barista-catalog-access .mobile-nav button{padding-inline:2px!important}body.barista-catalog-access .mobile-nav button>span:last-child{font-size:7px!important}}

.client-subscription-card{margin:14px 0;padding:14px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--primary) 6%,var(--surface-solid))}.client-subscription-heading span,.client-subscription-heading small{display:block;color:var(--muted);font-size:8px}.client-subscription-heading strong{display:block;margin:3px 0;font-size:22px;color:var(--primary)}.client-subscription-form{display:grid;grid-template-columns:130px 150px minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:12px}.client-subscription-form .field{margin:0}.client-subscription-form .primary-button{height:38px}.client-subscription-history{display:grid;max-height:210px;overflow:auto;margin-top:12px;border-top:1px solid var(--line)}.client-subscription-history>div{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line)}.client-subscription-history strong,.client-subscription-history small{display:block;font-size:8px}.client-subscription-history small,.client-subscription-history time{margin-top:3px;color:var(--muted);font-size:7px}.subscription-payment-balance{display:block;margin-top:6px;color:var(--primary);font-size:8px;font-weight:700}@media(max-width:650px){.client-subscription-form{grid-template-columns:1fr 1fr}.client-subscription-note{grid-column:1/3}.client-subscription-form .primary-button{grid-column:1/3}}

@media(min-width:651px){.client-subscription-form{grid-template-columns:repeat(3,minmax(0,1fr))}.client-subscription-note{grid-column:1/3}.client-subscription-form .primary-button{grid-column:3}}
.subscription-funding-field[hidden],.split-subscription-field[hidden]{display:none!important}.split-payment-fields:has(.split-subscription-field:not([hidden])){grid-template-columns:repeat(3,minmax(0,1fr))}.split-subscription-field small{display:block;margin-top:4px;color:var(--primary);font-size:7px;font-weight:700}

/* Keep the complete discount calculation beside the order total. */
#appointmentDiscountPrice{display:none!important}.appointment-order-prices{display:flex;align-items:center;justify-content:flex-end;gap:10px}.appointment-order-prices>span{display:grid;gap:2px;text-align:right}.appointment-order-prices small{color:var(--muted);font-size:6px;font-weight:700}.appointment-order-prices s{color:var(--muted);font-size:10px;font-weight:750}.appointment-order-prices em{padding:4px 7px;border-radius:7px;background:var(--violet-soft);color:var(--primary);font-size:9px;font-style:normal;font-weight:900}.appointment-order-prices strong{font-size:20px;font-weight:900;line-height:1}@media(max-width:520px){.appointment-check-total{align-items:flex-start}.appointment-order-prices{gap:6px}.appointment-order-prices em{padding:3px 5px}}

/* Fantasy-styled salon quest board. */
.quest-board-button{position:relative;border-color:#8b6339!important;background:linear-gradient(145deg,#a87843,#65411f)!important;box-shadow:inset 0 0 0 2px rgba(255,226,167,.18),0 7px 16px rgba(74,43,17,.2)!important}.quest-board-icon{position:relative;width:23px;height:20px;display:block;border:2px solid #e4bd78;border-radius:3px;background:repeating-linear-gradient(0deg,#7b4d24 0 5px,#6b3f1d 5px 7px)}.quest-board-icon:before,.quest-board-icon:after{content:"";position:absolute;top:3px;width:8px;height:11px;background:#f1dfb1;box-shadow:0 1px 2px #2d180a88}.quest-board-icon:before{left:2px;transform:rotate(-7deg)}.quest-board-icon:after{right:1px;top:5px;transform:rotate(8deg);background:#d9bd82}.quest-board-icon i{position:absolute;z-index:2;top:1px;width:3px;height:3px;border-radius:50%;background:#4e2512}.quest-board-icon i:first-child{left:5px}.quest-board-icon i:last-child{right:4px;top:4px}.quest-board-button>b{position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface-solid);border-radius:9px;background:#d44f55;color:#fff;font-size:7px}.quest-board-modal{z-index:105;background:rgba(23,14,8,.6);backdrop-filter:blur(9px)}.quest-board-sheet{position:relative;width:min(940px,calc(100vw - 30px));max-height:min(92dvh,900px);padding:0;overflow:auto;border:8px solid #4a2912;border-radius:18px;background:#24150d;box-shadow:0 30px 100px #130a05cc,inset 0 0 0 2px #b47a3a}.quest-board-header{position:sticky;z-index:8;top:0;display:flex;align-items:center;gap:18px;padding:15px 20px;border-bottom:3px solid #3d210f;background:linear-gradient(#6b4020,#4b2a14);color:#f5dfaf;box-shadow:0 5px 14px #25120788}.quest-board-header>div:first-child{flex:1}.quest-board-header p{margin:0 0 3px;color:#d0aa6e;font:700 7px Georgia,serif;letter-spacing:.13em;text-transform:uppercase}.quest-board-header h2{margin:0;font:700 21px Georgia,serif;letter-spacing:.02em}.quest-score{display:grid;text-align:right}.quest-score span{color:#d0aa6e;font-size:7px}.quest-score strong{font:700 13px Georgia,serif;color:#ffd76a}.quest-board-close,.quest-detail-close{width:34px;height:34px;border:1px solid #bd8d51;border-radius:50%;background:#3b210f;color:#f0d6a0;font-size:22px;cursor:pointer}.quest-board-frame{padding:18px;background:linear-gradient(90deg,#351c0d 0 12px,transparent 12px calc(100% - 12px),#351c0d calc(100% - 12px)),linear-gradient(#5c3519,#351c0d)}.quest-board-planks{min-height:530px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:24px 20px;padding:29px;background:repeating-linear-gradient(0deg,#70451f 0 104px,#623a1a 104px 108px,#865529 108px 112px),linear-gradient(90deg,#6a401d,#845226);box-shadow:inset 0 0 28px #291308aa}.quest-note{position:relative;min-height:185px;padding:24px 18px 18px;border:0;background:linear-gradient(140deg,#f3dfad,#d6b978);color:#382313;text-align:left;clip-path:polygon(2% 3%,24% 0,46% 3%,68% 1%,98% 4%,100% 27%,97% 49%,100% 74%,96% 98%,71% 96%,49% 100%,26% 97%,2% 100%,4% 75%,0 51%,3% 25%);box-shadow:0 8px 12px #1b0c06aa;cursor:pointer;transition:.18s}.quest-note:nth-child(2n){transform:rotate(1.5deg);background:linear-gradient(145deg,#ead5a4,#cda965)}.quest-note:nth-child(3n){transform:rotate(-1.3deg)}.quest-note:hover{transform:translateY(-5px) rotate(0);filter:brightness(1.05)}.quest-note:before{content:"";position:absolute;left:50%;top:7px;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#c99655,#5b2b12 68%);box-shadow:0 2px 3px #2a130999;transform:translateX(-50%)}.quest-note:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 2% 4%,#5b2d10 0 2px,transparent 8px),radial-gradient(circle at 98% 96%,#4d240c 0 3px,transparent 12px);mix-blend-mode:multiply;opacity:.65}.quest-note small,.quest-note strong,.quest-note span{position:relative;z-index:1;display:block}.quest-note small{color:#815a2d;font:700 7px Georgia,serif;letter-spacing:.1em;text-transform:uppercase}.quest-note strong{margin:12px 0 9px;font:700 16px/1.15 Georgia,serif}.quest-note span{font:9px/1.5 Georgia,serif}.quest-note footer{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;margin-top:17px;padding-top:10px;border-top:1px solid #8c673788;color:#66431f;font:700 8px Georgia,serif}.quest-note footer b{color:#8b5414}.quest-note[data-status="accepted"]{box-shadow:0 0 0 3px #d69d43,0 8px 12px #1b0c06aa}.quest-note[data-status="completed"]{filter:saturate(.65);opacity:.78}.quest-note[data-status="declined"]{opacity:.45}.quest-detail-paper{position:absolute;z-index:12;inset:76px 8% auto;min-height:480px;padding:50px 55px;border:1px solid #815727;background:linear-gradient(145deg,#f5e4b8,#d6b873);color:#382313;clip-path:polygon(1% 2%,24% 0,51% 2%,76% 0,99% 3%,100% 26%,98% 51%,100% 76%,98% 99%,73% 97%,50% 100%,25% 98%,1% 100%,2% 74%,0 48%);box-shadow:0 25px 60px #170b05dd}.quest-detail-paper[hidden]{display:none}.quest-detail-close{position:absolute;right:22px;top:20px;border-color:#8d6033;background:#ead29a;color:#5b3618}.quest-detail-paper>p:first-of-type{margin:0;color:#8b6339;font:700 8px Georgia,serif;letter-spacing:.13em;text-transform:uppercase}.quest-detail-paper h3{max-width:75%;margin:12px 0 25px;font:700 29px/1.15 Georgia,serif}.quest-detail-text{max-width:720px;margin:0;font:14px/1.75 Georgia,serif}.quest-detail-seal{position:absolute;right:65px;top:90px;width:70px;height:70px;display:grid;place-items:center;border:4px double #8c2f24;border-radius:50%;color:#8c2f24;font:700 9px Georgia,serif;transform:rotate(-12deg);opacity:.72}.quest-detail-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:30px;padding:15px 0;border-top:1px solid #9c7545;border-bottom:1px solid #9c7545}.quest-detail-meta span{display:grid;gap:4px}.quest-detail-meta small{color:#85613a;font:700 7px Georgia,serif;text-transform:uppercase}.quest-detail-meta strong{font:700 11px Georgia,serif}.quest-detail-reward strong{color:#945d0c;font-size:14px}.quest-detail-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.quest-detail-actions button{min-height:40px;padding:0 17px;border:1px solid #795026;border-radius:8px;background:#ead29a;color:#4c2c13;font:700 10px Georgia,serif;cursor:pointer}.quest-detail-actions .quest-accept,.quest-detail-actions .quest-complete{background:#6c421f;color:#f7e2b6}.quest-detail-status{margin-right:auto;align-self:center;color:#744b22;font:700 10px Georgia,serif}@media(max-width:700px){.quest-board-button{width:42px;height:42px}.quest-board-sheet{width:100%;max-height:calc(100dvh - var(--app-safe-top));border-width:4px;border-radius:20px 20px 0 0}.quest-board-header{padding:12px 14px}.quest-board-header h2{font-size:18px}.quest-board-frame{padding:10px}.quest-board-planks{min-height:calc(100dvh - 150px);grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:20px 12px}.quest-note{min-height:168px;padding:22px 13px 14px}.quest-note strong{font-size:13px}.quest-detail-paper{position:fixed;inset:max(12px,var(--app-safe-top)) 10px calc(12px + var(--app-safe-bottom));min-height:0;padding:45px 25px 25px;overflow:auto;clip-path:polygon(1% 1%,99% 0,100% 99%,1% 100%)}.quest-detail-paper h3{max-width:78%;font-size:23px}.quest-detail-seal{right:28px;top:78px;width:55px;height:55px}.quest-detail-text{font-size:13px}.quest-detail-meta{grid-template-columns:1fr 1fr}.quest-detail-reward{grid-column:1/3}.quest-detail-actions{position:sticky;bottom:-25px;margin:24px -25px -25px;padding:13px 25px calc(13px + var(--app-safe-bottom));background:#e1c78d;flex-wrap:wrap}.quest-detail-actions button{flex:1}.quest-detail-status{width:100%;margin:0}}

/* Mobile appointment workspace: reserve Telegram chrome and keep every control inside narrow screens. */
.appointment-modal-scroll{display:contents}
@media(max-width:650px){
  :root{--appointment-modal-safe-top:var(--app-safe-top)}
  html.telegram-mini-app{--appointment-modal-safe-top:max(var(--app-safe-top),68px)}
  body.appointment-modal-open #bookingModal.open,
  body.appointment-modal-open #appointmentModal.open{
    align-items:flex-start!important;
    transition:none;
    padding:var(--appointment-modal-safe-top) max(6px,var(--app-safe-right)) 0 max(6px,var(--app-safe-left));
  }
  :is(#bookingModal,#appointmentModal) .appointment-workflow-sheet{
    width:100%;max-width:100%;
    height:calc(var(--modal-viewport-height,100dvh) - var(--appointment-modal-safe-top))!important;
    min-height:calc(var(--modal-viewport-height,100dvh) - var(--appointment-modal-safe-top))!important;
    max-height:calc(var(--modal-viewport-height,100dvh) - var(--appointment-modal-safe-top))!important;
    align-self:flex-start;box-sizing:border-box;padding:0!important;
    overflow:hidden;scrollbar-gutter:auto;transition:none!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-modal-scroll{
    --appointment-content-padding:10px;
    display:block;box-sizing:border-box;width:100%;
    height:calc(100% - var(--modal-keyboard-inset,0px));
    min-height:0;padding:18px var(--appointment-content-padding) calc(18px + var(--app-safe-bottom));
    overflow-x:hidden;overflow-y:auto;overflow-anchor:none;overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;touch-action:pan-y;scroll-padding:100px 0 24px;
  }
  #appointmentModal .appointment-modal-scroll{padding-block:12px calc(12px + var(--app-safe-bottom))}
  :is(#bookingModal,#appointmentModal) .modal-header{
    position:sticky;align-items:flex-start;padding:14px 46px 10px 12px;
    margin-inline:calc(-1 * var(--appointment-content-padding))!important;
  }
  :is(#bookingModal,#appointmentModal) .modal-heading-with-colors{
    width:100%;min-width:0;padding-top:42px;
  }
  #appointmentModal .modal-heading-with-colors{padding-top:58px}
  #appointmentModal .appointment-creation-meta{
    left:0;top:40px;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  :is(#bookingModal,#appointmentModal) .modal-header-close{
    position:absolute;z-index:5;top:12px;right:8px;width:36px;height:36px;margin:0;
  }
  :is(#bookingModal,#appointmentModal) .modal-title-color-row{
    top:0;left:0;width:100%;height:38px;min-width:0;padding:0 0 0 116px;
  }
  :is(#bookingModal,#appointmentModal) .compact-color-picker{
    left:0;top:7px;gap:3px;max-width:112px;overflow:visible;
  }
  :is(#bookingModal,#appointmentModal) .modern-color-picker.compact-color-picker>span{
    width:16px;height:16px;flex-basis:16px;border-radius:5px;
  }
  :is(#bookingModal,#appointmentModal) .modal-title-color-row .booking-header-master{
    position:relative;inset:auto;width:100%;max-width:none;min-width:0;
  }
  :is(#bookingModal,#appointmentModal) .booking-header-master select{
    width:100%;min-width:0;height:32px;padding-left:8px;padding-right:20px;font-size:8px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime{
    width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;gap:5px;margin:0;padding:0;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>label:first-child{grid-column:1/-1}
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime input,
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime select{width:100%;min-width:0}
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>strong{min-width:0;width:48px}
  :is(#bookingModal,#appointmentModal) form,
  :is(#bookingModal,#appointmentModal) .appointment-form-section,
  :is(#bookingModal,#appointmentModal) .client-lookup-row,
  :is(#bookingModal,#appointmentModal) .field,
  :is(#bookingModal,#appointmentModal) .input-wrap,
  :is(#bookingModal,#appointmentModal) .appointment-add-item,
  :is(#bookingModal,#appointmentModal) .payment-value-row,
  :is(#bookingModal,#appointmentModal) .payment-side-column{min-width:0;max-width:100%}
  :is(#bookingModal,#appointmentModal) input,
  :is(#bookingModal,#appointmentModal) select,
  :is(#bookingModal,#appointmentModal) textarea{max-width:100%}
  :is(#bookingModal,#appointmentModal) .client-lookup-row{position:relative!important}
  :is(#bookingModal,#appointmentModal) .client-suggestions{
    position:absolute!important;
    left:var(--client-suggestions-left,14px)!important;
    right:var(--client-suggestions-right,14px)!important;
    top:var(--client-suggestions-top,auto)!important;
    bottom:auto!important;
    max-height:var(--client-suggestions-max-height,220px)!important;
    animation:none!important;
  }
  :is(#bookingModal,#appointmentModal) .split-payment-fields:has(.split-subscription-field:not([hidden])){grid-template-columns:1fr}
}
@media(max-width:420px){
  :is(#bookingModal,#appointmentModal) .appointment-modal-scroll{--appointment-content-padding:8px}
  :is(#bookingModal,#appointmentModal) .modal-header{padding-left:10px;padding-right:42px}
  :is(#bookingModal,#appointmentModal) .appointment-form-section{padding-inline:9px}
  :is(#bookingModal,#appointmentModal) .appointment-check-row,
  :is(#bookingModal,#appointmentModal) .appointment-check-main{grid-template-columns:minmax(0,1fr) 38px minmax(70px,1fr) 26px;gap:4px;padding:7px 6px}
  :is(#bookingModal,#appointmentModal) .appointment-check-main{grid-template-columns:minmax(0,1fr) minmax(82px,1fr) 26px}
  :is(#bookingModal,#appointmentModal) .payment-console-heading{align-items:flex-start;gap:7px}
  :is(#bookingModal,#appointmentModal) .payment-console-heading .appointment-status-controls{gap:4px}
  :is(#bookingModal,#appointmentModal) .payment-console-heading .appointment-status-chip{width:36px;height:36px;border-radius:11px}
  :is(#bookingModal,#appointmentModal) .modal-actions{display:grid;grid-template-columns:1fr 1fr}
  :is(#bookingModal,#appointmentModal) .modal-actions button{width:100%;min-width:0}
}

/* Appointment header: compact, collision-free identity and date/time rows. */
:is(#bookingModal,#appointmentModal) .modal-header{
  position:relative;
  align-items:flex-start;
  gap:12px;
}
:is(#bookingModal,#appointmentModal) .modal-heading-with-colors{
  position:static;
  width:100%;
  min-width:0;
  min-height:0;
  display:grid;
  gap:8px;
  padding:0;
}
:is(#bookingModal,#appointmentModal) .modal-title-color-row{
  position:static;
  order:-1;
  width:min(500px,100%);
  height:auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0;
}
:is(#bookingModal,#appointmentModal) .modal-title-color-row h2{display:none}
:is(#bookingModal,#appointmentModal) .compact-color-picker{
  position:static;
  flex:0 0 auto;
  min-height:34px;
  display:flex;
  align-items:center;
  gap:5px;
  max-width:none;
}
:is(#bookingModal,#appointmentModal) .modern-color-picker.compact-color-picker>span{
  width:21px;
  height:21px;
  flex-basis:21px;
  border-radius:7px;
}
:is(#bookingModal,#appointmentModal) .modal-title-color-row .booking-header-master{
  position:relative;
  inset:auto;
  flex:0 1 230px;
  width:230px;
  max-width:230px;
  min-width:140px;
}
:is(#bookingModal,#appointmentModal) .booking-header-master select{
  width:100%;
  height:36px;
  min-width:0;
  font-size:10px;
}
:is(#bookingModal,#appointmentModal) .appointment-header-datetime{
  width:min(720px,100%);
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(170px,1.2fr) minmax(130px,.9fr) minmax(130px,.9fr) 68px;
  align-items:end;
  gap:8px;
  margin:0;
  padding:0;
}
:is(#bookingModal,#appointmentModal) .appointment-header-datetime>label:first-child{grid-column:auto}
:is(#bookingModal,#appointmentModal) .appointment-header-datetime input,
:is(#bookingModal,#appointmentModal) .appointment-header-datetime select{
  width:100%;
  min-width:0;
  height:36px;
  padding:0 11px;
  border-radius:10px;
  font-size:10px;
}
:is(#bookingModal,#appointmentModal) .appointment-header-datetime>strong{
  width:68px;
  min-width:68px;
  height:36px;
  padding:0 8px;
  border-radius:10px;
}
:is(#bookingModal,#appointmentModal) .time-stepper-controls{
  order:-1;
  height:20px;
  margin:0 0 3px;
}
#appointmentModal .appointment-creation-meta{
  position:static;
  order:3;
  width:min(720px,100%);
  min-width:0;
  overflow:hidden;
  color:var(--muted);
  font-size:7px;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media(max-width:650px){
  :is(#bookingModal,#appointmentModal) .modal-header{
    padding:12px 46px 10px 10px;
  }
  :is(#bookingModal,#appointmentModal) .modal-heading-with-colors,
  #appointmentModal .modal-heading-with-colors{
    gap:7px;
    padding:0;
  }
  :is(#bookingModal,#appointmentModal) .modal-title-color-row{
    position:static;
    width:100%;
    height:auto;
    gap:7px;
    padding:0;
  }
  :is(#bookingModal,#appointmentModal) .compact-color-picker{
    position:static;
    min-height:32px;
    gap:3px;
    max-width:none;
  }
  :is(#bookingModal,#appointmentModal) .modern-color-picker.compact-color-picker>span{
    width:16px;
    height:16px;
    flex-basis:16px;
    border-radius:5px;
  }
  :is(#bookingModal,#appointmentModal) .modal-title-color-row .booking-header-master{
    position:relative;
    inset:auto;
    flex:1 1 120px;
    width:auto;
    max-width:none;
    min-width:0;
  }
  :is(#bookingModal,#appointmentModal) .booking-header-master select{
    height:32px;
    padding-left:8px;
    padding-right:20px;
    font-size:8px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime{
    width:100%;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;
    align-items:end;
    gap:5px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>label:first-child{
    grid-column:1/-1;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime input,
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime select{
    height:32px;
    padding:0 7px;
    border-radius:9px;
    font-size:9px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>strong{
    width:48px;
    min-width:48px;
    height:32px;
    padding:0 4px;
    border-radius:9px;
  }
  :is(#bookingModal,#appointmentModal) .time-stepper-controls{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:2px;
    height:18px;
    margin:0 0 2px;
  }
  :is(#bookingModal,#appointmentModal) .time-stepper-controls b{display:none}
  :is(#bookingModal,#appointmentModal) .time-stepper-controls button{
    height:18px;
    border-radius:5px;
    font-size:6px;
  }
  #appointmentModal .appointment-creation-meta{
    position:static;
    width:100%;
    font-size:6.5px;
  }
}

/* Compact tips amount and inherited cash/terminal selector. */
.compact-payment-section .tips-field{
  width:100%;
  grid-template-columns:max-content minmax(90px,120px) minmax(0,1fr)!important;
  min-height:0;
  gap:7px!important;
  padding:5px 7px!important;
  border-radius:10px!important;
}
.compact-payment-section .tips-payment-control{
  display:grid;
  grid-template-columns:max-content minmax(145px,190px) minmax(90px,1fr);
  align-items:center;
  gap:7px;
  min-width:0;
}
.compact-payment-section .tips-payment-control>span{
  color:var(--muted);
  font-size:7px;
  font-weight:700;
  white-space:nowrap;
}
.compact-payment-section .tips-payment-control>small{
  grid-column:auto;
  margin:0;
  color:var(--muted);
  font-size:6.5px;
  line-height:1.2;
  white-space:nowrap;
}
.tips-payment-toggle{
  width:100%;
  height:28px;
  display:grid;
  grid-template-columns:1fr 34px 1fr;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border:1px solid transparent;
  border-radius:10px;
  font:inherit;
  cursor:pointer;
  transition:background .18s,border-color .18s,color .18s;
}
.tips-payment-toggle b{font-size:7px;font-weight:800;transition:opacity .18s}
.tips-payment-toggle i{position:relative;width:32px;height:18px;border-radius:20px;background:currentColor;opacity:.82}
.tips-payment-toggle i::after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .18s}
.tips-payment-toggle[data-method="cash"]{border-color:rgba(34,151,109,.3);background:rgba(34,151,109,.11);color:#18855e}
.tips-payment-toggle[data-method="cash"] b:last-child{opacity:.42}
.tips-payment-toggle[data-method="card"]{border-color:rgba(53,120,212,.3);background:rgba(53,120,212,.11);color:#2869c2}
.tips-payment-toggle[data-method="card"] b:first-child{opacity:.42}
.tips-payment-toggle[data-method="card"] i::after{transform:translateX(14px)}
.tips-payment-toggle:focus-visible{outline:2px solid currentColor;outline-offset:2px}
html[data-theme="dark"] .tips-payment-toggle[data-method="cash"]{background:rgba(34,151,109,.18)}
html[data-theme="dark"] .tips-payment-toggle[data-method="card"]{background:rgba(53,120,212,.18)}
@media(max-width:700px){
  .compact-payment-section .tips-field{grid-template-columns:minmax(80px,1fr) minmax(100px,1fr)!important}
  .compact-payment-section .tips-payment-control{grid-column:1/-1;grid-template-columns:max-content minmax(170px,1fr);width:100%}
  .compact-payment-section .tips-payment-control>small{grid-column:2}
  .tips-payment-toggle{width:100%}
}
.compact-payment-section .payment-side-column>.tips-field{margin-top:1px!important}
.compact-payment-section .payment-side-column>.tips-field .unit-input input{height:30px}
.compact-payment-section .compact-payment-extras:has(>#appointmentConsumablesField[hidden]){display:none}

/* One client visiting several masters on the same day: keep the existing
   marker and make every related calendar card immediately recognizable. */
#page-calendar .planner-event.shared-client-card.shared-client-default-color:not(.appointment-paid),
#page-calendar .week-schedule-event.shared-client-card.shared-client-default-color:not(.appointment-paid),
#page-calendar .month-appointment.shared-client-card.shared-client-default-color:not(.appointment-paid){
  background:#ffe600!important;
  color:#2f2800!important;
  border-color:#d8a600!important;
  box-shadow:inset 0 0 0 2px rgba(179,126,0,.42),0 3px 10px rgba(126,91,0,.2)!important;
}
#page-calendar .planner-event.shared-client-card.shared-client-default-color:not(.appointment-paid) .planner-event-timebar{
  background:#ffc800!important;
  color:#2b2300!important;
}
#page-calendar .shared-client-card.appointment-prepaid::before,
#page-calendar .shared-client-card.payment-just-saved::before{
  background:transparent!important;
}
#page-calendar .shared-client-card.appointment-prepaid::after{
  display:none!important;
}

/* Copy sits beside the master selector as a compact header action. */
:is(#bookingModal,#appointmentModal) .appointment-header-copy{
  width:36px;
  height:36px;
  min-width:36px;
  flex:0 0 36px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid color-mix(in srgb,var(--primary) 34%,var(--line));
  border-radius:11px;
  background:var(--violet-soft);
  color:var(--primary);
  cursor:pointer;
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
:is(#bookingModal,#appointmentModal) .appointment-header-copy:hover{
  transform:translateY(-1px);
  background:color-mix(in srgb,var(--primary) 14%,var(--surface-solid));
  box-shadow:0 5px 14px color-mix(in srgb,var(--primary) 18%,transparent);
}
:is(#bookingModal,#appointmentModal) .appointment-header-copy:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}
:is(#bookingModal,#appointmentModal) .appointment-header-copy[hidden]{display:none!important}
:is(#bookingModal,#appointmentModal) .appointment-header-copy svg{
  width:18px;
  height:18px;
}
@media(max-width:650px){
  :is(#bookingModal,#appointmentModal) .appointment-header-copy{
    width:32px;
    height:32px;
    min-width:32px;
    flex-basis:32px;
    border-radius:9px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-copy svg{width:16px;height:16px}
}

/* A stable fruit identifies all same-day appointments of one client. */
.calendar-card-marker.shared-client-fruit-marker{
  width:24px!important;
  height:24px!important;
  min-width:24px;
  padding:0;
  border:0!important;
  border-radius:0;
  background:transparent!important;
  box-shadow:none;
  filter:drop-shadow(0 2px 2px rgba(91,66,0,.28));
}
.shared-client-fruit-marker img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.week-schedule-event .calendar-card-marker.shared-client-fruit-marker{
  width:20px!important;
  height:20px!important;
  min-width:20px;
}
.month-appointment .calendar-card-marker.shared-client-fruit-marker{
  width:17px!important;
  height:17px!important;
  min-width:17px;
}
.planner-event.event-compact .calendar-card-marker.shared-client-fruit-marker{
  width:19px!important;
  height:19px!important;
  min-width:19px;
}

/* Telegram draws its own Close/Menu controls over the web viewport. Reserve
   the same protected header zone for every CRM role, not only master access. */
@media (max-width:880px) {
  html.telegram-mini-app {
    --telegram-controls-safe-top:max(128px,env(safe-area-inset-top));
    --appointment-modal-safe-top:var(--telegram-controls-safe-top);
  }

  html.telegram-mini-app:not(.master-access-mode):not(.header-compact) .topbar {
    height:62px;
    margin-top:var(--telegram-controls-safe-top);
    padding-top:6px;
    padding-bottom:6px;
  }

  html.telegram-mini-app:not(.master-access-mode).telegram-header-compact .main {
    padding-top:calc(62px + var(--telegram-controls-safe-top));
  }

  html.telegram-mini-app:not(.master-access-mode).telegram-header-compact .topbar {
    top:var(--telegram-controls-safe-top);
  }

  html.telegram-mini-app.telegram-header-compact .scale-popover,
  html.telegram-mini-app.telegram-header-compact .notification-popover {
    top:calc(var(--telegram-controls-safe-top) + 55px);
  }

  html.telegram-mini-app .sidebar {
    padding-top:var(--telegram-controls-safe-top) !important;
  }

  html.telegram-mini-app body .modal-backdrop.open {
    padding-top:var(--telegram-controls-safe-top) !important;
  }

  html.telegram-mini-app .modal-sheet {
    max-height:calc(var(--tg-viewport-height,100dvh) - var(--telegram-controls-safe-top));
  }
}

/* One shared receipt grid keeps every price and per-service discount aligned. */
:is(#bookingModal,#appointmentModal) .appointment-check-row,
:is(#bookingModal,#appointmentModal) .appointment-check-main{
  grid-template-columns:minmax(0,1fr) 48px 130px 28px;
  gap:7px;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price,
:is(#bookingModal,#appointmentModal) .appointment-item-discount{
  box-sizing:border-box;
  width:100%;
  min-width:0;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price{
  --line-price-max-size:20px;
  height:34px;
  display:flex;
  align-items:center;
  gap:3px;
  padding:0 4px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface-muted);
  color:var(--muted);
}
:is(#bookingModal,#appointmentModal) .appointment-item-price-entry{
  flex:1 1 auto;
  display:flex!important;
  align-items:center;
  gap:2px;
  min-width:0;
  padding:0!important;
  overflow:hidden;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price-entry input{
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:var(--line-price-font-size,var(--line-price-max-size));
  font-weight:900;
  line-height:1;
  letter-spacing:-1px;
  text-align:right;
  overflow:hidden;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price-entry>i{
  color:var(--muted);
  font-size:12px;
  font-style:normal;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price>em{
  flex:0 0 auto;
  display:block;
  padding:0;
  border:0;
  color:var(--green);
  font-style:normal;
  opacity:.62;
  white-space:nowrap;
  overflow:hidden;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price>em[hidden]{
  display:none!important;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price.has-line-discount{
  border-color:color-mix(in srgb,var(--green) 30%,var(--line));
  background:color-mix(in srgb,var(--green-soft) 24%,var(--surface-muted));
}
:is(#bookingModal,#appointmentModal) .appointment-item-price.has-line-discount .appointment-item-price-entry>i{
  display:none;
}
:is(#bookingModal,#appointmentModal) .appointment-item-price>em>b{
  color:var(--green);
  font-size:var(--line-price-font-size,var(--line-price-max-size));
  font-weight:900;
  line-height:1;
  letter-spacing:-1px;
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount{
  container-type:inline-size;
  height:34px;
  align-self:center;
  display:flex;
  align-items:center;
  gap:2px;
  padding:0 6px;
  border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));
  border-radius:9px;
  background:color-mix(in srgb,var(--green-soft) 58%,var(--surface-muted));
  color:var(--green);
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount input{
  width:100%;
  min-width:0;
  padding:0;
  border:0;
  outline:0;
  appearance:textfield;
  -moz-appearance:textfield;
  background:transparent;
  color:inherit;
  font:inherit;
  font-size:clamp(11px,37cqi,18px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.7px;
  text-align:right;
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount input::-webkit-inner-spin-button,
:is(#bookingModal,#appointmentModal) .appointment-item-discount input::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount input:focus{
  border-radius:5px;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 22%,transparent);
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount>span{
  padding:0;
  font-size:clamp(10px,29cqi,14px);
  font-weight:900;
}
:is(#bookingModal,#appointmentModal) .appointment-item-discount-disabled{
  justify-content:center;
  color:var(--muted);
  background:var(--surface-muted);
  border-color:var(--line);
  font-size:10px;
}
@media(max-width:520px){
  :is(#bookingModal,#appointmentModal) .appointment-check-row,
  :is(#bookingModal,#appointmentModal) .appointment-check-main{
    grid-template-columns:minmax(0,1fr) 44px 112px 26px;
    gap:4px;
    padding:7px 6px;
  }
  :is(#bookingModal,#appointmentModal) .appointment-item-price{--line-price-max-size:18px;gap:2px;padding-inline:3px}
  :is(#bookingModal,#appointmentModal) .appointment-item-price-entry>i{display:none}
  :is(#bookingModal,#appointmentModal) .appointment-item-price-entry input,
  :is(#bookingModal,#appointmentModal) .appointment-item-price>em>b{letter-spacing:-1px}
  /* iOS zooms the whole sheet when a focused input is rendered below 16px.
     Price fitting may otherwise shrink this field to 10px while the keyboard opens. */
  :is(#bookingModal,#appointmentModal) .appointment-item-price-entry input{font-size:max(16px,var(--line-price-font-size,var(--line-price-max-size)))}
  :is(#bookingModal,#appointmentModal) .appointment-item-discount{padding-inline:3px}
}

/* Keep the mobile editor header as dense as the new-booking header. */
@media(max-width:650px){
  #appointmentModal .modal-header{
    min-height:0!important;
    align-items:flex-start!important;
    padding:12px 46px 10px 10px!important;
  }
  #appointmentModal .modal-heading-with-colors{
    position:static!important;
    width:100%!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-rows:max-content!important;
    align-content:start!important;
    gap:7px!important;
    margin:0!important;
    padding:0!important;
  }
  #appointmentModal .modal-title-color-row{
    position:static!important;
    inset:auto!important;
    order:-1!important;
    width:100%!important;
    height:32px!important;
    min-height:32px!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  #appointmentModal .appointment-header-datetime{
    position:static!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  #appointmentModal .appointment-creation-meta{
    position:static!important;
    inset:auto!important;
    order:3!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    line-height:1.25!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    transform:none!important;
  }
}

/* Keep the new-booking controls clear of the rounded mobile sheet edge. */
@media(max-width:650px){
  #bookingModal .modal-header{
    padding-top:30px!important;
  }
  #bookingModal .modal-header-close{
    top:30px!important;
  }
}

/* Always keep the appointment time visible; trim only the unavailable suffix. */
#page-calendar .planner-event .planner-event-timebar time{
  display:block!important;
  min-width:6ch;
  max-width:100%;
  flex:0 1 auto;
  overflow:hidden;
  text-overflow:clip;
  white-space:nowrap;
}

/* Day/week calendars share one appointment-card hierarchy and readable time scale. */
#page-calendar :is(.planner-time,.week-time-label){
  font-size:clamp(8px,calc(9px * var(--ui-scale,1)),11px);
}
#page-calendar :is(.planner-event,.week-schedule-event) .planner-event-phone{
  display:block!important;
  font-weight:850!important;
  opacity:1!important;
}
#page-calendar .week-schedule-event.planner-event{
  border-left-width:3px;
  border-radius:8px;
  box-shadow:0 2px 5px rgba(30,80,55,.08);
}
#page-calendar .week-schedule-event.planner-event.event-full{
  padding:0 7px 10px;
}
#page-calendar .week-schedule-event.planner-event.event-medium{
  padding:0 7px 9px;
}
#page-calendar .week-schedule-event.planner-event:not(.event-compact) .planner-event-timebar{
  font-size:calc(7.5px * var(--ui-scale,1));
}
#page-calendar .week-schedule-event.planner-event:not(.event-compact)>.planner-event-client{
  font-size:calc(8px * var(--ui-scale,1));
}
#page-calendar .week-schedule-event.planner-event:not(.event-compact)>.planner-event-services{
  font-size:calc(7.5px * var(--ui-scale,1));
}
#page-calendar .week-schedule-event.planner-event:not(.event-compact)>.planner-event-phone{
  font-size:calc(6.5px * var(--ui-scale,1));
}

/* Appointment card hierarchy: time in the bar, client name directly below it. */
#page-calendar .planner-event .planner-event-timebar{
  justify-content:flex-start;
}
#page-calendar .planner-event .planner-event-timebar time{
  order:1;
  margin-left:0!important;
}
#page-calendar .planner-event .planner-event-timebar-status{
  order:2;
  margin-left:auto!important;
}
#page-calendar .planner-event>.planner-event-client{
  display:block!important;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:850!important;
}
#page-calendar .planner-event.appointment-paid.event-medium>.planner-event-services{
  grid-column:2;
}
#page-calendar .planner-event.event-medium{
  align-items:start;
}
#page-calendar .planner-event.event-phone-only>.planner-event-client{
  grid-column:1!important;
  grid-row:2!important;
  align-self:center;
  margin:0!important;
}
#page-calendar .planner-event.event-phone-only>.planner-event-phone{
  grid-column:2!important;
  grid-row:2!important;
  align-self:center;
  margin:0!important;
  text-align:right;
}
#page-calendar .planner-event.event-phone-only>.planner-event-services{
  display:none!important;
}
#page-calendar .planner-event.event-phone-only.event-span-3{
  grid-template-rows:auto auto minmax(0,1fr)!important;
}
#page-calendar .planner-event.event-phone-only.event-span-3>.planner-event-services{
  display:block!important;
  grid-column:1/-1!important;
  grid-row:3!important;
  align-self:center;
}

/* Use available card height before falling back to a compressed row. */
#page-calendar .planner-event.event-medium{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto auto auto!important;
  align-content:start;
  align-items:start;
  column-gap:0;
  row-gap:1px;
}
#page-calendar .planner-event.event-medium.event-phone-only.event-span-3{
  grid-template-rows:auto auto auto auto!important;
}
#page-calendar .planner-event.event-medium>.planner-event-timebar{
  grid-column:1!important;
  grid-row:1!important;
}
#page-calendar .planner-event.event-medium>.planner-event-client{
  grid-column:1!important;
  grid-row:2!important;
}
#page-calendar .planner-event.event-medium>.planner-event-phone{
  grid-column:1!important;
  grid-row:3!important;
  align-self:start;
  margin:0!important;
  padding-left:0;
  text-align:left;
}
#page-calendar .planner-event.event-medium>.planner-event-services,
#page-calendar .planner-event.event-phone-only.event-span-3>.planner-event-services{
  display:block!important;
  grid-column:1!important;
  grid-row:4!important;
  align-self:start;
  min-width:0;
  margin:1px 0 0!important;
}
#page-calendar .planner-event.event-phone-only.event-span-2{
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto auto auto!important;
  align-content:start;
}
#page-calendar .planner-event.event-phone-only.event-span-2>.planner-event-client{
  grid-column:1!important;
  grid-row:2!important;
  align-self:start;
}
#page-calendar .planner-event.event-phone-only.event-span-2>.planner-event-phone{
  grid-column:1!important;
  grid-row:3!important;
  align-self:start;
  text-align:left;
}

/* A narrower shared time rail with larger labels; slot heights stay unchanged. */
#page-calendar .day-calendar{
  grid-template-columns:36px repeat(var(--master-count),var(--master-column-width,116px));
}
#page-calendar .week-time-grid{
  grid-template-columns:36px repeat(7,minmax(calc(125px * var(--ui-scale,1)),1fr));
}
#page-calendar :is(.planner-time,.week-time-label){
  display:flex;
  align-items:center;
  justify-content:flex-end;
  padding:0 2px 0 0;
  font-size:clamp(9.6px,calc(10.8px * var(--ui-scale,1)),13.2px);
  letter-spacing:-.025em;
}
#page-calendar .calendar-current-time time{
  left:2px;
  width:32px;
  padding-left:2px;
  padding-right:2px;
}
#page-calendar .calendar-current-time i,
#page-calendar .empty-calendar-team{
  left:36px;
}
@media(max-width:700px){
  #page-calendar .day-calendar{
    grid-template-columns:42px repeat(var(--master-count),var(--master-column-width,116px));
  }
  #page-calendar .week-time-grid{
    grid-template-columns:42px repeat(7,minmax(0,1fr));
  }
  #page-calendar :is(.planner-time,.week-time-label){
    padding-right:1px;
  }
  #page-calendar .calendar-current-time time{
    left:2px;
    width:38px;
    padding-left:2px;
    padding-right:2px;
  }
  #page-calendar .calendar-current-time i,
  #page-calendar .empty-calendar-team{
    left:42px;
  }
}

/* Use the empty line above the date for the creation audit, aligned with the time steppers. */
#appointmentModal .appointment-header-datetime>label:first-child{display:grid;grid-template-rows:20px 36px;gap:3px}
#appointmentModal .appointment-creation-meta{position:static!important;inset:auto!important;order:initial!important;display:flex;align-items:center;width:100%!important;height:20px;min-width:0!important;margin:0!important;padding:0!important;overflow:hidden!important;color:var(--muted);font-size:10.5px!important;font-weight:700;line-height:1.2!important;white-space:nowrap!important;text-overflow:ellipsis!important;transform:none!important}
@media(max-width:650px){#appointmentModal .appointment-header-datetime>label:first-child{grid-template-rows:18px 32px;gap:2px}#appointmentModal .appointment-creation-meta{width:100%!important;height:18px;font-size:9.75px!important}}

/* Calendar cards: keep the time bar full-width and reclaim the resize-handle gutter for content. */
#page-calendar :is(.planner-event,.week-schedule-event.planner-event){padding-bottom:2px}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-timebar{width:auto!important;align-self:stretch!important}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event).event-phone-only>.planner-event-timebar{margin-left:-4px!important;margin-right:-4px!important}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-phone-only)>.planner-event-timebar{margin-left:-7px!important;margin-right:-7px!important}
#page-calendar .appointment-resize-handle i{opacity:0}
#page-calendar :is(.planner-event,.week-schedule-event).resizing .appointment-resize-handle i{opacity:.56}
@media(hover:hover) and (pointer:fine){#page-calendar .appointment-resize-handle:hover i{opacity:.56}}
/* Six readable master columns on mobile: controls stay available, labels stack below them. */
@media(max-width:650px){
  #page-calendar .day-calendar{--day-header-height:41px;grid-template-rows:41px repeat(56,calc(25px * var(--ui-scale,1)))}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters) .master-column-head{padding-top:1px;padding-bottom:1px}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-column-head{
    display:grid;
    grid-template-columns:18px 24px;
    grid-template-rows:24px 13px;
    align-content:center;
    justify-content:center;
    gap:1px 2px;
    padding:1px;
  }
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-call-wrap{grid-column:1;grid-row:1}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-call-button{width:18px;height:22px;border-radius:7px}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-call-button svg{width:12px;height:12px}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-column-head>.avatar{grid-column:2;grid-row:1;width:24px;height:24px;border-radius:8px}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-column-head>span:last-child{grid-column:1 / -1;grid-row:2;width:44px;text-align:center}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-column-head strong{font-size:7px;line-height:12px}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters).calendar-six-up .master-column-head small{display:none}
}

/* Telegram admin calendar: place the duty-admin avatar in the free system-header center. */
@media(max-width:650px){
  html.telegram-mini-app:not(.master-access-mode) .main>.calendar-duty-admins:not([hidden]){
    position:absolute;
    z-index:46;
    top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 5px);
    left:50%;
    right:auto;
    display:flex!important;
    transform:translateX(-50%);
  }
}

/* Telegram admin overview: CSS zoom is not consistently applied on iOS, so
   the compensating desktop width must not leave the dashboard partially empty. */
@media(max-width:650px){
  html.telegram-mini-app:not(.master-access-mode) #page-overview{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }
  html.telegram-mini-app:not(.master-access-mode) #page-overview>.page-heading>div:first-child,
  html.telegram-mini-app:not(.master-access-mode) #page-overview>:not(.page-heading):not(.calendar-toolbar):not(.calendar-card){
    zoom:1!important;
  }
  html.telegram-mini-app:not(.master-access-mode) #page-overview>:not(.page-heading):not(.calendar-toolbar):not(.calendar-card){
    width:100%!important;
    max-width:100%!important;
  }
}

/* Telegram admin calendar: merge the three shortcuts into the existing control point. */
@media(max-width:650px){
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active)>.topbar{
    position:relative!important;
    width:100%!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    overflow:visible!important;
  }
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active)>.topbar>.topbar-actions{display:contents}
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active)>.content{
    padding-top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 52px)!important;
  }
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) :is(#telegramBarShortcut,#questBoardButton,#quickProductScan){display:none!important}
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .tools-control{
    position:absolute;
    z-index:47;
    top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 8px);
    left:calc(50% + 30px);
  }
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .tools-toggle{width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--surface-solid) 92%,transparent);box-shadow:0 7px 20px rgba(29,25,70,.15);backdrop-filter:blur(18px)}
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .tools-popover{top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 54px);grid-template-columns:repeat(3,minmax(0,1fr))}
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .mobile-management-action:not([hidden]){display:grid}
  html.telegram-mini-app:not(.master-access-mode) #calendarStickyMasters{
    top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 52px);
  }
  html.telegram-mini-app:not(.master-access-mode) #page-calendar{
    position:relative;
  }
  html.telegram-mini-app:not(.master-access-mode) #page-calendar .show-all-toggle:not([hidden]){
    position:absolute;
    z-index:46;
    top:-47px;
    right:max(14px,var(--tg-content-safe-right,0px));
    width:auto;
    height:40px;
    min-height:40px;
    flex:none;
    padding:0 11px;
    border-color:color-mix(in srgb,var(--primary) 25%,var(--line));
    background:color-mix(in srgb,var(--surface-solid) 92%,transparent);
    color:var(--text);
    box-shadow:0 7px 20px rgba(29,25,70,.12);
    backdrop-filter:blur(18px);
  }
  html.telegram-mini-app:not(.master-access-mode) #page-calendar .show-all-toggle:not([hidden]) span{
    font-size:8px;
    font-weight:750;
    white-space:nowrap;
  }
}

/* Quarter-hour rhythm: strong dashed hour, light dashed quarters, solid half-hour. */
#page-calendar :is(.planner-time,.week-time-label,.planner-slot,.week-time-slot){border-bottom:0}
#page-calendar :is(.planner-time.full-hour,.week-time-label.full-hour,.planner-slot.full-hour-slot,.week-time-slot.full-hour-slot){--calendar-hour-line:#000;border-top:0;background-image:repeating-linear-gradient(90deg,var(--calendar-hour-line) 0 1px,transparent 1px 2px);background-repeat:repeat-x;background-position:top;background-size:2px 1.5px;box-shadow:none}
#page-calendar :is(.planner-time.quarter,.week-time-label.quarter,.planner-slot.quarter-slot,.week-time-slot.quarter-slot){--calendar-quarter-line:rgba(80,82,94,.2);border-top:0;background-image:repeating-linear-gradient(90deg,var(--calendar-quarter-line) 0 1px,transparent 1px 2px);background-repeat:repeat-x;background-position:top;background-size:2px 1px;box-shadow:none}
#page-calendar :is(.planner-time.half-hour:not(.full-hour),.week-time-label.half-hour:not(.full-hour),.planner-slot.half-hour-slot,.week-time-slot.half-hour-slot){border-top:1px solid rgba(114,116,128,.24);box-shadow:none}
html[data-theme="dark"] #page-calendar :is(.planner-time.full-hour,.week-time-label.full-hour,.planner-slot.full-hour-slot,.week-time-slot.full-hour-slot){--calendar-hour-line:rgba(210,212,226,.53)}
html[data-theme="dark"] #page-calendar :is(.planner-time.quarter,.week-time-label.quarter,.planner-slot.quarter-slot,.week-time-slot.quarter-slot){--calendar-quarter-line:rgba(174,177,196,.16)}
html[data-theme="dark"] #page-calendar :is(.planner-time.half-hour:not(.full-hour),.week-time-label.half-hour:not(.full-hour),.planner-slot.half-hour-slot,.week-time-slot.half-hour-slot){border-top-color:rgba(174,177,196,.2)}

/* Draw week hour marks above day separators, but below appointment cards. */
#page-calendar .week-time-grid{--week-header-height:calc(56px * var(--ui-scale,1));--week-hour-height:calc(100px * var(--ui-scale,1));--calendar-hour-line:#000}
#page-calendar :is(.week-time-label.full-hour,.week-time-slot.full-hour-slot){background-image:none}
#page-calendar .week-time-grid::after{content:"";position:absolute;z-index:4;top:var(--week-header-height);right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(90deg,var(--calendar-hour-line) 0 1px,transparent 1px 2px);-webkit-mask-image:linear-gradient(to bottom,#000 0 1.5px,transparent 1.5px);mask-image:linear-gradient(to bottom,#000 0 1.5px,transparent 1.5px);-webkit-mask-size:100% var(--week-hour-height);mask-size:100% var(--week-hour-height);-webkit-mask-repeat:repeat;mask-repeat:repeat}
html[data-theme="dark"] #page-calendar .week-time-grid{--calendar-hour-line:rgba(210,212,226,.53)}
@media(max-width:650px){#page-calendar .week-time-grid{--week-header-height:50px;--week-hour-height:96px}}

/* Day hour marks cross the master-column borders without covering appointments. */
#page-calendar .day-calendar{--day-header-height:calc(68px * var(--ui-scale,1));--day-hour-height:calc(100px * var(--ui-scale,1));--calendar-hour-line:#000}
#page-calendar .planner-slot.full-hour-slot{background-image:none}
#page-calendar .day-calendar::after{content:"";position:absolute;z-index:4;top:var(--day-header-height);right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(90deg,var(--calendar-hour-line) 0 1px,transparent 1px 2px);-webkit-mask-image:linear-gradient(to bottom,#000 0 1.5px,transparent 1.5px);mask-image:linear-gradient(to bottom,#000 0 1.5px,transparent 1.5px);-webkit-mask-size:100% var(--day-hour-height);mask-size:100% var(--day-hour-height);-webkit-mask-repeat:repeat;mask-repeat:repeat}
html[data-theme="dark"] #page-calendar .day-calendar{--calendar-hour-line:rgba(210,212,226,.53)}
@media(max-width:650px){#page-calendar .day-calendar{--day-header-height:41px}}
@media(min-width:651px){#page-calendar .day-calendar{--day-header-height:calc(48px * var(--ui-scale,1))}}

/* Keep client history independently scrollable inside stacked mobile modals. */
.client-history-sheet{min-height:0;overflow:hidden}
.client-history-sheet>.modal-header{flex:0 0 auto}
.client-visit-history-list{min-height:0;max-height:none!important;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.client-history-profile-note{padding:13px 14px;border-bottom:1px solid var(--line);background:var(--violet-soft)}
.client-history-profile-note small,.client-history-profile-note strong{display:block}
.client-history-profile-note small{margin-bottom:5px;color:var(--muted);font-size:8px}
.client-history-profile-note strong{font-size:10px;line-height:1.45;white-space:pre-wrap}
@media(max-width:600px){.client-history-sheet{height:min(88dvh,760px);max-height:calc(var(--tg-viewport-height,100dvh) - var(--app-safe-top))}}

/* The mirrored row owns vertical stickiness at every viewport size. The source
   row scrolls away while the time corner keeps only its horizontal stickiness. */
#page-calendar .day-calendar>.master-column-head{position:relative;top:auto}
#page-calendar .day-calendar>.day-corner{position:sticky;top:auto;left:0}

/* Selected appointment colors stay vivid in every calendar view. */
#page-calendar :is(.planner-event,.week-schedule-event).custom-card:not(.client-confirmed):not(.client-reschedule){background:color-mix(in srgb,var(--card-color) 28%,var(--surface-solid));color:color-mix(in srgb,var(--card-color) 88%,var(--card-text-base))}
#page-calendar :is(.week-appointment,.month-appointment).custom-card:not(.client-confirmed):not(.client-reschedule){background:color-mix(in srgb,var(--card-color) 28%,var(--surface-solid));color:color-mix(in srgb,var(--card-color) 88%,var(--card-text-base))}
.modern-color-picker[aria-busy="true"]{opacity:.82}

/* Mobile resize requires a one-second hold; until then this strip scrolls. */
@media(pointer:coarse){.appointment-resize-handle{touch-action:pan-y}.appointment-resize-handle.resize-armed{touch-action:none}}
@media(hover:hover) and (pointer:fine){
  #page-calendar .appointment-resize-handle{height:7px!important}
}
@media(max-width:650px) and (pointer:coarse){
  #page-calendar :is(.planner-event,.week-schedule-event).event-compact>.appointment-resize-handle{height:6px!important}
}

/* Mobile calendar actions: keep archive compact and beside Checkbox pairing. */
.cancelled-button-icon{display:none}
@media(max-width:650px){
  #page-calendar .calendar-toolbar{display:flex;flex-direction:column;align-items:stretch}
  html.telegram-mini-app #page-calendar .calendar-toolbar-actions,#page-calendar .calendar-toolbar-actions{order:1!important;width:100%}
  html.telegram-mini-app #page-calendar .calendar-view-controls,#page-calendar .calendar-view-controls{order:2!important;width:100%}
  html.telegram-mini-app #page-calendar .date-switcher,#page-calendar .date-switcher{order:3!important;width:100%;justify-content:center}
  #page-calendar .calendar-toolbar-actions{display:flex;flex-wrap:nowrap;justify-content:center;gap:6px}
  #page-calendar .calendar-toolbar-actions{width:auto!important;align-self:center;padding:4px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface-solid) 88%,transparent);box-shadow:0 6px 18px rgba(34,35,48,.08)}
  #page-calendar .calendar-mobile-management-row{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap;width:max-content}
  #page-calendar .calendar-mobile-management-row>#calendarDutyAdmins{position:static;order:1;display:flex;align-items:center;flex:0 0 auto;pointer-events:auto}
  #page-calendar .calendar-mobile-management-row>#calendarDutyAdmins[hidden]{display:none}
  #page-calendar .calendar-mobile-management-row>#calendarDutyAdmins .calendar-duty-admin-button{width:40px;height:40px;flex-basis:40px;margin:0}
  #page-calendar .calendar-mobile-management-row>#calendarDutyAdmins .calendar-duty-avatar-ring{width:38px;height:38px}
  #page-calendar .calendar-mobile-management-row>.tools-control{position:relative;order:2;flex:0 0 40px}
  #page-calendar .calendar-mobile-management-row>.tools-control>.tools-toggle{width:40px;height:40px;border-radius:12px}
  /* Mobile browsers may carry Telegram SDK styles; keep relocated tools in the row. */
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .calendar-mobile-management-row>.tools-control{
    position:relative;
    top:auto;
    left:auto;
  }
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active) .calendar-mobile-management-row .tools-popover{
    top:56px;
  }

  #page-calendar .checkbox-pair-controls{order:3;flex:0 0 auto}
  #page-calendar .calendar-waitlist-button{order:4;width:40px!important;height:40px;min-width:40px;min-height:40px;flex:0 0 40px;display:grid;place-items:center;padding:0;position:relative;border-radius:12px;font-size:initial}
  #page-calendar .calendar-waitlist-button::before,#page-calendar .calendar-waitlist-button .waitlist-button-label{display:none}
  #page-calendar .calendar-waitlist-button svg{display:block;width:19px;height:19px;fill:none;stroke:currentColor}
  #page-calendar .calendar-waitlist-button .waitlist-count{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;margin:0;padding:0 4px;border:2px solid var(--surface-solid);font-size:7px;line-height:1}
  #page-calendar .cancelled-button{order:5;width:40px!important;height:40px;min-height:40px;flex:0 0 40px;padding:0;display:grid;place-items:center;position:relative;border-radius:12px}
  #page-calendar .cancelled-button-label{display:none}
  #page-calendar .cancelled-button-icon{display:block;font-size:19px;line-height:1;filter:saturate(.9)}
  #page-calendar .cancelled-button #cancelledCount{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface-solid);border-radius:999px;background:var(--rose);color:#fff;font-size:7px;font-weight:800;line-height:1}
  #page-calendar .show-all-toggle{display:none!important}
  #page-calendar .calendar-view-controls{gap:6px;padding:0 6px}
  #page-calendar .calendar-view-controls #calendarModes{min-width:0;flex:1 1 auto}
  #page-calendar .date-switcher{gap:6px;padding:0 6px}
  #page-calendar .date-switcher>strong{min-width:0;flex:1 1 auto;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #page-calendar .calendar-mobile-show-all:not([hidden]){height:34px;display:flex;align-items:center;gap:4px;flex:0 0 auto;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--text);font-size:8px;font-weight:800;cursor:pointer}
  #page-calendar .calendar-mobile-show-all i{width:13px;height:13px;border:1px solid var(--muted);border-radius:4px;background:var(--surface-solid)}
  #page-calendar .calendar-mobile-show-all[aria-pressed="true"] i{border-color:var(--primary);background:var(--primary);box-shadow:inset 0 0 0 3px var(--surface-solid)}
}

/* The selected date and master columns form one sticky calendar head on both
   mobile and desktop. The date controls remain interactive over the mirror. */
#calendarStickyMasters.active{pointer-events:none}
#calendarStickyMasters.active .master-call-button{pointer-events:auto;cursor:pointer}
/* Once the complete sticky header (date + masters) takes over, keep the
   original day header in the grid for layout only. Otherwise its own row can
   remain visible above the mirror and duplicate the masters while scrolling. */
#calendarStickyMasters.active + .calendar-scroll .day-calendar>.day-corner,
#calendarStickyMasters.active + .calendar-scroll .day-calendar>.master-column-head{visibility:hidden;pointer-events:none}
#calendarStickyMasters .calendar-sticky-date{position:absolute;top:0;left:0;right:0;height:42px;display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 58px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-solid) 95%,transparent);backdrop-filter:blur(18px);box-shadow:0 4px 12px rgba(34,35,48,.08);pointer-events:auto}
#calendarStickyMasters .calendar-sticky-date strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}
#calendarStickyMasters .calendar-sticky-date button{width:32px;height:32px;flex:0 0 32px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--text);font-size:20px;line-height:1;cursor:pointer}
#calendarStickyMasters .calendar-sticky-masters-viewport{top:42px}
/* Mobile calendar already has date navigation above the scroll area. */
@media(max-width:650px){
  #calendarStickyMasters .calendar-sticky-date{display:none}
  #calendarStickyMasters .calendar-sticky-masters-viewport{top:0}
}
#calendarStickyMasters .calendar-sticky-masters-track.week-sticky-track{display:block;min-width:0;will-change:auto}
#calendarStickyMasters .week-sticky-track .week-master-filter{box-sizing:border-box;width:100%;margin:0;border-radius:0;pointer-events:auto}
#calendarStickyMasters .calendar-sticky-week-days{display:grid;grid-template-rows:100%;background:var(--surface-solid)}
#calendarStickyMasters .calendar-sticky-week-days .week-time-corner,#calendarStickyMasters .calendar-sticky-week-days .week-time-head{position:relative;top:auto;height:100%;box-sizing:border-box;pointer-events:auto}
#calendarStickyMasters .calendar-sticky-week-days .month-weekday{height:100%;box-sizing:border-box}
@media(max-width:650px){
  #page-calendar .week-master-filter,#calendarStickyMasters .week-master-filter{box-sizing:border-box;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:100%;margin-left:0;margin-right:0;gap:1px;padding:2px 3px;overflow:visible}
  #page-calendar .week-master-filter button,#calendarStickyMasters .week-master-filter button{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:29px;min-height:29px;gap:2px;padding:3px 2px;overflow:hidden;white-space:nowrap;font-size:7.5px}
  #page-calendar .week-master-filter button>img,#calendarStickyMasters .week-master-filter button>img,#page-calendar .week-master-filter button>i,#calendarStickyMasters .week-master-filter button>i{width:19px;height:19px;flex:0 0 19px}
  #page-calendar .week-master-filter button span,#calendarStickyMasters .week-master-filter button span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750}
  #page-calendar .week-master-filter button[data-week-master] span,#calendarStickyMasters .week-master-filter button[data-week-master] span{font-size:9.5px}
  html:not(.telegram-mini-app).standalone-calendar-scrolled .main:has(#page-calendar.active)>.topbar,
  html:not(.telegram-mini-app).standalone-calendar-scrolled .main:has(#page-calendar.active)>.calendar-duty-admins,
  html:not(.telegram-mini-app).standalone-calendar-scrolled #page-calendar>.calendar-toolbar{display:none!important}
  html:not(.telegram-mini-app).standalone-calendar-scrolled #calendarStickyMasters{top:0}
}
@media(min-width:651px){
  #page-calendar .day-calendar{grid-template-rows:calc(48px * var(--ui-scale,1)) repeat(56,calc(25px * var(--ui-scale,1)))}
  #page-calendar :is(.day-calendar,.calendar-sticky-masters) .master-column-head{padding:2px 6px}
}

/* Appointer-style appointment cards: one fixed header and one copy hierarchy at every duration. */
#page-calendar :is(.planner-event,.week-schedule-event.planner-event){
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:13px auto auto minmax(0,1fr)!important;
  align-content:start!important;
  align-items:start!important;
  gap:0!important;
  padding:0 6px 2px!important;
  line-height:1.05!important;
  -webkit-text-size-adjust:none!important;
  text-size-adjust:none!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-timebar{
  grid-column:1!important;
  grid-row:1!important;
  min-height:13px!important;
  height:13px!important;
  margin:0 -6px 1px!important;
  padding:0 6px!important;
  border-radius:0!important;
  font-size:10px!important;
  line-height:13px!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-client{
  display:block!important;
  grid-column:1!important;
  grid-row:2!important;
  min-width:0!important;
  margin:0!important;
  font-size:12px!important;
  font-weight:900!important;
  line-height:1.08!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-phone{
  display:block!important;
  grid-column:1!important;
  grid-row:3!important;
  min-width:0!important;
  margin:1px 0 0!important;
  padding:0!important;
  background:transparent!important;
  font-size:10px!important;
  font-weight:850!important;
  line-height:1.08!important;
  text-align:left!important;
  opacity:1!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services{
  display:block!important;
  grid-column:1!important;
  grid-row:4!important;
  align-self:start!important;
  min-width:0!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  font-size:9.5px!important;
  font-weight:700!important;
  line-height:1.08!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services i{
  display:inline!important;
  padding:0!important;
  font:inherit!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services i::before{
  display:none!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services i+i::before{
  content:" · ";
  display:inline!important;
  position:static!important;
}
#page-calendar .planner-event.appointment-paid>.planner-event-client,
#page-calendar .day-calendar.calendar-dense .planner-event>.planner-event-client{
  display:block!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-timebar time{
  font-size:inherit!important;
}

/* When the card has enough height, show every service on its own bulleted line. */
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services{
  display:grid!important;
  gap:2px!important;
  white-space:normal!important;
  text-overflow:clip!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i{
  position:relative!important;
  display:block!important;
  min-width:0!important;
  padding-left:11px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i::before,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i+i::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  left:1px!important;
  top:50%!important;
  width:5px!important;
  height:5px!important;
  border-radius:50%!important;
  background:currentColor!important;
  transform:translateY(-50%)!important;
  opacity:.9!important;
}

/* Appointer-like information density: use the whole card width and clip without ellipses. */
#page-calendar :is(.planner-event,.week-schedule-event.planner-event){
  padding:0 1px 1px!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-timebar{
  margin:0 -1px 1px!important;
  padding:0 6px!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-client,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-phone,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event)>.planner-event-services i,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event) .planner-event-timebar time{
  text-overflow:clip!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i{
  padding-left:8px!important;
}
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i::before,
#page-calendar :is(.planner-event,.week-schedule-event.planner-event):not(.event-compact)>.planner-event-services i+i::before{
  left:0!important;
}

/* Compact, touch-safe administrator shift planner on mobile. */
@media (max-width:650px) {
  #shiftPlannerModal .shift-planner-sheet {
    padding:12px 10px calc(12px + var(--app-safe-bottom));
  }
  #shiftPlannerModal .modal-header {
    align-items:center;
    margin-bottom:8px;
  }
  #shiftPlannerModal .modal-header h2 {
    margin-top:1px;
  }
  #shiftPlannerModal .shift-planner-toolbar {
    gap:7px;
    margin-bottom:7px;
  }
  #shiftPlannerModal .shift-planner-toolbar .date-switcher {
    width:auto;
    min-width:0;
    flex:1 1 auto;
  }
  #shiftPlannerModal .shift-planner-toolbar .icon-button,
  #shiftPlannerModal .modal-header .icon-button {
    min-width:40px;
    min-height:40px;
    touch-action:manipulation;
  }
  #shiftPlannerModal .shift-patterns-bar {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-bottom:7px;
  }
  #shiftPlannerModal .shift-pattern-button {
    min-height:38px;
    touch-action:manipulation;
  }
  #shiftPlannerModal .shift-time-selector {
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    gap:4px;
    margin-bottom:7px;
    padding:5px 12px 7px;
  }
  #shiftPlannerModal .shift-time-selector>div {
    grid-column:1/-1;
  }
  #shiftPlannerModal .shift-time-selector>div small {
    display:none;
  }
  #shiftPlannerModal .shift-time-selector label {
    min-width:0;
    padding:0 5px;
    overflow:hidden;
  }
  #shiftPlannerModal .shift-time-selector input {
    display:block;
    width:100%;
    inline-size:100%;
    min-width:0;
    min-inline-size:0;
    max-width:100%;
    max-inline-size:100%;
    height:36px;
    padding:0 5px;
    font-size:16px;
    text-align:center;
    -webkit-appearance:none;
    appearance:none;
  }
  #shiftPlannerModal .shift-time-selector input::-webkit-date-and-time-value {
    width:100%;
    min-width:0;
    margin:0;
    padding:0;
    text-align:center;
  }
  #shiftPlannerModal .shift-time-selector input::-webkit-calendar-picker-indicator {
    margin:0;
    padding:0;
  }
  #shiftPlannerModal .shift-time-arrow {
    padding-bottom:14px;
  }
  #shiftPlannerModal .shift-calendar {
    border-radius:12px;
  }
  #shiftPlannerModal .shift-weekday {
    height:28px;
    font-size:8px;
  }
  #shiftPlannerModal .shift-day {
    min-width:0;
    min-height:60px;
    padding:5px 2px;
    overflow:hidden;
    touch-action:manipulation;
  }
  #shiftPlannerModal .shift-day span {
    width:100%;
    max-width:100%;
    margin-top:4px;
    overflow:hidden;
    font-size:8.25px;
    font-weight:650;
    line-height:1.1;
    letter-spacing:-.04em;
    text-overflow:clip;
    white-space:nowrap;
  }
  #shiftPlannerModal .shift-day.today {
    position:relative;
    z-index:1;
    box-shadow:inset 0 0 0 2px var(--primary);
  }
  #shiftPlannerModal .shift-day.today strong {
    outline:2px solid color-mix(in srgb,var(--primary) 38%,transparent);
    outline-offset:2px;
    color:var(--primary);
    font-weight:900;
  }
  #shiftPlannerModal .shift-day.today.working strong {
    color:#fff;
  }
  #shiftPlannerModal .shift-legend {
    gap:10px;
    padding:7px 2px 9px;
  }
  #shiftPlannerModal .shift-planner-actions {
    gap:7px;
  }
  #shiftPlannerModal .shift-planner-actions button {
    min-height:44px;
    touch-action:manipulation;
  }
}

/* Revenue-by-master drill-down: the left card controls the detail shown on the right. */
.finance-staff-filter-trigger {
  margin:0;
  padding:0;
  border:2px solid var(--surface-solid);
  font:inherit;
  cursor:pointer;
}
.finance-staff-filter-trigger.active {
  outline:3px solid var(--primary);
  outline-offset:2px;
  box-shadow:0 5px 16px color-mix(in srgb,var(--primary) 34%,transparent);
}
.finance-staff-filter-row {
  width:100%;
  display:grid;
  grid-template-columns:8px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 0;
  border:0;
  border-top:1px solid var(--line);
  background:transparent;
  color:var(--text);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:background .16s,padding .16s;
}
.finance-staff-filter-row:hover,
.finance-staff-filter-row.active {
  margin:0 -8px;
  width:calc(100% + 16px);
  padding-left:8px;
  padding-right:8px;
  background:color-mix(in srgb,var(--primary) 8%,var(--surface-solid));
}
.finance-staff-filter-row.active {
  box-shadow:inset 3px 0 0 var(--primary);
}
.finance-staff-filter-row i {
  width:8px;
  height:8px;
  border-radius:3px;
}
.finance-staff-filter-row strong,
.finance-staff-filter-row small {
  display:block;
}
.finance-staff-filter-row strong,
.finance-staff-filter-row b {
  font-size:10px;
}
.finance-staff-filter-row small {
  margin-top:2px;
  color:var(--muted);
  font-size:8.125px;
}
.finance-breakdown-card .finance-breakdown-toggle {font-size:16.25px}
.finance-breakdown-card .finance-breakdown-picker>p {font-size:10px}
.finance-breakdown-card .finance-donut-center strong {font-size:25px}
.finance-breakdown-card .finance-donut-center small {font-size:8.75px}
.finance-breakdown-card .finance-legend>div strong,
.finance-breakdown-card .finance-legend>div b {font-size:10px}
.finance-breakdown-card .finance-legend>div small {font-size:8.125px}
.finance-staff-service-total {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  padding:16px 18px 13px;
  border-bottom:1px solid var(--line);
}
.finance-staff-service-total span {
  color:var(--text);
  font-size:24px;
  font-weight:700;
  line-height:1;
}
.finance-staff-service-total strong {
  font-size:23.5px;
}
.finance-staff-service-list {
  display:grid;
  max-height:330px;
  padding:0 18px;
  overflow:auto;
}
.finance-staff-service-row {
  display:grid;
  grid-template-columns:82px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:56px;
  padding:9px 0;
  border-top:1px solid var(--line);
  width:100%;
  border-right:0;
  border-bottom:0;
  border-left:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}
.finance-staff-service-row:hover {background:color-mix(in srgb,var(--primary) 5%,transparent)}
.finance-staff-service-row:focus-visible {outline:2px solid var(--primary);outline-offset:-2px}
.finance-staff-service-row:first-child {
  border-top:0;
}
.finance-staff-service-row time {
  color:var(--primary);
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.finance-staff-service-row span {
  min-width:0;
}
.finance-staff-service-row strong,
.finance-staff-service-row small {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.finance-staff-service-row strong {
  font-size:10.5px;
}
.finance-staff-service-row small {
  margin-top:3px;
  color:var(--muted);
  font-size:8.5px;
}
.finance-staff-service-row>b {
  font-size:10.5px;
  white-space:nowrap;
}

/* Paid appointments use one thin perimeter line; do not combine it with the
   regular thick status stripe or an inset outline. */
#page-calendar :is(.planner-event,.week-schedule-event,.month-appointment).appointment-paid {
  background:linear-gradient(145deg,#e1f7ed,#d6f2e5)!important;
  color:#176d4d!important;
  border:0!important;
  box-shadow:inset 0 0 0 1px #177653,0 3px 10px rgba(20,91,65,.13)!important;
}
#page-calendar :is(.planner-event,.week-schedule-event).appointment-paid .planner-event-timebar{background:linear-gradient(110deg,#159667,#31bd85 58%,#22a875)!important;color:#fff!important}

/* Mobile appointment forms: date, start, end and duration in one row. */
.booking-native-time{display:none}
@media(max-width:650px){
  :is(#bookingModal,#appointmentModal) .appointment-workflow-sheet{
    scroll-padding-bottom:32px!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-workflow-sheet .modal-actions{
    position:static!important;
    inset:auto!important;
    z-index:auto!important;
    margin:8px 0 0!important;
    padding:12px 0 calc(12px + var(--app-safe-bottom))!important;
    background:transparent!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime{
    grid-template-columns:78px 78px 78px 48px!important;
    justify-content:start!important;
    align-items:end!important;
    gap:5px!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>label:first-child{
    grid-column:auto!important;
    width:78px!important;
    max-width:78px!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime .time-stepper{
    width:78px!important;
    gap:0!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime .time-stepper-controls{
    display:none!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime input[type="date"]{
    width:78px!important;
    max-width:78px!important;
    height:32px!important;
    padding:0 2px!important;
    font-size:13px!important;
    text-align:left!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime input[type="time"]{
    width:78px!important;
    height:32px!important;
    padding:0 6px!important;
    appearance:auto!important;
    -webkit-appearance:auto!important;
    font-size:16px!important;
    text-align:left!important;
  }
  :is(#bookingModal,#appointmentModal) .appointment-header-datetime>strong{
    width:48px!important;
    min-width:48px!important;
    height:32px!important;
  }
  #bookingModal .booking-start-time select{
    display:none!important;
  }
  #bookingModal #bookingNativeTime{
    display:block!important;
    width:78px!important;
    height:32px!important;
    padding:0 6px!important;
    appearance:auto!important;
    -webkit-appearance:auto!important;
    font-size:16px!important;
    text-align:left!important;
  }
}
html[data-theme="dark"] #page-calendar :is(.planner-event,.week-schedule-event,.month-appointment).appointment-paid {
  box-shadow:inset 0 0 0 1px #247e5e,0 3px 10px rgba(0,0,0,.2)!important;
}

/* Visual staff scheduling calendar: shared schedule data, fast drag-to-create workflow. */
.schedule-calendar-modal{padding:18px}.schedule-calendar-sheet{width:min(1420px,100%);height:calc(100dvh - 36px);max-height:none;padding:20px;overflow:hidden;display:flex;flex-direction:column}.schedule-calendar-header{flex:0 0 auto}.schedule-calendar-header small{display:block;margin-top:5px;color:var(--muted);font-size:9px}.schedule-calendar-toolbar{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin:4px 0 10px}.schedule-calendar-toolbar .date-switcher{min-width:260px}.schedule-calendar-today{height:38px}.schedule-calendar-modes{margin-left:auto}.schedule-calendar-masters{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 9px;scrollbar-width:thin;flex:0 0 auto}.schedule-calendar-masters button{display:flex;align-items:center;gap:7px;flex:0 0 auto;height:38px;padding:4px 11px 4px 5px;border:1px solid var(--line);border-radius:11px;background:var(--surface-solid);color:var(--text);font:inherit;font-size:9px;font-weight:700;cursor:pointer}.schedule-calendar-masters button.active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 25%,transparent)}.schedule-master-avatar{width:28px;height:28px;border-radius:8px;object-fit:cover;display:grid;place-items:center;color:white;font-size:8px}.schedule-calendar-help{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 11px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:10px;background:var(--primary-soft);font-size:8px;flex:0 0 auto}.schedule-calendar-help span{font-weight:800;color:var(--primary)}.schedule-calendar-help small{color:var(--muted)}.schedule-calendar-body{position:relative;flex:1;min-height:0;margin-top:9px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.schedule-calendar-body.saving{pointer-events:none;opacity:.72}.schedule-timeline-head{position:sticky;z-index:8;top:0;display:grid;grid-template-columns:58px repeat(var(--schedule-columns,7),minmax(100px,1fr));min-width:760px;height:46px;background:var(--surface-solid);border-bottom:1px solid var(--line)}.schedule-timeline-head>strong{display:flex;align-items:center;justify-content:center;gap:5px;border-left:1px solid var(--line);font-size:10px}.schedule-timeline-head>strong small{color:var(--muted);text-transform:uppercase}.schedule-timeline-head>strong.today{color:var(--primary)}.schedule-timeline{position:relative;display:grid;grid-template-columns:58px repeat(var(--schedule-columns),minmax(100px,1fr));min-width:760px;height:var(--schedule-height);background:repeating-linear-gradient(to bottom,transparent 0,transparent 23px,color-mix(in srgb,var(--line) 52%,transparent) 23px,color-mix(in srgb,var(--line) 52%,transparent) 24px),repeating-linear-gradient(to bottom,transparent 0,transparent 47px,var(--line) 47px,var(--line) 48px)}.schedule-time-axis{position:relative;border-right:1px solid var(--line)}.schedule-time-axis span{position:absolute;right:9px;transform:translateY(-50%);color:var(--muted);font-size:8px}.schedule-day-column{position:relative;border-right:1px solid var(--line);touch-action:none;cursor:crosshair}.schedule-calendar-shift,.schedule-calendar-selection{position:absolute;z-index:3;left:4px;right:4px;padding:7px 8px;border-radius:9px;overflow:hidden;background:linear-gradient(145deg,var(--primary),#8174f6);color:white;box-shadow:0 5px 14px rgba(83,70,210,.2);font-size:8px}.schedule-calendar-shift strong,.schedule-calendar-shift span{display:block}.schedule-calendar-shift strong{font-size:9px}.schedule-calendar-shift span{margin-top:3px;opacity:.9}.schedule-calendar-shift button{position:absolute;z-index:2;right:4px;top:3px;width:21px;height:21px;border:0;border-radius:6px;background:rgba(255,255,255,.18);color:white;cursor:pointer}.schedule-calendar-selection{z-index:4;border:1px dashed white;background:color-mix(in srgb,var(--primary) 83%,transparent);pointer-events:none}.schedule-month-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));min-width:840px}.schedule-month-grid>b{position:sticky;top:0;z-index:3;padding:9px;text-align:center;background:var(--surface-muted);border-bottom:1px solid var(--line);font-size:8px;color:var(--muted)}.schedule-month-day{min-height:110px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.schedule-month-day>strong{display:grid;place-items:center;width:25px;height:25px;margin-left:auto;font-size:9px}.schedule-month-day.today>strong{border-radius:8px;background:var(--primary);color:white}.schedule-month-day.outside{opacity:.35}.schedule-month-day>span{position:relative;display:block;margin-top:8px;padding:8px 28px 8px 8px;border-radius:8px;background:var(--primary);color:white;font-size:8px;font-weight:750}.schedule-month-day>span button{position:absolute;right:3px;top:3px;border:0;background:transparent;color:white;font-size:15px;cursor:pointer}.schedule-month-day>small{display:block;margin-top:9px;color:var(--muted);font-size:8px}
.schedule-calendar-body[data-mode="day"] .schedule-timeline-head,.schedule-calendar-body[data-mode="day"] .schedule-timeline{min-width:0}@media(max-width:700px){.schedule-calendar-modal{padding:0}.schedule-calendar-sheet{width:100%;height:100dvh;padding:10px 8px calc(8px + var(--app-safe-bottom));border-radius:0}.schedule-calendar-header small{display:none}.schedule-calendar-toolbar{display:grid;grid-template-columns:1fr auto}.schedule-calendar-toolbar .date-switcher{min-width:0}.schedule-calendar-today{display:none}.schedule-calendar-modes{grid-column:1/-1;width:100%;margin:0}.schedule-calendar-modes button{flex:1}.schedule-calendar-help small{display:none}.schedule-calendar-masters button{height:36px}.schedule-timeline-head{grid-template-columns:45px repeat(var(--schedule-columns,7),minmax(82px,1fr));}.schedule-timeline{grid-template-columns:45px repeat(var(--schedule-columns),minmax(82px,1fr))}.schedule-time-axis span{right:5px}.schedule-calendar-shift{left:2px;right:2px;padding:5px 4px}.schedule-calendar-shift span{display:none}}
@media (max-width:650px) {
  #appointmentModal .appointment-header-datetime>label:first-child {
    overflow:visible!important;
  }
  #appointmentModal .appointment-creation-meta {
    width:min(297px,calc(100vw - 74px))!important;
    max-width:none!important;
  }
  .finance-staff-service-total,
  .finance-staff-service-list {
    padding-left:13px;
    padding-right:13px;
  }
  .finance-staff-service-row {
    grid-template-columns:64px minmax(0,1fr) auto;
    gap:7px;
  }
}

.staff-bonus-model-settings{margin:0 0 18px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid)}.staff-bonus-model-settings .staff-profile-section-heading strong{font-size:13px}.staff-bonus-model-settings .staff-profile-section-heading small,.staff-bonus-model-settings p{margin:4px 0 0;color:var(--muted);font-size:11px}.staff-bonus-model-content{display:grid;gap:10px;margin-top:10px}.staff-bonus-model-controls{display:flex;flex-wrap:wrap;gap:8px}.staff-bonus-model-controls button[hidden],.staff-bonus-model-preview[hidden]{display:none}.staff-bonus-model-preview{height:300px;max-width:360px;width:100%;margin:0 auto;display:grid;place-items:center;color:var(--muted);font-size:12px}.staff-bonus-model-preview model-viewer{display:block;width:100%;height:100%;background:transparent;--poster-color:transparent}

/* Shared MP4 character display in staff settings and personal bonuses. */
.staff-bonus-model[data-media-type="video"]{position:relative;overflow:hidden;border-radius:16px;background:#000}
.staff-bonus-model video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;border-radius:16px;cursor:pointer}
.staff-bonus-model video:focus-visible{outline:2px solid #a99aff;outline-offset:-2px}
.staff-bonus-model video[data-phase]{opacity:0;pointer-events:none;transform:scale(1.8);transform-origin:center;transition:opacity .42s linear}
.staff-bonus-model[data-character-scale="compact"] video[data-phase]{transform:scale(1.32)}
.staff-bonus-model[data-character-scale="vika"] video[data-phase]{transform:scale(1.2)}
.staff-bonus-model[data-phase="idle"] video[data-phase="idle"],.staff-bonus-model[data-phase="transition"] video[data-phase="transition"],.staff-bonus-model[data-phase="active"] video[data-phase="active"],.staff-bonus-model[data-phase="redTransition"] video[data-phase="redTransition"],.staff-bonus-model[data-phase="redActive"] video[data-phase="redActive"]{opacity:1}
.staff-bonus-model[data-crossfade="transition"] video[data-phase="transition"],.staff-bonus-model[data-crossfade="redTransition"] video[data-phase="redTransition"]{opacity:0}
.staff-bonus-model[data-crossfade="transition"] video[data-phase="active"],.staff-bonus-model[data-crossfade="redTransition"] video[data-phase="redActive"]{opacity:1}
.staff-bonus-model[data-phase] {cursor:pointer}
.staff-bonus-model[data-phase]:focus-visible{outline:2px solid #a99aff;outline-offset:2px}
.staff-bonus-model[data-bonus-prompt]::before{content:"";position:absolute;z-index:2;left:50%;top:51%;width:min(52%,220px);aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(91,255,158,.72);border-radius:50%;box-shadow:0 0 18px rgba(54,238,122,.5),inset 0 0 16px rgba(54,238,122,.18);animation:staffBonusTapPulse 1.7s ease-in-out infinite;pointer-events:none}
.staff-bonus-model[data-bonus-prompt]::after{content:"👆 Нажмите на героя · открыть 5%";position:absolute;z-index:3;left:50%;bottom:14px;transform:translateX(-50%);max-width:calc(100% - 24px);padding:9px 13px;border:1px solid rgba(92,255,156,.45);border-radius:999px;background:rgba(5,20,12,.88);box-shadow:0 0 15px rgba(45,210,105,.26);color:#fff;font-size:12px;font-weight:800;white-space:nowrap;pointer-events:none}
.staff-bonus-model[data-bonus-prompt="red"]::before{border-color:rgba(255,104,71,.8);box-shadow:0 0 18px rgba(255,81,48,.55),inset 0 0 16px rgba(255,81,48,.2)}
.staff-bonus-model[data-bonus-prompt="red"]::after{content:"👆 Нажмите на героя · открыть 10%";border-color:rgba(255,108,72,.5);background:rgba(32,10,8,.9);box-shadow:0 0 15px rgba(255,81,48,.27)}
@keyframes staffBonusTapPulse{50%{opacity:.38;transform:translate(-50%,-50%) scale(1.15)}}
@media(prefers-reduced-motion:reduce){.staff-bonus-model[data-bonus-prompt]::before{animation:none}}
.staff-bonus-model[data-bonus-locked]:after{content:"Зелёная аура откроется с бонусом 5%";position:absolute;z-index:3;left:12px;right:12px;bottom:14px;transform:none;padding:9px 12px;border-radius:12px;background:rgba(22,22,26,.88);color:#fff;text-align:center;font-size:12px;font-weight:700;pointer-events:none}
.staff-bonus-model[data-bonus-locked="red"]:after{content:"Красная аура откроется с бонусом 10%"}

/* Keep unfinished booking work within reach while browsing the CRM. */
:is(#bookingModal,#appointmentModal) .booking-minimize-button{flex:0 0 36px;width:36px;height:36px;margin-left:auto;border:1px solid var(--line);border-radius:11px;background:var(--surface-muted);font-size:24px;line-height:1;cursor:pointer}
:is(#bookingModal,#appointmentModal) .booking-minimize-button:hover{background:var(--violet-soft);color:var(--primary)}
:is(#bookingModal,#appointmentModal) .booking-minimize-button[hidden],.booking-draft-dock[hidden]{display:none!important}
.booking-draft-dock{position:fixed;z-index:45;left:244px;right:18px;bottom:12px;max-width:calc(100vw - 262px);background:transparent}
body:has(#bookingModal.open,#appointmentModal.open) .booking-draft-dock{z-index:60}
.booking-draft-list{display:flex;gap:8px;max-width:100%;padding:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.booking-draft-row{display:flex;flex:0 0 250px;min-width:0;min-height:60px;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:15px;background:var(--surface-solid);box-shadow:0 9px 26px rgba(26,23,52,.2);overflow:hidden}
.booking-draft-restore{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:3px 8px;padding:9px 11px;border:0;background:transparent;text-align:left;cursor:pointer}
.booking-draft-restore strong{color:var(--text);font-size:11px}.booking-draft-restore span{grid-column:1/-1;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.booking-draft-restore b{grid-column:2;grid-row:1;color:var(--primary);font-size:9px;white-space:nowrap}
.booking-draft-discard{flex:0 0 34px;display:grid;place-items:center;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer}.booking-draft-discard:hover{color:var(--rose);background:var(--rose-soft)}.booking-draft-discard svg{width:15px;height:15px}
@media(max-width:880px){.booking-draft-dock{left:12px;right:12px;max-width:none}}
@media(max-width:650px){:is(#bookingModal,#appointmentModal) .booking-minimize-button{position:absolute;z-index:5;top:30px;right:50px;width:36px;height:36px;margin:0}:is(#bookingModal,#appointmentModal) .modal-title-color-row{padding-right:40px}.booking-draft-dock{left:max(8px,var(--app-safe-left));right:max(8px,var(--app-safe-right));bottom:calc(82px + var(--app-safe-bottom));max-width:none}.booking-draft-row{flex-basis:210px;min-height:56px}}
@media(max-width:650px){
  #appointmentModal .modal-title-color-row{
    padding-right:82px!important;
  }
  #appointmentModal .modal-title-color-row .booking-header-master{
    flex:1 1 80px;
    width:auto;
    max-width:none;
    min-width:0;
  }
  #appointmentModal .booking-minimize-button{
    top:12px;
    right:50px;
  }
}
/* Freelancer-booked time stays in the shared CRM schedule but is visibly rental. */
.shift-day.rental.working{background:color-mix(in srgb,#bf8244 17%,var(--surface-solid))}
.shift-day.rental.working strong{background:#a96932}
.shift-day.rental.working span{color:#955a29}
.schedule-calendar-shift.rental{background:linear-gradient(145deg,#a96932,#c58b4f)}
.schedule-month-day.rental>span{background:#a96932}

/* Mobile calendar actions are collapsed behind the button beside Show all. */
.calendar-mobile-actions-toggle{display:none}
@media(max-width:650px){
  #page-calendar .calendar-scroll{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;scroll-behavior:auto}
  #page-calendar.mobile-calendar-actions-enabled .calendar-scroll:not(.calendar-horizontal-scrollable){overflow-x:hidden;touch-action:pan-y}
  #page-calendar.mobile-calendar-actions-enabled .day-calendar>.day-corner,
  #page-calendar.mobile-calendar-actions-enabled .day-calendar>.master-column-head{
    position:sticky!important;
    top:0!important;
    z-index:9;
    visibility:visible;
    background:var(--surface-solid);
  }
  #page-calendar.mobile-calendar-actions-enabled .day-calendar>.day-corner{z-index:11}
  #page-calendar.mobile-calendar-actions-enabled:not(.mobile-calendar-actions-open) .calendar-toolbar-actions{display:none}
  #page-calendar.mobile-calendar-actions-enabled .calendar-mobile-actions-toggle{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--muted);cursor:pointer}
  #page-calendar .calendar-mobile-actions-toggle svg{width:20px;height:20px;fill:var(--surface-solid);stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
  #page-calendar .calendar-mobile-actions-toggle[aria-expanded="true"]{color:var(--primary);border-color:var(--primary);background:var(--violet-soft)}
  #page-calendar.mobile-calendar-actions-enabled .calendar-view-controls{gap:4px}
  html #page-calendar.mobile-calendar-actions-enabled #calendarModes{width:auto;min-width:0;max-width:none;flex:1 1 0}
  #page-calendar.mobile-calendar-actions-enabled #calendarModes button{padding-inline:5px;font-size:9px}
  html #page-calendar.mobile-calendar-actions-enabled #calendarToday{position:static;flex:0 0 auto;min-width:0;min-height:34px;padding-inline:7px;font-size:9px}
  html .main:has(#page-calendar.active.mobile-calendar-actions-enabled)>.topbar{display:none!important}
  html .main:has(#page-calendar.active.mobile-calendar-actions-enabled){padding-top:0!important}
  html.telegram-mini-app:not(.master-access-mode) .main:has(#page-calendar.active.mobile-calendar-actions-enabled)>.content,
  html:not(.telegram-mini-app) .main:has(#page-calendar.active.mobile-calendar-actions-enabled)>.content{padding-top:0!important}
  #page-calendar.mobile-calendar-actions-enabled .calendar-view-controls{min-width:0;max-width:100%;box-sizing:border-box}
  #page-calendar.mobile-calendar-actions-enabled #calendarModes{overflow:hidden}
  #page-calendar.mobile-calendar-actions-enabled #calendarModes button{min-width:0;white-space:nowrap;padding-inline:3px}

}

@media(max-width:650px){
  #page-calendar.mobile-calendar-actions-enabled>.calendar-toolbar{row-gap:2px;margin-bottom:2px}
  #page-calendar.mobile-calendar-actions-enabled>.calendar-toolbar>.calendar-view-controls,
  #page-calendar.mobile-calendar-actions-enabled>.calendar-toolbar>.date-switcher{margin-block:0}
}

/* A small floating sphere reveals navigation without reserving calendar space. */
.mobile-nav-orb{display:none}
@media(max-width:650px){
  body:not(.auth-locked):has(#page-calendar.active.mobile-calendar-actions-enabled) .mobile-nav-orb{position:fixed;z-index:31;display:grid;place-items:center;left:50%;bottom:6px;transform:translateX(-50%);width:36px;height:36px;padding:0;border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:50%;background:radial-gradient(circle at 30% 25%,var(--surface-solid),var(--violet-soft) 55%,var(--primary));box-shadow:0 3px 12px rgba(40,30,85,.25),inset 0 1px 3px rgba(255,255,255,.8);cursor:pointer;color:var(--primary);transition:opacity .16s ease,transform .2s ease}
  .mobile-nav-orb span{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.65}
  .mobile-nav-orb[aria-expanded="true"] span{width:12px;height:2px;border-radius:1px}
  body:has(#page-calendar.active.mobile-calendar-actions-enabled):not(.mobile-nav-expanded) .mobile-nav{display:none!important}
  body.mobile-nav-expanded:has(#page-calendar.active.mobile-calendar-actions-enabled) .mobile-nav{bottom:6px;transform-origin:50% 100%;animation:mobileNavExpandFromOrb .2s cubic-bezier(.2,.8,.2,1) both}
  body.mobile-nav-expanded:has(#page-calendar.active.mobile-calendar-actions-enabled) .mobile-nav-orb{opacity:0;transform:translateX(-50%) scale(.45);pointer-events:none}
}
@keyframes mobileNavExpandFromOrb{from{opacity:.15;transform:scale(.12,.52)}to{opacity:1;transform:scale(1)}}

/* Mobile admin pages share one floating control and do not reserve a header row. */
.mobile-admin-tools-dock{display:none}
@media(max-width:650px){
  body.mobile-admin-chrome-compact .main>.topbar{display:none!important}
  body.mobile-admin-chrome-compact .main{padding-top:0!important}
  html body.mobile-admin-chrome-compact .main>.content{padding-top:0!important}
  body.mobile-admin-chrome-compact .mobile-admin-tools-dock{
    position:fixed;
    z-index:47;
    top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 7px);
    right:max(10px,var(--app-safe-right));
    display:block;
    width:40px;
    height:40px;
    pointer-events:none;
  }
  body.mobile-admin-chrome-compact .mobile-admin-tools-dock>.tools-control{position:relative;pointer-events:auto}
  body.mobile-admin-chrome-compact .mobile-admin-tools-dock .tools-toggle{
    width:40px;
    height:40px;
    border-radius:12px;
    background:color-mix(in srgb,var(--surface-solid) 92%,transparent);
    box-shadow:0 7px 20px rgba(29,25,70,.15);
    backdrop-filter:blur(18px);
  }
  body.mobile-admin-chrome-compact .mobile-admin-tools-dock .tools-popover{
    top:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-top,0px)) + 54px);
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  body.mobile-admin-chrome-compact .mobile-admin-tools-dock .mobile-management-action:not([hidden]){display:grid}
  body.mobile-admin-chrome-compact .page>.page-heading{padding-right:48px}
}

/* Direct account settings entry on the mobile overview. */
.mobile-overview-settings{display:none}
@media(max-width:650px){
 body.mobile-admin-chrome-compact:has(#page-overview.active) .mobile-admin-tools-dock>.tools-control{display:none}
 body.mobile-admin-chrome-compact:has(#page-overview.active) .mobile-overview-settings{
  display:grid;pointer-events:auto;width:40px;height:40px;padding:9px;border-radius:12px;
  color:var(--text);background:color-mix(in srgb,var(--surface-solid) 92%,transparent);
  box-shadow:0 7px 20px rgba(29,25,70,.15);backdrop-filter:blur(18px);
 }
}

/* The browser calendar owns scrolling; the surrounding page fits the viewport. */
html.browser-calendar-viewport:has(#page-calendar.active),
html.browser-calendar-viewport body:has(#page-calendar.active){height:100dvh;min-height:0;overflow:hidden}
html.browser-calendar-viewport body:has(#page-calendar.active){padding-bottom:0}
html.browser-calendar-viewport .app-shell:has(#page-calendar.active){height:100%;min-height:0}
html.browser-calendar-viewport .main:has(#page-calendar.active){height:100%;min-height:0}
html.browser-calendar-viewport #page-calendar .calendar-card{border:0}

/* Desktop already keeps date navigation above the scrolling calendar. */
@media(min-width:651px){
  #calendarStickyMasters .calendar-sticky-date{display:none}
  #calendarStickyMasters .calendar-sticky-masters-viewport{top:0}
}

.consumable-row{cursor:pointer}
.consumable-row:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

.platform-enterprise-list{display:grid;gap:12px}.platform-enterprise-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-muted)}.platform-enterprise-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.platform-enterprise-head strong{font-size:11px}.platform-enterprise-head small{display:block;margin-top:4px;color:var(--muted);font-size:8px}.platform-plan-select{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font-size:9px}.platform-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:13px}.platform-feature{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.platform-feature input{margin-top:2px}.platform-feature span{min-width:0}.platform-feature b,.platform-feature small{display:block}.platform-feature b{font-size:8px}.platform-feature small{margin-top:3px;color:var(--muted);font-size:7px;line-height:1.35}.platform-save-access{margin-top:12px}
@media(max-width:880px){.platform-features{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.platform-features{grid-template-columns:1fr}.platform-enterprise-head{display:grid}.platform-plan-select{width:100%}}
