/* ============================================================
   Coffee Business Basics — design tokens
   (ported from the Claude Design system bundle, unchanged)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600&display=swap');

:root {
  --cbb-charcoal:     #3C3C3C;
  --cbb-near-black:   #2C2C2C;
  --cbb-cream:        #F0EDE8;
  --cbb-coral:        #E8604A;
  --cbb-light-grey:   #D9D9D9;
  --cbb-charcoal-hi:  #474747;
  --cbb-charcoal-lo:  #333333;
  --cbb-cream-hi:     #F7F5F1;
  --cbb-cream-lo:     #E4E0D9;
  --cbb-stone:        #8A857D;
  --cbb-stone-dk:     #6B6760;
  --cbb-coral-press:  #D44E38;
  --cbb-coral-soft:   #F2A293;
  --cbb-amber:        #C08A2E;

  --accent:            var(--cbb-coral);
  --accent-press:      var(--cbb-coral-press);
  --accent-soft:       var(--cbb-coral-soft);
  --focus-ring:        var(--cbb-coral);

  --font-display: 'Fraunces', 'Georgia', 'Times New Roman', serif;
  --font-body:    'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --display-lg:  3rem;
  --display-md:  2.25rem;
  --display-sm:  1.625rem;
  --text-lg:    1.25rem;
  --text-base:  1.0625rem;
  --text-sm:    0.9375rem;
  --text-xs:    0.8125rem;
  --eyebrow-size:    0.8125rem;
  --eyebrow-spacing: 0.18em;
  --leading-tight:   1.04;
  --leading-snug:    1.22;
  --leading-normal:  1.6;
  --leading-relaxed: 1.75;
  --tracking-display: -0.02em;
  --tracking-body:    0;
  --tracking-wide:    0.18em;

  --space-1:   0.25rem;
  --space-2:   0.5rem;
  --space-3:   0.75rem;
  --space-4:   1rem;
  --space-5:   1.5rem;
  --space-6:   2rem;
  --space-7:   3rem;
  --radius-sm:   3px;
  --radius-md:   6px;
  --radius-lg:   10px;
  --radius-pill: 999px;
  --border-width:       1px;
  --border-width-thick: 2px;
  --shadow-sm: 0 1px 2px rgba(44, 44, 44, 0.06);
  --shadow-md: 0 4px 16px rgba(44, 44, 44, 0.10);
  --shadow-lg: 0 12px 40px rgba(44, 44, 44, 0.16);
  --container-max:  1200px;
  --ease-standard: cubic-bezier(0.4, 0.0, 0.2, 1);
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast:      120ms;
  --dur-base:      220ms;
  --dur-slow:      400ms;

  /* light theme is the only theme this app uses */
  --surface:           var(--cbb-cream);
  --surface-raised:    var(--cbb-cream-hi);
  --surface-sunken:    var(--cbb-cream-lo);
  --text-primary:      var(--cbb-near-black);
  --text-secondary:    var(--cbb-stone-dk);
  --text-muted:        var(--cbb-stone);
  --border-subtle:     rgba(44, 44, 44, 0.12);
  --border-strong:     rgba(44, 44, 44, 0.22);
  --on-accent:         var(--cbb-cream);
  color-scheme:        light;
}

*, *::before, *::after { box-sizing: border-box; }

