  html, body { margin: 0; padding: 0; }
  body {
    background: #F5F1E8;
    /* One normalized type family across the whole dashboard. Everything else
       inherits (font/font-family: inherit), so this cascades. Helvetica first,
       Arial as the Windows-safe metric-compatible fallback. */
    font-family: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color-scheme: light;
    color: #1a1a1a;
  }
  @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

  /* ============================================================
     LAYOUT
  ============================================================ */
  .dashboard {
    max-width: 720px;
    margin: 0 auto;
    padding: 48px 16px 80px;
  }

  /* ============================================================
     HEADER
  ============================================================ */
  .dashboard-header {
    margin-bottom: 40px;
  }
  .dashboard-title {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #8a8275;
    margin: 0 0 6px 0;
  }
  .dashboard-subtitle {
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
    line-height: 1.2;
  }

  /* ============================================================
     SELECTORS: flat text buttons, underline on active
     No rounded chips, no shadows, no icons.
  ============================================================ */
  .selectors {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 36px;
  }
  .selector-row {
    display: flex;
    align-items: baseline;
    gap: 0;
    flex-wrap: wrap;
  }
  .selector-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b3aa98;
    margin-right: 16px;
    white-space: nowrap;
    padding-top: 2px;
  }
  .selector-btn {
    background: none;
    border: none;
    padding: 4px 0;
    margin: 0 14px 4px 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    color: #8a8275;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: color 0.1s, border-color 0.1s;
    outline: none;
  }
  .selector-btn:hover {
    color: #1a1a1a;
  }
  .selector-btn.active {
    color: #1a1a1a;
    border-bottom-color: #1a1a1a;
  }

  /* Brand-specific active underline colors (sub-nav: FranDev months) */
  .brand-ua .selector-btn.active { border-bottom-color: #5B2D8E; color: #5B2D8E; }
  .brand-tlg .selector-btn.active { border-bottom-color: #3FC0C3; color: #3FC0C3; }

  /* Project dropdown  -  top-level selector, grouped by brand.
     Replaces the flat campaign button row so the nav stays scannable
     as projects pile up. */
  #project-row { align-items: center; }
  .project-select {
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    background-color: transparent;
    border: none;
    border-radius: 0;
    padding: 4px 24px 4px 0;
    margin: 0;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 12 8'><path fill='none' stroke='%238a8275' stroke-width='2' d='M1 1l5 5 5-5'/></svg>");
    background-repeat: no-repeat;
    background-position: right 2px center;
    max-width: 100%;
    border-bottom: 2px solid transparent;
    transition: border-color 0.1s, color 0.1s;
  }
  .project-select:hover { border-bottom-color: #d8d0c0; }
  .project-select:focus { outline: none; border-bottom-color: #1a1a1a; }
  /* Open menu still needs a readable surface (browser-drawn popup) */
  .project-select optgroup { font-weight: 700; color: #8a8275; background: #ffffff; }
  .project-select option { font-weight: 600; color: #1a1a1a; background: #ffffff; }

  /* ============================================================
     LAUNCHPAD  -  the project grid "home" for the Email view.
     Walk-up navigation: every project as a card, grouped by brand,
     searchable. Generated from CAMPAIGNS; no per-project markup.
  ============================================================ */
  #section-launchpad { display: none; }
  body.view-home #section-launchpad { display: block; }
  body.view-home #project-row,
  body.view-home #sub-row,
  body.view-home .email-card-wrap,
  body.view-home #section-thrivescore { display: none !important; }
  body.view-bu #section-launchpad,
  body.view-closed #section-launchpad,
  body.view-tickets #section-launchpad,
  body.view-calendar #section-launchpad { display: none !important; }

  .lp-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 20px; }
  .lp-search {
    font-family: inherit; font-size: 15px; font-weight: 500; color: #1a1a1a;
    background: #fff; border: 1px solid #e2dbcc; border-radius: 8px;
    padding: 10px 14px; width: 300px; max-width: 100%; outline: none;
    transition: border-color .12s, box-shadow .12s;
  }
  .lp-search::placeholder { color: #b3aa98; }
  .lp-search:focus { border-color: #1a1a1a; box-shadow: 0 0 0 3px rgba(26,26,26,.06); }
  .lp-kbd {
    font-size: 11px; font-weight: 700; color: #b3aa98; letter-spacing: .04em;
    border: 1px solid #e2dbcc; border-radius: 5px; padding: 3px 7px; background: #fff; white-space: nowrap;
  }
  .lp-count { font-size: 13px; color: #8a8275; margin-left: auto; }

  .lp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 26px; }
  /* Framed, squared nav — outline the word, no pill fill. Active = a heavier
     frame (doubled via inset box-shadow so it doesn't shift layout), not a fill. */
  .lp-chip {
    font: inherit; font-size: 12.5px; font-weight: 600; padding: 5px 12px; border-radius: 2px;
    border: 1px solid #d8cfbc; background: transparent; color: #6b6459; cursor: pointer; transition: all .12s;
  }
  .lp-chip:hover { border-color: #8a8275; color: #1a1a1a; }
  .lp-chip.active { background: transparent; color: #1a1a1a; border-color: #1a1a1a; box-shadow: inset 0 0 0 1px #1a1a1a; font-weight: 700; }

  .lp-group { margin: 0 0 30px; }
  .lp-group-title {
    font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: #b3aa98; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid #e7e0d1;
  }
  .lp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(212px, 1fr)); gap: 14px; }
  .lp-card {
    display: block; text-decoration: none; background: #fff; border: 1px solid #eee7d8;
    border-radius: 6px; padding: 15px 16px 14px; cursor: pointer;
    box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  }
  .lp-card:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0,0,0,.10); border-color: #ddd3bd; }
  /* Soft entrance for the browse grid; respects reduced-motion. */
  @media (prefers-reduced-motion: no-preference) {
    @keyframes lp-fade-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
    .lp-card { animation: lp-fade-up .28s ease both; }
  }
  .lp-card-name { font-size: 15.5px; font-weight: 700; color: #1a1a1a; line-height: 1.25; margin: 0 0 12px; }
  .lp-card-foot { display: flex; align-items: center; gap: 8px; }
  .lp-dots { display: flex; gap: 3px; }
  .lp-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
  .lp-meta { font-size: 12.5px; color: #8a8275; margin-left: auto; }
  .lp-status {
    font-size: 10px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    padding: 2px 8px; border-radius: 3px; margin: 0 0 12px; display: inline-block;
  }
  .lp-status.live     { background: #e4f6e9; color: #177a37; }
  .lp-status.building { background: #fff3e0; color: #b36a00; }
  .lp-status.draft    { background: #eee9df; color: #8a8275; }
  /* Pills are click-to-edit */
  .lp-status { cursor: pointer; }
  .lp-status::after { content: " ▾"; opacity: .55; font-size: 8px; }
  .lp-status:hover { filter: brightness(.96); }

  /* Status pill in the project view header (also click-to-edit) */
  .status-pill {
    font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    padding: 3px 10px; border-radius: 4px; border: none; cursor: pointer; margin-top: 10px; display: inline-block;
  }
  .status-pill::after { content: " ▾"; opacity: .55; font-size: 9px; }
  .status-pill.live     { background: #e4f6e9; color: #177a37; }
  .status-pill.building { background: #fff3e0; color: #b36a00; }
  .status-pill.draft    { background: #eee9df; color: #8a8275; }

  /* Shared status picker menu */
  .status-menu {
    position: absolute; z-index: 1000; display: none; background: #fff; border: 1px solid #eee7d8;
    border-radius: 9px; box-shadow: 0 16px 40px rgba(0,0,0,.18); padding: 5px; min-width: 132px;
  }
  .status-menu.open { display: block; }
  .status-menu button {
    display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; font-family: inherit;
    font-size: 13.5px; font-weight: 600; color: #1a1a1a; background: none; border: none; border-radius: 6px;
    padding: 8px 10px; cursor: pointer;
  }
  .status-menu button:hover { background: #f3efe4; }
  .status-menu button::before {
    content: ""; width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--dot, #b3aa98);
  }
  .status-menu button[data-st="live"]     { --dot: #177a37; }
  .status-menu button[data-st="building"] { --dot: #b36a00; }
  .status-menu button[data-st="draft"]    { --dot: #b3aa98; }
  .status-menu button.sel { background: #f3efe4; }
  .status-menu button.sel::after { content: "✓"; margin-left: auto; color: #8a8275; font-size: 12px; }

  /* Brand switcher (multi-brand projects) */
  #brand-row { align-items: center; }
  .brand-chip {
    font: inherit; font-size: 13px; font-weight: 600; padding: 5px 12px; margin: 0 8px 4px 0;
    border-radius: 2px; border: 1px solid #d8cfbc; background: transparent; color: #6b6459; cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px; transition: all .12s;
  }
  .brand-chip:hover { border-color: #8a8275; color: #1a1a1a; }
  .brand-chip .brand-chip-dot { width: 8px; height: 8px; border-radius: 2px; flex: none; }
  /* Active brand chip is framed in the brand's own color (set inline by JS). */
  .brand-chip.active { color: #1a1a1a; border-color: #1a1a1a; box-shadow: inset 0 0 0 1px #1a1a1a; font-weight: 700; }
  body.view-home #brand-row,
  body.view-bu #brand-row,
  body.view-closed #brand-row,
  body.view-tickets #brand-row,
  body.view-calendar #brand-row { display: none !important; }

  /* Sub-view toggle (Concepts/Calendar, Builds/Closed, Board/Log) - reuses .brand-chip. */
  #subview-row { align-items: center; }
  #subview-row .brand-chip.active { background: transparent; color: #1a1a1a; border-color: #1a1a1a; box-shadow: inset 0 0 0 1px #1a1a1a; }

  /* Back-to-launchpad link in the project row */
  .lp-back {
    background: none; border: none; font-family: inherit; font-size: 13px; font-weight: 600;
    color: #8a8275; cursor: pointer; padding: 4px 0; margin-right: 18px; white-space: nowrap;
  }
  .lp-back:hover { color: #1a1a1a; }

  /* Command palette (Ctrl/⌘ K) */
  .cmdk-overlay {
    position: fixed; inset: 0; background: rgba(20,18,14,.34); backdrop-filter: blur(2px);
    display: none; align-items: flex-start; justify-content: center; z-index: 999; padding-top: 12vh;
  }
  .cmdk-overlay.open { display: flex; }
  .cmdk {
    width: 560px; max-width: 92vw; background: #fff; border-radius: 12px; overflow: hidden;
    box-shadow: 0 30px 80px rgba(0,0,0,.35); border: 1px solid #eee7d8;
  }
  .cmdk-input {
    width: 100%; box-sizing: border-box; font-family: inherit; font-size: 17px; font-weight: 500;
    color: #1a1a1a; border: none; border-bottom: 1px solid #eee7d8; padding: 16px 18px; outline: none;
  }
  .cmdk-input::placeholder { color: #b3aa98; }
  .cmdk-list { max-height: 46vh; overflow-y: auto; padding: 6px; }
  .cmdk-item {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px;
    font-size: 14.5px; color: #1a1a1a; cursor: pointer;
  }
  .cmdk-item .cmdk-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
  .cmdk-item.sel, .cmdk-item:hover { background: #f3efe4; }
  .cmdk-empty { padding: 18px; text-align: center; color: #8a8275; font-size: 14px; }

  /* ============================================================
     EMAIL CARD
  ============================================================ */
  .email-card-wrap {
    display: none;
  }
  .email-card-wrap.visible {
    display: block;
  }
  .email-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    flex-wrap: wrap;
  }
  .email-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #8a8275;
  }
  .pill {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 3px;
    background: #e8e3d8;
    color: #8a8275;
  }
  .pill.concept { background: #ede9ff; color: #5B2D8E; }
  .pill.gap { background: #fff3e0; color: #b36a00; }

  .email-card {
    background: #ffffff;
    border-radius: 6px;
    overflow: hidden;
    box-shadow:
      0 24px 60px rgba(0, 0, 0, 0.10),
      0 6px 16px rgba(0, 0, 0, 0.06);
    margin-bottom: 12px;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
  }
  .email-card iframe {
    /* iOS Safari sizes iframes to their CONTENT width, ignoring width:100% — which makes email
       concepts render at their 600px desktop width on a phone (never hitting their own mobile
       breakpoint, so they overflow/clip). width:1px + min-width:100% forces iOS to size the iframe
       to the container instead, so the concept sees a narrow viewport and reflows responsively. */
    width: 1px;
    min-width: 100%;
    max-width: 100%;
    border: 0;
    display: block;
    background: #ffffff;
  }

  /* Gap flag area: honest status, not a gray sidenote */
  .gap-flag {
    background: #fff8ed;
    border-left: 3px solid #f0a830;
    padding: 12px 16px;
    margin-bottom: 12px;
    border-radius: 0 4px 4px 0;
  }
  .gap-flag p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: #5c3d00;
  }
  .gap-flag strong {
    display: block;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #b36a00;
    margin-bottom: 4px;
  }

  /* Pending build state: honest, no filler content */
  .pending-card {
    background: #ffffff;
    border-radius: 6px;
    border: 2px dashed #c8c2b5;
    padding: 48px 32px;
    margin-bottom: 12px;
    text-align: center;
  }
  .pending-title {
    margin: 0 0 10px 0;
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    letter-spacing: 0.02em;
  }
  .pending-body {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: #6b6459;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
  }

  .preview-link {
    margin: 0 0 4px 0;
    font-size: 14px;
  }
  /* Preview link that sits ABOVE the concept (so it's reachable without
     scrolling the full email). Standard placement going forward. */
  .preview-link.above {
    margin: 0 0 12px 0;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
  }
  .preview-link a {
    color: #5b2d8e;
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px solid rgba(91, 45, 142, 0.35);
    padding-bottom: 1px;
  }
  .preview-link a:hover { border-bottom-color: #5b2d8e; }
  .preview-link.tlg a { color: #3FC0C3; border-bottom-color: rgba(63, 192, 195, 0.4); }
  .preview-link.tlg a:hover { border-bottom-color: #3FC0C3; }

  /* Click-through overlay: when a concept has a live preview, clicking the
     rendered email opens that preview in a new tab. Transparent anchor laid
     over the iframe (iframes swallow clicks, so an overlay is required).
     Page scroll still works — anchors don't capture wheel events. */
  .email-card { position: relative; }
  .card-click {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: block;
    cursor: pointer;
    background: transparent;
    text-indent: -9999px;
    overflow: hidden;
  }
  .card-click:focus-visible {
    outline: 3px solid #5b2d8e;
    outline-offset: -3px;
  }

  /* ============================================================
     SUBJECT / PREHEADER TILE STANDARD  (v2026-05-27)
     Reusable for any email concept tile going forward.
     Usage:
       <div class="email-subject-block">
         <div class="email-subject">Subject goes here</div>
         <div class="email-preheader">Preheader goes here</div>
         <details class="subject-alternates">
           <summary>Alternates</summary>
           <div class="subject-alt-item">
             <span class="subject-alt-label">Alt 1</span>
             <div class="subject-alt-subject">Subject text</div>
             <div class="subject-alt-preheader">Preheader text</div>
           </div>
         </details>
       </div>
  ============================================================ */
  .email-subject-block {
    margin-bottom: 12px;
    padding: 14px 16px 10px;
    background: #ffffff;
    border-radius: 0 0 6px 6px;
    border-top: 3px solid #1a1a1a;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
  .email-subject {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.3;
    margin-bottom: 4px;
  }
  .email-preheader {
    font-size: 13px;
    color: #6b6459;
    line-height: 1.5;
    margin: 0;
  }
  .subject-alternates {
    margin-top: 10px;
    border-top: 1px solid #e8e3d8;
    padding-top: 8px;
  }
  .subject-alternates summary {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #b3aa98;
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 6px;
    user-select: none;
    outline: none;
  }
  .subject-alternates summary::-webkit-details-marker { display: none; }
  .subject-alternates summary::after {
    content: '+';
    font-size: 11px;
    font-weight: 700;
    color: #b3aa98;
    margin-left: auto;
  }
  .subject-alternates[open] summary::after { content: '\2212'; }
  .subject-alternates[open] summary { color: #8a8275; }
  .subject-alt-item {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #f0ece4;
  }
  .subject-alt-item:first-of-type { margin-top: 8px; }
  .subject-alt-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #b3aa98;
    margin-bottom: 4px;
  }
  .subject-alt-subject {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
    margin-bottom: 2px;
  }
  .subject-alt-preheader {
    font-size: 12px;
    color: #8a8275;
    line-height: 1.5;
  }

  /* ThriveScore section heading */
  .section-heading {
    margin: 48px 0 20px;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 10px;
    border-bottom: 2px solid #1a1a1a;
  }
  .section-heading-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #b3aa98;
    margin: 0 0 4px 0;
  }
  .section-heading-title {
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
    line-height: 1.2;
  }

  /* Block preview tile (smaller — not a full email) */
  .block-tile .email-card iframe {
    height: 520px;
  }

  /* ThriveScore section — no yellow rule (yellow is logo-only per brand constraint) */
  /* .section-thrivescore .section-heading inherits border-bottom: 2px solid #1a1a1a */

  @media (max-width: 640px) {
    .dashboard { padding: 28px 12px 60px; }
    .selector-btn { font-size: 14px; }
    .email-subject-block { padding: 12px 12px 8px; }
  }

  /* ============================================================
     BUSINESS UNIT BUILDS  -  separate dashboard section.
     Not in the Project dropdown; reached via the View switcher.
     Interactive build checklists per BU (progress saved locally).
  ============================================================ */
  #section-bu { display: none; }
  body.view-bu #section-bu { display: block; }
  body.view-bu #project-row,
  body.view-bu #sub-row,
  body.view-bu .email-card-wrap,
  body.view-bu #section-thrivescore { display: none !important; }
  body.view-bu .dashboard-header { display: none; }
  #section-closed { display: none; }
  body.view-closed #section-closed { display: block; }
  body.view-closed #project-row,
  body.view-closed #sub-row,
  body.view-closed .email-card-wrap,
  body.view-closed #section-thrivescore,
  body.view-closed #section-bu { display: none !important; }
  body.view-closed .dashboard-header { display: none; }

  /* ============================================================
     MY TICKETS  -  triaged Zendesk backlog (read-only).
     Reached via the View switcher; data from /api/zendesk with a
     baked snapshot fallback. Two buckets: Needs you / Watching.
  ============================================================ */
  #section-tickets { display: none; }
  body.view-tickets #section-tickets { display: block; }
  body.view-tickets #project-row,
  body.view-tickets #sub-row,
  body.view-tickets .email-card-wrap,
  body.view-tickets #section-thrivescore,
  body.view-tickets #section-bu,
  body.view-tickets #section-closed { display: none !important; }
  body.view-tickets .dashboard-header { display: none; }
  #section-calendar { display: none; }
  body.view-calendar #section-calendar { display: block; }
  body.view-calendar #project-row,
  body.view-calendar #sub-row,
  body.view-calendar .email-card-wrap,
  body.view-calendar #section-thrivescore,
  body.view-calendar #section-bu,
  body.view-calendar #section-closed,
  body.view-calendar #section-tickets { display: none !important; }
  body.view-calendar .dashboard-header { display: none; }

  .zd-wrap { max-width: 860px; margin: 0 auto; padding: 4px 14px 60px; }
  .zd-head { text-align: center; margin: 6px 0 18px; }
  .zd-head h2 { font-size: 22px; margin: 0 0 4px; letter-spacing: -.01em; }
  .zd-sub { font-size: 13.5px; color: #6b7280; margin: 0; }
  .zd-sub .zd-stale { color: #b45309; font-weight: 600; }

  .zd-stats { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 0 0 16px; }
  .zd-stat { border: 1px solid #e5e7eb; border-radius: 4px; padding: 8px 14px; min-width: 78px; text-align: center; background: #fff; }
  .zd-stat b { display: block; font-size: 20px; line-height: 1.1; }
  .zd-stat span { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: #6b7280; }
  .zd-stat.hot b { color: #dc2626; } .zd-stat.warm b { color: #d97706; } .zd-stat.cold b { color: #6b7280; }

  .zd-filters { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 0 0 20px; }
  .zd-chip { font: inherit; font-size: 12.5px; padding: 5px 12px; border-radius: 2px; border: 1px solid #d1d5db;
    background: transparent; color: #374151; cursor: pointer; transition: all .12s; }
  .zd-chip:hover { border-color: #6b7280; color: #111827; }
  .zd-chip.active { background: transparent; color: #111827; border-color: #111827; box-shadow: inset 0 0 0 1px #111827; font-weight: 700; }
  .zd-chip.cluster { border-style: dashed; }
  .zd-chip.cluster.active { color: #92400e; border-color: #b45309; box-shadow: inset 0 0 0 1px #b45309; }

  .zd-bucket-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: #374151; margin: 22px 0 10px; display: flex; align-items: center; gap: 8px; }
  .zd-bucket-title .zd-count { color: #9ca3af; font-weight: 600; }

  .zd-card { display: grid; grid-template-columns: 6px 1fr auto; gap: 0 14px; align-items: start;
    border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; padding: 14px 16px; margin: 0 0 10px;
    box-shadow: 0 1px 2px rgba(0,0,0,.03); }
  .zd-card .zd-rail { grid-row: 1 / -1; border-radius: 6px; background: #e5e7eb; }
  .zd-card.hot .zd-rail { background: #dc2626; } .zd-card.warm .zd-rail { background: #d97706; } .zd-card.cold .zd-rail { background: #cbd5e1; }
  .zd-main { min-width: 0; }
  .zd-subject { font-size: 15px; font-weight: 650; color: #111827; text-decoration: none; }
  .zd-subject:hover { text-decoration: underline; }
  .zd-meta { font-size: 12.5px; color: #6b7280; margin: 3px 0 7px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
  .zd-brand { font-weight: 600; color: #4b5563; }
  .zd-why { font-size: 13.5px; color: #374151; margin: 0 0 6px; }
  .zd-action { font-size: 13px; color: #111827; }
  .zd-action b { color: #059669; }
  .zd-side { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; white-space: nowrap; }
  .zd-pri { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; padding: 3px 9px; border-radius: 3px; }
  .zd-pri.hot { background: #fee2e2; color: #b91c1c; } .zd-pri.warm { background: #fef3c7; color: #b45309; } .zd-pri.cold { background: #f3f4f6; color: #6b7280; }
  .zd-tag { font-size: 10.5px; padding: 2px 8px; border-radius: 3px; background: #f3f4f6; color: #6b7280; }
  .zd-tag.reset { background: #ecfdf5; color: #059669; } .zd-tag.stale { background: #fff7ed; color: #b45309; }
  .zd-tag.sla { background: #fef2f2; color: #dc2626; }
  .zd-empty { text-align: center; color: #9ca3af; font-size: 13px; padding: 20px; }
  @media (max-width: 560px) {
    .zd-card { grid-template-columns: 6px 1fr; }
    .zd-side { grid-column: 2; flex-direction: row; align-items: center; margin-top: 8px; text-align: left; }
  }

  /* ---- Command Board ---- */
  /* Brushed-metal counter module: Mac-aluminum face — vertical brush texture
     over a top-lit silver gradient, hairline bevel, and a soft drop shadow so
     it sits proud of the page. Text is dark-on-silver with a light emboss. */
  /* Mac OS X "brushed metal" window texture: a fine grayscale grain (SVG
     fractal noise stretched horizontally = the brushed direction) layered over
     an Aqua top-lit gray gradient, with a bright top bevel and a soft drop
     shadow so the module reads as a real panel. Text stays near-black for
     legibility against the silver. */
  .zd-quota {
    border-radius: 6px;
    padding: 15px 18px; margin: 0 0 16px;
    color: #1c1c1a;
    border: 1px solid #8f8f8a;
    background-color: #d6d6d1;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='130'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.12'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E"),
      linear-gradient(180deg, #f0f0ed 0%, #e0e0dc 48%, #cbcbc6 100%);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.9),
      inset 0 0 0 1px rgba(255,255,255,.28),
      inset 0 -10px 16px rgba(0,0,0,.05),
      0 8px 20px rgba(0,0,0,.18),
      0 1px 1px rgba(0,0,0,.2);
    text-shadow: 0 1px 0 rgba(255,255,255,.7);
  }
  .zd-quota.clear {
    background-color: #cdd6cd;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='130'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.12'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E"),
      linear-gradient(180deg, #eaf1ea 0%, #d8e2d8 48%, #c3d1c4 100%);
    border-color: #8aa08c;
  }
  .zd-quota-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
  .zd-quota-title { font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; margin: 0; color: #16160f; }
  .zd-quota-count { font-size: 13px; font-weight: 700; color: #33332e; white-space: nowrap; }
  .zd-quota.clear .zd-quota-count { color: #1a6b3c; }
  /* Recessed track routed into the metal. */
  .zd-quota-bar { height: 9px; border-radius: 3px; margin: 12px 0 8px; overflow: hidden;
    background: linear-gradient(180deg, #b7b7b1, #cfcfca);
    box-shadow: inset 0 1px 2px rgba(0,0,0,.32), inset 0 -1px 0 rgba(255,255,255,.5); }
  .zd-quota-fill { height: 100%; border-radius: 3px 0 0 3px; transition: width .3s;
    background: linear-gradient(180deg, #ffd75a, #f2b70e);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
  .zd-quota-sub { font-size: 12.5px; color: #3a3a34; margin: 0; }

  .zd-fastlane { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin: 0 0 18px; }
  .zd-fl-head { grid-column: 1 / -1; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: #b45309; margin: 4px 0 0; display: flex; align-items: center; gap: 8px; }
  .zd-fl-head .zd-count { color: #9ca3af; font-weight: 600; }
  .zd-fl-card { border: 1px solid #fde68a; border-radius: 6px; background: #fffbeb; padding: 12px 14px;
    display: flex; flex-direction: column; gap: 6px; box-shadow: 0 1px 2px rgba(0,0,0,.03); }
  .zd-fl-meta { font-size: 12px; color: #6b7280; display: flex; gap: 8px; align-items: center; }
  .zd-fl-meta .zd-brand { font-weight: 600; color: #4b5563; }
  .zd-fl-subject { font-size: 13.5px; font-weight: 650; color: #111827; line-height: 1.3; text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .zd-fl-subject:hover { text-decoration: underline; }
  .zd-fl-handle { align-self: flex-start; font: inherit; font-size: 12px; font-weight: 700; padding: 5px 11px;
    border-radius: 3px; border: 1px solid #b45309; background: #b45309; color: #fefffe; text-decoration: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 5px; transition: background .15s, border-color .15s; }
  .zd-fl-handle:hover { background: #92400e; border-color: #92400e; }
  .zd-fl-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 2px; }
  .zd-fl-actions .zd-fl-handle { align-self: auto; }
  .zd-fl-actions .zd-note-input { flex: 1 1 120px; min-width: 0; }

  .zd-group { margin: 0 0 18px; }
  .zd-group-head { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
    color: #374151; margin: 0 0 10px; display: flex; align-items: center; gap: 8px; }
  .zd-group-head .zd-count { color: #9ca3af; font-weight: 600; }
  .zd-group.hot .zd-group-head { color: #b91c1c; }
  .zd-group.warm .zd-group-head { color: #b45309; }
  .zd-row { display: grid; grid-template-columns: 6px 1fr auto; gap: 0 14px; align-items: start;
    border: 1px solid #e5e7eb; border-radius: 6px; background: #fff; padding: 12px 16px; margin: 0 0 8px;
    box-shadow: 0 1px 2px rgba(0,0,0,.03); }
  .zd-row .zd-rail { grid-row: 1 / -1; border-radius: 6px; background: #e5e7eb; }
  .zd-row.hot .zd-rail { background: #dc2626; } .zd-row.warm .zd-rail { background: #d97706; }
  .zd-row-main { min-width: 0; }
  .zd-row-subject { font-size: 14.5px; font-weight: 650; color: #111827; }
  .zd-row-meta { font-size: 12.5px; color: #6b7280; margin: 2px 0 5px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
  .zd-row-meta .zd-brand { font-weight: 600; color: #4b5563; }
  .zd-row-why { font-size: 13px; color: #374151; margin: 0; }
  .zd-row-side { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; white-space: nowrap; }
  .zd-sla { font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 3px; }
  .zd-sla.high { background: #fee2e2; color: #b91c1c; }
  .zd-sla.med { background: #fef3c7; color: #b45309; }
  .zd-sla.low { background: #f3f4f6; color: #6b7280; }
  .zd-row-actions { display: flex; gap: 6px; align-items: center; }
  .zd-open { font: inherit; font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 3px;
    border: 1px solid #111827; background: #111827; color: #fefffe; text-decoration: none;
    display: inline-flex; align-items: center; gap: 5px; transition: background .15s, border-color .15s; }
  .zd-open:hover { background: #374151; border-color: #374151; }
  /* External-link glyph: signals the click leaves the dashboard for Zendesk. */
  .zd-ext { flex: none; opacity: .85; margin-top: -1px; }
  /* "Mark handled" is a minimal squared toggle, not a button. At rest the knob
     sits left in an empty track (clearly NOT handled — no premature checkmark);
     tapping flips it green-right before the optional-note row opens. */
  .zd-handled-btn { font: inherit; font-size: 12px; font-weight: 600; color: #6b7280;
    background: none; border: none; padding: 2px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px; -webkit-tap-highlight-color: transparent; }
  .zd-handled-btn .zd-sw { position: relative; width: 34px; height: 18px; flex: none; border-radius: 3px;
    background: #eceae4; border: 1px solid #cfc7b6; box-shadow: inset 0 1px 2px rgba(0,0,0,.10);
    transition: background .18s, border-color .18s; }
  .zd-handled-btn .zd-sw-knob { position: absolute; top: 1px; left: 1px; width: 14px; height: 14px; border-radius: 2px;
    background: #fff; border: 1px solid #bdb4a0; box-shadow: 0 1px 1px rgba(0,0,0,.18);
    transition: transform .2s cubic-bezier(.4,.9,.3,1.35), background .18s, border-color .18s; }
  .zd-handled-btn:hover .zd-sw { border-color: #a99f88; }
  .zd-handled-btn:hover .zd-sw-knob { transform: translateX(2px); }
  .zd-handled-btn:hover .zd-sw-txt { color: #1a1a1a; }
  .zd-handled-btn.on .zd-sw { background: #1f7a45; border-color: #1a6b3c; }
  .zd-handled-btn.on .zd-sw-knob { transform: translateX(16px); border-color: #1a6b3c; }
  .zd-handled-btn.on .zd-sw-txt { color: #1f7a45; }
  .zd-handled-btn:disabled { cursor: not-allowed; opacity: .45; }
  .zd-handled-btn:disabled:hover .zd-sw-knob { transform: none; }
  .zd-note-input { font: inherit; font-size: 12px; padding: 4px 9px; border-radius: 3px;
    border: 1px solid #d1d5db; color: #0b0b0b; width: 150px; }
  .zd-note-input:focus { outline: none; border-color: #1f7a45; }
  .zd-note-save { font: inherit; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 3px;
    border: 1px solid #1f7a45; background: #1f7a45; color: #fefffe; cursor: pointer; }
  .zd-note-save:hover { background: #17603a; border-color: #17603a; }

  .zd-pager { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin: 4px 2px 0; }
  .zd-pager button { font: inherit; font-size: 13px; line-height: 1; padding: 4px 10px; border-radius: 3px;
    border: 1px solid #d1d5db; background: #fff; color: #374151; cursor: pointer; transition: border-color .12s; }
  .zd-pager button:hover:not(:disabled) { border-color: #9ca3af; }
  .zd-pager button:disabled { opacity: .4; cursor: default; }
  .zd-pager .zd-page-label { font-size: 12px; color: #6b7280; }

  .zd-alsodue { margin: 0 0 14px; }
  .zd-alsodue-body { margin-top: 12px; }
  .zd-alsodue-body[hidden] { display: none; }
  .zd-backlog { margin: 0 0 8px; }
  .zd-backlog-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px;
    border: 1px dashed #cbd5e1; border-radius: 6px; background: #f9fafb; padding: 13px 16px; cursor: pointer;
    font-size: 13.5px; font-weight: 600; color: #374151; }
  .zd-backlog-bar:hover { border-color: #9ca3af; background: #f3f4f6; }
  .zd-backlog-bar .zd-backlog-toggle { font-size: 12px; color: #6b7280; font-weight: 600; }
  .zd-backlog-body { margin-top: 12px; }
  .zd-backlog-body[hidden] { display: none; }

  /* Board vs Log toggle: default = board shown, log hidden. */
  #zd-log { display: none; }
  .zd-wrap.zd-mode-log > #zd-quota,
  .zd-wrap.zd-mode-log > #zd-fastlane,
  .zd-wrap.zd-mode-log > #zd-hot,
  .zd-wrap.zd-mode-log > #zd-warm,
  .zd-wrap.zd-mode-log > #zd-alsodue,
  .zd-wrap.zd-mode-log > #zd-backlog,
  .zd-wrap.zd-mode-log > #zd-stats,
  .zd-wrap.zd-mode-log > #zd-filters,
  .zd-wrap.zd-mode-log > #zd-needs,
  .zd-wrap.zd-mode-log > #zd-watching { display: none !important; }
  .zd-wrap.zd-mode-log > #zd-log { display: block; }

  .zd-log-controls { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 4px 0 14px; }
  .zd-log-controls .zd-log-spacer { flex: 1; }
  .zd-log-export { font: inherit; font-size: 12.5px; font-weight: 700; padding: 6px 14px; border-radius: 3px;
    border: 1px solid #111827; background: #111827; color: #fefffe; cursor: pointer; transition: background .15s, border-color .15s; }
  .zd-log-export:hover { background: #374151; border-color: #374151; }
  .zd-log-export:disabled { opacity: .4; cursor: default; }
  .zd-log-table { width: 100%; border-collapse: collapse; font-size: 13px; }
  .zd-log-table th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
    color: #6b7280; font-weight: 700; padding: 6px 10px; border-bottom: 1px solid #e5e7eb; }
  .zd-log-table td { padding: 10px; border-bottom: 1px solid #f1f2f4; color: #374151; vertical-align: top; }
  .zd-log-table .zd-log-date { white-space: nowrap; color: #6b7280; }
  .zd-log-table .zd-log-tk-subject { font-weight: 650; color: #111827; }
  .zd-log-table .zd-log-tk-meta { font-size: 12px; color: #6b7280; }
  .zd-log-table .zd-log-tk-meta .zd-brand { font-weight: 600; color: #4b5563; }
  .zd-log-table .zd-log-note { color: #4b5563; }
  .zd-corr { display: inline-block; font-size: 11px; font-weight: 800; padding: 3px 9px; border-radius: 3px;
    white-space: nowrap; }
  .zd-corr.done { background: #dcfce7; color: #15803d; }
  .zd-corr.pending { background: #fef3c7; color: #b45309; }
  .zd-log-empty { color: #6b7280; font-size: 14px; padding: 24px 4px; }

  /* ============================================================
     POMODORO — mini macOS X (Aqua) window, Tickets view only.
     Brushed-metal window with a title bar + traffic lights, to
     match the ticket-counter metal. Fades in/out with
     body.view-tickets. Keeps running across nav (just hidden).
  ============================================================ */
  #pomodoro {
    position: fixed; top: 16px; right: 16px; z-index: 60;
    width: 174px; box-sizing: border-box; overflow: hidden;
    color: #1c1c1a;
    border: 1px solid #8f8f8a; border-radius: 7px;
    background-color: #d8d8d3;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='150'%3E%3Cfilter id='pm'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.11'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23pm)'/%3E%3C/svg%3E"),
      linear-gradient(180deg, #f1f1ee 0%, #e2e2de 46%, #cfcfca 100%);
    box-shadow: 0 12px 28px rgba(0,0,0,.24), 0 2px 5px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.85);
    text-shadow: 0 1px 0 rgba(255,255,255,.55);
    opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.97); transform-origin: top right; pointer-events: none;
    transition: opacity .3s ease, transform .3s cubic-bezier(.2,.8,.3,1.1), visibility .3s ease;
    -webkit-user-select: none; user-select: none;
  }
  body.view-tickets #pomodoro { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
  @media (prefers-reduced-motion: reduce) { #pomodoro { transition: opacity .2s linear; transform: none; } }

  /* Title bar with the three Aqua traffic lights. */
  .pom-titlebar { position: relative; height: 22px; display: flex; align-items: center; padding: 0 9px;
    border-bottom: 1px solid rgba(0,0,0,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); cursor: grab; touch-action: none; }
  #pomodoro.dragging { box-shadow: 0 18px 42px rgba(0,0,0,.3), 0 3px 8px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.85); }
  #pomodoro.dragging .pom-titlebar { cursor: grabbing; }
  .pom-lights { display: flex; gap: 6px; align-items: center; }
  .pom-light { width: 11px; height: 11px; padding: 0; border-radius: 50%; border: .5px solid rgba(0,0,0,.28);
    position: relative; cursor: pointer; box-shadow: inset 0 1px 1px rgba(255,255,255,.55); }
  .pom-light.red    { background: radial-gradient(circle at 50% 32%, #ff9a93, #ff5f57 62%); }
  .pom-light.yellow { background: radial-gradient(circle at 50% 32%, #ffdd86, #febc2e 62%); }
  .pom-light.green  { background: radial-gradient(circle at 50% 32%, #8bef92, #28c840 62%); }
  .pom-light::after { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    font-size: 9px; line-height: 1; font-weight: 700; color: rgba(0,0,0,.45); opacity: 0; transition: opacity .12s; text-shadow: none; }
  .pom-titlebar:hover .pom-light::after { opacity: 1; }
  .pom-light.red::after { content: "\00D7"; }
  .pom-light.yellow::after { content: "\2013"; }
  .pom-light.green::after { content: "+"; }
  .pom-title { position: absolute; left: 0; right: 0; text-align: center; pointer-events: none;
    font-size: 11px; font-weight: 600; letter-spacing: .01em; color: #55524c; }

  .pom-body { padding: 9px 12px 11px; }
  #pomodoro.min .pom-body { display: none; }

  .pom-head { display: flex; align-items: center; gap: 6px; margin: 0 0 2px; }
  .pom-mode { font-family: inherit; font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
    color: #6a6459; background: none; border: none; padding: 0; cursor: pointer; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
  .pom-mode:hover { color: #1c1c1a; }
  .pom-dot { width: 6px; height: 6px; border-radius: 50%; background: #b4b4ae; margin-left: auto; flex: none;
    box-shadow: inset 0 0 0 .5px rgba(0,0,0,.2); }
  #pomodoro.running .pom-dot { background: #1f7a45; animation: pom-blink 1.6s steps(1) infinite; }
  @keyframes pom-blink { 50% { opacity: .25; } }

  .pom-time { display: block; width: 100%; text-align: left;
    font-family: inherit; font-size: 31px; font-weight: 700; letter-spacing: -.01em; line-height: 1;
    font-variant-numeric: tabular-nums; font-feature-settings: "tnum";
    color: #1c1c1a; background: none; border: none; padding: 1px 0 8px; margin: 0; cursor: pointer;
    text-shadow: 0 1px 0 rgba(255,255,255,.55); }
  .pom-time:hover { color: #000; }

  /* Recessed track routed into the metal, amber fill (matches the counter). */
  .pom-track { height: 6px; border-radius: 3px; overflow: hidden; margin: 0 0 9px;
    background: linear-gradient(180deg, #b7b7b1, #cfcfca);
    box-shadow: inset 0 1px 2px rgba(0,0,0,.3), inset 0 -1px 0 rgba(255,255,255,.5); }
  .pom-track > i { display: block; height: 100%; width: 0; transition: width .3s linear;
    background: linear-gradient(180deg, #ffd75a, #f2b70e); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }

  .pom-controls { display: flex; gap: 6px; }
  .pom-btn { font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .02em;
    color: #3a362f; background: rgba(255,255,255,.4); border: 1px solid #b4b4ae; border-radius: 3px;
    padding: 4px 9px; cursor: pointer; transition: border-color .12s, color .12s, background .12s;
    text-shadow: 0 1px 0 rgba(255,255,255,.6); }
  .pom-btn:hover { border-color: #7d776b; color: #1c1c1a; background: rgba(255,255,255,.65); }
  .pom-btn.primary { border-color: #8f897c; }
  .pom-btn.ghost { border-style: dashed; color: #6a6459; }

  #pomodoro.flash { animation: pom-flash .9s ease; }
  @keyframes pom-flash { 30% { box-shadow: 0 0 0 3px rgba(242,183,14,.55), 0 12px 28px rgba(0,0,0,.24); } }

  @media (max-width: 560px) {
    #pomodoro { width: 152px; top: 10px; right: 10px; }
    .pom-time { font-size: 26px; }
    /* Keep the centered title clear of the traffic lights on the narrow window. */
    .pom-title { left: 56px; right: 8px; }
  }

  .bu-wrap { max-width: 650px; margin: 0 auto; }

  .bu-progress {
    position: sticky; top: 0; z-index: 5;
    background: rgba(245,241,232,0.94); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    display: flex; align-items: center; gap: 14px;
    padding: 12px 0; margin-bottom: 14px;
    border-bottom: 1px solid #e3ddd0;
  }
  .bu-bar { flex: 1; height: 8px; background: #e3ddd0; border-radius: 999px; overflow: hidden; }
  .bu-bar > i { display: block; height: 100%; width: 0; background: #4f7d5b; transition: width .35s ease; }
  .bu-pct { font-size: 14px; font-weight: 700; color: #1a1a1a; min-width: 38px; text-align: right; }
  .bu-count { font-size: 12px; color: #8a8275; white-space: nowrap; }
  .bu-reset { font-size: 11px; font-weight: 700; color: #8a8275; background: none; border: 1px solid #d8d0c0;
    padding: 5px 10px; border-radius: 4px; cursor: pointer; }
  .bu-reset:hover { color: #b3462f; border-color: #b3462f; }
  .bu-sync { font-size: 11px; font-weight: 700; white-space: nowrap; }
  .bu-sync.ok { color: #2e7d32; }
  .bu-sync.busy { color: #8a8275; }
  .bu-sync.off { color: #b3462f; }

  .bu-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 8px; margin-bottom: 16px; }
  .bu-fact { background: #fff; border: 1px solid #ece6da; border-radius: 6px; padding: 10px 12px; }
  .bu-fact .k { font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: #b3aa98; font-weight: 700; }
  .bu-fact .v { font-size: 14px; font-weight: 700; color: #1a1a1a; margin-top: 2px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; word-break: break-word; }

  .bu-card { background: #fff; border-radius: 6px;
    box-shadow: 0 24px 60px rgba(0,0,0,.08), 0 6px 16px rgba(0,0,0,.05);
    margin-bottom: 16px; overflow: hidden; }
  .bu-chead { display: flex; align-items: center; gap: 10px; padding: 14px 18px; cursor: pointer;
    user-select: none; border-bottom: 1px solid #f0ece4; }
  .bu-chead.primary { border-bottom: 2px solid #1a1a1a; }
  .bu-chead h3 { margin: 0; font-size: 15px; font-weight: 700; color: #1a1a1a; flex: 1; }
  .bu-chead .meta { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #b3aa98; }
  .bu-chead .chev { color: #b3aa98; font-size: 12px; transition: transform .2s; }
  .bu-card.collapsed .chev { transform: rotate(-90deg); }
  .bu-card.collapsed .bu-cbody { display: none; }
  .bu-cbody { padding: 6px 18px 14px; }

  ul.bu-steps { list-style: none; margin: 0; padding: 0; }
  ul.bu-steps li { display: flex; gap: 11px; align-items: flex-start; padding: 10px 0; border-top: 1px solid #f0ece4; }
  ul.bu-steps li:first-child { border-top: none; }
  ul.bu-steps input[type=checkbox] { appearance: none; -webkit-appearance: none; width: 20px; height: 20px;
    border: 2px solid #c8c2b5; border-radius: 5px; margin: 1px 0 0; cursor: pointer; flex: none; position: relative;
    background: #fff; transition: .15s; }
  ul.bu-steps input[type=checkbox]:checked { background: #4f7d5b; border-color: #4f7d5b; }
  ul.bu-steps input[type=checkbox]:checked::after { content: ""; position: absolute; left: 6px; top: 2px;
    width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
  ul.bu-steps .txt { font-size: 14px; line-height: 1.5; color: #1a1a1a; }
  ul.bu-steps li.done .txt { color: #a8a294; text-decoration: line-through; }
  ul.bu-steps .txt small { display: block; color: #8a8275; font-size: 12px; text-decoration: none; margin-top: 2px; }
  ul.bu-steps code { font-family: "SF Mono",ui-monospace,Menlo,Consolas,monospace; font-size: 12px; color: #5B2D8E; font-weight: 700; }

  .bu-gate { background: #fff8ed; border-left: 3px solid #f0a830; border-radius: 0 4px 4px 0; padding: 12px 16px; margin-bottom: 16px; }
  .bu-gate h4 { margin: 0 0 4px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #b36a00; }
  .bu-gate p { margin: 0 0 6px; font-size: 13px; line-height: 1.5; color: #5c3d00; }
  .bu-gate ul.bu-steps li { border: none; padding: 6px 0 0; }

  .bu-kv { display: inline-flex; align-items: center; gap: 5px; background: #f3efe6; border: 1px solid #e6e0d3;
    border-radius: 5px; padding: 1px 3px 1px 7px; }
  .bu-kv code { color: #5B2D8E; font-weight: 700; }
  .bu-copy { border: none; background: #e8e3d8; color: #8a8275; font-weight: 700; font-size: 10px; letter-spacing: .04em;
    text-transform: uppercase; border-radius: 3px; padding: 3px 7px; cursor: pointer; }
  .bu-copy:hover { background: #5B2D8E; color: #fff; }
  .bu-copy.ok { background: #4f7d5b; color: #fff; }

  .pill.live { background: #e4efe6; color: #3c7d5a; }
  .pill.skip { background: #ece6da; color: #8a8275; }

  table.bu-vals { width: 100%; border-collapse: collapse; font-size: 12.5px; margin: 6px 0; }
  table.bu-vals td { border: 1px solid #ece6da; padding: 6px 8px; vertical-align: top; }
  table.bu-vals td:first-child { background: #faf8f3; font-weight: 700; color: #6b6459; width: 38%; }
  table.bu-vals code { font-family: "SF Mono",ui-monospace,Menlo,Consolas,monospace; font-size: 11.5px; color: #5B2D8E; font-weight: 700; }

  .bu-note { font-size: 12px; color: #8a8275; background: #faf8f3; border: 1px dashed #e0d8c8; border-radius: 5px;
    padding: 9px 11px; margin: 10px 0 0; line-height: 1.5; }

  /* Drill-down navigation: Unleashed Brands -> brand -> location -> checklist */
  .bu-level[hidden] { display: none; }
  .bu-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: -8px 0 20px; }
  .bu-crumb-link { background: none; border: none; padding: 0; cursor: pointer; font-family: inherit;
    font-size: 13px; font-weight: 600; color: #8a8275; }
  .bu-crumb-link:hover { color: #1a1a1a; }
  .bu-crumb-sep { color: #c8c0b0; font-size: 13px; }
  .bu-crumb-cur { font-size: 13px; font-weight: 700; color: #1a1a1a; }

  .bu-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
  .bu-brand-card { display: flex; align-items: center; gap: 10px; text-align: left; background: #fff;
    border: 1px solid #ece6da; border-radius: 8px; padding: 18px; cursor: pointer; font-family: inherit;
    box-shadow: 0 6px 16px rgba(0,0,0,.04); transition: border-color .12s, transform .12s; }
  .bu-brand-card:hover { border-color: #1a1a1a; transform: translateY(-1px); }
  .bu-brand-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
  .bu-brand-name { font-size: 16px; font-weight: 700; color: #1a1a1a; }
  .bu-brand-meta { font-size: 12px; font-weight: 600; color: #8a8275; }
  .bu-brand-meta b { color: #b36a00; font-weight: 700; }
  .bu-arrow { color: #c8c0b0; font-size: 22px; font-weight: 700; line-height: 1; }
  .bu-brand-card:hover .bu-arrow { color: #1a1a1a; }

  .bu-loc-list { display: flex; flex-direction: column; gap: 8px; }
  .bu-loc-item { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: #fff;
    border: 1px solid #ece6da; border-radius: 8px; padding: 14px 16px; cursor: pointer; font-family: inherit;
    transition: border-color .12s; }
  .bu-loc-item:hover { border-color: #1a1a1a; }
  .bu-loc-main { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .bu-loc-name { font-size: 15px; font-weight: 700; color: #1a1a1a; }
  .bu-loc-date { font-size: 12.5px; color: #8a8275; }
  .bu-loc-prog { display: flex; align-items: center; gap: 8px; margin-top: 5px; }
  .bu-loc-bar { display: inline-block; width: 130px; max-width: 40vw; height: 6px; background: #e3ddd0; border-radius: 999px; overflow: hidden; }
  .bu-loc-bar > b { display: block; height: 100%; width: 0; background: #4f7d5b; border-radius: 999px; transition: width .35s ease; }
  .bu-loc-prog em { font-style: normal; white-space: nowrap; }
  .bu-loc-prog em.pct { font-size: 14px; font-weight: 800; color: #1a1a1a; }
  .bu-loc-prog em.frac { font-size: 11px; font-weight: 600; color: #a89f8d; }
  .bu-loc-prog.complete em.pct { color: #2e7d32; }
  .bu-tag.qaready { background: #fff3e0; color: #b36a00; }
  .bu-qa-card > .bu-chead.qa h3 { color: #2e7d4f; }
  .bu-qa-card.qa-done > .bu-chead.qa .qa-meta { color: #2e7d4f; font-weight: 700; }
  .bu-loc-tags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
  .bu-tag { font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    padding: 3px 8px; border-radius: 4px; white-space: nowrap; }
  .bu-tag.ready { background: #e4efe6; color: #3c7d5a; }
  .bu-tag.pending { background: #ece6da; color: #8a8275; }
  .bu-tag.soon { background: #fff3e0; color: #b36a00; }
  .bu-tag.now { background: #fbe4e4; color: #b3392f; }
  .bu-tag.done { background: #dff0e4; color: #2e7d4f; }
  .bu-tag.closed { background: #ece7dd; color: #6b6459; }
  .bu-tag.repurp { background: #e3f0e6; color: #2e7d32; }
  .bu-tag.repurposed { background: #eef0f5; color: #4a5568; }
  .bu-tag.hold { background: #f6e7c9; color: #8a6d1f; }
  .bu-tag.usedrp { background: #eef0f5; color: #4a5568; }
  /* Verified-status badges (live-URL audit). Links to the page that was checked. */
  a.bu-tag { text-decoration: none; cursor: pointer; }
  a.bu-tag:hover { filter: brightness(.97); }
  .bu-tag.vopen { background: #fde2e0; color: #bf261d; box-shadow: inset 0 0 0 1px #e7a9a2; }   /* record says closed but it's OPEN — alert */
  .bu-tag.vtemp { background: #fff3e0; color: #b36a00; }                                          /* temporarily closed */
  .bu-tag.vsoon { background: #ece7f5; color: #5d328c; }                                          /* never opened — coming soon, not a closure */
  .bu-tag.vclosed { background: #e7f2e9; color: #3c7d5a; }                                        /* confirmed closed */
  /* Correct a "repurposable" BU that was actually already used (e.g. Katy, TX). */
  .bu-repurp-btn { font-size: 11px; font-weight: 700; color: #8a8275; background: transparent;
    border: 1px solid #cfc7b6; border-radius: 2px; padding: 3px 8px; cursor: pointer; transition: border-color .12s, color .12s; }
  .bu-repurp-btn:hover { border-color: #8a8275; color: #1a1a1a; }
  .bu-repurp-btn.undo { border-style: dashed; }
  .bu-tag.inprog { background: #eef2f7; color: #3a5a8a; box-shadow: inset 0 0 0 1px #c4d2e6; }
  /* Editable, shared Salesforce AccountId on the build detail (/api/build-status). */
  .bu-acctbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    margin: 0 0 14px; padding: 10px 12px; background: #f4f1ea; border: 1px solid #e2dccd; border-radius: 3px; }
  .bu-acct-k { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #8a8275; }
  .bu-acct-input { flex: 1 1 260px; min-width: 200px; font: 600 14px/1.3 "Helvetica Neue", Helvetica, Arial, sans-serif;
    color: #1a1a1a; background: #fff; border: 1px solid #d7cfbd; border-radius: 2px; padding: 7px 9px; letter-spacing: .01em; }
  .bu-acct-input:focus { outline: none; border-color: #5B2D8E; box-shadow: 0 0 0 2px rgba(91,45,142,.15); }
  .bu-acct-input::placeholder { color: #b3ab99; font-weight: 500; }
  .bu-acct-state { font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #a89f8d; }
  .bu-acct-state.ok { color: #2e7d4f; }
  .bu-acct-state.warn { color: #b36a00; }
  .bu-startundo { font-size: 11px; font-weight: 700; color: #8a8275; background: transparent;
    border: 1px dashed #cfc7b6; border-radius: 2px; padding: 5px 9px; cursor: pointer; }
  .bu-startundo:hover { border-color: #b3392f; color: #b3392f; }
  /* "Start build" — squared frame button (Yeezy-minimal). */
  .pending-actions { margin-top: 14px; }
  .bu-startbuild { font: 800 13px/1 "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase;
    color: #1a1a1a; background: transparent; border: 1.5px solid #1a1a1a; border-radius: 2px; padding: 11px 20px; cursor: pointer;
    transition: background .14s, color .14s; }
  .bu-startbuild:hover { background: #1a1a1a; color: #f4f1ea; }
  .bu-loc-item.is-closed { background: #f7f4ee; border-style: dashed; cursor: default; }
  .bu-loc-item.is-closed .bu-loc-name { color: #6b6459; }
  .bu-loc-item.is-closed.verified-open { background: #fdf4f3; border-color: #e6b0a9; }
  .bu-loc-item.is-closed.verified-open .bu-loc-name { color: #a33; }
  .bu-loc-item.is-closed.is-usedrp { opacity: .72; }
  /* Inline "assign closed BU -> upcoming build" control on the Closed Locations view. */
  .bu-assign { display: inline-flex; align-items: center; gap: 6px; }
  .bu-assign-arrow { font-size: 12px; color: #a89f8d; }
  .bu-assign-sel {
    font-family: inherit; font-size: 12px; font-weight: 700; color: #6b6459;
    background: transparent; border: none; border-bottom: 1px dashed #cfc7b6; border-radius: 0;
    padding: 2px 18px 2px 2px; margin: 0; cursor: pointer; max-width: 190px;
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 12 8'><path fill='none' stroke='%23a89f8d' stroke-width='2' d='M1 1l5 5 5-5'/></svg>");
    background-repeat: no-repeat; background-position: right 2px center;
    transition: border-color .1s, color .1s;
  }
  .bu-assign-sel:hover { border-bottom-color: #a89f8d; color: #4a5568; }
  .bu-assign-sel:focus { outline: none; border-bottom-color: #4a5568; }
  .bu-assign-sel.is-paired { color: #2e7d32; border-bottom-color: transparent; font-weight: 700; }
  .bu-assign-sel.is-paired:hover { border-bottom-color: #b7d8bd; }
  .bu-assign-sel option { color: #1a1a1a; font-weight: 600; background: #ffffff; }
  .bu-assign-sel option[value=""] { color: #8a8275; }
  /* Users needed for a BU (shown on the per-location build detail). */
  .bu-users { margin: 0 0 18px; }
  .bu-users-head { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; }
  .bu-users-head h3 { font-size: 14px; font-weight: 800; color: #1a1a1a; margin: 0; letter-spacing: .01em; }
  .bu-users-head .bu-users-src { font-size: 11px; color: #a89f8d; }
  .bu-users-group { margin: 0 0 12px; }
  .bu-users-group > p { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #a89f8d; margin: 0 0 6px 2px; }
  .bu-user { background: #fff; border: 1px solid #e7e0d2; border-radius: 8px; margin: 0 0 8px; overflow: hidden; }
  .bu-user.done { border-color: #cfe6d3; background: #fbfdfb; }
  .bu-user-head { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; }
  .bu-user.no-steps .bu-user-head { cursor: default; }
  .bu-user-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
  .bu-user-name { font-size: 14px; font-weight: 700; color: #1a1a1a; }
  .bu-user-sub { font-size: 12px; color: #8a8275; word-break: break-all; }
  .bu-user-count { font-size: 11px; font-weight: 700; color: #8a8275; white-space: nowrap; }
  .bu-user.done .bu-user-count { color: #2e7d32; }
  .bu-user-caret { font-size: 12px; color: #a89f8d; transition: transform .15s; }
  .bu-user.open .bu-user-caret { transform: rotate(90deg); }
  .bu-tag.create { background: #fdeede; color: #b3671a; }
  .bu-tag.assign { background: #e6eef7; color: #3d5a80; }
  .bu-tag.users { background: #eef0f5; color: #5a6472; }
  .bu-tag.reopening { background: #f3e8fb; color: #7a3ea8; }
  /* ---- Send Calendar view ---- */
  .cal-wrap { max-width: 1040px; margin: 0 auto; }
  .cal-controls { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; }
  .cal-nav { width: 32px; height: 32px; border: 1px solid #e0d8c8; background: #fff; border-radius: 7px; cursor: pointer; font-size: 17px; color: #6b6459; line-height: 1; }
  .cal-nav:hover { border-color: #b7ab92; color: #1a1a1a; }
  .cal-month { font-size: 18px; font-weight: 800; color: #1a1a1a; min-width: 180px; }
  .cal-today-btn { font-size: 12px; font-weight: 700; color: #4f7d5b; background: none; border: none; cursor: pointer; padding: 4px 2px; }
  .cal-today-btn:hover { text-decoration: underline; }
  .cal-legend { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 12px; font-size: 12px; color: #6b6459; }
  .cal-legend span { display: inline-flex; align-items: center; gap: 5px; }
  .cal-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; flex: none; }
  .cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
  .cal-dow { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #a89f8d; text-align: center; padding: 2px 0 4px; }
  .cal-cell { min-height: 88px; background: #fff; border: 1px solid #ece4d4; border-radius: 8px; padding: 5px 5px 6px; display: flex; flex-direction: column; gap: 3px; }
  .cal-cell.other { background: #faf8f3; }
  .cal-cell.today { border-color: #5B2D8E; box-shadow: inset 0 0 0 1px #5B2D8E; }
  .cal-daynum { font-size: 11px; font-weight: 700; color: #8a8275; }
  .cal-cell.other .cal-daynum { color: #c9c0ae; }
  .cal-cell.today .cal-daynum { color: #5B2D8E; }
  .cal-chip { font-size: 10.5px; font-weight: 700; line-height: 1.25; color: #fefffe; border-radius: 5px; padding: 3px 5px; text-decoration: none; display: block; overflow: hidden; }
  .cal-chip small { display: block; font-weight: 600; opacity: .92; font-size: 9.5px; }
  a.cal-chip:hover { filter: brightness(1.08); }
  .cal-upcoming { margin-top: 24px; }
  .cal-upcoming h3 { font-size: 13px; font-weight: 800; letter-spacing: .02em; color: #1a1a1a; margin: 0 0 8px; text-transform: uppercase; }
  .cal-up-item { display: flex; align-items: center; gap: 11px; padding: 8px 11px; background: #fff; border: 1px solid #ece4d4; border-radius: 8px; margin-bottom: 6px; text-decoration: none; }
  a.cal-up-item:hover { border-color: #b7ab92; }
  .cal-up-date { font-size: 12px; font-weight: 800; color: #1a1a1a; white-space: nowrap; min-width: 58px; }
  .cal-up-dot { width: 9px; height: 9px; border-radius: 3px; flex: none; }
  .cal-up-main { flex: 1; min-width: 0; }
  .cal-up-name { display: block; font-size: 13px; font-weight: 700; color: #1a1a1a; }
  .cal-up-sub { display: block; font-size: 11.5px; color: #8a8275; margin-top: 1px; }
  .cal-up-days { font-size: 11px; font-weight: 700; color: #a89f8d; white-space: nowrap; }
  .cal-empty { background: #fff; border: 1px dashed #d8d0c0; border-radius: 8px; padding: 20px; text-align: center; color: #8a8275; font-size: 13px; margin-top: 6px; }
  @media (max-width: 640px) {
    .cal-grid { gap: 3px; }
    .cal-cell { min-height: 58px; padding: 3px; border-radius: 6px; }
    .cal-chip { font-size: 9px; padding: 2px 3px; }
    .cal-chip small { display: none; }
  }
  /* ---- Send Calendar: clickable days, dense-day dots, day-detail takeover ---- */
  .cal-cell { cursor: pointer; transition: border-color .12s, box-shadow .12s; }
  .cal-cell:hover { border-color: #b7ab92; box-shadow: 0 2px 9px rgba(60,50,30,.08); }
  .cal-cell:focus-visible { outline: 2px solid #5B2D8E; outline-offset: 1px; }
  .cal-chip.sent { opacity: .5; }
  .cal-daydots { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 2px; }
  .cal-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex: none; }
  .cal-dot.sent { opacity: .4; }
  .cal-daycount { font-size: 10px; font-weight: 800; color: #8a8275; margin-top: auto; letter-spacing: .02em; }
  button.cal-up-item { width: 100%; text-align: left; font: inherit; cursor: pointer; }
  button.cal-up-item:hover { border-color: #b7ab92; }

  .cal-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 20px; }
  .cal-modal[hidden] { display: none; }
  body.cal-modal-open { overflow: hidden; }
  .cal-modal-backdrop { position: absolute; inset: 0; background: rgba(28,24,18,.44); opacity: 0; transition: opacity .26s ease; }
  body.cal-modal-open .cal-modal-backdrop { opacity: 1; }
  .cal-modal-panel { position: relative; width: min(560px, 94vw); max-height: 86vh; overflow: auto; background: #fdfbf6; border: 1px solid #e7dfcf; border-radius: 14px; box-shadow: 0 24px 60px rgba(40,32,18,.28); padding: 22px 22px 18px; }
  .cal-modal-x { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border: none; background: #f1ebdd; border-radius: 8px; font-size: 20px; line-height: 1; color: #6b6459; cursor: pointer; }
  .cal-modal-x:hover { background: #e7dfcc; color: #1a1a1a; }
  .cal-modal-kicker { font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #a89f8d; margin: 0 0 3px; }
  .cal-modal-head h3 { font-size: 19px; font-weight: 800; color: #1a1a1a; margin: 0 0 14px; padding-right: 34px; }
  .cal-modal-empty { font-size: 13px; color: #8a8275; background: #faf8f3; border: 1px dashed #ddd4c2; border-radius: 9px; padding: 16px; text-align: center; margin-bottom: 4px; }
  .cal-srow { display: flex; gap: 11px; align-items: stretch; background: #fff; border: 1px solid #ece4d4; border-radius: 10px; padding: 10px 12px; margin-bottom: 8px; }
  .cal-srow-bar { width: 4px; border-radius: 3px; flex: none; }
  .cal-srow-main { flex: 1; min-width: 0; }
  .cal-srow-top { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; }
  .cal-srow-brand { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
  .cal-badge { font-size: 10px; font-weight: 800; padding: 1px 7px; border-radius: 20px; text-transform: uppercase; letter-spacing: .03em; }
  .cal-badge.is-sent { background: #eee7d8; color: #9a9080; }
  .cal-badge.is-up { background: #e7f0e9; color: #4f7d5b; }
  .cal-srow-title { font-size: 14px; font-weight: 700; color: #1a1a1a; }
  .cal-srow-sub { font-size: 12px; color: #8a8275; margin-top: 1px; }
  .cal-srow-concept { margin-top: 4px; }
  .cal-concept { font-size: 12px; font-weight: 700; color: #5B2D8E; text-decoration: none; }
  .cal-concept:hover { text-decoration: underline; }
  .cal-row-actions { display: flex; flex-direction: column; gap: 4px; justify-content: center; flex: none; }
  .cal-mini { font-size: 11px; font-weight: 700; border: 1px solid #e0d8c8; background: #fff; border-radius: 6px; padding: 3px 9px; cursor: pointer; color: #6b6459; }
  .cal-mini:hover { border-color: #b7ab92; color: #1a1a1a; }
  .cal-mini.del:hover { border-color: #c9483f; color: #c9483f; }
  .cal-auto-tag { align-self: center; flex: none; font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #a89f8d; background: #f3efe6; border-radius: 5px; padding: 2px 6px; }
  .cal-owner-tag { font-size: 10.5px; font-weight: 800; color: #5b5348; background: #efe9dc; border-radius: 20px; padding: 1px 9px; letter-spacing: .01em; }
  .cal-owner-other { margin-top: 6px; }
  .cal-add-btn { width: 100%; margin-top: 4px; font-size: 13px; font-weight: 800; color: #4f7d5b; background: #eef4ef; border: 1px dashed #bcd3c1; border-radius: 9px; padding: 10px; cursor: pointer; }
  .cal-add-btn:hover { background: #e6efe8; border-color: #8fb79a; }
  .cal-form { margin-top: 8px; border-top: 1px dashed #e7dfcf; padding-top: 12px; }
  .cal-f { display: block; margin-bottom: 10px; }
  .cal-f > span { display: block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: #6b6459; margin-bottom: 4px; }
  .cal-f em { font-style: normal; color: #a89f8d; font-weight: 600; text-transform: none; letter-spacing: 0; }
  .cal-in { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; padding: 8px 10px; border: 1px solid #e0d8c8; border-radius: 8px; background: #fff; color: #1a1a1a; }
  .cal-in:focus { outline: none; border-color: #5B2D8E; }
  textarea.cal-in { resize: vertical; }
  .cal-concept-pick { display: flex; gap: 14px; margin-bottom: 6px; flex-wrap: wrap; }
  .cal-radio { font-size: 12.5px; font-weight: 600; color: #3a352d; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
  .cal-form-actions { display: flex; gap: 8px; margin-top: 4px; }
  .cal-save { font-size: 13px; font-weight: 800; color: #fefffe; background: #4f7d5b; border: none; border-radius: 8px; padding: 9px 18px; cursor: pointer; }
  .cal-save:hover { background: #446b50; }
  .cal-cancel { font-size: 13px; font-weight: 700; color: #6b6459; background: none; border: 1px solid #e0d8c8; border-radius: 8px; padding: 9px 16px; cursor: pointer; }
  .cal-cancel:hover { border-color: #b7ab92; }
  .cal-card-flash { animation: calCardFlash 1.6s ease; }
  @keyframes calCardFlash { 0%, 100% { box-shadow: none; } 20%, 60% { box-shadow: 0 0 0 3px #5B2D8E; } }
  @media (prefers-reduced-motion: reduce) { .cal-modal-backdrop, .cal-modal-panel { transition: none !important; } }
  @media (max-width: 640px) { .cal-modal-panel { width: 96vw; padding: 18px 15px 14px; } }
  .bu-tag.lowconf { background: #f3efe6; color: #a89f8d; }
  .bu-user-steps { display: none; padding: 4px 12px 12px; border-top: 1px dashed #ece4d4; }
  .bu-user.open .bu-user-steps { display: block; }
  .bu-user-steps ol { list-style: none; margin: 8px 0 0; padding: 0; }
  .bu-user-steps li { display: flex; align-items: flex-start; gap: 9px; padding: 5px 0; font-size: 13px; color: #3a352d; }
  .bu-user-steps li.done .txt { color: #9a9284; text-decoration: line-through; }
  .bu-user-steps input[type=checkbox] { margin-top: 2px; flex: none; width: 15px; height: 15px; cursor: pointer; accent-color: #4f7d5b; }
  .bu-user-steps small { display: block; color: #a89f8d; font-size: 11.5px; margin-top: 1px; }
  .bu-users-empty { font-size: 12.5px; color: #a89f8d; background: #faf8f3; border: 1px dashed #e7e0d2; border-radius: 8px; padding: 12px 14px; }
  .bu-loc-divider { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #a89f8d; margin: 16px 4px 6px; }
  .bu-syncbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; font-size: 12.5px; color: #6b6459; }
  .bu-syncbar-dot { width: 8px; height: 8px; border-radius: 999px; background: #4f7d5b; flex: none; }
  .bu-syncbar.stale .bu-syncbar-dot { background: #b3392f; }
  .bu-syncbar-text b { color: #1a1a1a; }
  .bu-syncbar-flag { color: #b3392f; font-weight: 700; }
  .bu-syncbar-toggle { font-size: 11px; font-weight: 700; color: #4f7d5b; background: none; border: none; cursor: pointer; padding: 0; }
  .bu-syncbar-log { margin: -6px 0 14px; padding: 10px 12px; background: #faf8f3; border: 1px solid #e7e0d2; border-radius: 8px; font-size: 12px; color: #6b6459; }
  .bu-syncbar-log ul { margin: 0; padding-left: 16px; }
  .bu-syncbar-log li { margin: 2px 0; }
  .bu-loc-item.is-done { background: #fbfdfb; }
  .bu-loc-item.is-done .bu-loc-name { color: #6b6459; }
  .bu-brand-meta .bu-built { color: #2e7d4f; font-weight: 700; }
  .bu-empty { background: #fff; border: 1px dashed #d8d0c0; border-radius: 8px; padding: 24px;
    text-align: center; color: #8a8275; font-size: 13px; }

  @media (max-width: 640px) {
    .bu-facts { grid-template-columns: 1fr 1fr; }
    .bu-progress { gap: 10px; }
    .bu-loc-tags { justify-content: flex-start; }
  }

  /* Home/launchpad: drop the redundant masthead ("CRM Email Concepts" / "All Projects").
     The nav already labels the view; kept on individual projects where it shows the campaign name. */
  body.view-home .dashboard-header { display: none; }
