/* ═══════════ THE CLIENT'S PREMIUM SHELL (M104) ═══════════
   Scoped to body.client-prem — the back office never sees it. */
body.client-prem{--cp-ivory:#F7F4EE;--cp-paper:#fff;--cp-ink:#17231F;--cp-ink2:#5F6A65;--cp-ink3:#9AA39E;--cp-line:#E8E3D9;--cp-green:#0F5C4A;--cp-forest:#0B3D32;--cp-mint:#E4F0EB;--cp-gold:#C9A04A;--cp-gold-soft:#F5EBD3;--cp-amber:#B8860B;--cp-body:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--cp-disp:"Fraunces",Georgia,serif;--cp-mono:"IBM Plex Mono",ui-monospace,monospace;
  --bg:var(--cp-ivory);--surface:#fff;--surface-2:#FBF9F5;--surface-3:#F1EDE4;--border:var(--cp-line);--border-strong:#D9D2C4;--text:var(--cp-ink);--text-2:var(--cp-ink2);--muted:var(--cp-ink3);--primary:var(--cp-green);--primary-soft:var(--cp-mint);--primary-text:var(--cp-forest);--in:#1E7A56;--in-soft:var(--cp-mint);--warn:var(--cp-amber);--warn-soft:var(--cp-gold-soft);--r:18px;--r-sm:12px;--sans:var(--cp-body);
  background:var(--cp-ivory);font-family:var(--cp-body)}
