/* ==========================================================================
   Salon desk (module salon) — reception / POS at /desk/*
   Uses the shared design system; adds subtle plum & gold salon accents.
   Everything is scoped under .desk, .desk-print or desk-specific class names.
   ========================================================================== */
.desk,.desk-print,.desk-w{
  --plum:#4A1942; --plum-2:#6E2C63; --plum-bg:#F6EEF4; --gold:#B88A2E; --gold-2:#D9AE2B; --gold-bg:#FBF4E4;
  --st-requested:#B7791F; --st-confirmed:#2563A8; --st-checked_in:#6D3FB3; --st-in_service:#8B3A62; --st-completed:#1F8A5B; --st-no_show:#C2410C; --st-cancelled:#8A7D82;
  --slot-h:40px;
}

/* ---------- shell: secondary nav ---------- */
.page.desk{padding-top:0}
:is(.desk,.desk-print,.desk-w) .desk-top{position:sticky;top:60px;z-index:20;margin:0 -32px 22px;padding:0 32px;background:linear-gradient(180deg,rgba(250,246,243,.97),rgba(250,246,243,.92));backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
:is(.desk,.desk-print,.desk-w) .desk-nav{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px 0;-webkit-overflow-scrolling:touch}
:is(.desk,.desk-print,.desk-w) .desk-nav::-webkit-scrollbar{display:none}
:is(.desk,.desk-print,.desk-w) .desk-nav a{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;min-height:42px;border-radius:10px;color:var(--ink-2);font-weight:600;font-size:14px;white-space:nowrap;position:relative}
:is(.desk,.desk-print,.desk-w) .desk-nav a .i{width:17px;height:17px;color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .desk-nav a:hover{background:var(--plum-bg);color:var(--plum);text-decoration:none}
:is(.desk,.desk-print,.desk-w) .desk-nav a:hover .i{color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .desk-nav a.on{background:var(--plum);color:#fff;box-shadow:0 2px 8px -3px rgba(74,25,66,.6)}
:is(.desk,.desk-print,.desk-w) .desk-nav a.on .i{color:var(--gold-2)}
:is(.desk,.desk-print,.desk-w) .desk-nav a.pos:not(.on){background:var(--gold-bg);color:#6b4b0c;border:1px solid #efdcae}
:is(.desk,.desk-print,.desk-w) .desk-nav a.pos:not(.on) .i{color:var(--gold)}
:is(.desk,.desk-print,.desk-w) .desk-nav .cnt{margin-left:2px}
:is(.desk,.desk-print,.desk-w) .desk-h{margin-bottom:18px}
:is(.desk,.desk-print,.desk-w) .desk-h h1{font-size:26px}
:is(.desk,.desk-print,.desk-w) .desk .eyebrow{color:var(--plum-2)}

/* ---------- status chips ---------- */
:is(.desk,.desk-print,.desk-w) .bk-st{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:30px;font-size:12px;font-weight:650;white-space:nowrap;background:var(--grey-bg);color:var(--ink-2)}
:is(.desk,.desk-print,.desk-w) .bk-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
:is(.desk,.desk-print,.desk-w) .st-requested{background:var(--amber-bg);color:var(--st-requested)}
:is(.desk,.desk-print,.desk-w) .st-confirmed{background:var(--blue-bg);color:var(--st-confirmed)}
:is(.desk,.desk-print,.desk-w) .st-checked_in{background:var(--violet-bg);color:var(--st-checked_in)}
:is(.desk,.desk-print,.desk-w) .st-in_service{background:var(--plum-bg);color:var(--st-in_service)}
:is(.desk,.desk-print,.desk-w) .st-completed{background:var(--green-bg);color:var(--st-completed)}
:is(.desk,.desk-print,.desk-w) .st-no_show{background:var(--red-bg);color:var(--st-no_show)}
:is(.desk,.desk-print,.desk-w) .st-cancelled{background:var(--grey-bg);color:var(--st-cancelled);text-decoration:line-through}
:is(.desk,.desk-print,.desk-w) .dot-staff{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;vertical-align:middle}

/* ---------- KPI strip ---------- */
:is(.desk,.desk-print,.desk-w) .kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}
:is(.desk,.desk-print,.desk-w) .kpi{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--sh-1);color:var(--ink);display:flex;flex-direction:column;gap:2px;min-width:0;position:relative;overflow:hidden}
:is(.desk,.desk-print,.desk-w) a.kpi:hover{border-color:color-mix(in srgb,var(--plum) 35%,var(--line));text-decoration:none}
:is(.desk,.desk-print,.desk-w) .kpi .k-l{font-size:12.5px;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:6px}
:is(.desk,.desk-print,.desk-w) .kpi .k-l .i{width:15px;height:15px;color:var(--plum-2)}
:is(.desk,.desk-print,.desk-w) .kpi .k-v{font:650 26px/1.15 var(--font);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .kpi .k-s{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .kpi.gold{background:linear-gradient(135deg,#fff 40%,var(--gold-bg));border-color:#efdcae}
:is(.desk,.desk-print,.desk-w) .kpi.gold .k-v{color:#6b4b0c}
:is(.desk,.desk-print,.desk-w) .kpi.alert{border-color:#f2d9a8;background:linear-gradient(135deg,#fff 40%,var(--amber-bg))}
:is(.desk,.desk-print,.desk-w) .kpi .k-bar{display:flex;height:6px;border-radius:6px;overflow:hidden;background:var(--line-2);margin-top:6px}
:is(.desk,.desk-print,.desk-w) .kpi .k-bar i{display:block;height:100%}
:is(.desk,.desk-print,.desk-w) .m-cash{background:#2a78d6}:is(.desk,.desk-print,.desk-w) .m-mpesa{background:#1baf7a}:is(.desk,.desk-print,.desk-w) .m-card{background:#eb6834}:is(.desk,.desk-print,.desk-w) .m-bank{background:#e87ba4}:is(.desk,.desk-print,.desk-w) .m-voucher{background:#eda100}:is(.desk,.desk-print,.desk-w) .m-other{background:#8A7D82}
:is(.desk,.desk-print,.desk-w) .k-bar i+i{margin-left:2px}
:is(.desk,.desk-print,.desk-w) .legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted);margin-top:6px}
:is(.desk,.desk-print,.desk-w) .legend span{display:inline-flex;align-items:center;gap:5px}
:is(.desk,.desk-print,.desk-w) .legend i{width:8px;height:8px;border-radius:2px;display:inline-block}

/* ---------- Today board ---------- */
:is(.desk,.desk-print,.desk-w) .board{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
:is(.desk,.desk-print,.desk-w) .agenda{list-style:none;margin:0;padding:0}
:is(.desk,.desk-print,.desk-w) .agenda>li{display:grid;grid-template-columns:62px 4px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line-2)}
:is(.desk,.desk-print,.desk-w) .agenda>li:last-child{border-bottom:0}
:is(.desk,.desk-print,.desk-w) .agenda .tm{font-weight:700;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.1}
:is(.desk,.desk-print,.desk-w) .agenda .tm small{display:block;font-weight:500;color:var(--muted);font-size:12px}
:is(.desk,.desk-print,.desk-w) .agenda .bar{width:4px;align-self:stretch;border-radius:4px;background:var(--line)}
:is(.desk,.desk-print,.desk-w) .agenda .who{min-width:0}
:is(.desk,.desk-print,.desk-w) .agenda .who b{display:block;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .agenda .who small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .agenda .acts{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .agenda li.past{opacity:.6}
:is(.desk,.desk-print,.desk-w) .agenda li.now{background:linear-gradient(90deg,var(--plum-bg),transparent 60%)}
:is(.desk,.desk-print,.desk-w) .staff-strip{display:flex;gap:8px;overflow-x:auto;padding:12px 18px;border-bottom:1px solid var(--line-2);scrollbar-width:thin}
:is(.desk,.desk-print,.desk-w) .staff-pill{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:30px;background:#fff;white-space:nowrap;font-size:13px;color:var(--ink)}
:is(.desk,.desk-print,.desk-w) .staff-pill .av{width:28px;height:28px;font-size:11px}
:is(.desk,.desk-print,.desk-w) .staff-pill small{color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .staff-pill.busy{border-color:color-mix(in srgb,var(--plum) 40%,var(--line));background:var(--plum-bg)}
:is(.desk,.desk-print,.desk-w) .bk-req{padding:14px 18px;border-bottom:1px solid var(--line-2)}
:is(.desk,.desk-print,.desk-w) .bk-req:last-child{border-bottom:0}
:is(.desk,.desk-print,.desk-w) .bk-req .r1{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
:is(.desk,.desk-print,.desk-w) .bk-req .r1 b{font-weight:650}
:is(.desk,.desk-print,.desk-w) .bk-req .r2{font-size:13px;color:var(--muted);margin:3px 0 10px}
:is(.desk,.desk-print,.desk-w) .bk-req .btn-row .btn{flex:1 1 auto}
:is(.desk,.desk-print,.desk-w) .btn.wa{background:#1FA855;color:#fff;border-color:#1FA855}
:is(.desk,.desk-print,.desk-w) .btn.wa:hover{background:#178a45}
:is(.desk,.desk-print,.desk-w) .btn.wa .i{color:#fff}
:is(.desk,.desk-print,.desk-w) .mini{list-style:none;margin:0;padding:0}
:is(.desk,.desk-print,.desk-w) .mini li{display:flex;gap:10px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line-2);font-size:14px}
:is(.desk,.desk-print,.desk-w) .mini li:last-child{border-bottom:0}
:is(.desk,.desk-print,.desk-w) .mini .grow{min-width:0}
:is(.desk,.desk-print,.desk-w) .mini .grow b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .mini .grow small{color:var(--muted);display:block}
:is(.desk,.desk-print,.desk-w) .gift-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--gold-bg);color:var(--gold);flex:none}
:is(.desk,.desk-print,.desk-w) .warn-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--amber-bg);color:var(--amber);flex:none}

/* ---------- Calendar ---------- */
:is(.desk,.desk-print,.desk-w) .cal-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
:is(.desk,.desk-print,.desk-w) .cal-bar .seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
:is(.desk,.desk-print,.desk-w) .cal-bar .seg a{padding:9px 14px;font-weight:600;font-size:14px;color:var(--ink-2);min-height:40px;display:inline-flex;align-items:center}
:is(.desk,.desk-print,.desk-w) .cal-bar .seg a+a{border-left:1px solid var(--line)}
:is(.desk,.desk-print,.desk-w) .cal-bar .seg a.on{background:var(--plum);color:#fff}
:is(.desk,.desk-print,.desk-w) .cal-bar .seg a:hover{text-decoration:none}
:is(.desk,.desk-print,.desk-w) .cal-bar .date-l{font:600 18px var(--display);margin:0 4px}
:is(.desk,.desk-print,.desk-w) .cal-bar input[type=date]{width:auto}
:is(.desk,.desk-print,.desk-w) .cal-bar select{width:auto;min-width:160px}
:is(.desk,.desk-print,.desk-w) .cal-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--sh-1);max-height:calc(100vh - 230px);position:relative}
:is(.desk,.desk-print,.desk-w) .cal{display:grid;grid-template-columns:58px repeat(var(--cols),minmax(150px,1fr));min-width:fit-content;position:relative}
:is(.desk,.desk-print,.desk-w) .cal-h{position:sticky;top:0;z-index:6;background:#FCFAF8;border-bottom:1px solid var(--line);padding:8px 10px;display:flex;align-items:center;gap:8px;min-height:52px;font-weight:650;font-size:14px;border-left:1px solid var(--line-2)}
:is(.desk,.desk-print,.desk-w) .cal-h small{display:block;font-weight:500;color:var(--muted);font-size:12px}
:is(.desk,.desk-print,.desk-w) .cal-h .av{width:30px;height:30px;font-size:11px;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--c,var(--line))}
:is(.desk,.desk-print,.desk-w) .cal-h.corner{position:sticky;left:0;z-index:8;border-left:0}
:is(.desk,.desk-print,.desk-w) .cal-h.today{background:var(--plum-bg)}
:is(.desk,.desk-print,.desk-w) .cal-times{position:sticky;left:0;z-index:5;background:#fff;border-right:1px solid var(--line)}
:is(.desk,.desk-print,.desk-w) .cal-times div{height:var(--slot-h);font-size:11.5px;color:var(--muted);text-align:right;padding:0 8px;transform:translateY(-7px);font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .cal-times div.hr{color:var(--ink-2);font-weight:650}
:is(.desk,.desk-print,.desk-w) .cal-col{position:relative;border-left:1px solid var(--line-2);background-image:repeating-linear-gradient(180deg,transparent 0,transparent calc(var(--slot-h) - 1px),var(--line-2) calc(var(--slot-h) - 1px),var(--line-2) var(--slot-h))}
:is(.desk,.desk-print,.desk-w) .cal-col.off{background-color:#FAF7F5}
:is(.desk,.desk-print,.desk-w) .cal-col .slot{display:block;height:var(--slot-h);position:relative}
:is(.desk,.desk-print,.desk-w) .cal-col .slot:hover{background:color-mix(in srgb,var(--plum) 6%,transparent);text-decoration:none}
:is(.desk,.desk-print,.desk-w) .cal-col .slot:hover::after{content:"+ Book " attr(data-t);position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--plum-2);font-weight:600}
:is(.desk,.desk-print,.desk-w) .appt{position:absolute;left:4px;right:4px;border-radius:9px;padding:5px 8px 5px 10px;font-size:12.5px;line-height:1.3;overflow:hidden;color:var(--ink);background:color-mix(in srgb,var(--c) 14%,#fff);border:1px solid color-mix(in srgb,var(--c) 35%,#fff);border-left:4px solid var(--c);z-index:2;box-shadow:0 1px 2px rgba(0,0,0,.05)}
:is(.desk,.desk-print,.desk-w) .appt:hover{text-decoration:none;box-shadow:var(--sh-2);z-index:4}
:is(.desk,.desk-print,.desk-w) .appt b{display:block;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(.desk,.desk-print,.desk-w) .appt .t{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:600;font-size:11.5px}
:is(.desk,.desk-print,.desk-w) .appt .s{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
:is(.desk,.desk-print,.desk-w) .appt .bk-st{position:absolute;right:5px;top:5px;padding:1px 7px 1px 6px;font-size:10.5px}
:is(.desk,.desk-print,.desk-w) .appt.st-requested{border-style:dashed;border-left-style:solid}
:is(.desk,.desk-print,.desk-w) .appt.st-completed{opacity:.72}
:is(.desk,.desk-print,.desk-w) .appt.st-no_show{opacity:.55;background:repeating-linear-gradient(135deg,#fff,#fff 6px,var(--red-bg) 6px,var(--red-bg) 12px)}
:is(.desk,.desk-print,.desk-w) .appt.conf{box-shadow:0 0 0 2px var(--red);}
:is(.desk,.desk-print,.desk-w) .appt.conf::after{content:"⚠ overlap";position:absolute;right:5px;bottom:4px;font-size:10px;font-weight:700;color:var(--red)}
:is(.desk,.desk-print,.desk-w) .appt.away{background-image:repeating-linear-gradient(135deg,transparent,transparent 8px,color-mix(in srgb,var(--c) 10%,transparent) 8px,color-mix(in srgb,var(--c) 10%,transparent) 16px)}
:is(.desk,.desk-print,.desk-w) .appt .addr{display:flex;gap:4px;align-items:center;font-size:11.5px;color:var(--plum-2);font-weight:600}
:is(.desk,.desk-print,.desk-w) .appt .addr .i{width:12px;height:12px}
:is(.desk,.desk-print,.desk-w) .nowline{position:absolute;left:0;right:0;height:2px;background:var(--red);z-index:3;pointer-events:none}
:is(.desk,.desk-print,.desk-w) .nowline::before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--red)}
:is(.desk,.desk-print,.desk-w) .cal-un{margin-top:14px}
:is(.desk,.desk-print,.desk-w) .cal-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:var(--muted);margin-top:10px}

/* ---------- forms: booking ---------- */
:is(.desk,.desk-print,.desk-w) .desk-form .form-grid{gap:14px}
:is(.desk,.desk-print,.desk-w) .seg-radio{display:flex;flex-wrap:wrap;gap:8px}
:is(.desk,.desk-print,.desk-w) .seg-radio label{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fff;font-weight:550;min-height:44px}
:is(.desk,.desk-print,.desk-w) .seg-radio input{accent-color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .seg-radio label:has(input:checked){border-color:var(--plum);background:var(--plum-bg);color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .party{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
:is(.desk,.desk-print,.desk-w) .party .pq{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}
:is(.desk,.desk-print,.desk-w) .party .pq b{display:block;font-size:14px}
:is(.desk,.desk-print,.desk-w) .party .pq small{color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .stepper{display:flex;align-items:center;gap:6px;margin-top:8px}
:is(.desk,.desk-print,.desk-w) .stepper button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--soft);font-size:20px;font-weight:600;cursor:pointer;color:var(--plum);line-height:1}
:is(.desk,.desk-print,.desk-w) .stepper button:active{background:var(--plum-bg)}
:is(.desk,.desk-print,.desk-w) .stepper input{width:58px!important;text-align:center;font-weight:700;font-size:16px;padding:8px 4px!important}
:is(.desk,.desk-print,.desk-w) .quote-box{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(135deg,var(--plum),var(--plum-2));color:#fff;border-radius:14px;padding:14px 18px}
:is(.desk,.desk-print,.desk-w) .quote-box small{color:rgba(255,255,255,.75);display:block}
:is(.desk,.desk-print,.desk-w) .quote-box b{font:650 24px var(--font);font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .quote-box .q2{text-align:right}
:is(.desk,.desk-print,.desk-w) .ac{position:relative}
:is(.desk,.desk-print,.desk-w) .ac-list{position:absolute;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);z-index:30;max-height:300px;overflow:auto;display:none}
:is(.desk,.desk-print,.desk-w) .ac-list.open{display:block}
:is(.desk,.desk-print,.desk-w) .ac-list button{display:flex;width:100%;text-align:left;gap:10px;align-items:center;padding:10px 12px;border:0;background:none;font:inherit;cursor:pointer;border-bottom:1px solid var(--line-2)}
:is(.desk,.desk-print,.desk-w) .ac-list button:hover,:is(.desk,.desk-print,.desk-w) .ac-list button.hl{background:var(--plum-bg)}
:is(.desk,.desk-print,.desk-w) .ac-list button small{color:var(--muted);display:block}
:is(.desk,.desk-print,.desk-w) .ac-list .new{color:var(--plum);font-weight:600}
:is(.desk,.desk-print,.desk-w) .client-card{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid color-mix(in srgb,var(--plum) 25%,var(--line));border-radius:12px;background:var(--plum-bg)}
:is(.desk,.desk-print,.desk-w) .client-card .grow{min-width:0}
:is(.desk,.desk-print,.desk-w) .client-card b{display:block}
:is(.desk,.desk-print,.desk-w) .client-card small{color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .chips.tight .chip{padding:3px 9px;font-size:12px}

/* ---------- POS ---------- */
.page.desk.pos-page .page-h.desk-h{display:none}
:is(.desk,.desk-print,.desk-w) .pos{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:18px;align-items:start}
:is(.desk,.desk-print,.desk-w) .pos-cat{min-width:0}
:is(.desk,.desk-print,.desk-w) .pos-search{display:flex;gap:8px;margin-bottom:10px}
:is(.desk,.desk-print,.desk-w) .pos-search .search{flex:1}
:is(.desk,.desk-print,.desk-w) .pos-search .search input{min-width:0;height:46px;font-size:15px}
:is(.desk,.desk-print,.desk-w) .pos-kinds{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .pos-kinds button{padding:9px 14px;min-height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;font:600 14px var(--font);color:var(--ink-2);cursor:pointer;display:inline-flex;gap:7px;align-items:center}
:is(.desk,.desk-print,.desk-w) .pos-kinds button.on{background:var(--plum);color:#fff;border-color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .pos-kinds button .i{width:16px;height:16px}
:is(.desk,.desk-print,.desk-w) .cat-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:6px;scrollbar-width:thin}
:is(.desk,.desk-print,.desk-w) .cat-chips button{white-space:nowrap;padding:7px 12px;border-radius:30px;border:1px solid var(--line);background:var(--soft);font:600 13px var(--font);color:var(--ink-2);cursor:pointer;min-height:36px}
:is(.desk,.desk-print,.desk-w) .cat-chips button.on{background:var(--gold-bg);border-color:var(--gold);color:#6b4b0c}
:is(.desk,.desk-print,.desk-w) .tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
:is(.desk,.desk-print,.desk-w) .tile{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:92px;text-align:left;padding:12px 13px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit;color:var(--ink);box-shadow:var(--sh-1);transition:transform .08s,border-color .15s}
:is(.desk,.desk-print,.desk-w) .tile:hover{border-color:color-mix(in srgb,var(--plum) 40%,var(--line))}
:is(.desk,.desk-print,.desk-w) .tile:active{transform:scale(.98)}
:is(.desk,.desk-print,.desk-w) .tile b{font-weight:650;font-size:14px;line-height:1.25}
:is(.desk,.desk-print,.desk-w) .tile .tp{display:flex;justify-content:space-between;align-items:flex-end;gap:6px;font-size:13px}
:is(.desk,.desk-print,.desk-w) .tile .tp .pr{font-weight:700;color:var(--plum);font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .tile .tp .pr.req{color:var(--amber);font-weight:600;font-size:12px}
:is(.desk,.desk-print,.desk-w) .tile .tags{display:flex;gap:4px;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .tile .tag{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:5px;background:var(--soft);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
:is(.desk,.desk-print,.desk-w) .tile .tag.cl{background:var(--violet-bg);color:var(--violet)}
:is(.desk,.desk-print,.desk-w) .tile .tag.vr{background:var(--gold-bg);color:#6b4b0c}
:is(.desk,.desk-print,.desk-w) .tile .tag.ch{background:var(--amber-bg);color:var(--amber)}
:is(.desk,.desk-print,.desk-w) .tile.low .tp .st{color:var(--red);font-weight:600}
:is(.desk,.desk-print,.desk-w) .ticket{position:sticky;top:130px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-2);display:flex;flex-direction:column;max-height:calc(100vh - 150px);overflow:hidden}
:is(.desk,.desk-print,.desk-w) .ticket-h{padding:14px 16px;border-bottom:1px solid var(--line-2);background:linear-gradient(135deg,var(--plum),var(--plum-2));color:#fff;border-radius:16px 16px 0 0}
:is(.desk,.desk-print,.desk-w) .ticket-h h3{color:#fff;margin:0;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:8px}
:is(.desk,.desk-print,.desk-w) .ticket-h h3 small{font-weight:500;color:rgba(255,255,255,.75)}
:is(.desk,.desk-print,.desk-w) .ticket-b{overflow:auto;flex:1;padding:12px 14px}
:is(.desk,.desk-print,.desk-w) .ticket-f{border-top:1px solid var(--line);padding:12px 14px;background:#FCFAF8;border-radius:0 0 16px 16px}
:is(.desk,.desk-print,.desk-w) .t-client{margin-bottom:12px}
:is(.desk,.desk-print,.desk-w) .t-client input{height:44px}
:is(.desk,.desk-print,.desk-w) .tlines{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
:is(.desk,.desk-print,.desk-w) .tline{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;position:relative}
:is(.desk,.desk-print,.desk-w) .tline .l1{display:flex;gap:8px;align-items:flex-start}
:is(.desk,.desk-print,.desk-w) .tline .l1 b{flex:1;font-weight:650;font-size:14px;line-height:1.3;min-width:0}
:is(.desk,.desk-print,.desk-w) .tline .l1 .lt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .tline .rm{border:0;background:none;color:var(--muted);cursor:pointer;padding:2px;margin:-2px -4px 0 0;width:28px;height:28px;border-radius:7px}
:is(.desk,.desk-print,.desk-w) .tline .rm:hover{background:var(--red-bg);color:var(--red)}
:is(.desk,.desk-print,.desk-w) .tline .l2{display:grid;grid-template-columns:96px 1fr 1fr;gap:6px;margin-top:8px}
:is(.desk,.desk-print,.desk-w) .tline .l2 select,:is(.desk,.desk-print,.desk-w) .tline .l2 input{padding:7px 8px;font-size:13px;height:38px;border-radius:8px}
:is(.desk,.desk-print,.desk-w) .tline .l2 .full{grid-column:1/-1}
:is(.desk,.desk-print,.desk-w) .tline .qty{display:flex;align-items:center;border:1px solid #DDD2CD;border-radius:8px;overflow:hidden;height:38px}
:is(.desk,.desk-print,.desk-w) .tline .qty button{width:30px;height:100%;border:0;background:var(--soft);cursor:pointer;font-weight:700;color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .tline .qty input{border:0!important;border-radius:0!important;text-align:center;width:36px!important;padding:0!important;height:100%!important;box-shadow:none!important}
:is(.desk,.desk-print,.desk-w) .tline .warn{font-size:12px;color:var(--amber);margin-top:6px;display:flex;gap:5px}
:is(.desk,.desk-print,.desk-w) .tline.kind-voucher{border-color:#efdcae;background:var(--gold-bg)}
:is(.desk,.desk-print,.desk-w) .tline.kind-product .l1 b::before{content:"Product · ";color:var(--muted);font-weight:500}
:is(.desk,.desk-print,.desk-w) .tline.clinic{border-color:#d9c9f0;background:#FBF8FE}
:is(.desk,.desk-print,.desk-w) .t-empty{text-align:center;padding:26px 10px;color:var(--muted);font-size:14px;border:2px dashed var(--line);border-radius:12px}
:is(.desk,.desk-print,.desk-w) .t-empty .i{width:30px;height:30px;color:color-mix(in srgb,var(--plum) 45%,#fff);display:block;margin:0 auto 6px}
:is(.desk,.desk-print,.desk-w) .t-sec{border-top:1px dashed var(--line);padding-top:10px;margin-top:10px}
:is(.desk,.desk-print,.desk-w) .t-sec>summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--plum);list-style:none;display:flex;gap:6px;align-items:center;padding:4px 0}
:is(.desk,.desk-print,.desk-w) .t-sec>summary::-webkit-details-marker{display:none}
:is(.desk,.desk-print,.desk-w) .t-row{display:flex;gap:6px;align-items:center;margin-top:8px}
:is(.desk,.desk-print,.desk-w) .t-row>*{min-width:0}
:is(.desk,.desk-print,.desk-w) .t-row select,:is(.desk,.desk-print,.desk-w) .t-row input{height:40px;padding:7px 9px;font-size:14px}
:is(.desk,.desk-print,.desk-w) .totals{font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .totals div{display:flex;justify-content:space-between;padding:3px 0;font-size:14px;color:var(--ink-2)}
:is(.desk,.desk-print,.desk-w) .totals .grand{font-size:22px;font-weight:750;color:var(--ink);padding-top:6px;margin-top:4px;border-top:1px solid var(--line)}
:is(.desk,.desk-print,.desk-w) .totals .due{font-weight:700;color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .totals .chg{font-weight:700;color:var(--green);font-size:16px}
:is(.desk,.desk-print,.desk-w) .paybtns{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0 6px}
:is(.desk,.desk-print,.desk-w) .paybtns button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px;border-radius:11px;border:1px solid var(--line);background:#fff;font:650 12.5px var(--font);color:var(--ink-2);cursor:pointer;min-height:56px}
:is(.desk,.desk-print,.desk-w) .paybtns button .i{width:20px;height:20px;color:var(--plum-2)}
:is(.desk,.desk-print,.desk-w) .paybtns button:hover{border-color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .pays{display:flex;flex-direction:column;gap:6px}
:is(.desk,.desk-print,.desk-w) .pay{display:grid;grid-template-columns:76px 1fr 1fr 30px;gap:6px;align-items:center;padding:8px;border-radius:10px;background:var(--soft)}
:is(.desk,.desk-print,.desk-w) .pay .pm{font-weight:700;font-size:13px;display:flex;align-items:center;gap:5px}
:is(.desk,.desk-print,.desk-w) .pay .pm .i{width:15px;height:15px}
:is(.desk,.desk-print,.desk-w) .pay input{height:38px;padding:6px 8px;font-size:14px}
:is(.desk,.desk-print,.desk-w) .pay .msg{grid-column:2/-1;font-size:12px;color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .pay .msg.bad{color:var(--red)}
:is(.desk,.desk-print,.desk-w) .pay .msg.ok{color:var(--green)}
:is(.desk,.desk-print,.desk-w) .pay .rm{border:0;background:none;cursor:pointer;color:var(--muted);height:30px;border-radius:7px}
:is(.desk,.desk-print,.desk-w) .pay .rm:hover{color:var(--red);background:var(--red-bg)}
:is(.desk,.desk-print,.desk-w) .btn.pay-go{width:100%;padding:15px;font-size:16px;border-radius:12px;margin-top:10px;background:var(--plum);color:#fff}
:is(.desk,.desk-print,.desk-w) .btn.pay-go:hover{background:color-mix(in srgb,var(--plum) 85%,#000)}
:is(.desk,.desk-print,.desk-w) .btn.pay-go[disabled]{opacity:.45}
:is(.desk,.desk-print,.desk-w) .approve{margin-top:8px;padding:10px;border-radius:10px;background:var(--amber-bg);border:1px solid #f2d9a8;font-size:13px}
:is(.desk,.desk-print,.desk-w) .approve .t-row input{background:#fff}
:is(.desk,.desk-print,.desk-w) .pos-bar{display:none}
:is(.desk,.desk-print,.desk-w) .change-due{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:8px;background:#fff;color:var(--green);font-size:15px}
:is(.desk,.desk-print,.desk-w) .big-change{font:750 34px var(--font);color:var(--green);font-variant-numeric:tabular-nums}

/* ---------- misc desk lists ---------- */
:is(.desk,.desk-print,.desk-w) .desk .t td .sub{display:block;font-size:12.5px;color:var(--muted)}
:is(.desk,.desk-print,.desk-w) .price-0{color:var(--amber);font-weight:650}
:is(.desk,.desk-print,.desk-w) .set-price{display:inline-flex;gap:4px;align-items:center}
:is(.desk,.desk-print,.desk-w) .set-price input{width:110px!important;padding:6px 8px!important;height:34px}
:is(.desk,.desk-print,.desk-w) .cat-h{display:flex;align-items:center;gap:10px}
:is(.desk,.desk-print,.desk-w) .cat-h .thumb{width:38px;height:38px;border-radius:10px;background:var(--plum-bg) center/cover;flex:none;display:grid;place-items:center;color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .svc-row.inactive td{opacity:.55}
:is(.desk,.desk-print,.desk-w) .vtable{width:100%;border-collapse:collapse}
:is(.desk,.desk-print,.desk-w) .vtable td{padding:4px 4px 4px 0}
:is(.desk,.desk-print,.desk-w) .vtable input{padding:8px 10px}
:is(.desk,.desk-print,.desk-w) .order-btns{display:inline-flex;gap:2px}
:is(.desk,.desk-print,.desk-w) .order-btns .btn{padding:4px 6px}
:is(.desk,.desk-print,.desk-w) .swatches{display:flex;gap:6px;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .swatches label{width:34px;height:34px;border-radius:50%;cursor:pointer;display:grid;place-items:center;border:2px solid #fff;box-shadow:0 0 0 1px var(--line)}
:is(.desk,.desk-print,.desk-w) .swatches input{position:absolute;opacity:0;pointer-events:none}
:is(.desk,.desk-print,.desk-w) .swatches label:has(input:checked){box-shadow:0 0 0 2px var(--ink)}
:is(.desk,.desk-print,.desk-w) .days{display:flex;gap:6px;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .days label{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:40px;border-radius:10px;border:1px solid var(--line);cursor:pointer;font-weight:600;font-size:13.5px;background:#fff}
:is(.desk,.desk-print,.desk-w) .days input{position:absolute;opacity:0;pointer-events:none}
:is(.desk,.desk-print,.desk-w) .days label:has(input:checked){background:var(--plum);border-color:var(--plum);color:#fff}
:is(.desk,.desk-print,.desk-w) .profile-h{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
:is(.desk,.desk-print,.desk-w) .profile-h .grow{min-width:0}
:is(.desk,.desk-print,.desk-w) .tagline{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
:is(.desk,.desk-print,.desk-w) .money-big{font:650 28px var(--font);font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .close-calc{font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .close-calc .ln{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line);font-size:15px}
:is(.desk,.desk-print,.desk-w) .close-calc .ln.tot{font-weight:750;font-size:18px;border-bottom:0;border-top:2px solid var(--ink);margin-top:4px;padding-top:10px}
:is(.desk,.desk-print,.desk-w) .close-calc .ln .neg{color:var(--red)}
:is(.desk,.desk-print,.desk-w) .variance{font:750 30px var(--font);font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .variance.ok{color:var(--green)}:is(.desk,.desk-print,.desk-w) .variance.short{color:var(--red)}:is(.desk,.desk-print,.desk-w) .variance.over{color:var(--amber)}
:is(.desk,.desk-print,.desk-w) .chart-box{position:relative;height:280px}
:is(.desk,.desk-print,.desk-w) .chart-box.sm{height:220px}
:is(.desk,.desk-print,.desk-w) .hbar{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px;padding:6px 0}
:is(.desk,.desk-print,.desk-w) .hbar .b{height:10px;border-radius:6px;background:var(--line-2);overflow:hidden}
:is(.desk,.desk-print,.desk-w) .hbar .b i{display:block;height:100%;background:linear-gradient(90deg,var(--plum),var(--plum-2));border-radius:6px}
:is(.desk,.desk-print,.desk-w) .hbar .v{font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .hbar .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:is(.desk,.desk-print,.desk-w) .pipeline .dep{min-width:120px}
:is(.desk,.desk-print,.desk-w) .enq{padding:16px 18px;border-bottom:1px solid var(--line-2)}
:is(.desk,.desk-print,.desk-w) .enq:last-child{border-bottom:0}
:is(.desk,.desk-print,.desk-w) .enq .msg{white-space:pre-wrap;background:var(--soft);border-radius:10px;padding:10px 12px;margin:8px 0 10px;font-size:14px}
:is(.desk,.desk-print,.desk-w) .enq.handled{opacity:.7}

/* ---------- printable: booking, receipt (80 mm), invoice (A5), voucher, payout, Z ---------- */
@page receipt{size:80mm auto;margin:0}
@page a5doc{size:A5;margin:0}
@page vcard{size:A5 landscape;margin:0}
:is(.desk,.desk-print,.desk-w) .rcpt{page:receipt;width:80mm;margin:20px auto;background:#fff;padding:6mm 5mm 8mm;box-shadow:0 10px 40px -10px rgba(0,0,0,.25);font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#000}
:is(.desk,.desk-print,.desk-w) .rcpt .c{text-align:center}
:is(.desk,.desk-print,.desk-w) .rcpt h1{font:700 19px/1.15 Georgia,'Times New Roman',serif;margin:0 0 2px;letter-spacing:.02em;color:#000}
:is(.desk,.desk-print,.desk-w) .rcpt .tag{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
:is(.desk,.desk-print,.desk-w) .rcpt hr{border:0;border-top:1px dashed #000;margin:7px 0}
:is(.desk,.desk-print,.desk-w) .rcpt table{width:100%;border-collapse:collapse;font-size:12px}
:is(.desk,.desk-print,.desk-w) .rcpt td{padding:1px 0;vertical-align:top}
:is(.desk,.desk-print,.desk-w) .rcpt td.r{text-align:right;white-space:nowrap;padding-left:6px}
:is(.desk,.desk-print,.desk-w) .rcpt .it small{display:block;font-size:10.5px;color:#333}
:is(.desk,.desk-print,.desk-w) .rcpt .big td{font-size:15px;font-weight:700;padding-top:3px}
:is(.desk,.desk-print,.desk-w) .rcpt .foot{font-size:11px;white-space:pre-line;text-align:center}
:is(.desk,.desk-print,.desk-w) .rcpt .code{font-size:15px;font-weight:700;letter-spacing:.12em;text-align:center;border:1px dashed #000;padding:4px;margin:4px 0}
:is(.desk,.desk-print,.desk-w) .rcpt .void{border:2px solid #000;text-align:center;font-weight:700;font-size:16px;padding:4px;margin:4px 0;letter-spacing:.2em}
:is(.desk,.desk-print,.desk-w) .sheet.a5{page:a5doc;width:148mm;min-height:210mm;padding:12mm 12mm 12mm;font-size:12px}
:is(.desk,.desk-print,.desk-w) .sheet.a5 .doc-h img{height:44px}
:is(.desk,.desk-print,.desk-w) .sheet.a5 .doc-title{font-size:17px}
:is(.desk,.desk-print,.desk-w) .doc-brand{font:700 22px/1.1 var(--display);color:var(--plum)}
:is(.desk,.desk-print,.desk-w) .doc-brand small{display:block;font:500 11px var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
:is(.desk,.desk-print,.desk-w) .doc-t{width:100%;border-collapse:collapse;margin:10px 0}
:is(.desk,.desk-print,.desk-w) .doc-t th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#555;border-bottom:1.5px solid var(--plum);padding:6px 6px}
:is(.desk,.desk-print,.desk-w) .doc-t td{padding:7px 6px;border-bottom:1px solid #eee;vertical-align:top}
:is(.desk,.desk-print,.desk-w) .doc-t .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
:is(.desk,.desk-print,.desk-w) .doc-t tfoot td{border-bottom:0;font-weight:600}
:is(.desk,.desk-print,.desk-w) .doc-t tfoot tr.g td{font-size:14px;font-weight:750;border-top:1.5px solid var(--plum)}
:is(.desk,.desk-print,.desk-w) .doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px;margin-bottom:6px}
:is(.desk,.desk-print,.desk-w) .doc-meta b{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#777;font-weight:600}
:is(.desk,.desk-print,.desk-w) .stamp{display:inline-block;border:2px solid var(--green);color:var(--green);font-weight:800;letter-spacing:.18em;padding:4px 12px;border-radius:6px;transform:rotate(-6deg);font-size:15px}
:is(.desk,.desk-print,.desk-w) .stamp.partial{border-color:var(--amber);color:var(--amber)}
:is(.desk,.desk-print,.desk-w) .stamp.void{border-color:var(--red);color:var(--red)}
:is(.desk,.desk-print,.desk-w) .vc-wrap{page:vcard;width:210mm;height:148mm;margin:20px auto;display:grid;place-items:center;background:#fff;box-shadow:0 10px 40px -10px rgba(0,0,0,.25)}
:is(.desk,.desk-print,.desk-w) .vcard{width:180mm;height:110mm;border-radius:6mm;position:relative;overflow:hidden;color:#F6E7C1;
  background:
   radial-gradient(circle at 20% 30%,rgba(217,174,43,.13) 0 9mm,transparent 9.2mm),
   radial-gradient(circle at 80% 70%,rgba(217,174,43,.10) 0 12mm,transparent 12.2mm),
   repeating-radial-gradient(circle at 0 0,rgba(255,255,255,.035) 0 3mm,transparent 3mm 6mm),
   repeating-linear-gradient(45deg,rgba(217,174,43,.06) 0 1px,transparent 1px 7mm),
   repeating-linear-gradient(-45deg,rgba(217,174,43,.06) 0 1px,transparent 1px 7mm),
   linear-gradient(135deg,#2E0C2A,#4A1942 45%,#5E2154);
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
:is(.desk,.desk-print,.desk-w) .vcard::before{content:"";position:absolute;inset:5mm;border:0.6mm solid #C9A24B;border-radius:4mm;pointer-events:none}
:is(.desk,.desk-print,.desk-w) .vcard::after{content:"";position:absolute;inset:6.6mm;border:0.25mm solid rgba(201,162,75,.6);border-radius:3mm;pointer-events:none}
:is(.desk,.desk-print,.desk-w) .vcard .in{position:absolute;inset:12mm 14mm;display:flex;flex-direction:column;justify-content:space-between}
:is(.desk,.desk-print,.desk-w) .vcard .brand{font:600 9mm/1 Georgia,'Times New Roman',serif;letter-spacing:.02em;color:#F1D489}
:is(.desk,.desk-print,.desk-w) .vcard .brand small{display:block;font:600 2.6mm var(--font);letter-spacing:.35em;text-transform:uppercase;color:#C9A24B;margin-top:2mm}
:is(.desk,.desk-print,.desk-w) .vcard .gv{font:italic 600 6mm Georgia,serif;color:#F6E7C1;letter-spacing:.04em}
:is(.desk,.desk-print,.desk-w) .vcard .amt{font:700 15mm/1 Georgia,serif;color:#F1D489;text-shadow:0 1mm 3mm rgba(0,0,0,.35)}
:is(.desk,.desk-print,.desk-w) .vcard .row2{display:flex;justify-content:space-between;align-items:flex-end;gap:8mm}
:is(.desk,.desk-print,.desk-w) .vcard .lbl{font:600 2.4mm var(--font);letter-spacing:.25em;text-transform:uppercase;color:#C9A24B}
:is(.desk,.desk-print,.desk-w) .vcard .val{font:500 4.2mm Georgia,serif;color:#F6E7C1;border-bottom:0.2mm solid rgba(201,162,75,.6);min-width:55mm;padding-bottom:1mm}
:is(.desk,.desk-print,.desk-w) .vcard .code{font:700 5mm ui-monospace,Menlo,monospace;letter-spacing:.2em;color:#fff;background:rgba(0,0,0,.25);border:0.3mm solid #C9A24B;border-radius:2mm;padding:1.5mm 3mm}
:is(.desk,.desk-print,.desk-w) .vcard .terms{font:400 2.5mm/1.4 var(--font);color:rgba(246,231,193,.7);max-width:95mm}
:is(.desk,.desk-print,.desk-w) .vcard .flourish{position:absolute;right:12mm;top:9mm;font:400 26mm/1 Georgia,serif;color:rgba(201,162,75,.18)}
@media print{
  :is(.desk,.desk-print,.desk-w) .rcpt{margin:0;box-shadow:none;width:80mm}
  body.desk-print.rcpt-page{background:#fff}
  :is(.desk,.desk-print,.desk-w) .sheet.a5{margin:0;box-shadow:none;width:148mm;min-height:auto}
  :is(.desk,.desk-print,.desk-w) .vc-wrap{margin:0;box-shadow:none}
}

/* ---------- responsive ---------- */
@media (max-width:1280px){
  :is(.desk,.desk-print,.desk-w) .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  :is(.desk,.desk-print,.desk-w) .pos{grid-template-columns:minmax(0,1fr) 390px}
}
@media (max-width:1180px){
  :is(.desk,.desk-print,.desk-w) .board{grid-template-columns:minmax(0,1fr)}
  :is(.desk,.desk-print,.desk-w) .board-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
}
@media (max-width:980px){
  :is(.desk,.desk-print,.desk-w) .desk-top{margin:0 -16px 16px;padding:0 16px}
  :is(.desk,.desk-print,.desk-w) .pos{grid-template-columns:minmax(0,1fr)}
  :is(.desk,.desk-print,.desk-w) .ticket{position:static;max-height:none}
  :is(.desk,.desk-print,.desk-w) .ticket-b{overflow:visible}
  :is(.desk,.desk-print,.desk-w) .pos-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--plum);color:#fff;padding:10px 16px calc(10px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:12px;box-shadow:0 -6px 20px rgba(0,0,0,.2)}
  :is(.desk,.desk-print,.desk-w) .pos-bar b{font-size:20px;font-variant-numeric:tabular-nums}
  :is(.desk,.desk-print,.desk-w) .pos-bar small{display:block;color:rgba(255,255,255,.75);font-size:12px}
  :is(.desk,.desk-print,.desk-w) .pos-bar .btn{background:var(--gold-2);color:#2a1b00}
  .page.desk.pos-page{padding-bottom:110px}
  :is(.desk,.desk-print,.desk-w) .tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
@media (max-width:640px){
  :is(.desk,.desk-print,.desk-w) .desk-h h1{font-size:22px}
  :is(.desk,.desk-print,.desk-w) .desk-h .page-actions{width:100%}
  :is(.desk,.desk-print,.desk-w) .desk-h .page-actions .btn{flex:1 1 auto}
  :is(.desk,.desk-print,.desk-w) .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  :is(.desk,.desk-print,.desk-w) .kpi{padding:12px}
  :is(.desk,.desk-print,.desk-w) .kpi .k-v{font-size:21px}
  :is(.desk,.desk-print,.desk-w) .board-side{grid-template-columns:minmax(0,1fr)}
  :is(.desk,.desk-print,.desk-w) .agenda>li{grid-template-columns:52px 4px minmax(0,1fr);padding:12px 14px}
  :is(.desk,.desk-print,.desk-w) .agenda .acts{grid-column:1/-1;justify-content:flex-start}
  :is(.desk,.desk-print,.desk-w) .cal{grid-template-columns:48px repeat(var(--cols),minmax(132px,1fr))}
  :is(.desk,.desk-print,.desk-w) .cal-wrap{max-height:calc(100vh - 200px)}
  :is(.desk,.desk-print,.desk-w) .cal-bar .date-l{width:100%;order:-1}
  :is(.desk,.desk-print,.desk-w) .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  :is(.desk,.desk-print,.desk-w) .tile{min-height:84px;padding:10px}
  :is(.desk,.desk-print,.desk-w) .tline .l2{grid-template-columns:96px minmax(0,1fr)}
  :is(.desk,.desk-print,.desk-w) .tline .l2>*:nth-child(3){grid-column:1/-1}
  :is(.desk,.desk-print,.desk-w) .pay{grid-template-columns:70px minmax(0,1fr) 30px}
  :is(.desk,.desk-print,.desk-w) .pay>input:nth-of-type(2){grid-column:2/3}
  :is(.desk,.desk-print,.desk-w) .paybtns{grid-template-columns:repeat(4,1fr)}
  :is(.desk,.desk-print,.desk-w) .party{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(.desk,.desk-print,.desk-w) .hbar{grid-template-columns:minmax(80px,120px) minmax(0,1fr) auto}
  :is(.desk,.desk-print,.desk-w) .doc-meta{grid-template-columns:1fr}
  :is(.desk,.desk-print,.desk-w) .vc-wrap{width:100%;height:auto;padding:10px;overflow:auto;place-items:start}
}

/* ---------- refinements after visual review ---------- */
:is(.desk,.desk-print,.desk-w) .desk-nav{padding-right:28px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
:is(.desk,.desk-print,.desk-w) .tile .tp>span{white-space:nowrap}
@media (max-width:1180px) and (min-width:981px){
  :is(.desk,.desk-print,.desk-w) .pos{grid-template-columns:minmax(0,1fr) 350px;gap:14px}
  :is(.desk,.desk-print,.desk-w) .tiles{grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:8px}
  :is(.desk,.desk-print,.desk-w) .tile{min-height:84px;padding:10px 11px}
  :is(.desk,.desk-print,.desk-w) .tile b{font-size:13.5px}
  :is(.desk,.desk-print,.desk-w) .ticket{top:124px}
  :is(.desk,.desk-print,.desk-w) .tline .l2{grid-template-columns:90px minmax(0,1fr)}
  :is(.desk,.desk-print,.desk-w) .tline .l2>*:nth-child(3){grid-column:1/-1}
  :is(.desk,.desk-print,.desk-w) .paybtns button{min-height:50px;font-size:12px}
}
@media (max-width:640px){
  :is(.desk,.desk-print,.desk-w) .kpis>.kpi:last-child:nth-child(odd){grid-column:1/-1}
}
:is(.desk,.desk-print,.desk-w) .tile .tp{flex-wrap:wrap;row-gap:2px}
@media (max-width:980px){
  :is(.desk,.desk-print,.desk-w) .pos.has-booking .ticket{order:-1}
  :is(.desk,.desk-print,.desk-w) .pos.has-booking .pos-cat{order:1}
  :is(.desk,.desk-print,.desk-w) .pos-bar.pulse{animation:barpulse .5s}
}
@keyframes barpulse{0%{transform:translateY(0)}30%{transform:translateY(-6px)}100%{transform:translateY(0)}}
:is(.desk,.desk-print,.desk-w) .desk .split>div:last-child .dl{grid-template-columns:96px minmax(0,1fr);gap:8px 12px}
:is(.desk,.desk-print,.desk-w) .kpis.k3{grid-template-columns:repeat(3,minmax(0,1fr))}
:is(.desk,.desk-print,.desk-w) .kpis.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){
  :is(.desk,.desk-print,.desk-w) .kpis.k3,:is(.desk,.desk-print,.desk-w) .kpis.k4{grid-template-columns:repeat(2,minmax(0,1fr))}
  :is(.desk,.desk-print,.desk-w) .desk-period>label{display:none}
  :is(.desk,.desk-print,.desk-w) .desk-period .chips{flex:1 1 100%}
}
@media screen and (max-width:640px){
  :is(.desk,.desk-print,.desk-w) .sheet.a5{width:100%;min-height:0;padding:16px;margin:0}
  :is(.desk,.desk-print,.desk-w) .rcpt{width:100%;max-width:80mm}
}
