/* =============================================================
   Concierge Pilot — Shared JIGGER Engine (CSS)
   Driven by window.JIGGER_CONFIG which each tenant declares
   before loading jigger-engine.js.

   Tenants override the CSS custom properties below (in their own
   <style> block, BEFORE this file is linked) to swap brand skins.

   Default skin = "Brass Hour" (charcoal / brass / amber).
   Required custom properties (override any/all in tenant shell):
     --charcoal, --graphite, --graphite-2, --graphite-3
     --brass, --brass-deep, --amber, --amber-glow
     --offwhite, --offwhite-dim
     --line, --line-strong
     --danger, --success

   Required tenant fonts (loaded in tenant shell <head>):
     'Cormorant Garamond' (italic 700) — display headings (override
       to your own display font if your skin uses a different one)
     'Inter' (300/400/500/600/700) — body
     'JetBrains Mono' (400/500/600) — numbers/labels

   Tenants that don't want italic-Cormorant headings can override
   each .serif / .h2 selector via their own CSS (see Jalapenos shell).
   ============================================================= */

  *{box-sizing:border-box;margin:0;padding:0}
  :root{
    --charcoal:#0e0d0c;
    --graphite:#1c1a17;
    --graphite-2:#25221d;
    --graphite-3:#2f2a23;
    --brass:#b8954c;
    --brass-deep:#8a6e34;
    --amber:#e8a73a;
    --amber-glow:#f4c668;
    --offwhite:#e8dfd0;
    --offwhite-dim:#a99e8b;
    --line:rgba(184,149,76,0.18);
    --line-strong:rgba(184,149,76,0.32);
    --danger:#cc4f48;
    --success:#7da95c;
  }
  html,body{height:100%;background:var(--charcoal);color:var(--offwhite);font-family:'Inter',sans-serif;font-weight:400;overflow:hidden;-webkit-user-select:none;user-select:none}
  body{display:flex;flex-direction:column}
  .serif{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700}
  .mono{font-family:'JetBrains Mono',monospace}
  .upper{text-transform:uppercase;letter-spacing:0.18em;font-size:0.72rem}

  /* ───────── Top Bar ───────── */
  .topbar{
    height:62px;flex-shrink:0;
    display:flex;align-items:center;gap:18px;
    padding:0 22px;
    background:var(--graphite);
    border-bottom:1px solid var(--line);
    position:relative;
  }
  .topbar::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:2px;background:linear-gradient(90deg,var(--brass-deep),var(--amber),var(--brass-deep))}
  .union-mark{
    width:40px;height:40px;border-radius:50%;
    background:var(--charcoal);border:2px solid var(--brass);
    display:inline-flex;align-items:center;justify-content:center;
    color:var(--amber);font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1rem;
    box-shadow:0 2px 10px rgba(184,149,76,0.18);
  }
  .brand-block{display:flex;flex-direction:column;gap:2px;line-height:1}
  .brand-block .b1{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.2rem;letter-spacing:0.02em}
  .brand-block .b2{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.22em;text-transform:uppercase}
  .topbar-divider{width:1px;height:34px;background:var(--line)}
  .module-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.4rem;color:var(--offwhite)}
  .clock{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:0.78rem;color:var(--brass);letter-spacing:0.1em}
  .live-indicator{
    font-family:'JetBrains Mono',monospace;font-size:0.6rem;letter-spacing:0.2em;font-weight:700;
    color:var(--success);background:rgba(125,169,92,0.14);border:1px solid rgba(125,169,92,0.4);
    padding:3px 8px;border-radius:99px;
    transition:all 0.3s;
  }
  .live-indicator::before{content:'●';margin-right:4px;font-size:0.55rem;animation:livePulse 2.4s ease-in-out infinite}
  .live-indicator.pulse{background:rgba(125,169,92,0.4);color:#fff;border-color:var(--success);box-shadow:0 0 12px rgba(125,169,92,0.4)}
  @keyframes livePulse{0%,100%{opacity:0.4}50%{opacity:1}}

  /* Role gates: hide financial elements from bartenders + viewers */
  body[data-role="bartender"] .role-financials,
  body[data-role="viewer"]    .role-financials { display: none !important; }
  body[data-role="viewer"]    .role-edits { display: none !important; pointer-events:none }
  .topbar-link{
    background:transparent;color:var(--offwhite-dim);
    text-decoration:none;
    border:1px solid var(--line);
    padding:7px 13px;border-radius:6px;
    font-size:0.62rem;letter-spacing:0.22em;text-transform:uppercase;
    transition:all 0.18s;font-family:'Inter',sans-serif;font-weight:500;cursor:pointer;
  }
  .topbar-link:hover{background:var(--graphite-2);color:var(--brass);border-color:var(--brass-deep)}

  /* ───────── Collapsible chevron (works on both mobile + desktop) ───────── */
  .collapse-chev{
    display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:1px solid var(--brass-deep);
    color:var(--brass);
    width:28px;height:28px;border-radius:50%;
    cursor:pointer;font-size:0.95rem;line-height:1;
    transition:transform 0.22s, background 0.18s, color 0.18s;flex-shrink:0;
    padding:0;
  }
  .collapse-chev:hover{background:var(--graphite-2);color:var(--amber)}
  [data-collapsed="true"] > .collapse-chev{transform:rotate(-90deg)}
  .stats{position:relative}
  .stats > .stats-chev{position:absolute;top:10px;right:10px;z-index:5;background:rgba(20,17,15,0.85);backdrop-filter:blur(4px)}
  .stats > .stats-summary{display:none}

  /* Forecaster chevron — sits in the top-right of the card */
  .forecaster-card{position:relative}
  .forecaster-card > .forecaster-chev{position:absolute;top:14px;right:14px;z-index:5}
  /* When collapsed, hide everything except the head row */
  .forecaster-card[data-collapsed="true"]{padding-bottom:14px}
  .forecaster-card[data-collapsed="true"] .forecaster-counts,
  .forecaster-card[data-collapsed="true"] .forecaster-summary,
  .forecaster-card[data-collapsed="true"] .forecaster-grid{display:none}

  /* Session bar — collapse hides actions, keeps title */
  [data-collapsed="true"] .session-actions{display:none}

  /* Stats — when collapsed, swap grid for a single summary line */
  .stats[data-collapsed="true"]{grid-template-columns:1fr;padding:10px 46px 10px 18px}
  .stats[data-collapsed="true"] .stat{display:none}
  .stats[data-collapsed="true"] .stats-summary{
    display:block;
    font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--offwhite);
    letter-spacing:0.06em;line-height:1.7;
  }
  .stats[data-collapsed="true"] .stats-summary b{color:var(--brass);font-weight:600}

  /* ───────── Session control row ───────── */
  .session-bar{
    flex-shrink:0;
    display:flex;align-items:center;gap:14px;
    padding:14px 22px;
    background:var(--graphite);
    border-bottom:1px solid var(--line);
  }
  .session-state{display:flex;align-items:center;gap:10px}
  .session-dot{width:9px;height:9px;border-radius:50%;background:var(--brass-deep)}
  .session-dot.active{background:var(--amber);box-shadow:0 0 12px var(--amber-glow)}
  .session-label{font-size:0.7rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--offwhite-dim)}
  .session-label b{color:var(--offwhite);font-weight:600}
  .session-actions{margin-left:auto;display:flex;gap:8px}
  .btn{
    background:var(--graphite-2);
    color:var(--offwhite);
    border:1px solid var(--line);
    padding:9px 16px;
    border-radius:6px;
    font-family:'Inter',sans-serif;font-weight:500;
    font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;
    cursor:pointer;
    transition:all 0.18s;
    -webkit-tap-highlight-color:transparent;
  }
  .btn:hover{background:var(--graphite-3);border-color:var(--brass-deep)}
  .btn-primary,
  .btn-primary:hover,
  .btn-primary:focus,
  .btn-primary:active{
    background:linear-gradient(180deg,var(--amber-glow),var(--amber)) !important;
    background-color:var(--amber) !important;
    color:#fff !important;
    border-color:var(--brass);
    font-weight:600;
    text-shadow:0 1px 2px rgba(0,0,0,0.35);
  }
  .btn-primary:hover{filter:brightness(1.08);border-color:var(--amber-glow)}
  .btn-danger{color:var(--danger);border-color:rgba(204,79,72,0.35)}
  .btn-danger:hover{background:rgba(204,79,72,0.08);border-color:var(--danger)}
  .btn:disabled{opacity:0.4;cursor:not-allowed}

  /* ───────── Stat strip ───────── */
  .stats{
    display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
    background:var(--line);
    border-bottom:1px solid var(--line);
    flex-shrink:0;
  }
  .stat{
    background:var(--graphite);
    padding:14px 18px;
    display:flex;flex-direction:column;gap:4px;
  }
  .stat-label{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.2em;text-transform:uppercase}
  .stat-value{font-family:'JetBrains Mono',monospace;font-size:1.5rem;font-weight:600;color:var(--offwhite)}
  .stat-value.pos{color:var(--success)}
  .stat-value.neg{color:var(--danger)}
  .stat-sub{font-size:0.66rem;color:var(--offwhite-dim)}

  /* ───────── Main grid ───────── */
  .main{
    flex:1;display:grid;grid-template-columns:380px 1fr;
    overflow:hidden;
    min-height:0;
  }
  .col{overflow-y:auto;height:100%;min-height:0;-webkit-overflow-scrolling:touch}
  .col::-webkit-scrollbar{width:6px}
  .col::-webkit-scrollbar-track{background:var(--charcoal)}
  .col::-webkit-scrollbar-thumb{background:var(--brass-deep);border-radius:3px}

  /* Bottle list */
  .bottles-col{background:var(--graphite);border-right:1px solid var(--line)}
  .bottles-header{
    position:sticky;top:0;z-index:2;
    background:var(--graphite);
    padding:14px 18px 10px;
    border-bottom:1px solid var(--line);
    display:flex;align-items:center;gap:10px;
  }
  .bottles-header h2{flex:1;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.05rem;color:var(--offwhite)}
  .bottle-search{
    width:100%;
    background:var(--graphite-2);
    border:1px solid var(--line);
    color:var(--offwhite);
    font-family:'Inter',sans-serif;font-size:0.78rem;
    padding:8px 11px;
    border-radius:5px;
    outline:none;
  }
  .bottle-search:focus{border-color:var(--brass)}
  .bottles-search-row{padding:0 18px 12px}
  .bottle-item{
    display:flex;align-items:center;gap:12px;
    padding:13px 18px;
    border-bottom:1px solid var(--line);
    cursor:pointer;
    transition:background 0.12s;
  }
  .bottle-item:hover{background:var(--graphite-2)}
  .bottle-item.selected{background:var(--graphite-2);border-left:3px solid var(--amber);padding-left:15px}
  .bottle-item.counted{position:relative}
  .bottle-item.counted::after{
    content:'';position:absolute;top:50%;right:18px;transform:translateY(-50%);
    width:7px;height:7px;border-radius:50%;background:var(--success);
  }
  .bot-mark{
    width:34px;height:46px;flex-shrink:0;
    background:linear-gradient(180deg,var(--graphite-3) 0%,var(--graphite-2) 100%);
    border:1px solid var(--brass-deep);border-radius:3px 3px 6px 6px;
    position:relative;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    font-family:'JetBrains Mono',monospace;font-size:0.54rem;color:#fff;font-weight:700;letter-spacing:0.04em;
    text-shadow:0 1px 2px rgba(0,0,0,0.85);
  }
  .bot-mark::before{content:'';position:absolute;top:-3px;left:50%;transform:translateX(-50%);width:9px;height:5px;background:var(--brass-deep);border-radius:2px 2px 0 0;z-index:2}
  .bot-fill{position:absolute;left:1px;right:1px;bottom:1px;background:linear-gradient(180deg,var(--amber-glow) 0%,var(--amber) 50%,var(--brass) 100%);border-radius:2px 2px 5px 5px;opacity:0.55;transition:height 0.3s;z-index:0}
  .bot-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
  .bot-brand{font-size:0.84rem;font-weight:500;color:var(--offwhite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
  .bot-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.04em}
  .bot-live{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.08em;margin-top:1px}
  .bot-seen{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--offwhite-dim);letter-spacing:0.06em;margin-top:1px}
  .bot-cat{display:inline-block;padding:1px 6px;border-radius:3px;background:var(--graphite-3);color:var(--brass);font-size:0.55rem;letter-spacing:0.12em;text-transform:uppercase;margin-right:6px}
  .par-dot{font-size:0.85rem;line-height:1;flex-shrink:0}
  .par-dot.ok{color:var(--success)}
  .par-dot.low{color:var(--amber)}
  .par-dot.crit{color:var(--danger);animation:pardotPulse 2s ease-in-out infinite}
  @keyframes pardotPulse{0%,100%{opacity:0.6}50%{opacity:1}}

  .bottles-filter{display:flex;gap:6px;padding:0 18px 12px;flex-wrap:wrap}
  .bottles-filter button{
    background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite-dim);
    padding:5px 10px;border-radius:99px;cursor:pointer;
    font-family:'JetBrains Mono',monospace;font-size:0.58rem;letter-spacing:0.16em;text-transform:uppercase;
    transition:all 0.15s;
  }
  .bottles-filter button:hover{color:var(--offwhite);border-color:var(--brass-deep)}
  .bottles-filter button.active{background:var(--brass);color:var(--charcoal);border-color:var(--brass)}

  /* Workspace */
  .work{padding:24px 32px}
  .empty-state{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    height:100%;text-align:center;gap:14px;color:var(--offwhite-dim);
  }
  .empty-state .h{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.6rem;color:var(--offwhite)}
  .empty-state .p{font-size:0.85rem;max-width:480px;line-height:1.55}
  .empty-state .divider{display:flex;align-items:center;gap:8px;margin:8px 0}
  .empty-state .divider .line{height:1px;width:60px;background:var(--line)}
  .empty-state .divider .dot{width:5px;height:5px;border-radius:50%;background:var(--brass)}

  /* Count card */
  .count-card{display:flex;flex-direction:column;gap:18px}
  .count-head{display:flex;align-items:flex-start;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
  .count-head .ch-mark{width:54px;height:74px;background:linear-gradient(180deg,var(--graphite-3),var(--graphite-2));border:1px solid var(--brass-deep);border-radius:4px 4px 8px 8px;position:relative;flex-shrink:0}
  .count-head .ch-mark::before{content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:14px;height:8px;background:var(--brass-deep);border-radius:2px 2px 0 0}
  .ch-body{flex:1;display:flex;flex-direction:column;gap:6px}
  .ch-body h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.7rem;color:var(--offwhite);line-height:1.1}
  .ch-meta{display:flex;gap:14px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:0.68rem;color:var(--offwhite-dim);letter-spacing:0.06em}
  .ch-meta span{display:inline-flex;align-items:center;gap:5px}
  .ch-meta b{color:var(--brass);font-weight:600}
  .ch-live{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--offwhite);letter-spacing:0.04em;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
  .ch-live b{color:var(--brass)}
  .audit-tag{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.22em;background:rgba(184,149,76,0.1);border:1px solid var(--brass-deep);padding:5px 10px;border-radius:99px;flex-shrink:0;align-self:flex-start}
  .audit-tag.session{color:var(--charcoal);background:var(--amber);border-color:var(--brass)}
  .opt-tag{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--offwhite-dim);letter-spacing:0.16em;background:var(--graphite-2);padding:2px 7px;border-radius:99px;border:1px solid var(--line);margin-left:8px}
  .ch-cal{display:flex;align-items:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
  .ch-cal .ref-thumb{width:42px;height:56px;border-radius:4px;border:1px solid var(--brass-deep);object-fit:cover;cursor:pointer;flex-shrink:0;background:var(--graphite-2);display:flex;align-items:center;justify-content:center;color:var(--brass)}
  .ch-cal .ref-thumb.empty{font-size:1.4rem}
  .ch-cal .ch-cal-meta{flex:1;font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.04em;line-height:1.5}
  .ch-cal .ch-cal-meta b{color:var(--brass)}

  .panel{
    background:var(--graphite);
    border:1px solid var(--line);
    border-radius:8px;
    padding:20px;
    display:flex;flex-direction:column;gap:16px;
  }
  .panel h3{
    font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--brass);
    letter-spacing:0.22em;text-transform:uppercase;
  }
  .panel-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}

  /* Photo capture column */
  .photo-area{
    background:var(--graphite-2);
    border:1px dashed var(--line-strong);
    border-radius:6px;
    aspect-ratio:1;
    max-height:260px;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
    position:relative;
  }
  .photo-area img{width:100%;height:100%;object-fit:cover;display:block}
  .photo-clear{
    position:absolute;top:8px;right:8px;
    width:36px;height:36px;border-radius:50%;
    background:rgba(14,13,12,0.85);border:1px solid var(--brass-deep);
    color:var(--offwhite);font-size:1rem;line-height:1;
    display:none;align-items:center;justify-content:center;
    cursor:pointer;z-index:5;
    backdrop-filter:blur(4px);
  }
  .photo-clear:hover{background:var(--danger);border-color:var(--danger)}
  .photo-area.has-photo .photo-clear{display:flex}
  .photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--offwhite-dim);text-align:center;padding:20px}
  .photo-placeholder svg{width:42px;height:42px;color:var(--brass-deep)}
  .photo-placeholder .ph-h{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.1rem;color:var(--brass)}
  .photo-placeholder .ph-p{font-size:0.74rem;line-height:1.5}
  .photo-overlay{
    position:absolute;inset:0;background:rgba(14,13,12,0.8);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
    color:var(--amber);
  }
  .spinner{
    width:32px;height:32px;border:3px solid var(--brass-deep);border-top-color:var(--amber);
    border-radius:50%;animation:spin 0.8s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg)}}

  /* Inputs */
  .field{display:flex;flex-direction:column;gap:6px}
  .field label{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .stepper{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:5px;overflow:hidden;width:fit-content}
  .stepper button{background:var(--graphite-2);color:var(--offwhite);border:none;width:38px;height:38px;font-size:1.2rem;cursor:pointer;font-family:'JetBrains Mono',monospace}
  .stepper button:hover{background:var(--graphite-3);color:var(--amber)}
  .stepper input{
    width:60px;height:38px;text-align:center;background:var(--graphite);border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);
    font-family:'JetBrains Mono',monospace;font-size:1rem;color:var(--offwhite);outline:none;
  }
  .slider-row{display:flex;align-items:center;gap:12px}
  .slider-row input[type=range]{
    flex:1;-webkit-appearance:none;appearance:none;height:8px;border-radius:4px;
    background:linear-gradient(90deg,var(--amber-glow),var(--amber),var(--brass));
    outline:none;
  }
  .slider-row input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;
    background:var(--offwhite);border:2px solid var(--brass);cursor:pointer;
  }
  .slider-row .pct-display{font-family:'JetBrains Mono',monospace;font-size:1.4rem;font-weight:600;color:var(--amber);min-width:64px;text-align:right}

  .ai-row{
    background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;
    padding:12px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  }
  .ai-row .ai-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:99px;background:rgba(184,149,76,0.12);color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase}
  .ai-row .ai-text{flex:1;font-size:0.78rem;color:var(--offwhite-dim)}
  .ai-row .ai-text b{color:var(--offwhite);font-weight:500}
  .ai-row .conf{font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--brass)}

  .calc-line{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:0.78rem;padding:6px 0;border-bottom:1px dashed var(--line)}
  .calc-line:last-child{border:none;padding-top:10px;font-size:1.05rem;font-weight:600;color:var(--amber)}
  .calc-line .lbl{color:var(--offwhite-dim);letter-spacing:0.06em;text-transform:uppercase;font-size:0.66rem}

  .save-row{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
  .file-hide{display:none}

  /* Variance dashboard */
  .vd{display:flex;flex-direction:column;gap:18px}
  .vd-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:14px}
  .vd-head h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.5rem}
  .vd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
  .vd-card{background:var(--graphite);border:1px solid var(--line);border-radius:6px;padding:16px;display:flex;flex-direction:column;gap:8px}
  .vd-card .vd-l{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.22em;text-transform:uppercase}
  .vd-card .vd-v{font-family:'JetBrains Mono',monospace;font-size:1.7rem;font-weight:600}
  .vd-card .vd-s{font-size:0.7rem;color:var(--offwhite-dim);line-height:1.4}
  .vd-explainer{background:var(--graphite);border:1px solid var(--line);border-radius:8px;padding:18px}
  .vd-explainer .vh{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--brass);font-size:1.1rem;margin-bottom:8px}
  .vd-explainer .vp{font-size:0.82rem;color:var(--offwhite-dim);line-height:1.6}
  .vd-table{width:100%;border-collapse:collapse}
  .vd-table th{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase;text-align:left;padding:10px;border-bottom:1px solid var(--line)}
  .vd-table td{padding:11px 10px;border-bottom:1px solid var(--line);font-family:'JetBrains Mono',monospace;font-size:0.78rem;color:var(--offwhite)}
  .vd-table tr:hover td{background:var(--graphite-2)}
  .vd-table .neg{color:var(--danger)}
  .vd-table .pos{color:var(--success)}
  .vd-table .br{color:var(--offwhite);font-family:'Inter',sans-serif;font-weight:500}

  .vd-section{margin-top:24px;background:var(--graphite);border:1px solid var(--line);border-radius:8px;padding:18px}
  .vd-section-h{display:flex;align-items:baseline;gap:14px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .vd-section-h h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.15rem}
  .vd-section-sub{font-family:'JetBrains Mono',monospace;font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--offwhite-dim)}

  .anomaly-badge{display:inline-block;padding:2px 8px;border-radius:99px;font-family:'JetBrains Mono',monospace;font-size:0.62rem;letter-spacing:0.08em;font-weight:600}
  .anomaly-badge.critical{background:rgba(204,79,72,0.18);color:var(--danger);border:1px solid rgba(204,79,72,0.5)}
  .anomaly-badge.warning{background:rgba(232,167,58,0.16);color:var(--amber);border:1px solid rgba(232,167,58,0.45)}
  .anomaly-badge.over_credited{background:rgba(125,169,92,0.16);color:var(--success);border:1px solid rgba(125,169,92,0.45)}
  .anomaly-badge.mute{background:var(--graphite-2);color:var(--offwhite-dim);border:1px solid var(--line)}

  .bartender-heat{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
  .bartender-card{padding:14px 16px;border-radius:8px;border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
  .bartender-card .bt-name{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.3rem;color:var(--offwhite)}
  .bartender-card .bt-meta{font-family:'JetBrains Mono',monospace;font-size:0.65rem;color:var(--offwhite-dim);letter-spacing:0.06em}
  .bartender-card .bt-var{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;padding-top:8px;border-top:1px dashed var(--line)}
  .bartender-card .bt-var-l{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .bartender-card .bt-var-v{font-family:'JetBrains Mono',monospace;font-size:1.1rem;font-weight:600;color:var(--offwhite)}
  .bartender-card .bt-var-v.neg{color:var(--danger)}
  .bartender-card .bt-flag{font-size:0.66rem;color:var(--danger);font-family:'JetBrains Mono',monospace;letter-spacing:0.06em}

  .insight-list{list-style:none;padding:0;margin:0}
  .insight-list li{padding:10px 14px;border-bottom:1px dashed var(--line);font-size:0.82rem;color:var(--offwhite);line-height:1.55}
  .insight-list li:last-child{border:none}
  .insight-list b{color:var(--brass);font-weight:600}

  /* Loss investigation */
  .loss-inv{display:flex;flex-direction:column;gap:18px}
  .loss-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
  .ls-card{background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}
  .ls-card.neg{border-color:rgba(204,79,72,0.35);background:rgba(204,79,72,0.06)}
  .ls-card .ls-l{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .ls-card .ls-v{font-family:'JetBrains Mono',monospace;font-size:1.05rem;color:var(--offwhite);font-weight:600}
  .ls-card.neg .ls-v{color:var(--danger)}
  .ls-card .ls-s{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);letter-spacing:0.04em}
  .loss-section h4{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:8px}
  .counts-strip{display:flex;gap:8px;flex-wrap:wrap}
  .count-strip-item{background:var(--graphite-2);border:1px solid var(--line);border-radius:5px;padding:8px 12px;display:flex;flex-direction:column;gap:1px;min-width:90px}
  .count-strip-item .csi-l{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--brass);letter-spacing:0.16em}
  .count-strip-item .csi-v{font-family:'JetBrains Mono',monospace;font-size:0.86rem;font-weight:600;color:var(--offwhite)}
  .count-strip-item .csi-s{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--offwhite-dim)}
  .bartender-mini{display:flex;flex-direction:column;gap:6px}
  .bm-row{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:12px;align-items:center;padding:8px 12px;background:var(--graphite-2);border:1px solid var(--line);border-radius:5px;font-family:'JetBrains Mono',monospace;font-size:0.74rem}
  .bm-row .bm-name{color:var(--offwhite);font-family:'Inter',sans-serif;font-weight:500}
  .bm-row .bm-stats{color:var(--offwhite-dim);letter-spacing:0.04em}
  .bm-row .bm-warn{color:var(--danger);font-size:0.66rem}
  .bm-row .bm-ok{color:var(--success);font-size:0.66rem}
  .timeline{display:flex;flex-direction:column;gap:4px;max-height:380px;overflow-y:auto;padding-right:4px}
  .tl-row{display:grid;grid-template-columns:60px 1fr 70px 1fr 90px;gap:10px;align-items:center;padding:6px 10px;background:var(--graphite-2);border:1px solid var(--line);border-radius:4px;font-family:'JetBrains Mono',monospace;font-size:0.72rem}
  .tl-row.over{border-color:rgba(232,167,58,0.4);background:rgba(232,167,58,0.06)}
  .tl-row.big{border-color:rgba(204,79,72,0.5);background:rgba(204,79,72,0.08)}
  .tl-time{color:var(--offwhite-dim);font-size:0.66rem}
  .tl-bar{height:6px;border-radius:3px;background:var(--graphite-3);overflow:hidden;border:1px solid var(--line)}
  .tl-bar span{display:block;height:100%;background:linear-gradient(90deg, var(--success), var(--amber), var(--danger))}
  .tl-oz{color:var(--offwhite);font-weight:600;text-align:right}
  .tl-meta{color:var(--offwhite-dim);font-size:0.66rem;font-family:'Inter',sans-serif}
  .tl-flag{font-size:0.6rem;color:var(--danger);font-weight:600;text-align:right;letter-spacing:0.12em}
  .inv-actions{display:flex;gap:10px;flex-wrap:wrap}

  .rec-pill{display:inline-block;padding:2px 8px;border-radius:3px;background:var(--graphite-3);color:var(--brass);font-size:0.62rem;letter-spacing:0.04em;margin-right:4px;margin-bottom:3px;font-family:'JetBrains Mono',monospace}

  /* Cost trends */
  .cost-trend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
  .cost-trend-card{background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
  .cost-trend-card.up{border-color:rgba(204,79,72,0.4);background:rgba(204,79,72,0.06)}
  .cost-trend-card.down{border-color:rgba(125,169,92,0.4);background:rgba(125,169,92,0.06)}
  .cost-trend-card .ct-brand{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1rem;line-height:1.1}
  .cost-trend-card .ct-price{font-family:'JetBrains Mono',monospace;font-size:1.4rem;font-weight:600;color:var(--offwhite)}
  .cost-trend-card .ct-change{font-family:'JetBrains Mono',monospace;font-size:0.7rem;font-weight:600}
  .cost-trend-card.up .ct-change{color:var(--danger)}
  .cost-trend-card.down .ct-change{color:var(--success)}
  .cost-trend-card .ct-from{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);letter-spacing:0.04em}

  /* Pricing suggestions */
  .pricing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
  .pricing-card{background:var(--graphite-2);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:7px}
  .pricing-card.crit{border-color:rgba(204,79,72,0.5);background:rgba(204,79,72,0.05)}
  .pricing-card.warn{border-color:rgba(232,167,58,0.4);background:rgba(232,167,58,0.04)}
  .pricing-card .pc-brand{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.2rem;margin-bottom:4px}
  .pricing-card .pc-line{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:0.74rem}
  .pricing-card .pc-l{color:var(--offwhite-dim);letter-spacing:0.04em;text-transform:uppercase;font-size:0.6rem}
  .pricing-card .pc-v{color:var(--offwhite)}
  .pricing-card .pc-rationale{font-family:'Inter',sans-serif;font-size:0.72rem;color:var(--brass);line-height:1.55;margin-top:6px;padding-top:8px;border-top:1px dashed var(--line)}

  /* Library tab */
  .lib-tabs{display:flex;gap:6px;margin-bottom:14px}
  .lib-tabs button{
    background:transparent;border:1px solid var(--line);color:var(--offwhite-dim);
    padding:7px 14px;border-radius:5px;cursor:pointer;
    font-family:'JetBrains Mono',monospace;font-size:0.66rem;letter-spacing:0.16em;text-transform:uppercase;
    transition:all 0.15s;
  }
  .lib-tabs button:hover{color:var(--offwhite);border-color:var(--brass-deep)}
  .lib-tabs button.active{background:var(--brass);color:var(--charcoal);border-color:var(--brass)}
  .lib-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--graphite-2)}
  .lib-table th{background:var(--graphite);position:sticky;top:0}
  .lib-table .bot-cat{display:inline-block;padding:1px 6px;border-radius:3px;background:var(--graphite-3);color:var(--brass);font-size:0.55rem;letter-spacing:0.12em;text-transform:uppercase}

  /* Bottle/Supplier form */
  .bottle-form{padding:0}
  .bottle-form .bf-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
  .bottle-form .bf-field{display:flex;flex-direction:column;gap:5px}
  .bottle-form .bf-field span{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .bottle-form input, .bottle-form select, .bottle-form textarea{
    background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite);
    padding:9px 12px;border-radius:5px;outline:none;
    font-family:'Inter',sans-serif;font-size:0.86rem;
  }
  .bottle-form input:focus, .bottle-form select:focus, .bottle-form textarea:focus{border-color:var(--brass)}
  .bottle-form .bf-danger{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}

  /* Toasts */
  .toast{
    position:fixed;bottom:24px;right:24px;z-index:200;
    background:var(--graphite);border:1px solid var(--brass);
    color:var(--offwhite);padding:13px 18px;border-radius:6px;
    font-size:0.78rem;letter-spacing:0.04em;
    box-shadow:0 10px 30px rgba(0,0,0,0.55);
    opacity:0;transform:translateY(8px);pointer-events:none;
    transition:opacity 0.2s,transform 0.2s;
    max-width:340px;
  }
  .toast.show{opacity:1;transform:translateY(0)}
  .toast.err{border-color:var(--danger);color:var(--danger)}
  .toast.ok{border-color:var(--success);color:var(--success)}

  .stat.clickable{cursor:pointer;transition:background 0.15s}
  .stat.clickable:hover{background:var(--graphite-2)}
  .stat.clickable .stat-label::after{content:' →';color:var(--brass)}

  /* Modal */
  .modal-backdrop{
    position:fixed;inset:0;background:rgba(14,13,12,0.78);backdrop-filter:blur(4px);
    z-index:300;display:none;align-items:center;justify-content:center;
    padding:24px;
  }
  .modal-backdrop.show{display:flex}
  .modal{
    background:var(--graphite);border:1px solid var(--brass);border-radius:10px;
    width:100%;max-width:760px;max-height:88vh;display:flex;flex-direction:column;
    box-shadow:0 30px 80px rgba(0,0,0,0.7);
  }
  .modal-head{
    padding:20px 26px;border-bottom:1px solid var(--line);
    display:flex;align-items:flex-start;gap:12px;
  }
  .modal-head h2{flex:1;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.5rem;color:var(--offwhite)}
  .modal-head .modal-sub{font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase;margin-top:4px;display:block}
  .modal-head .x-close{background:transparent;border:none;color:var(--offwhite-dim);font-size:1.6rem;cursor:pointer;line-height:1;padding:0 4px}
  .modal-head .x-close:hover{color:var(--danger)}
  .modal-body{flex:1;overflow-y:auto;padding:20px 26px}
  .modal-foot{padding:16px 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}

  .reorder-row{
    display:grid;grid-template-columns:1fr 90px 90px 110px 100px;
    align-items:center;gap:14px;
    padding:12px 0;border-bottom:1px dashed var(--line);
    font-family:'JetBrains Mono',monospace;font-size:0.78rem;
  }
  .reorder-row:last-child{border:none}
  .reorder-row.head{font-size:0.6rem;color:var(--brass);letter-spacing:0.2em;text-transform:uppercase;border-bottom:1px solid var(--line)}
  .reorder-row .ro-brand{font-family:'Inter',sans-serif;font-weight:500;color:var(--offwhite)}
  .reorder-row .ro-brand small{display:block;font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.12em;text-transform:uppercase;margin-top:2px}
  .reorder-row input[type=number]{
    width:64px;background:var(--graphite-2);border:1px solid var(--line);
    color:var(--offwhite);padding:5px 8px;border-radius:4px;
    font-family:'JetBrains Mono',monospace;font-size:0.85rem;text-align:center;outline:none;
  }
  .reorder-row input[type=number]:focus{border-color:var(--brass)}
  .reorder-summary{
    background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;
    padding:14px 18px;margin-top:14px;display:flex;justify-content:space-between;align-items:center;
  }
  .reorder-summary .lbl{font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .reorder-summary .val{font-family:'JetBrains Mono',monospace;font-size:1.2rem;color:var(--amber);font-weight:600}

  .supplier-group{margin-bottom:18px;padding:14px 16px;background:var(--graphite-2);border:1px solid var(--line);border-radius:8px}
  .supplier-group .sg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:8px}
  .supplier-group .sg-name{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.05rem;color:var(--offwhite)}
  .supplier-group .sg-meta{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);letter-spacing:0.06em;margin-top:2px}
  .supplier-group .sg-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .supplier-group .sg-method{
    background:var(--graphite);border:1px solid var(--line);color:var(--offwhite);
    padding:7px 10px;border-radius:5px;
    font-family:'JetBrains Mono',monospace;font-size:0.66rem;letter-spacing:0.1em;outline:none;cursor:pointer;
  }
  .supplier-group .sg-method:focus{border-color:var(--brass)}
  .supplier-group .sg-subtotal{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--brass);letter-spacing:0.1em;padding:8px 0 0;text-transform:uppercase}
  .supplier-group .sg-sub-val{font-size:0.92rem;color:var(--offwhite);font-weight:600;text-transform:none}

  .order-result{
    background:rgba(125,169,92,0.07);
    border:1px solid rgba(125,169,92,0.32);
    border-radius:6px;padding:12px 14px;
    display:flex;flex-direction:column;gap:10px;
  }
  .order-result .or-head{display:flex;justify-content:space-between;align-items:center}
  .order-result .or-po{font-family:'JetBrains Mono',monospace;font-size:0.86rem;color:var(--offwhite);font-weight:600}
  .order-result .or-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.04em;margin-top:2px}
  .order-result .or-status{font-family:'JetBrains Mono',monospace;font-size:0.62rem;background:var(--success);color:var(--charcoal);padding:3px 9px;border-radius:99px;letter-spacing:0.18em;font-weight:600}
  .order-result .or-actions{display:flex;gap:8px;flex-wrap:wrap}
  .order-result .or-actions .btn{font-size:0.62rem;padding:7px 12px;text-decoration:none}
  .order-result .or-webhook{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);background:var(--graphite);padding:6px 10px;border-radius:4px;border:1px solid var(--line)}

  /* Shelf-scan review */
  .scan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .scan-row{
    background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;
    padding:12px 14px;display:flex;flex-direction:column;gap:8px;
  }
  .scan-row.matched{border-color:var(--brass-deep)}
  .scan-row.unmatched{border-color:rgba(204,79,72,0.4)}
  .scan-row .sr-brand{font-weight:500;color:var(--offwhite);font-size:0.86rem}
  .scan-row .sr-meta{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.14em;text-transform:uppercase}
  .scan-row select{
    background:var(--graphite);border:1px solid var(--line);color:var(--offwhite);
    padding:5px 8px;border-radius:4px;font-family:'Inter',sans-serif;font-size:0.74rem;outline:none;
  }
  .scan-row select:focus{border-color:var(--brass)}
  .scan-pct{display:flex;align-items:center;gap:8px}
  .scan-pct input[type=range]{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--amber-glow),var(--brass));-webkit-appearance:none;outline:none}
  .scan-pct input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--offwhite);border:2px solid var(--brass);cursor:pointer}
  .scan-pct .pct{font-family:'JetBrains Mono',monospace;font-size:0.85rem;color:var(--amber);font-weight:600;min-width:46px;text-align:right}

  .mp-wrap{display:flex;flex-direction:column;gap:18px}
  .mp-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .mp-thumb{position:relative;aspect-ratio:1;border-radius:6px;overflow:hidden;border:1px solid var(--brass-deep)}
  .mp-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .mp-thumb-num{
    position:absolute;top:6px;left:6px;
    width:24px;height:24px;border-radius:50%;
    background:rgba(14,13,12,0.7);color:var(--amber);
    display:flex;align-items:center;justify-content:center;
    font-family:'JetBrains Mono',monospace;font-size:0.66rem;font-weight:700;
  }
  .mp-remove{
    position:absolute;top:6px;right:6px;
    width:24px;height:24px;border-radius:50%;
    background:rgba(204,79,72,0.9);color:#fff;border:none;cursor:pointer;
    font-size:1rem;line-height:1;
  }
  .mp-add{
    aspect-ratio:1;border:1.5px dashed var(--brass);background:var(--graphite-2);color:var(--brass);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;
    border-radius:6px;
    font-family:'Inter',sans-serif;
    transition:all 0.2s;
  }
  .mp-add:hover{background:var(--graphite-3);border-color:var(--amber);color:var(--amber)}
  .mp-add-icon{font-size:2.4rem;font-weight:300;line-height:1;color:var(--amber)}
  .mp-add-label{font-family:'JetBrains Mono',monospace;font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;text-align:center}
  .mp-add-label small{font-size:0.55rem;opacity:0.6}

  .mp-tips{background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;padding:12px 16px}
  .mp-tips-h{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:6px}
  .mp-tips ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
  .mp-tips li{font-size:0.74rem;color:var(--offwhite-dim);line-height:1.5;padding-left:14px;position:relative}
  .mp-tips li::before{content:'·';position:absolute;left:4px;color:var(--brass);font-weight:700}
  .mp-tips b{color:var(--offwhite)}

  .mp-actions{display:flex;justify-content:flex-end}

  /* Workspace tabs */
  .ws-tabs{display:flex;gap:6px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
  .ws-tabs button{
    background:transparent;border:none;color:var(--offwhite-dim);
    padding:8px 14px;border-radius:5px;cursor:pointer;
    font-family:'JetBrains Mono',monospace;font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;
    transition:all 0.15s;
  }
  .ws-tabs button:hover{color:var(--offwhite);background:var(--graphite-2)}
  .ws-tabs button.active{color:var(--charcoal);background:var(--brass)}

  /* Recipes */
  .recipes-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
  .recipes-head h2{flex:1;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.45rem}
  .rl-count{font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase;margin-left:10px;font-style:normal}
  .recipes-filter{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
  .recipes-filter button{
    background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite-dim);
    padding:5px 11px;border-radius:99px;cursor:pointer;
    font-family:'JetBrains Mono',monospace;font-size:0.58rem;letter-spacing:0.16em;text-transform:uppercase;
    transition:all 0.15s;
  }
  .recipes-filter button:hover{color:var(--offwhite);border-color:var(--brass-deep)}
  .recipes-filter button.active{background:var(--brass);color:var(--charcoal);border-color:var(--brass)}
  .recipes-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));gap:14px}
  .recipe-card{
    background:var(--graphite);border:1px solid var(--line);border-radius:8px;
    padding:14px 16px;display:flex;flex-direction:column;gap:6px;cursor:pointer;
    transition:all 0.15s;
  }
  .recipe-card:hover{border-color:var(--brass-deep);transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,0.35)}
  .recipe-card.feat{border-color:var(--brass);background:linear-gradient(180deg, var(--graphite) 0%, var(--graphite-2) 100%)}
  .recipe-card .rc-head{display:flex;justify-content:space-between;align-items:baseline}
  .recipe-card .rc-cat{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .recipe-card .rc-price{font-family:'JetBrains Mono',monospace;font-size:0.85rem;color:var(--amber);font-weight:600}
  .recipe-card .rc-name{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.4rem;color:var(--offwhite);line-height:1.05;margin-top:2px}
  .recipe-card .rc-desc{font-size:0.74rem;color:var(--offwhite-dim);line-height:1.5;margin-top:2px}
  .recipe-card .rc-ings{display:flex;flex-direction:column;gap:2px;margin-top:6px;font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite);letter-spacing:0.04em;line-height:1.5}
  .recipe-card .rc-ings small{color:var(--offwhite-dim)}
  .recipe-card .rc-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);letter-spacing:0.06em}
  .recipe-card .rc-margin{color:var(--success);font-weight:600;letter-spacing:0.1em}

  .recipe-detail .rd-desc{font-size:0.86rem;color:var(--offwhite-dim);line-height:1.55;font-style:italic;margin-bottom:14px}
  .recipe-detail .rd-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}
  .recipe-detail h4{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:8px}
  .recipe-detail .rd-ingredients{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
  .recipe-detail .rd-ingredients li{padding:8px 12px;background:var(--graphite-2);border:1px solid var(--line);border-radius:5px;font-family:'JetBrains Mono',monospace;font-size:0.74rem;color:var(--offwhite);letter-spacing:0.04em}
  .recipe-detail .rd-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;counter-reset:step}
  .recipe-detail .rd-steps li{display:flex;align-items:flex-start;gap:10px;font-size:0.86rem;color:var(--offwhite);line-height:1.55}
  .recipe-detail .rd-steps .step-n{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--brass);color:var(--charcoal);display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:0.7rem;font-weight:700}
  .recipe-detail .rd-footer{display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}
  .recipe-detail .rd-footer > div{display:flex;flex-direction:column;gap:2px}
  .recipe-detail .rdf-l{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .recipe-detail .rdf-v{font-family:'Inter',sans-serif;font-size:0.92rem;color:var(--offwhite);font-weight:500}

  /* Reports */
  .reports-list{display:flex;flex-direction:column;gap:10px}
  .report-row{
    background:var(--graphite);border:1px solid var(--line);border-radius:6px;padding:14px 18px;cursor:pointer;
    transition:all 0.15s;
  }
  .report-row:hover{border-color:var(--brass-deep);background:var(--graphite-2)}
  .report-kind{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.22em;text-transform:uppercase;margin-bottom:4px}
  .report-title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.15rem;color:var(--offwhite)}
  .report-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.06em;margin-top:4px}
  .report-summary{font-size:0.78rem;color:var(--offwhite);line-height:1.55;margin-top:8px}
  .report-detail .rd-payload{background:var(--graphite-2);border:1px solid var(--line);border-radius:5px;padding:14px;font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--offwhite-dim);overflow-x:auto;line-height:1.5;max-height:400px;overflow-y:auto}

  /* Chat */
  .chat-fab{
    position:fixed;bottom:22px;right:22px;z-index:150;
    background:linear-gradient(180deg, var(--amber-glow), var(--amber));
    color:var(--charcoal);border:1px solid var(--brass);
    padding:11px 18px;border-radius:99px;cursor:pointer;
    display:inline-flex;align-items:center;gap:8px;
    font-family:'JetBrains Mono',monospace;font-size:0.7rem;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;
    box-shadow:0 8px 24px rgba(232,167,58,0.35), 0 4px 8px rgba(0,0,0,0.4);
    transition:all 0.18s;
  }
  .chat-fab:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(232,167,58,0.45), 0 4px 8px rgba(0,0,0,0.5)}
  .chat-fab svg{width:18px;height:18px}

  .chat-drawer{
    position:fixed;top:0;right:0;bottom:0;width:420px;max-width:96vw;z-index:160;
    background:var(--graphite);border-left:1px solid var(--brass);
    display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform 0.32s cubic-bezier(.2,.8,.2,1);
    box-shadow:-20px 0 50px rgba(0,0,0,0.55);
  }
  .chat-drawer.open{transform:translateX(0)}

  .chat-drawer .chat-head{
    padding:18px 22px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
    border-bottom:1px solid var(--line);
  }
  .chat-drawer .chat-head h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.3rem}
  .chat-drawer .chat-head span{display:block;font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--brass);letter-spacing:0.12em;text-transform:uppercase;margin-top:3px;line-height:1.5}
  .chat-drawer .chat-close{
    background:transparent;border:none;color:var(--offwhite-dim);font-size:1.5rem;cursor:pointer;
    padding:0 6px;
  }
  .chat-drawer .chat-close:hover{color:var(--danger)}

  .chat-messages{
    flex:1;overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px;
  }
  .chat-messages::-webkit-scrollbar{width:6px}
  .chat-messages::-webkit-scrollbar-thumb{background:var(--brass-deep);border-radius:3px}

  .chat-msg{display:flex;flex-direction:column;gap:8px}
  .chat-msg.user{align-items:flex-end}
  .chat-msg.bot{align-items:flex-start}
  .chat-bubble{
    padding:10px 14px;border-radius:14px;font-size:0.84rem;line-height:1.55;
    max-width:88%;word-wrap:break-word;
  }
  .chat-msg.user .chat-bubble{
    background:var(--brass);color:var(--charcoal);border-bottom-right-radius:4px;
  }
  .chat-msg.bot .chat-bubble{
    background:var(--graphite-2);color:var(--offwhite);border:1px solid var(--line);border-bottom-left-radius:4px;
  }
  .chat-bubble code{font-family:'JetBrains Mono',monospace;font-size:0.78rem;background:rgba(0,0,0,0.35);padding:1px 5px;border-radius:3px}
  .chat-bubble strong{color:var(--amber);font-weight:600}
  .chat-bubble em{color:var(--offwhite-dim);font-style:italic}
  .chat-bubble h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.15rem;margin:6px 0 8px;line-height:1.2}
  .chat-bubble h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--brass);font-size:1rem;margin:6px 0 6px;letter-spacing:0.01em}
  .chat-bubble h4{font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--brass);letter-spacing:0.16em;text-transform:uppercase;margin:8px 0 4px}
  .chat-bubble ul{margin:4px 0 8px 22px;padding:0}
  .chat-bubble li{margin-bottom:4px;line-height:1.5}
  .chat-bubble p{margin-bottom:6px}
  .chat-bubble table{width:100%;border-collapse:collapse;margin:8px 0;font-family:'JetBrains Mono',monospace;font-size:0.7rem}
  .chat-bubble th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);color:var(--brass);letter-spacing:0.06em;text-transform:uppercase;font-size:0.62rem}
  .chat-bubble td{padding:5px 8px;border-bottom:1px dashed var(--line)}

  .chat-tool-trace{
    font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);
    background:var(--graphite-2);border:1px solid var(--line);
    padding:6px 10px;border-radius:5px;letter-spacing:0.04em;
    max-width:88%;
  }
  .chat-tool-trace b{color:var(--brass);font-weight:600}

  .chat-prompts{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
  .chat-prompts button{
    background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite);
    padding:6px 12px;border-radius:99px;cursor:pointer;
    font-family:'Inter',sans-serif;font-size:0.74rem;
    transition:all 0.15s;
  }
  .chat-prompts button:hover{background:var(--graphite-3);border-color:var(--brass);color:var(--amber)}

  .chat-input-row{
    padding:14px 18px;border-top:1px solid var(--line);
    display:flex;gap:8px;align-items:center;
  }
  .chat-input-row input{
    flex:1;background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite);
    padding:10px 14px;border-radius:99px;outline:none;
    font-family:'Inter',sans-serif;font-size:0.84rem;
  }
  .chat-input-row input:focus{border-color:var(--brass)}
  .chat-input-row button{
    width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;
    background:var(--brass);color:var(--charcoal);
    font-size:1rem;font-weight:700;
    transition:all 0.15s;flex-shrink:0;
  }
  .chat-input-row button:hover{background:var(--amber)}
  .chat-input-row button:disabled{opacity:0.4;cursor:not-allowed}

  .typing{display:inline-flex;gap:3px}
  .typing span{width:6px;height:6px;border-radius:50%;background:var(--brass);animation:typingBounce 1s infinite}
  .typing span:nth-child(2){animation-delay:0.15s}
  .typing span:nth-child(3){animation-delay:0.3s}
  @keyframes typingBounce{0%,60%,100%{transform:translateY(0);opacity:0.4}30%{transform:translateY(-4px);opacity:1}}

  /* Help icons + modal */
  body.hide-help-icons .help-icon{display:none !important}

  /* Library Focus mode — hide session bar + stats + forecaster card so the
     bottle library + workspace get the full screen. Toggled from the topbar. */
  body.library-focus #sessionSection,
  body.library-focus #statsSection,
  body.library-focus #forecasterCard{display:none !important}
  body.library-focus #btnLibraryFocus{
    background:rgba(232,167,58,0.18);border-color:var(--brass);color:var(--amber);
  }
  .help-icon{
    display:inline-flex;align-items:center;justify-content:center;
    width:14px;height:14px;border-radius:50%;
    background:rgba(184,149,76,0.16);border:1px solid var(--brass-deep);color:var(--brass);
    font-family:'JetBrains Mono',monospace;font-size:0.55rem;font-weight:700;
    cursor:pointer;padding:0;line-height:1;flex-shrink:0;
    margin-left:5px;vertical-align:middle;
    transition:all 0.15s;
  }
  .help-icon:hover{background:var(--amber);color:var(--charcoal);border-color:var(--amber);transform:scale(1.15)}
  .help-icon::before{content:'?'}
  .help-icon.lg{width:18px;height:18px;font-size:0.7rem}

  .help-modal-backdrop{
    position:fixed;inset:0;background:rgba(14,13,12,0.78);backdrop-filter:blur(4px);
    z-index:300;display:none;align-items:center;justify-content:center;padding:24px;
  }
  .help-modal-backdrop.show{display:flex}
  .help-modal{
    background:var(--graphite);border:1px solid var(--brass);border-radius:10px;
    width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;
    box-shadow:0 30px 80px rgba(0,0,0,0.7);
  }
  .help-modal .hm-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 22px;border-bottom:1px solid var(--line)}
  .help-modal .hm-head h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;font-size:1.4rem;color:var(--offwhite)}
  .help-modal .hm-close{background:transparent;border:none;color:var(--offwhite-dim);font-size:1.6rem;cursor:pointer;line-height:1;padding:0 4px}
  .help-modal .hm-close:hover{color:var(--danger)}
  .help-modal .hm-body{flex:1;overflow-y:auto;padding:20px 22px;font-size:0.86rem;line-height:1.65;color:var(--offwhite)}
  .help-modal .hm-body p{margin-bottom:10px}
  .help-modal .hm-body ul{margin:8px 0 12px 20px;display:flex;flex-direction:column;gap:5px}
  .help-modal .hm-body li{font-size:0.84rem}
  .help-modal .hm-body b{color:var(--brass);font-weight:600}
  .help-modal .hm-body code{font-family:'JetBrains Mono',monospace;font-size:0.78rem;background:var(--graphite-2);padding:1px 6px;border-radius:3px;color:var(--amber)}
  .help-modal .hm-body em{color:var(--offwhite-dim);font-style:italic}
  .help-modal .hm-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
  .help-modal .hm-foot a{color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:0.7rem;letter-spacing:0.16em;text-transform:uppercase;text-decoration:none}
  .help-modal .hm-foot a:hover{color:var(--amber-glow)}
  .help-modal .hm-foot .hm-key{font-family:'JetBrains Mono',monospace;font-size:0.6rem;color:var(--offwhite-dim);letter-spacing:0.1em}

  /* Open orders + receive flow */
  .open-orders-list{display:flex;flex-direction:column;gap:10px}
  .open-order{
    background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;
    padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:14px;
  }
  .open-order .oo-supplier{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.05rem}
  .open-order .oo-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.06em;margin-top:3px}
  .open-order .oo-actions{display:flex;gap:6px;flex-wrap:wrap}
  .open-order .oo-actions .btn{font-size:0.62rem;padding:7px 12px;text-decoration:none}

  .receive-flow{display:flex;flex-direction:column;gap:18px}
  .rcv-step{display:flex;flex-direction:column;gap:10px}
  .rcv-step-h{font-family:'JetBrains Mono',monospace;font-size:0.65rem;color:var(--brass);letter-spacing:0.2em;text-transform:uppercase}
  .rcv-summary{
    background:rgba(125,169,92,0.06);border:1px solid rgba(125,169,92,0.32);
    padding:10px 14px;border-radius:5px;font-size:0.78rem;color:var(--offwhite);line-height:1.5;
  }
  .rcv-summary b{color:var(--success)}

  /* ──────── Mobile responsive (≤720px) ──────── */
  @media (max-width: 720px) {
    /* Tighter modal frame on phones */
    .modal-backdrop { padding: 8px; }
    .modal { max-width: 100%; max-height: 94vh; border-radius: 8px; }
    .modal-head { padding: 14px 16px; }
    .modal-head h2 { font-size: 1.2rem; }
    .modal-head .modal-sub { font-size: 0.55rem; }
    .modal-body { padding: 14px 16px; }
    .modal-foot { padding: 12px 16px; flex-wrap: wrap; gap: 8px; }
    .modal-foot > span { font-size: 0.65rem; flex: 1 1 100%; order: -1; }

    /* Mobile: let the whole page scroll naturally; only the topbar stays sticky */
    html, body { overflow-y: auto !important; height: auto !important; min-height: 100% }
    body { -webkit-overflow-scrolling: touch; }
    .topbar { position: sticky; top: 0; z-index: 80; }

    /* When a bottle is selected on mobile, hide the library so user sees the count card */
    body.bottle-selected .bottles-col { display: none; }
    body.bottle-selected .stats { display: none; }
    body.bottle-selected #sessionSection { display: none; }
    /* Show a back-to-library button only on mobile when a bottle is selected */
    body.bottle-selected .back-to-library { display: inline-flex !important; }
    .main {
      grid-template-columns: 1fr;
      grid-template-rows: auto auto;
      overflow: visible;
      height: auto;
    }
    .col { overflow: visible !important; height: auto !important; }
    .bottles-col {
      border-right: none;
      border-bottom: 1px solid var(--line);
      max-height: none;
    }
    .bottles-header { position: sticky; top: 56px; z-index: 5; }
    .work { padding: 14px 16px; max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
    /* Count-head: wrap so the QUICK AUDIT pill drops to its own row instead of overflowing */
    .count-head { flex-wrap: wrap; gap: 12px; }
    .count-head .ch-body { min-width: 0; flex: 1 1 60%; }
    .audit-tag { order: -1; margin-bottom: 2px; font-size: 0.55rem; padding: 4px 9px; }
    .count-card { min-width: 0; }
    .count-card .panel { min-width: 0; max-width: 100%; box-sizing: border-box; }

    /* Topbar: trim spacing, allow wrap */
    .topbar { padding: 0 12px; gap: 8px; height: auto; min-height: 56px; flex-wrap: wrap; padding-top: 8px; padding-bottom: 8px; }
    .module-title { font-size: 1.05rem; }
    .topbar-link { padding: 5px 9px; font-size: 0.55rem; }
    .topbar-divider { display: none; }
    .clock { font-size: 0.66rem; }
    .live-indicator { font-size: 0.52rem; padding: 2px 6px; }

    /* Photo placeholder: explainer text doesn't fit on mobile — show camera icon only */
    .photo-placeholder .ph-h,
    .photo-placeholder .ph-p { display: none; }
    .photo-placeholder { padding: 0; }
    .photo-placeholder svg { width: 36px; height: 36px; opacity: 0.55; }

    /* Cancel/Save row: left-align so ASK floating button doesn't cover Save */
    .save-row { justify-content: flex-start; padding-right: 88px; }

    /* Session bar: stack actions */
    .session-bar { padding: 10px 14px; flex-wrap: wrap; gap: 8px; }
    .session-actions { width: 100%; flex-wrap: wrap; gap: 6px; }
    .session-actions .btn { font-size: 0.6rem; padding: 7px 10px; flex: 1 1 auto; min-width: 0; }

    /* Stat strip: 2-column grid */
    .stats { grid-template-columns: repeat(2, 1fr); }
    .stat { padding: 10px 12px; }
    .stat-value { font-size: 1.1rem; }
    .stat-label { font-size: 0.55rem; }

    /* Variance grid: 2-column instead of 4 */
    .vd-grid { grid-template-columns: repeat(2, 1fr); }
    .vd-card { padding: 10px 12px; }
    .vd-card .vd-v { font-size: 1.1rem; }

    /* Reorder modal: stack each row vertically */
    .reorder-row {
      grid-template-columns: 1fr;
      gap: 6px;
      padding: 12px 0;
    }
    .reorder-row.head { display: none; } /* labels are inline on each row instead */
    .reorder-row .ro-brand { font-weight: 600; }
    .reorder-row .ro-brand small { font-size: 0.55rem; }
    .reorder-row > div:nth-child(2)::before { content: 'On hand: '; color: var(--brass); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; margin-right: 6px; }
    .reorder-row > div:nth-child(3)::before { content: 'Par: ';     color: var(--brass); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; margin-right: 6px; }
    .reorder-row > div:nth-child(4)::before { content: 'Order: ';   color: var(--brass); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; margin-right: 6px; }
    .reorder-row > div:nth-child(5).ro-cost::before { content: 'Cost: '; color: var(--brass); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; margin-right: 6px; }
    .reorder-row input[type=number] { width: 80px; }

    /* AI forecast banner: stack vertical */
    #reorderBody > div:first-child { flex-direction: column; align-items: flex-start !important; gap: 8px !important; }
    #reorderBody > div:first-child .btn { width: 100%; }

    /* Supplier group head: stack */
    .supplier-group .sg-head { flex-direction: column; align-items: stretch; gap: 8px; }
    .supplier-group .sg-controls { flex-direction: column; align-items: stretch; }
    .supplier-group .sg-controls > * { width: 100%; }
    .supplier-group .sg-method { width: 100%; }

    /* Loss timeline: stack rows */
    .tl-row { grid-template-columns: 1fr; gap: 4px; padding: 8px; }
    .tl-time { font-size: 0.6rem; }
    .bm-row { grid-template-columns: 1fr; gap: 4px; padding: 8px; }
    .loss-summary { grid-template-columns: 1fr 1fr; }

    /* Recipes / reports tables */
    .vd-table { font-size: 0.66rem; }
    .vd-table th { padding: 6px 6px; font-size: 0.55rem; letter-spacing: 0.1em; }
    .vd-table td { padding: 7px 6px; }
    .recipes-grid { grid-template-columns: 1fr; }
    .pricing-grid { grid-template-columns: 1fr; }
    .cost-trend-grid { grid-template-columns: 1fr 1fr; }
    .bartender-heat { grid-template-columns: 1fr; }

    /* Forms */
    .bottle-form .bf-grid { grid-template-columns: 1fr; gap: 10px; }

    /* Library tab table: simpler on mobile */
    .lib-table th, .lib-table td { padding: 6px 6px; font-size: 0.62rem; }

    /* Recipe detail modal */
    .recipe-detail .rd-grid { grid-template-columns: 1fr; gap: 18px; }
    .recipe-detail .rd-footer { grid-template-columns: 1fr 1fr; gap: 8px; }

    /* Scan modal */
    .scan-grid { grid-template-columns: 1fr; }

    /* Multi-photo grid */
    .mp-thumbs { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }

    /* Chat drawer: full-screen on phone */
    .chat-drawer { width: 100%; max-width: 100%; }

    /* Open orders */
    .open-order { flex-direction: column; align-items: stretch; gap: 8px; }
    .open-order .oo-actions { flex-wrap: wrap; }

    /* Hide some less-critical topbar items on really tight screens */
    @media (max-width: 480px) {
      .brand-block .b2 { display: none; }
      .module-title { display: none; }
      .clock { display: none; }
    }
  }

  /* ──────── Shift Forecaster card ──────── */
  .forecaster-card{
    margin:12px 16px 0;background:linear-gradient(180deg,rgba(184,149,76,0.07),rgba(14,13,12,0.6));
    border:1px solid rgba(184,149,76,0.28);border-radius:6px;padding:14px 18px;
    display:flex;flex-direction:column;gap:12px;
  }
  .forecaster-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  .forecaster-head h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--amber);font-size:1.25rem;margin:0;letter-spacing:0.01em}
  .forecaster-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .forecaster-controls{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .forecaster-controls input[type="date"]{
    background:var(--charcoal);border:1px solid var(--brass-deep);color:var(--offwhite);
    font-family:'JetBrains Mono',monospace;font-size:0.72rem;padding:6px 10px;border-radius:4px;
  }
  .forecaster-summary{
    color:var(--offwhite);font-size:0.85rem;line-height:1.5;
    white-space:pre-wrap;background:rgba(0,0,0,0.25);border-left:2px solid var(--amber);
    padding:10px 14px;border-radius:0 4px 4px 0;
  }
  .forecaster-counts{display:flex;gap:14px;flex-wrap:wrap;font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--offwhite-dim);letter-spacing:0.1em;text-transform:uppercase}
  .forecaster-counts b{color:var(--offwhite);font-weight:600}
  .forecaster-counts .pill{padding:3px 9px;border-radius:99px;border:1px solid;font-size:0.66rem}
  .forecaster-counts .pill.shortage{color:var(--danger);border-color:rgba(204,79,72,0.5);background:rgba(204,79,72,0.08)}
  .forecaster-counts .pill.watch{color:var(--amber);border-color:rgba(232,167,58,0.5);background:rgba(232,167,58,0.08)}
  .forecaster-counts .pill.safe{color:var(--success);border-color:rgba(125,169,92,0.5);background:rgba(125,169,92,0.08)}
  .forecaster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
  .fc-bottle{
    background:rgba(0,0,0,0.25);border:1px solid rgba(184,149,76,0.18);
    border-radius:5px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;
  }
  .fc-bottle.shortage{border-color:rgba(204,79,72,0.55);background:rgba(204,79,72,0.07)}
  .fc-bottle.watch{border-color:rgba(232,167,58,0.5);background:rgba(232,167,58,0.06)}
  .fc-bottle.safe{border-color:rgba(125,169,92,0.3)}
  .fc-brand{font-weight:600;font-size:0.88rem;color:var(--offwhite)}
  .fc-line{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--offwhite-dim)}
  .fc-line b{color:var(--offwhite);font-weight:500}
  .fc-action{font-size:0.72rem;color:var(--brass);font-style:italic;margin-top:2px}
  .fc-bottle.shortage .fc-action{color:var(--danger)}
  .fc-bottle.watch .fc-action{color:var(--amber)}
  .forecaster-empty{color:var(--offwhite-dim);font-size:0.78rem;font-style:italic;padding:20px;text-align:center}

  /* ──────── Coaching button on bartender card ──────── */
  .bt-coach-btn{
    margin-top:8px;background:rgba(232,167,58,0.1);border:1px solid rgba(232,167,58,0.45);
    color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:0.62rem;letter-spacing:0.16em;
    text-transform:uppercase;padding:6px 11px;border-radius:4px;cursor:pointer;font-weight:600;
    transition:all 0.15s;
  }
  .bt-coach-btn:hover{background:rgba(232,167,58,0.22);border-color:var(--amber)}

  /* ──────── Coach modal ──────── */
  .coach-modal-backdrop{
    position:fixed;inset:0;background:rgba(0,0,0,0.78);z-index:9000;
    display:none;align-items:center;justify-content:center;padding:20px;
  }
  .coach-modal-backdrop.open{display:flex}
  .coach-modal{
    background:var(--charcoal);border:1px solid var(--brass);border-radius:8px;
    width:100%;max-width:580px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;
    box-shadow:0 20px 60px rgba(0,0,0,0.6),0 0 0 1px rgba(184,149,76,0.15);
  }
  .coach-modal-head{
    padding:16px 22px;border-bottom:1px solid rgba(184,149,76,0.2);
    display:flex;align-items:flex-start;gap:14px;
  }
  .coach-modal-head h2{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--amber);font-size:1.4rem;margin:0;font-weight:700}
  .coach-modal-head .sub{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--brass);letter-spacing:0.2em;text-transform:uppercase;margin-top:4px}
  .coach-modal-head .x{margin-left:auto;background:transparent;border:none;color:var(--offwhite-dim);font-size:1.4rem;cursor:pointer;line-height:1}
  .coach-modal-head .x:hover{color:var(--danger)}
  .coach-modal-body{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
  .coach-snapshot{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;
    background:rgba(0,0,0,0.3);border-radius:5px;padding:12px;
  }
  .coach-snapshot .cs-cell{display:flex;flex-direction:column;gap:2px}
  .coach-snapshot .cs-l{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.16em;text-transform:uppercase}
  .coach-snapshot .cs-v{font-family:'JetBrains Mono',monospace;font-size:1rem;color:var(--offwhite);font-weight:600}
  .coach-snapshot .cs-v.neg{color:var(--danger)}
  .coach-snapshot .cs-v.pos{color:var(--success)}
  .coach-message{
    background:rgba(184,149,76,0.06);border:1px solid rgba(184,149,76,0.3);border-radius:5px;
    padding:14px 16px;font-size:0.88rem;line-height:1.55;color:var(--offwhite);
    white-space:pre-wrap;font-family:'Inter',sans-serif;
  }
  .coach-modal-foot{
    padding:14px 22px;border-top:1px solid rgba(184,149,76,0.2);
    display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  }
  .coach-modal-foot .priv{font-size:0.66rem;color:var(--offwhite-dim);font-style:italic;margin-right:auto}
  .coach-modal-foot .btn{padding:8px 14px;font-size:0.72rem}
  .coach-spinner{display:flex;align-items:center;justify-content:center;gap:14px;padding:40px 0;color:var(--amber);font-family:'JetBrains Mono',monospace;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase}

  /* ──────── Vision panels: Photo-to-Menu + Auto-Spotter ──────── */
  .vision-panel{
    background:rgba(14,13,12,0.5);border:1px solid var(--brass-deep);border-radius:8px;
    padding:18px 20px;margin-bottom:18px;
  }
  .vision-panel h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--brass);font-size:1.25rem;margin:0 0 4px;letter-spacing:0.01em}
  .vision-panel .vp-sub{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:14px}
  .vision-panel .vp-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
  .vision-panel input[type="text"]{
    flex:1;min-width:160px;background:var(--graphite-2);border:1px solid var(--line);color:var(--offwhite);
    padding:10px 12px;border-radius:5px;font-family:'Inter',sans-serif;font-size:0.84rem;outline:none;
  }
  .vision-panel input[type="text"]:focus{border-color:var(--brass)}
  .vision-thumb{
    width:88px;height:88px;border-radius:6px;border:1px solid var(--brass-deep);object-fit:cover;
    background:var(--graphite-2);
  }
  .vision-thumb-empty{
    width:88px;height:88px;border-radius:6px;border:1.5px dashed var(--brass-deep);
    background:var(--graphite-2);display:flex;align-items:center;justify-content:center;
    color:var(--brass);font-family:'JetBrains Mono',monospace;font-size:0.55rem;letter-spacing:0.16em;text-transform:uppercase;
  }
  .vp-thumb-row{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap}
  .vp-thumb-cell{display:flex;flex-direction:column;gap:6px;align-items:center}
  .vp-thumb-label{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .vp-status{
    font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--amber);letter-spacing:0.16em;text-transform:uppercase;
    padding:8px 0;
  }
  .vp-result{margin-top:14px;display:flex;flex-direction:column;gap:10px}
  .extracted-cocktail{
    background:var(--graphite-2);border:1px solid var(--line);border-radius:6px;padding:12px 14px;
    display:flex;flex-direction:column;gap:6px;
  }
  .extracted-cocktail.exists{border-color:var(--brass-deep);background:rgba(184,149,76,0.06)}
  .ec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
  .ec-name{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:1.05rem;line-height:1.2}
  .ec-price{font-family:'JetBrains Mono',monospace;color:var(--amber);font-size:0.84rem;font-weight:600}
  .ec-meta{font-family:'JetBrains Mono',monospace;font-size:0.62rem;color:var(--offwhite-dim);letter-spacing:0.12em;text-transform:uppercase}
  .ec-ingr{font-family:'Inter',sans-serif;font-size:0.78rem;color:var(--offwhite);line-height:1.5}
  .ec-tag{
    display:inline-block;padding:2px 8px;border-radius:3px;background:var(--graphite-3);color:var(--brass);
    font-family:'JetBrains Mono',monospace;font-size:0.55rem;letter-spacing:0.12em;text-transform:uppercase;margin-right:5px;
  }
  .ec-tag.exists{background:var(--brass);color:var(--charcoal)}
  .ec-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
  .ec-actions .btn{padding:6px 12px;font-size:0.7rem}

  .spotter-flag{
    background:var(--graphite-2);border-left:3px solid var(--amber);border-radius:4px;
    padding:10px 14px;margin-bottom:8px;
  }
  .spotter-flag.crit{border-left-color:var(--danger)}
  .spotter-flag .sf-kind{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:3px}
  .spotter-flag .sf-msg{font-family:'Inter',sans-serif;font-size:0.84rem;color:var(--offwhite);line-height:1.4}
  .spotter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}
  .spotter-card{background:var(--graphite-2);border:1px solid var(--line);border-radius:5px;padding:10px 12px}
  .spotter-card .sc-h{font-family:'JetBrains Mono',monospace;font-size:0.58rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:4px}
  .spotter-card .sc-brand{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:700;color:var(--offwhite);font-size:0.95rem}
  .spotter-card .sc-meta{font-family:'JetBrains Mono',monospace;font-size:0.66rem;color:var(--offwhite-dim);letter-spacing:0.08em;margin-top:3px}
  .spotter-totals{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;padding:10px 0;border-top:1px solid var(--line)}
  .spotter-totals .st-cell{display:flex;flex-direction:column}
  .spotter-totals .st-l{font-family:'JetBrains Mono',monospace;font-size:0.55rem;color:var(--brass);letter-spacing:0.18em;text-transform:uppercase}
  .spotter-totals .st-v{font-family:'JetBrains Mono',monospace;font-size:0.95rem;color:var(--offwhite);font-weight:600}
  .spotter-totals .st-v.neg{color:var(--danger)}