body.client-prem .sidebar,body.client-prem .topbar{display:none !important}
body.client-prem .app{background:var(--cp-ivory)} body.client-prem .view{padding:0;overflow-y:auto;background:var(--cp-ivory)}
body.client-prem .btn-primary{background:linear-gradient(135deg,#12695A,#0B3D32);border-color:rgba(201,160,74,.5);box-shadow:0 10px 24px -14px rgba(11,61,50,.8)} body.client-prem .btn{border-radius:12px;font-family:var(--cp-body)}
body.client-prem .modal,body.client-prem .drawer{border-radius:22px;font-family:var(--cp-body)} body.client-prem .modal-head h3,body.client-prem .drawer-head h3{font:500 20px/1.2 var(--cp-disp)} body.client-prem .inp{border-radius:12px} body.client-prem .chip.on{background:var(--cp-green);border-color:var(--cp-green)}
body.client-prem .bubble.a{background:#fff;border:1px solid var(--cp-line);border-radius:18px;border-bottom-left-radius:6px} body.client-prem .bubble.q{background:linear-gradient(135deg,#12695A,#0B3D32);color:#F7F4EE;border-radius:18px;border-bottom-right-radius:6px}
.cp{display:flex;min-height:100%;color:var(--cp-ink)} .cp-main{flex:1;min-width:0;max-width:720px;margin:0 auto;padding:0 0 96px}
.cp-side{display:none} .cp-tabs{position:fixed;left:0;right:0;bottom:0;height:78px;background:rgba(247,244,238,.97);border-top:1px solid var(--cp-line);display:grid;grid-template-columns:repeat(4,1fr);padding:10px 8px 16px;z-index:60}
.cp-tab{display:flex;flex-direction:column;align-items:center;gap:4px;font:700 10.5px var(--cp-body);color:var(--cp-ink3);text-decoration:none;position:relative} .cp-tab.on{color:var(--cp-green)} .cp-tab.on:after{content:"";width:5px;height:5px;border-radius:50%;background:var(--cp-gold);margin-top:1px}
.cp-badge{position:absolute;top:-4px;right:calc(50% - 20px);background:var(--cp-gold);color:var(--cp-ink);font:700 10px/16px var(--cp-body);min-width:16px;text-align:center;border-radius:8px;padding:0 4px}
.cp-top{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 0} .cp-brand{display:flex;gap:10px;align-items:center;color:var(--cp-green)} .cp-brand b{display:block;font:700 14px var(--cp-body);color:var(--cp-ink)} .cp-brand span{display:block;font-size:11.5px;color:var(--cp-ink3)}
.cp-ava{width:38px;height:38px;border-radius:50%;background:var(--cp-gold-soft);color:var(--cp-forest);font:600 15px/38px var(--cp-disp);text-align:center;border:1.5px solid var(--cp-gold);flex:none}
.cp-greet{padding:18px 18px 6px} .cp-greet h1{font:500 34px/1.05 var(--cp-disp);letter-spacing:-.01em;margin:0;color:var(--cp-ink)} .cp-greet p{margin:8px 0 0;color:var(--cp-ink2);font-size:14.5px}
.cp-since{margin:12px 16px 0;padding:10px 14px;border-radius:14px;background:var(--cp-gold-soft);color:#6B4F0F;font-size:13px;font-weight:600}
.cp-hero{position:relative;overflow:hidden;margin:14px 16px 0;padding:18px;border-radius:24px;color:#F7F4EE;background:linear-gradient(145deg,#12695A 0%,#0F5C4A 45%,#0B3D32 100%);box-shadow:0 18px 40px -24px rgba(11,61,50,.7);border:1px solid rgba(201,160,74,.35)} .cp-horns{position:absolute;right:-24px;top:-18px;width:150px;height:150px;opacity:.22;pointer-events:none}
.cp-hero-top{display:flex;justify-content:space-between;align-items:center;position:relative} .cp-eyebrow{font:700 11px/1 var(--cp-body);letter-spacing:.14em;text-transform:uppercase;color:#D9B96B} .cp-pillw{font-size:11.5px;font-weight:700;padding:5px 10px;border-radius:99px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22)}
.cp-nums{display:flex;gap:16px;align-items:flex-end;margin-top:14px;position:relative} .cp-nums small{display:block;font-size:11.5px;opacity:.8} .cp-nums b{display:block;font:500 30px/1.05 var(--cp-disp);margin-top:2px;font-variant-numeric:tabular-nums} .cp-vsep{width:1px;height:38px;background:rgba(255,255,255,.22)}
.cp-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.16);margin-top:14px;overflow:hidden} .cp-bar i{display:block;height:100%;background:linear-gradient(90deg,#C9A04A,#F0D48A);border-radius:3px} .cp-hero-foot{margin-top:12px;font-size:12.5px;opacity:.85;position:relative}
.cp-acts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 16px 0} .cp-act{background:#fff;border-radius:20px;padding:14px 8px 12px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;border:1px solid var(--cp-line);box-shadow:0 10px 24px -20px rgba(23,35,31,.35);font-family:var(--cp-body);cursor:pointer;color:var(--cp-ink);transition:.15s} .cp-act:hover{transform:translateY(-2px);box-shadow:0 16px 30px -18px rgba(11,61,50,.45)} .cp-act b{font-size:12.5px;font-weight:700} .cp-act span{font-size:11px;color:var(--cp-ink3)} .cp-aic{width:46px;height:46px;border-radius:50%;background:var(--cp-mint);display:grid;place-items:center;color:var(--cp-green);box-shadow:inset 0 0 0 1.5px var(--cp-gold-soft)}
.cp-more{margin:10px 16px 0;width:calc(100% - 32px);border:1px dashed var(--cp-line);background:transparent;color:var(--cp-green);font:700 13px var(--cp-body);padding:11px;border-radius:14px;display:flex;justify-content:center;align-items:center;gap:8px;cursor:pointer} .cp-more:hover{border-color:var(--cp-green)}
.cp-acct{margin:14px 16px 0;background:#fff;border:1px solid var(--cp-line);border-radius:20px;padding:12px 14px;display:flex;gap:12px;align-items:center} .cp-av{width:40px;height:40px;border-radius:50%;background:var(--cp-forest);color:#F7F4EE;font:600 16px/40px var(--cp-disp);text-align:center;flex:none;box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--cp-gold)} .cp-av.small{width:34px;height:34px;line-height:34px;font-size:14px;box-shadow:none;background:var(--cp-mint);color:var(--cp-forest)} .cp-atxt{flex:1;min-width:0} .cp-atxt b{display:block;font-size:13.5px} .cp-atxt span{display:block;font-size:12px;color:var(--cp-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cp-mini{border:1px solid var(--cp-green);background:#fff;color:var(--cp-green);font:700 12px var(--cp-body);padding:8px 12px;border-radius:99px;cursor:pointer}
.cp-sec{font:700 11px/1 var(--cp-body);letter-spacing:.14em;text-transform:uppercase;color:var(--cp-ink3);margin:22px 20px 8px;display:flex;justify-content:space-between;align-items:center} .cp-sec.needs{color:#B4471F} .cp-seeall{font:700 11px var(--cp-body);letter-spacing:.06em;color:var(--cp-green);text-decoration:none}
.cp-list{margin:0 16px;background:#fff;border:1px solid var(--cp-line);border-radius:20px;overflow:hidden} .cp-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid #F1EDE4} .cp-row:last-child{border-bottom:0} .cp-row.clickable{cursor:pointer} .cp-row.clickable:hover{background:#FBF9F5}
.cp-ic{width:36px;height:36px;border-radius:12px;background:var(--cp-mint);display:grid;place-items:center;flex:none;color:var(--cp-green)} .cp-txt{flex:1;min-width:0} .cp-txt b{display:block;font-size:14px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .cp-txt span{display:block;font-size:12px;color:var(--cp-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .cp-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none} .cp-right em{font:500 13px var(--cp-mono);font-style:normal;color:var(--cp-ink)} .cp-right em.tiny{font-size:11px;color:var(--cp-ink3)}
.cp-chip{font-size:10.5px;font-weight:700;padding:4px 8px;border-radius:99px;white-space:nowrap;letter-spacing:.02em;max-width:150px;overflow:hidden;text-overflow:ellipsis} .cp-chip.wait{background:var(--cp-gold-soft);color:var(--cp-amber)} .cp-chip.ok{background:var(--cp-mint);color:var(--cp-green)} .cp-chip.needs{background:#F8E3DA;color:#B4471F} .cp-chip.neutral{background:#F1EDE4;color:var(--cp-ink2)}
.cp-ring{width:44px;height:44px;position:relative;flex:none} .cp-ring svg{width:44px;height:44px} .cp-ring span{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;font:600 13px/1 var(--cp-disp);color:var(--cp-green)} .cp-ring small{font:600 7px var(--cp-body);color:var(--cp-ink3);letter-spacing:.06em;text-transform:uppercase}
.cp-dot{width:10px;height:10px;border-radius:50%;background:var(--cp-gold)} .cp-empty{padding:18px 16px;color:var(--cp-ink3);font-size:13.5px} .cp-foot{margin:22px 20px 0;font-size:12px;color:var(--cp-ink3);text-align:center}
.cp-who{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center} .cp-who b{font:500 17px var(--cp-disp)} .cp-who span{font-size:11px;color:var(--cp-ink3)} .cp-back{color:var(--cp-green);display:flex;align-items:center;min-width:44px}
.cp-compose{margin:16px 16px 0;width:calc(100% - 32px);border:1px solid rgba(201,160,74,.5);background:linear-gradient(135deg,#12695A,#0B3D32);color:#F7F4EE;font:700 15px var(--cp-body);padding:15px;border-radius:16px;display:flex;justify-content:center;align-items:center;gap:8px;cursor:pointer;box-shadow:0 14px 28px -16px rgba(11,61,50,.8)}
.cp-filters{display:flex;gap:8px;margin:16px 16px 0;flex-wrap:wrap} .cp-filter{padding:8px 13px;border-radius:99px;background:#fff;border:1px solid var(--cp-line);font:700 12.5px var(--cp-body);color:var(--cp-ink);text-decoration:none} .cp-filter.on{background:var(--cp-green);border-color:var(--cp-green);color:#fff} .cp-filter i{font-style:normal;opacity:.7;margin-left:2px}
@media (min-width:900px){
  .cp-tabs{display:none} .cp-side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;width:240px;flex:none;overflow:hidden;background:linear-gradient(180deg,#0F5C4A,#0B3D32);color:#F7F4EE;padding:22px 14px} .cp-side .cp-horns{right:-40px;bottom:60px;top:auto;width:200px;height:200px;opacity:.15}
  .cp-side .cp-brand{padding:4px 8px 22px;color:#F7F4EE} .cp-side .cp-brand b{color:#F7F4EE;font:500 15px var(--cp-disp)} .cp-side .cp-brand span{color:rgba(247,244,238,.75)}
  .cp-nav{display:flex;flex-direction:column;gap:4px;position:relative} .cp-ni{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;font:600 14px var(--cp-body);color:#F7F4EE;opacity:.8;text-decoration:none;position:relative} .cp-ni.on{background:rgba(255,255,255,.12);opacity:1;box-shadow:inset 3px 0 0 var(--cp-gold)} .cp-ni .cp-badge{position:static;margin-left:auto}
  .cp-user{margin-top:auto;display:flex;gap:10px;align-items:center;padding:8px;position:relative} .cp-user b{display:block;font-size:13px} .cp-user span{font-size:11.5px;opacity:.75}
  .cp-main{max-width:760px;padding:10px 24px 60px} .cp-top .cp-brand{visibility:hidden} .cp-greet h1{font-size:38px}
}
@media (prefers-reduced-motion: reduce){.cp-act{transition:none}}

/* the receipt door and the timeline */
body.client-prem .cp-form small{display:block;font:700 11px/1 var(--cp-body);letter-spacing:.12em;text-transform:uppercase;color:var(--cp-ink3);margin-bottom:8px}
body.client-prem .cp-cam{display:block;position:relative;height:190px;border-radius:22px;background:#14201C;color:#C9C4B8;cursor:pointer;overflow:hidden} body.client-prem .cp-cam .c{position:absolute;width:22px;height:22px;border:2.5px solid var(--cp-gold)} body.client-prem .cp-cam .tl{top:14px;left:14px;border-right:0;border-bottom:0;border-radius:6px 0 0 0} body.client-prem .cp-cam .tr{top:14px;right:14px;border-left:0;border-bottom:0;border-radius:0 6px 0 0} body.client-prem .cp-cam .bl{bottom:14px;left:14px;border-right:0;border-top:0;border-radius:0 0 0 6px} body.client-prem .cp-cam .br{bottom:14px;right:14px;border-left:0;border-top:0;border-radius:0 0 6px 0}
body.client-prem .cp-cam-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:0 30px} body.client-prem .cp-cam-in b{color:#F7F4EE;font-size:15px} body.client-prem .cp-cam-in span{font-size:12px} body.client-prem .cp-cam-in em{font-style:normal;color:var(--cp-gold);font-size:12.5px;font-weight:700} body.client-prem .cp-cam.has{background:#0B3D32}
body.client-prem .cp-amt{margin-top:14px;background:var(--cp-ivory);border:1px solid var(--cp-line);border-radius:18px;padding:12px 14px} body.client-prem .cp-big{display:flex;align-items:center;gap:8px} body.client-prem .cp-big span{font:700 13px var(--cp-body);color:var(--cp-gold)} body.client-prem .cp-num{flex:1;border:0;background:transparent;font:500 36px/1.1 var(--cp-disp);color:var(--cp-ink);outline:none;width:100%;min-width:0} body.client-prem .cp-hint{font-size:12px;color:var(--cp-ink3);margin-top:6px}
body.client-prem .cp-f{margin-top:14px} body.client-prem .cp-two{display:grid;grid-template-columns:1fr 1fr;gap:10px} body.client-prem .cp-hide{display:none} body.client-prem .cp-morecats{color:var(--cp-green);border-style:dashed}
body.client-prem .cp-details{margin-top:14px;border-top:1px dashed var(--cp-line);padding-top:10px} body.client-prem .cp-details summary{cursor:pointer;font:700 12.5px var(--cp-body);color:var(--cp-green)}
body.client-prem .cp-damt{font:500 34px/1.05 var(--cp-disp);color:var(--cp-green);margin:0 0 14px} body.client-prem .cp-damt span{font:700 12px var(--cp-body);color:var(--cp-gold);margin-right:8px;vertical-align:middle}
.cp-tl{margin:4px 0 18px 6px;padding-left:8px;border-left:1.5px solid var(--cp-gold-soft);display:flex;flex-direction:column;gap:14px} .cp-tli{display:flex;gap:12px;align-items:flex-start} .cp-tli i{width:22px;height:22px;border-radius:50%;flex:none;margin-left:-20px;display:grid;place-items:center;background:#fff;border:2px solid var(--cp-line);color:#fff} .cp-tli.done i{background:var(--cp-green);border-color:var(--cp-green)} .cp-tli.now i{border-color:var(--cp-gold);box-shadow:0 0 0 4px var(--cp-gold-soft)} .cp-tli b{display:block;font-size:14px} .cp-tli span{font-size:12px;color:var(--cp-ink3)} .cp-tli.todo b{color:var(--cp-ink3)}

body.client-prem button.cp-ava{cursor:pointer;padding:0} body.client-prem button.cp-ava:hover{box-shadow:0 0 0 3px var(--cp-gold-soft)}
.cp-out{margin-left:auto;border:1px solid rgba(255,255,255,.25);background:transparent;color:#F7F4EE;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:14px} .cp-out:hover{background:rgba(255,255,255,.12)}
body.client-prem .cp-profile p{margin:0;font-size:14.5px;line-height:1.6}