html, body { height: 100%; }
body {
  margin: 0;
  background: var(--surface);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: var(--weight-regular);
  line-height: var(--leading-normal);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: var(--weight-medium);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-display);
  margin: 0 0 var(--space-4);
  color: var(--text-primary);
  text-wrap: balance;
}
h1 { font-size: var(--display-lg); }
h2 { font-size: var(--display-md); line-height: var(--leading-snug); }
h3 { font-size: var(--display-sm); line-height: var(--leading-snug); }
p { margin: 0 0 var(--space-4); text-wrap: pretty; }
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-press); }
:focus-visible { outline: var(--border-width-thick) solid var(--focus-ring); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* ============================================================
   Café Profit Calculator — component styles
   ============================================================ */
.cpc-shell{ container-type: inline-size; position:relative; background:var(--surface); color:var(--text-primary); font-family:var(--font-body); min-height:100%; --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B6760' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.cpc-wrap{ max-width:1200px; margin:0 auto; padding:0 clamp(18px,4cqi,48px); }
.cpc-btn{ font-family:var(--font-body); font-weight:500; font-size:var(--text-sm); line-height:1; display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid transparent; border-radius:var(--radius-pill); padding:0 18px; height:40px; cursor:pointer; white-space:nowrap; text-decoration:none; transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard); }
.cpc-btn:active{ transform:translateY(1px); }
.cpc-btn--primary{ background:var(--accent); color:var(--on-accent); }
.cpc-btn--primary:hover{ background:var(--accent-press); }
.cpc-btn--sec{ background:transparent; color:var(--text-primary); border-color:var(--border-strong); }
.cpc-btn--sec:hover{ border-color:var(--text-primary); }
.cpc-btn--ghost{ background:transparent; color:var(--text-primary); }
.cpc-btn--ghost:hover{ background:color-mix(in srgb, var(--text-primary) 8%, transparent); }
.cpc-btn:disabled{ opacity:.4; cursor:not-allowed; }
.cpc-count{ display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:var(--radius-pill); background:var(--accent); color:var(--on-accent); font-size:11px; font-weight:600; }
.cpc-header{ display:flex; align-items:center; gap:18px; padding:16px 0; border-bottom:1px solid var(--border-subtle); background:var(--surface); z-index:30; flex-wrap:wrap; }
.cpc-brand{ display:flex; align-items:center; margin-right:auto; text-decoration:none; color:var(--text-primary); }
.cpc-brand b{ font-family:var(--font-display); font-weight:500; font-size:22px; letter-spacing:-.015em; line-height:1; white-space:nowrap; }
.cpc-brand b .dot{ color:var(--accent); }
.cpc-controls{ display:flex; gap:8px; align-items:center; }
.cpc-hactions{ display:flex; gap:8px; align-items:center; }
.cpc-select{ appearance:none; font-family:var(--font-body); font-size:var(--text-sm); font-weight:500; color:var(--text-primary); background:transparent var(--chev) no-repeat right 14px center; border:1px solid var(--border-strong); border-radius:var(--radius-pill); height:40px; padding:0 34px 0 15px; cursor:pointer; }
.cpc-select:hover{ border-color:var(--text-primary); }
.cpc-select--sm{ height:34px; font-size:var(--text-xs); padding:0 30px 0 12px; background-position:right 11px center; }
.cpc-intro{ padding:34px 0 26px; max-width:640px; }
.cpc-intro h1{ font-size:clamp(30px,5cqi,46px); margin:0 0 12px; }
.cpc-intro .cpc-lead{ font-size:var(--text-lg); line-height:1.55; color:var(--text-secondary); margin:0 0 16px; }
.cpc-worklink{ display:inline-flex; align-items:center; gap:9px; font-size:var(--text-sm); color:var(--text-secondary); border-bottom:1px solid var(--border-subtle); padding-bottom:2px; transition:color var(--dur-fast); }
.cpc-worklink:hover{ color:var(--accent); border-color:var(--accent); }
.cpc-worklink svg{ width:15px; height:15px; }
.cpc-grid{ display:grid; grid-template-columns:minmax(0,1fr) 348px; gap:44px; align-items:start; padding-bottom:80px; }
.cpc-form{ display:flex; flex-direction:column; gap:14px; }
.cpc-side{ position:sticky; top:20px; }
.cpc-sec{ border-top:1px solid var(--border-subtle); padding-top:26px; }
.cpc-sec:first-child{ border-top:0; padding-top:6px; }
.cpc-sechead{ display:flex; align-items:center; flex-wrap:wrap; gap:10px 14px; width:100%; text-align:left; background:none; border:0; padding:0; cursor:default; font-family:inherit; color:inherit; margin-bottom:20px; }
.cpc-sechead.cpc-click{ cursor:pointer; }
.cpc-secnum{ font-family:var(--font-display); font-weight:500; font-size:26px; color:var(--accent); line-height:1; letter-spacing:-.02em; flex:none; }
.cpc-secmeta{ margin-right:auto; }
.cpc-eye{ font-size:11px; letter-spacing:var(--tracking-wide); text-transform:uppercase; color:var(--accent); font-weight:500; margin:0 0 6px; }
.cpc-sectitle{ font-family:var(--font-display); font-weight:500; font-size:22px; letter-spacing:-.01em; line-height:1.1; margin:0; color:var(--text-primary); }
.cpc-secsum{ font-size:var(--text-sm); color:var(--text-muted); margin:5px 0 0; }
.cpc-chev{ flex:none; width:20px; height:20px; color:var(--text-muted); transition:transform var(--dur-base) var(--ease-standard); }
.cpc-chev.cpc-open{ transform:rotate(180deg); }
.cpc-secbody{ display:flex; flex-direction:column; gap:16px; }
.cpc-fields{ display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; }
.cpc-subsec{ display:flex; flex-direction:column; gap:16px; padding-top:18px; border-top:1px solid var(--border-subtle); }
.cpc-subhead{ font-family:var(--font-display); font-weight:500; font-size:17px; letter-spacing:-.01em; color:var(--text-primary); margin:0; }
.cpc-subtot{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:var(--text-xs); color:var(--text-muted); }
.cpc-subtot b{ color:var(--text-secondary); font-weight:500; }
.cpc-cmpheads{ display:grid; grid-template-columns:34% 1fr 1fr; gap:14px; margin-bottom:16px; align-items:stretch; }
.cpc-cmphead{ border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:16px; display:flex; flex-direction:column; gap:6px; min-width:0; }
.cpc-cmpselrow{ display:flex; align-items:center; gap:8px; }
.cpc-cmphead .cpc-select{ width:100%; flex:1; min-width:0; background-color:var(--surface-sunken); }
.cpc-delbtn{ flex:none; width:30px; height:30px; border-radius:50%; border:1px solid var(--border-strong); background:transparent; color:var(--text-muted); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:border-color var(--dur-fast),color var(--dur-fast); }
.cpc-delbtn:hover{ border-color:var(--accent); color:var(--accent); }
.cpc-printdate{ display:none; }
.cpc-cmplab{ font-size:var(--text-xs); color:var(--text-muted); margin:8px 0 0; }
.cpc-cmpnet{ font-family:var(--font-display); font-weight:500; font-size:30px; letter-spacing:-.02em; color:var(--accent); line-height:1.05; margin:0; }
.cpc-cmpnet.cpc-neg{ color:var(--text-primary); }
.cpc-cmpsub{ font-size:var(--text-xs); color:var(--text-muted); margin:0; }
.cpc-cmpstatus{ display:flex; align-items:center; gap:8px; margin-top:6px; font-size:var(--text-xs); color:var(--text-muted); }
.cpc-cmpstatus .cpc-statuslab{ font-weight:600; }
.cpc-cmpgrid{ display:flex; flex-direction:column; margin-top:4px; }
.cpc-cmprow{ display:grid; grid-template-columns:34% 1fr 1fr; gap:14px; align-items:center; padding:11px 0; border-bottom:1px solid var(--border-subtle); font-size:var(--text-sm); }
.cpc-cmprow:last-child{ border-bottom:0; }
.cpc-cmprl{ color:var(--text-primary); font-weight:500; }
.cpc-cmpcell{ display:inline-flex; align-items:center; gap:6px; justify-content:flex-start; padding-left:16px; color:var(--text-secondary); }
.cpc-cmpcell.cpc-hi{ color:var(--text-primary); font-weight:600; }
.cpc-cmpcell.cpc-lo{ color:var(--text-muted); }
.cpc-arrow{ font-size:9px; line-height:1; color:var(--text-muted); }
.cpc-field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.cpc-field--full{ grid-column:1 / -1; }
.cpc-lab{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:var(--text-sm); font-weight:500; color:var(--text-primary); }
.cpc-lab--sm{ font-size:var(--text-xs); color:var(--text-secondary); font-weight:500; }
.cpc-modeswitch{ display:inline-flex; align-items:center; flex:none; gap:2px; padding:2px; border-radius:var(--radius-pill); background:var(--surface-sunken); }
.cpc-modebtn{ font-family:var(--font-body); font-size:11px; font-weight:500; line-height:1; color:var(--text-muted); background:transparent; border:0; border-radius:var(--radius-pill); padding:6px 11px; cursor:pointer; white-space:nowrap; transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard); }
.cpc-modebtn:hover{ color:var(--text-primary); }
.cpc-modebtn--active{ background:var(--surface-raised); color:var(--text-primary); box-shadow:var(--shadow-sm); }
.cpc-hourswrap{ display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; }
.cpc-hoursub{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.cpc-sub{ font-size:var(--text-xs); color:var(--text-muted); }
.cpc-info{ display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; border-radius:50%; border:1px solid var(--border-strong); background:transparent; color:var(--text-muted); font-size:11px; font-weight:600; cursor:pointer; flex:none; transition:border-color var(--dur-fast),color var(--dur-fast); font-family:var(--font-body); }
.cpc-info:hover{ border-color:var(--accent); color:var(--accent); }
.cpc-inwrap{ display:flex; align-items:stretch; border:1px solid var(--border-strong); border-radius:var(--radius-md); background:transparent; transition:border-color var(--dur-fast); overflow:hidden; }
.cpc-inwrap:focus-within{ border-color:var(--accent); }
.cpc-adorn{ display:flex; align-items:center; padding:0 0 0 14px; color:var(--text-muted); font-size:var(--text-base); flex:none; }
.cpc-adorn--r{ padding:0 14px 0 0; }
.cpc-in{ border:0; background:transparent; font-family:var(--font-body); font-size:var(--text-base); color:var(--text-primary); height:46px; padding:0 12px; width:100%; min-width:0; outline:none; }
.cpc-in::-webkit-outer-spin-button,.cpc-in::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.cpc-per{ appearance:none; border:0; border-left:1px solid var(--border-subtle); background:var(--surface-sunken) var(--chev) no-repeat right 10px center; color:var(--text-secondary); font-family:var(--font-body); font-size:var(--text-sm); padding:0 30px 0 12px; cursor:pointer; flex:none; }
.cpc-costrow{ display:grid; grid-template-columns:1fr 232px; gap:8px 16px; align-items:center; }
.cpc-costlab{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.cpc-costrow .cpc-lab{ min-width:0; }
.cpc-labdesc{ font-size:var(--text-xs); line-height:1.4; color:var(--text-muted); }
.cpc-weekly{ font-size:var(--text-xs); color:var(--text-muted); text-align:right; grid-column:2; margin-top:-4px; }
.cpc-totrow{ display:flex; align-items:baseline; justify-content:space-between; margin-top:6px; padding-top:16px; border-top:1px solid var(--border-subtle); }
.cpc-totrow .cpc-tl{ font-family:var(--font-display); font-weight:500; font-size:19px; color:var(--text-primary); }
.cpc-totrow .cpc-tv{ font-family:var(--font-display); font-weight:500; font-size:24px; color:var(--text-primary); letter-spacing:-.01em; }
/* results */
.cpc-res{ border:1px solid var(--border-subtle); border-radius:var(--radius-lg); background:var(--surface-raised); overflow:hidden; }
.cpc-reshead{ padding:22px 22px 6px; }
.cpc-reshead .cpc-eye{ margin-bottom:14px; }
.cpc-hero{ padding:0 22px 20px; }
.cpc-herolab{ font-size:var(--text-sm); color:var(--text-secondary); margin:0 0 4px; }
.cpc-heronum{ font-family:var(--font-display); font-weight:500; font-size:44px; line-height:1; letter-spacing:-.02em; color:var(--accent); margin:0; }
.cpc-heronum.cpc-neg{ color:var(--text-primary); }
.cpc-herosub{ font-size:var(--text-sm); color:var(--text-muted); margin:8px 0 0; }
.cpc-statgrid{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--border-subtle); }
.cpc-stat{ padding:16px 22px; border-top:1px solid var(--border-subtle); }
.cpc-stat:nth-child(2n){ border-left:1px solid var(--border-subtle); }
.cpc-stat:nth-child(1),.cpc-stat:nth-child(2){ border-top:0; }
.cpc-stat:last-child:nth-child(odd){ grid-column:1 / -1; border-left:0; }
.cpc-statv{ font-family:var(--font-display); font-weight:500; font-size:24px; letter-spacing:-.01em; color:var(--text-primary); line-height:1.05; }
.cpc-statl{ font-size:var(--text-xs); color:var(--text-muted); margin-top:5px; }
.cpc-flag{ display:inline-flex; align-items:center; justify-content:center; width:13px; height:13px; margin-left:5px; vertical-align:-1px; }
.cpc-flag--ok{ color:var(--text-secondary); }
.cpc-flag--neutral{ color:var(--cbb-amber); }
.cpc-flag--warn{ color:var(--accent); }
.cpc-statn{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.cpc-warn{ margin:0; padding:18px 22px; border-top:1px solid var(--border-subtle); background:color-mix(in srgb, var(--accent) 7%, transparent); display:flex; gap:13px; }
.cpc-warnbar{ flex:none; width:3px; border-radius:2px; background:var(--accent); }
.cpc-warnt{ font-weight:600; font-size:var(--text-sm); color:var(--text-primary); margin:0 0 5px; }
.cpc-warnb{ font-size:var(--text-xs); line-height:1.55; color:var(--text-secondary); margin:0; }
.cpc-good{ padding:14px 22px; border-top:1px solid var(--border-subtle); font-size:var(--text-sm); color:var(--text-muted); display:flex; align-items:center; gap:10px; }
.cpc-meter{ display:inline-flex; align-items:flex-end; gap:2px; height:14px; flex:none; }
.cpc-bar{ width:3px; border-radius:1px; background:var(--border-strong); }
.cpc-bar:nth-child(1){ height:5px; }
.cpc-bar:nth-child(2){ height:8px; }
.cpc-bar:nth-child(3){ height:11px; }
.cpc-bar:nth-child(4){ height:14px; }
.cpc-bar--on{ background:var(--accent); }
.cpc-statuslab{ color:var(--text-primary); font-weight:600; }
.cpc-mini{ display:flex; gap:14px; margin-top:2px; }
.cpc-mini-b{ background:none; border:0; padding:0; font-family:var(--font-body); font-size:var(--text-xs); color:var(--text-secondary); cursor:pointer; text-decoration:none; border-bottom:1px solid var(--border-subtle); transition:color var(--dur-fast),border-color var(--dur-fast); }
.cpc-mini-b:hover{ color:var(--accent); border-color:var(--accent); }
/* mobile bar */
.cpc-mobilebar{ display:none; }
.cpc-barbtn{ display:flex; align-items:center; width:100%; gap:14px; background:var(--surface); border:0; border-top:1px solid var(--border-subtle); box-shadow:0 -10px 30px rgba(44,44,44,.10); padding:14px clamp(18px,4cqi,48px); cursor:pointer; font-family:var(--font-body); text-align:left; }
.cpc-barleft{ display:flex; flex-direction:column; gap:2px; margin-right:auto; }
.cpc-barlab{ font-size:var(--text-xs); color:var(--text-secondary); }
.cpc-barnum{ font-family:var(--font-display); font-weight:500; font-size:26px; line-height:1; letter-spacing:-.02em; color:var(--accent); }
.cpc-barnum.cpc-neg{ color:var(--text-primary); }
.cpc-barright{ display:flex; align-items:center; gap:12px; }
.cpc-barflag{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent); font-weight:700; font-size:13px; }
.cpc-barchev{ width:22px; height:22px; color:var(--text-muted); }
.cpc-barsheet{ background:var(--surface); border-top:1px solid var(--border-subtle); padding-bottom:16px; max-height:60cqh; overflow:auto; }
.cpc-statgrid--sheet{ border-top:0; }
.cpc-statgrid--sheet .cpc-stat:nth-child(1),.cpc-statgrid--sheet .cpc-stat:nth-child(2){ border-top:1px solid var(--border-subtle); }
/* modals */
.cpc-ovl{ position:fixed; inset:0; background:color-mix(in srgb, var(--cbb-near-black) 46%, transparent); z-index:60; display:flex; justify-content:center; padding:24px 16px; overflow:auto; }
.cpc-modal{ position:relative; margin:auto; width:100%; max-width:760px; background:var(--surface); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); container-type:inline-size; }
.cpc-modal--sm{ max-width:440px; }
.cpc-modhead{ display:flex; align-items:flex-start; gap:16px; padding:24px 26px 18px; border-bottom:1px solid var(--border-subtle); }
.cpc-modhead .cpc-eye{ margin-bottom:8px; }
.cpc-modhead h3{ font-family:var(--font-display); font-weight:500; font-size:24px; margin:0; letter-spacing:-.01em; }
.cpc-modhead p{ font-size:var(--text-sm); color:var(--text-muted); margin:6px 0 0; }
.cpc-x{ margin-left:auto; flex:none; width:34px; height:34px; border-radius:50%; border:1px solid var(--border-strong); background:transparent; color:var(--text-secondary); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.cpc-x:hover{ border-color:var(--text-primary); color:var(--text-primary); }
.cpc-modbody{ padding:22px 26px 26px; }
.cpc-tbl{ width:100%; border-collapse:collapse; font-size:var(--text-sm); }
.cpc-tbl th{ text-align:left; font-weight:500; color:var(--text-muted); font-size:var(--text-xs); letter-spacing:.04em; text-transform:uppercase; padding:0 14px 10px 0; border-bottom:1px solid var(--border-subtle); }
.cpc-tbl th.cpc-r,.cpc-tbl td.cpc-r{ text-align:right; padding-right:0; }
.cpc-tbl td{ padding:11px 14px 11px 0; border-bottom:1px solid var(--border-subtle); color:var(--text-secondary); }
.cpc-tbl td.cpc-rl{ color:var(--text-primary); font-weight:500; }
.cpc-tbl tr.cpc-emph td{ font-weight:600; color:var(--text-primary); border-bottom:0; }
.cpc-bench{ font-size:var(--text-sm); }
.cpc-bench th{ padding:0 18px 8px 0; }
.cpc-bench td{ padding:8px 18px 8px 0; }
.cpc-bench-rec td{ background:var(--surface-sunken); }
.cpc-bench-rec td:first-child{ padding-left:10px; }
.cpc-bench-rec td:last-child{ padding-right:10px; }
.cpc-benchnote{ margin:0 0 16px; font-size:var(--text-sm); color:var(--text-primary); }
.cpc-benchnote b{ font-weight:600; }
.cpc-refs{ margin:16px 0 0; padding-top:14px; border-top:1px solid var(--border-subtle); font-size:11px; line-height:1.55; color:var(--text-muted); }
.cpc-refs .cpc-refhead{ font-weight:600; color:var(--text-secondary); margin:0 0 4px; letter-spacing:.02em; }
.cpc-refs p{ margin:0 0 5px; }
.cpc-refs .cpc-fn{ margin:0 0 10px; }
.cpc-disc{ margin-top:16px; padding:13px 15px; border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--surface-raised); font-size:var(--text-xs); color:var(--text-secondary); line-height:1.55; }
.cpc-modfoot{ display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.cpc-inclist{ margin:14px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:11px; }
.cpc-inclist li{ position:relative; padding-left:20px; font-size:var(--text-sm); color:var(--text-secondary); line-height:1.5; }
.cpc-inclist li::before{ content:""; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--accent); }
.cpc-inclist li b{ color:var(--text-primary); font-weight:500; }
.cpc-scen{ font-size:var(--text-xs); color:var(--text-muted); }
.cpc-scen b{ color:var(--text-primary); font-weight:500; }
@container (max-width: 820px){
  .cpc-header{ position:sticky; top:0; }
  .cpc-brand{ width:100%; margin-right:0; }
  .cpc-controls{ order:2; }
  .cpc-hactions{ order:3; margin-left:auto; }
  .cpc-intro{ padding:24px 0 20px; }
  .cpc-grid{ grid-template-columns:1fr; gap:8px; padding-bottom:120px; }
  .cpc-side{ display:none; }
  .cpc-fields{ grid-template-columns:1fr; }
  .cpc-costrow{ grid-template-columns:1fr; gap:8px; }
  .cpc-weekly{ grid-column:1; text-align:left; }
  .cpc-mobilebar{ display:block; position:sticky; bottom:0; z-index:40; }
}
@container (max-width: 480px){
  .cpc-hourswrap{ grid-template-columns:1fr; }
  .cpc-cmpheads,.cpc-cmprow{ grid-template-columns:22% 1fr 1fr; gap:8px; }
  .cpc-cmphead{ padding:11px 10px; gap:4px; }
  .cpc-cmphead .cpc-select{ font-size:12px; padding-right:24px; }
  .cpc-cmpnet{ font-size:19px; }
  .cpc-cmplab{ margin-top:4px; }
  .cpc-cmpcell{ padding-left:0; font-size:var(--text-xs); }
  .cpc-cmprl{ font-size:var(--text-xs); }
}

/* print — isolate the Export P&L modal into a clean report page */
@media print{
  html,body{ background:#fff; }
  body *{ visibility:hidden; }
  .cpc-modal,.cpc-modal *{ visibility:visible; }
  .cpc-ovl{ position:static; background:none; padding:0; display:block; overflow:visible; height:auto; }
  .cpc-modal{ position:absolute; inset:0; margin:0; width:100%; max-width:none; border:0; box-shadow:none; border-radius:0; container-type:normal; }
  .cpc-x,.cpc-modfoot{ display:none !important; }
  .cpc-modhead{ border-bottom:2px solid #000; }
  .cpc-printdate{ display:block; font-size:var(--text-xs); color:var(--text-muted); margin:-8px 0 16px; }
  .cpc-tbl,.cpc-tbl th,.cpc-tbl td{ color:#000 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .cpc-tbl tr.cpc-emph td{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  @page{ margin:16mm; }
}
