  :root{
    --plum:#9c4f7c;--plum-soft:#f7e9f1;--teal:#3f8f8c;--teal-soft:#e8f5f4;
  }
  input,select{font:inherit;color:inherit}
  .nav-item{cursor:default}
  .qbtn{width:100%;text-align:left;background:var(--card-bg);border:1px solid var(--line-soft);border-radius:5px;padding:7px 9px;margin:5px 0;display:flex;align-items:center;gap:9px;font-size:10.5px;box-shadow:var(--shadow);cursor:pointer;transform:translateY(0);transition:border-color .18s,transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s cubic-bezier(.16,1,.3,1)}
  .qbtn:hover{border-color:var(--rose-2);transform:translateY(-1px);box-shadow:var(--shadow),0 4px 10px -6px rgba(69,42,29,.28)}
  .qbtn:active{transform:translateY(0) scale(.98);transition-duration:.08s}
  .qbtn:disabled{opacity:.5;cursor:not-allowed}
  .profile{grid-template-columns:42px 1fr 18px}
  main{padding-bottom:40px}
  h2{font-family:Georgia,serif;font-size:16px;margin:0}
  h3{font-family:Georgia,serif;font-size:14px;margin:0 0 4px}
  .card{margin-bottom:16px}
  .field{margin-bottom:14px}
  .field label,.field-label{display:block;font-weight:600;font-size:11px;margin-bottom:6px;color:var(--ink)}
  .field .hint{font-weight:400;color:var(--muted);font-size:10px;margin-top:4px;display:block}
  .field-row{display:flex;gap:14px;flex-wrap:wrap}
  .field-row .field{flex:1;min-width:160px}
  input[type=date]:not(.viewer-search):not(.sr-only-input),input[type=text]:not(.viewer-search),input[type=number]:not(.viewer-search){
    width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card-bg);font-size:12px;
  }
  input:focus{outline:none;border-color:var(--rose-2);box-shadow:0 0 0 3px var(--rose-soft)}
  .upload-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .upload-row .field{margin-bottom:0}
  .dropzone{position:relative;overflow:hidden;border:1.5px dashed var(--rose-2);border-radius:10px;padding:18px 14px;min-height:150px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
    background:var(--rose-soft);transition:border-color .18s,background .18s}
  .dropzone.drag-over{border-color:var(--rose);background:#fbdde2}
  .dropzone .dz-watermark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:88px;height:88px;
    stroke:var(--rose);stroke-width:1.2;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.16;pointer-events:none;z-index:0}
  .dropzone .dz-hint{position:relative;z-index:1;font-size:10.5px;color:#8a5064;font-weight:600}
  .dropzone .dz-filenames{position:relative;z-index:1;display:block;font-size:10.5px;color:var(--ink);font-weight:600;overflow-wrap:anywhere;max-width:100%}
  .dropzone .btn{position:relative;z-index:1;flex:0 0 auto;font-size:11px;padding:8px 16px}
  /* left/top pin the hidden required inputs inside their positioned parent: when the browser
     scrolls an invalid one into view, it must not scroll the card sideways. `input.` so it outranks
     shell.css's generic input[type=date] width/padding. */
  input.sr-only-input{position:absolute;left:0;top:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  @media(max-width:850px){.upload-row{grid-template-columns:1fr}}
  .ml-view-btn{margin-top:10px}
  .google-pull{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px 46px}
  .google-pull .hint{margin:0}
  .gp-list{list-style:none;margin:0;padding:0;max-height:min(50vh,360px);overflow:auto}
  .gp-list li{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:12px}
  .gp-list li:last-child{border-bottom:0}
  .gp-list label{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer}
  .gp-folder{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;font:inherit;font-size:12px;color:var(--ink);text-align:left;cursor:pointer}
  .gp-folder-name{flex:1}
  .gp-folder-meta{color:var(--muted);font-size:10.5px}
  .gp-folder:hover .gp-folder-name{text-decoration:underline}
  .gp-back{margin:0 0 6px}
  .gp-folder-title{font-weight:600;font-size:12.5px;margin:0 0 4px}
  .gp-list + .gp-list{margin-top:6px;border-top:1px solid var(--line-soft)}
  .gp-tag{font-size:10px;color:var(--muted);border:1px solid var(--line-soft);border-radius:999px;padding:1px 7px}
  .ml-modal-list{list-style:none;margin:0 0 12px;padding:0;max-height:min(50vh,360px);overflow:auto}
  .ml-modal-list li{padding:9px 0;border-bottom:1px solid var(--line-soft);font-size:12px}
  .ml-modal-list li:last-child{border-bottom:0}
  .ml-modal-list a{color:var(--ink);word-break:break-all}
  .ml-modal-list .ml-meta{display:block;margin-top:3px;color:var(--muted);font-size:10.5px}
  .scan-header{display:flex;align-items:center;gap:14px;margin-bottom:16px}
  .scan-header-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--rose),var(--rose-2));color:#fff;display:grid;place-items:center;flex:0 0 auto;box-shadow:var(--shadow)}
  .scan-header-icon svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .scan-header-title{font-family:Georgia,serif;font-weight:400;font-size:22px;margin:0}
  .scan-header-sub{color:var(--muted);font-size:12px;margin-top:2px}
  .scan-step{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
  .step-num{width:30px;height:30px;border-radius:9px;background:var(--rose-soft);color:var(--rose);font-family:Georgia,serif;font-weight:700;font-size:14px;display:grid;place-items:center;flex:0 0 auto}
  .step-heading h3{font-family:Georgia,serif;font-size:14px;margin:0 0 3px}
  .step-sub{font-size:11px;color:var(--muted)}
  .scan-step-row{display:flex;gap:24px;align-items:flex-start;margin-left:42px}
  .scan-step-col{flex:1;min-width:0}
  .scan-step-divider{width:1px;align-self:stretch;background:var(--line-soft);flex:0 0 auto}
  .scan-divider{height:1px;background:var(--line-soft);margin:22px 0}
  .mode-tiles{display:flex;gap:10px;flex-wrap:wrap}
  .seg-opt.mode-tile{align-items:center;padding:12px 18px;flex-shrink:0;white-space:nowrap;border-radius:10px}
  .mode-tile-icon{width:20px;height:20px;stroke:var(--muted);stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .mode-tile.checked .mode-tile-icon{stroke:var(--rose)}
  .mode-tile-label{font-size:12px;font-weight:600;line-height:1.35}
  .dz-title{position:relative;z-index:1;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
  .dz-required{position:relative;z-index:1;font-size:9px}
  .dz-caption{position:relative;z-index:1;font-size:9.5px;color:var(--muted)}
  .dropzone .dz-hint{line-height:1.5}
  .dropzone .dz-filenames:not(:empty){margin-top:2px}
  .scan-footer{display:flex;justify-content:center;margin-top:22px}
  #manual-steps-wrap{margin-bottom:16px}
  .manual-steps-heading{padding:4px 2px 10px}
  .manual-steps-heading h3{font-family:Georgia,serif;font-size:15px;margin:0 0 4px}
  .manual-steps-heading p{margin:0;font-size:11.5px;color:var(--muted);max-width:640px}
  @media(max-width:850px){.scan-step-row{flex-direction:column;margin-left:0}.scan-step-divider{display:none}}
  #week-trigger{width:auto;min-width:220px;justify-content:space-between}
  #week-trigger-label{flex:1;text-align:left}
  .week-popover{
    position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:280px;
    background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
    padding:14px;
  }
  .week-presets{display:flex;gap:8px;margin-bottom:12px}
  .week-presets .qbtn{flex:1;justify-content:center;text-align:center}
  .week-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .week-cal-nav span{font-family:Georgia,serif;font-size:12.5px;font-weight:700;color:var(--ink)}
  .week-nav-btn{width:24px;height:24px;border:1px solid var(--line);border-radius:7px;background:var(--card-bg);display:grid;place-items:center;cursor:pointer;color:var(--muted)}
  .week-nav-btn:hover{border-color:var(--rose-2);color:var(--rose)}
  .week-nav-btn svg{width:12px;height:12px}
  .week-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
  .week-cal-grid .week-dow{font-size:9px;font-weight:700;color:var(--muted);text-align:center;padding:4px 0 6px}
  .week-cal-grid .week-day{position:relative;text-align:center;padding:6px 0;font-size:11px;color:var(--ink);cursor:pointer}
  .week-cal-grid .week-day.other-month{color:var(--line)}
  .week-cal-grid .week-day.today{font-weight:700;color:var(--rose)}
  .week-cal-grid .week-day.week-highlight{background:var(--rose-soft)}
  .week-cal-grid .week-day.week-highlight.range-edge-start{border-radius:7px 0 0 7px}
  .week-cal-grid .week-day.week-highlight.range-edge-end{border-radius:0 7px 7px 0}
  .week-cal-grid .week-day.week-highlight.range-edge-start.range-edge-end{border-radius:7px}
  .btn:focus-visible,.qbtn:focus-visible,.seg-opt:has(input:focus-visible),details summary:focus-visible{
    outline:2px solid var(--rose-2);outline-offset:2px;
  }
  ::selection{background:var(--rose-soft);color:var(--rose-ink)}
  .prose-box::-webkit-scrollbar{width:10px}
  .prose-box::-webkit-scrollbar-track{background:transparent}
  .prose-box::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
  .metric-value,.teamtable td,.step .dot{font-variant-numeric:tabular-nums}
  .num-trio{display:flex;gap:8px}
  .num-trio input{width:64px}
  .steps{display:flex;gap:0;padding:16px 18px}
  .step{flex:1;text-align:center;position:relative;padding:8px 4px}
  .step:not(:last-child):after{content:"";position:absolute;top:14px;right:-50%;width:100%;height:2px;background:var(--line-soft);z-index:0}
  .step .dot{width:26px;height:26px;border-radius:50%;background:var(--line-soft);color:var(--muted);display:grid;place-items:center;margin:0 auto 8px;font-size:11px;font-weight:700;position:relative;z-index:1;border:3px solid var(--bg)}
  .step .lbl{font-size:10px;color:var(--muted)}
  .step.done .dot{background:var(--green-soft);color:#4a7c3f}
  .step.done:after{background:var(--green-soft)}
  .step.active .dot{background:var(--rose);color:#fff}
  .step.active .lbl{color:var(--ink);font-weight:700}
  .step.done .lbl{color:var(--ink)}
  .banner{background:var(--amber-soft);border:1px solid #f0d9b0;border-radius:10px;padding:12px 14px;font-size:11.5px;color:#7a5220;margin-bottom:14px}
  .banner.error{background:var(--rose-soft);border-color:#eabfc7;color:var(--rose-ink)}
  .viewer-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .viewer-col{display:flex;flex-direction:column;min-width:0}
  .viewer-row .vr-phone{color:var(--muted);font-size:10px}
  .viewer-detail{margin-top:10px;border:1px solid var(--line-soft);border-radius:10px;padding:12px 14px;background:var(--surface-2);font-size:11.5px;line-height:1.6;flex:1;overflow:auto;max-height:260px}
  .viewer-tabs{display:flex;gap:6px;margin-bottom:8px}
  .viewer-tab{border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);font-size:10.5px;font-weight:600;padding:6px 12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
  .viewer-tab.active{background:var(--rose);border-color:var(--rose);color:#fff}
  .viewer-events{border:1px solid var(--line-soft);border-radius:10px;padding:10px 12px;background:var(--surface);flex:1;overflow:auto;max-height:400px}
  .viewer-event{padding:8px 0;border-bottom:1px solid var(--line-soft);font-size:11px}
  .viewer-event:last-child{border-bottom:none}
  .viewer-event .ve-meta{color:var(--muted);font-size:9.5px;display:flex;justify-content:space-between;margin-bottom:2px}
  .prose-box{white-space:pre-wrap;line-height:1.6;font-size:12.5px;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:10px;padding:16px 18px;min-height:480px;max-height:640px;overflow:auto}
  .prose-box:focus{outline:none;border-color:var(--rose-2)}
  .ba-question{margin-top:16px}
  .mls-file{padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:12px}
  .mls-file:last-child{border-bottom:0}
  .mls-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
  .mls-name{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
  .mls-meta{margin-top:4px;color:var(--muted);font-size:11px}
  .mls-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
  .mls-controls select{max-width:100%;font-size:11.5px;padding:5px 8px}
  .mls-missing{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:11px;max-height:160px;overflow:auto}
  .ba-q{font-size:11.5px;font-weight:600;margin:0 0 7px}
  .ba-basis{margin-top:8px;font-size:11px;color:var(--muted)}
  .ba-actual{margin-top:12px}
  .ba-actual input{width:150px}
  #ba-status{font-size:11px;color:var(--muted)}
  /* Disabled DOM is not an authorization boundary -- the server gate is
     require_compliance_admin on the POST. This is only so it reads as read-only. */
  .ba-readonly .seg-opt{pointer-events:none;opacity:.55}
  .fault-legend{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:10px;color:var(--muted)}
  .fault-legend .fl-item{display:inline-flex;align-items:center;gap:5px}
  .fault-legend .fl-swatch{width:11px;height:11px;border-radius:3px;display:inline-block}
  mark.fault-hl{padding:0 1px;border-radius:2px;cursor:pointer;color:inherit;background:transparent}
  /* One pastel per flag type -- see FLAG_GROUP. The --flag-* tokens live in shell.css (the
     check-in page uses them too). */
  mark.fault-cat-calls{background:var(--flag-calls-bg);border-bottom:2px solid var(--flag-calls)}
  mark.fault-cat-texts{background:var(--flag-texts-bg);border-bottom:2px solid var(--flag-texts)}
  mark.fault-cat-soap{background:var(--flag-soap-bg);border-bottom:2px solid var(--flag-soap)}
  mark.fault-cat-flyers{background:var(--flag-flyers-bg);border-bottom:2px solid var(--flag-flyers)}
  mark.fault-cat-billing{background:var(--flag-billing-bg);border-bottom:2px solid var(--flag-billing)}
  mark.fault-cat-other{background:var(--flag-other-bg);border-bottom:2px solid var(--flag-other)}
  /* Several flag colours on one mark: --hl-fill/--hl-line are hard-stop gradients set by
     splitHighlightColors(); the transparent border keeps the same 2px underline height. */
  mark.fault-hl.fault-multi{border-bottom:2px solid transparent;background:var(--hl-line) bottom/100% 2px no-repeat border-box,var(--hl-fill) border-box}
  mark.fault-hl.fault-stale{opacity:.5;text-decoration:line-through}
  .fl-swatch.fl-calls,.pill.fault-pill-calls{background:var(--flag-calls-bg)}
  .pill.fault-pill-calls{color:var(--flag-calls)}
  .fl-swatch.fl-texts,.pill.fault-pill-texts{background:var(--flag-texts-bg)}
  .pill.fault-pill-texts{color:var(--flag-texts)}
  .fl-swatch.fl-soap,.pill.fault-pill-soap{background:var(--flag-soap-bg)}
  .pill.fault-pill-soap{color:var(--flag-soap)}
  .fl-swatch.fl-flyers,.pill.fault-pill-flyers{background:var(--flag-flyers-bg)}
  .pill.fault-pill-flyers{color:var(--flag-flyers)}
  .fl-swatch.fl-billing,.pill.fault-pill-billing{background:var(--flag-billing-bg)}
  .pill.fault-pill-billing{color:var(--flag-billing)}
  .fl-swatch.fl-other,.pill.fault-pill-other{background:var(--flag-other-bg)}
  .pill.fault-pill-other{color:var(--flag-other)}
  /* Team-card name menu: Compliance report / Slack & admin log (compliance.js openChwMenu). */
  .chw-menu{position:fixed;z-index:45;min-width:232px;padding:5px;display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 1px 2px rgba(69,42,29,.06),0 14px 30px -14px rgba(69,42,29,.32);transform-origin:top left;animation:chw-menu-in .16s cubic-bezier(.16,1,.3,1)}
  .chw-menu[hidden]{display:none}
  .chw-menu button{display:grid;gap:2px;text-align:left;padding:9px 11px;border:0;border-radius:7px;background:transparent;cursor:pointer;color:var(--ink)}
  .chw-menu button b{font:400 14px Georgia,serif}
  .chw-menu button span{font-size:11px;color:var(--muted)}
  .chw-menu button:hover,.chw-menu button:focus-visible{background:var(--rose-soft);outline:none}
  .chw-menu button:focus-visible{box-shadow:inset 0 0 0 1.5px var(--rose-2)}
  @keyframes chw-menu-in{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}
  @media (prefers-reduced-motion:reduce){.chw-menu{animation:none}}
  .team-card .viewer-row.menu-open{background:color-mix(in srgb,var(--team) 30%,var(--paper))}
  .team-card .viewer-row.menu-open .vr-name{text-decoration:underline;text-underline-offset:3px}
  .team-card .viewer-row[data-id]:focus-visible{outline:2px solid var(--rose-2);outline-offset:-2px}
  .send-menu{position:relative;display:inline-flex}
  .send-menu-list{display:none;position:absolute;right:0;top:100%;z-index:25;min-width:170px;margin:4px 0 0;padding:4px;list-style:none;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}
  .send-menu.open .send-menu-list{display:block}
  /* .card clips its overflow (shell.css); a short team card would cut the open menu off. */
  .card:has(.send-menu.open){overflow:visible}
  .send-menu-list li{padding:8px 10px;border-radius:6px;font-size:12px;cursor:pointer;white-space:nowrap}
  .send-menu-list li:hover,.send-menu-list li:focus{background:var(--rose-soft);outline:none}
  .fault-popover{position:fixed;z-index:40;width:270px;max-width:90vw;max-height:calc(100vh - 16px);overflow-y:auto;overflow-x:hidden;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:12px;font-size:11px;display:none;box-sizing:border-box}
  .cb-row{display:flex;align-items:flex-start;gap:5px;padding-left:2px;width:100%;box-sizing:border-box;font-weight:normal}
  .cb-row input{flex:0 0 auto;margin:1px 0 0 0}
  .cb-row .cb-label{flex:1 1 auto;min-width:0;word-break:break-word;overflow-wrap:break-word}
  .fault-popover select,.fault-popover input:not([type="checkbox"]){width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:7px;font-size:11px;margin-bottom:6px;background:var(--card-bg)}
  .fault-popover-row + .fault-popover-row{border-top:1px solid var(--line-soft);margin-top:8px;padding-top:8px}
  #flag-selection-btn{position:fixed;z-index:30;display:none;padding:6px 12px;font-size:10.5px}
  details summary{cursor:pointer;font-size:11px;color:var(--rose);font-weight:600;list-style:none;padding:6px 0}
  details summary::-webkit-details-marker{display:none}
  .teamtable{width:100%;border-collapse:collapse}
  .teamtable td{padding:10px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;font-size:10.5px}
  .empty-state{padding:24px;text-align:center;color:var(--muted);font-size:11px}
  .intern-form-inline{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}
  .intern-form-inline .field{margin-bottom:0}
  .intern-form-inline input{width:auto}
  .icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;display:block}
  .top-icon .icon{width:20px;height:20px}
  .qbtn .icon{width:14px;height:14px;stroke-width:2;flex:0 0 auto}
  .btn .icon{width:15px;height:15px;stroke-width:2}
  @media(max-width:850px){
    main{padding:16px}.top-actions .role{display:none}
    .teamtable{display:block;overflow-x:auto}
    .field-row{flex-direction:column}
  }

  /* ===================================================================== Compliance redesign
     Team tabs in the team accents, a scorecard for the CHW, a checklist setup with a rose-flush
     summary, a score hero with grouped flags, a billing strip, and a restyled report head, master
     log status and log viewer. The report text box itself (.prose-box) is unchanged. */
  :root{--rose-flush:#f9e1e6;--tier-ok:#7fa86f;--tier-warn:#d49a3c;--tier-bad:#d85f75}
  .btn.flush{background:var(--rose-flush);border-color:#f1c9d1;color:var(--rose-ink)}
  .btn.outline{background:var(--paper);border-color:var(--ink);color:var(--ink)}
  .link-btn{background:none;border:0;padding:2px 0;font-size:11.5px;color:var(--rose-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
  .pill.mute{background:var(--line-soft);color:var(--muted)}
  .cmp-seg{display:inline-flex;gap:0;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:9px;padding:3px;flex-wrap:wrap}
  .cmp-seg .seg-opt,.cmp-seg .seg-opt.mode-tile{border:0;background:none;border-radius:7px;padding:6px 12px;font-size:11.5px;color:var(--muted);white-space:nowrap}
  .cmp-seg .seg-opt.checked{background:var(--paper);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(69,42,29,.12)}
  .cmp-seg .seg-opt::before,.cmp-seg .seg-opt::after{display:none}
  .cmp-seg .mode-tile-label{font-size:11.5px;font-weight:inherit}
  /* `.field label` (above) makes every label a block; the segmented options must stay inline. */
  .cmp-seg .seg-opt{display:inline-flex;margin:0;font-weight:400}
  .up-text .dz-title{margin:0}
  mark.fault-hl.is-hot{box-shadow:0 0 0 2px var(--ink)}

  /* Team picker: one team at a time, as a coloured folder tab. Accents are shell.css's. */
  .team-tabs{display:flex;gap:4px;flex-wrap:wrap;padding-left:10px}
  .team-tabs:empty{display:none}
  .team-tab{position:relative;top:1px;border:1px solid color-mix(in srgb,var(--team) 70%,var(--mix-line));border-bottom:0;border-radius:8px 8px 0 0;
    background:color-mix(in srgb,var(--team) 45%,var(--paper));padding:8px 14px 7px;font:400 13px Georgia,serif;color:var(--ink);cursor:pointer;transition:background .15s}
  .team-tab:hover{background:color-mix(in srgb,var(--team) 75%,var(--paper))}
  .team-tab[aria-selected="true"]{background:var(--team);z-index:1}
  .team-tab:focus-visible{outline:2px solid var(--rose-2);outline-offset:2px}
  #team-cards-view.is-tabbed .team-cards-grid{display:block}
  #team-cards-view.is-tabbed .team-card:not(.is-tab-active){display:none}
  .team-card{--team:var(--team-accent,var(--line));border-color:color-mix(in srgb,var(--team) 70%,var(--mix-line));border-radius:3px 12px 12px 12px;background:color-mix(in srgb,var(--team) 14%,var(--paper))}
  .team-card .card-head{align-items:center;padding:14px 20px}
  .team-card .card-head h2{font-weight:400;font-size:21px;margin-top:2px}
  .team-week{color:#3d3330}
  .team-card .card-body{padding:12px 20px 16px}
  .team-card .viewer-list--team-picker{border:0;background:none;border-radius:0}
  .team-card .viewer-row[data-id]{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:9px 8px;border-radius:6px;
    border-bottom:1px solid color-mix(in srgb,var(--team) 40%,var(--line-soft));background:none}
  .team-card .viewer-row[data-id]:hover{background:color-mix(in srgb,var(--team) 30%,var(--paper))}
  .team-card .viewer-row[data-id]:hover .vr-name{text-decoration:underline;text-underline-offset:3px}
  .team-card .vr-name{font:400 15px Georgia,serif}
  .vr-last{font:italic 11.5px Georgia,serif;color:var(--muted);white-space:nowrap}
  .vr-status .pill{font-size:10.5px;padding:3px 8px}
  .team-card .scan-pill{margin-left:0!important}
  .team-status-key{display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;padding-top:12px;font-size:11px;color:var(--muted)}
  .team-status-key > span{display:inline-flex;align-items:center;gap:6px}
  .team-status-key .pill{font-size:10px;padding:3px 7px}

  /* CHW detail: score hero, compliance trend, past-report cards */
  #chw-detail-card{border-radius:14px}
  .chw-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:30px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line-soft)}
  .chw-hero-main h2{font:400 26px Georgia,serif;margin:4px 0 0;letter-spacing:-.01em}
  .chw-hero-score{display:block;font-size:76px;margin-top:8px;min-height:1em}
  .chw-hero-score small{font-size:.45em}
  .chw-hero-scoreline{display:flex;align-items:baseline;gap:6px 16px;flex-wrap:wrap}
  .hero-delta{display:flex;flex-direction:column;gap:2px}
  .hero-delta .hd-change{font:500 20px var(--numeral);white-space:nowrap}
  .hero-delta .hd-change small{font-size:.6em}
  .hero-delta.up .hd-change{color:#5f8753}
  .hero-delta.down .hd-change{color:var(--rose-ink)}
  .hero-delta.flat .hd-change{color:var(--muted)}
  .hero-delta .hd-vs{font:italic 11px Georgia,serif;color:var(--muted);white-space:nowrap}
  .chw-hero-meta{font:italic 12px Georgia,serif;color:var(--muted);margin-top:4px;min-height:1.2em}
  .chw-hero-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
  .chw-trend{min-width:0}
  .chw-trend > .ledger-label{display:block}
  /* Room above the plot so the value labels over the highest points clear the title. */
  .trend-plot{position:relative;height:120px;margin:38px 40px 0 6px}
  .trend-plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;color:var(--ink)}
  .trend-guide{position:absolute;left:0;right:0;border-top:1.5px dashed #d9cbc4}
  .trend-guide span{position:absolute;right:-38px;top:-9px;font:11px Georgia,serif;font-variant-caps:all-small-caps;letter-spacing:.06em;color:var(--muted)}
  .trend-pt{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--paper);border:2px solid var(--tier-bad)}
  .trend-pt.ok{border-color:var(--tier-ok)}.trend-pt.warn{border-color:var(--tier-warn)}
  .trend-pt.last.ok{background:var(--tier-ok)}.trend-pt.last.warn{background:var(--tier-warn)}.trend-pt.last.bad{background:var(--tier-bad)}
  .trend-pv{position:absolute;transform:translate(-50%,-170%);font-family:var(--numeral);font-size:12px;color:var(--muted);white-space:nowrap}
  .trend-pv.last{color:var(--ink);font-size:15px}
  .trend-xs{position:relative;height:16px;margin:10px 40px 0 6px}
  .trend-xs span{position:absolute;top:0;transform:translateX(-50%);font:11px Georgia,serif;font-variant-caps:all-small-caps;letter-spacing:.06em;color:var(--muted);white-space:nowrap}
  .trend-xs span:first-child{transform:none}
  .trend-xs span:last-child{transform:translateX(-100%)}
  .trend-empty{font:italic 12px Georgia,serif;color:var(--muted)}
  .pr-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid var(--ink)}
  .pr-head h3{font:400 19px Georgia,serif;margin:0}
  .pr-count{font:italic 12px Georgia,serif;color:var(--muted);margin-left:8px}
  .pr-tools{display:flex;gap:8px}
  .pr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .pr-grid > .empty-state,.pr-grid > .skel-rows{grid-column:1/-1}
  .pr-grid .viewer-row.pr-card{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:12px 14px;min-width:0;font-size:12px;transition:border-color .15s,box-shadow .15s}
  .pr-grid .viewer-row.pr-card:hover{border-color:var(--rose-2)}
  .pr-grid .viewer-row.pr-card.selected{border-color:var(--rose-ink);box-shadow:0 0 0 3px var(--rose-soft)}
  .pr-grid .pr-card.draft{background:var(--surface-2)}
  .pr-card .pr-score{display:block;font-size:28px;margin:6px 0 4px;min-height:1em}
  .pr-card .pr-score small{font-size:.45em}
  .pr-card .pr-meta{font-size:11px;color:var(--muted)}
  .pr-card .pill{margin-left:6px;font-size:9.5px;padding:2px 6px}
  .pr-more{display:block;margin:12px auto 0;background:none;border:0;color:var(--rose-ink);font-size:12px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.pr-more[hidden]{display:none}

  /* Scan setup: checklist panel beside a rose-flush summary */
  .setup-wrap{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}
  .setup-panel{padding:20px 22px;margin-bottom:0}
  .setup-head h2{font:400 20px Georgia,serif}
  .setup-head p{margin:4px 0 0;font:italic 12px Georgia,serif;color:var(--muted)}
  .setup-settings{display:flex;gap:18px 28px;flex-wrap:wrap;margin:16px 0 4px}
  .setup-settings .field{margin-bottom:0}
  .upload-list .upload-item{margin:0;border-bottom:1px solid var(--line-soft);padding:4px 0}
  .upload-list .upload-item:last-child{border-bottom:0}
  .upload-item .dropzone{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;min-height:0;padding:12px 10px;border:1px dashed transparent;background:none;border-radius:10px}
  .upload-item .dropzone.drag-over{border-color:var(--rose-2);background:var(--rose-soft)}
  .up-box{width:22px;height:22px;border-radius:6px;border:1.5px solid #d8c7c0}
  .upload-item .dropzone.is-ready .up-box{border:0;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.2 2.3 2.3 4.7-5' fill='none' stroke='%23fff6ef' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}
  .up-text{display:flex;flex-direction:column;gap:2px;min-width:0}
  .up-text .dz-title{font-size:13px}
  .up-text .dz-caption{font-size:11px}
  .upload-item .dropzone .dz-filenames{font-size:11px;font-weight:600}
  .upload-item .dropzone .btn{font-size:11px;padding:7px 14px}
  .upload-item .hint{display:block;margin:0 0 6px 46px;font-size:10.5px;color:var(--muted)}
  .upload-item .ml-view-btn{margin:0 0 8px 46px}
  .setup-summary{position:sticky;top:16px;border-radius:14px;background:var(--rose-flush);border:1px solid #f1c9d1;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
  .setup-summary .ledger-label{color:var(--rose-ink)}
  .ss-v{font:400 16px Georgia,serif;margin-top:2px}
  .ss-week{position:relative}
  .ss-week #week-trigger{width:100%;min-width:0;margin-top:6px;background:var(--paper)}
  .ss-week .week-popover{left:0;right:auto}
  .setup-summary hr{border:0;border-top:1px solid rgba(161,58,82,.18);margin:0}
  .ss-count .ledger-figure{font-size:44px}
  .ss-count .ledger-figure small{font-size:.45em;color:#7d5a62}
  #files-uploaded-pill{margin-top:4px}
  .ss-run{justify-content:center;background:var(--rose-ink);border-color:var(--rose-ink);color:#fff;padding:12px}

  /* Results: score hero + rubric, grouped flags */
  #fault-tags-section{border-radius:14px}
  .score-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:30px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line-soft)}
  .score-big{display:block;font-size:84px;margin-top:8px;min-height:1em}
  .score-big small{font-size:.45em}
  .score-sub{display:block;font:italic 12px Georgia,serif;color:var(--muted);margin-top:4px}
  .rubric{display:grid;gap:9px}
  .rubric:empty{display:none}
  .rb{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr) 54px;gap:12px;align-items:center;font-size:12px}
  .rb-track{height:8px;border-radius:4px;background:var(--track);overflow:hidden}
  .rb-track span{display:block;height:100%;background:var(--ink);border-radius:inherit}
  .rb-v{text-align:right;font-family:var(--numeral);font-size:14px}
  .rb-v small{font-size:.7em;color:var(--muted)}
  .rubric-note{font:italic 11.5px Georgia,serif;color:var(--muted)}
  .flags-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:18px 24px 0}
  .flags-head h2{font:400 20px Georgia,serif}
  .flags-count{font:italic 12px Georgia,serif;color:var(--muted);margin-left:6px}
  .flags-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
  .flags-tools p{margin:0;font-size:11px;color:var(--muted);max-width:52ch}
  #fault-tags-section > .card-body{padding:14px 24px 22px}
  .flag-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .flag-groups > .empty-state{grid-column:1/-1}
  .fgrp{--tint:var(--flag-other-bg);--ink2:var(--flag-other);border:1px solid var(--tint);border-radius:12px;background:linear-gradient(180deg,var(--tint) 0,var(--paper) 54px);padding:12px 14px;min-width:0}
  .fgrp.g-calls{--tint:var(--flag-calls-bg);--ink2:var(--flag-calls)}.fgrp.g-texts{--tint:var(--flag-texts-bg);--ink2:var(--flag-texts)}
  .fgrp.g-soap{--tint:var(--flag-soap-bg);--ink2:var(--flag-soap)}.fgrp.g-flyers{--tint:var(--flag-flyers-bg);--ink2:var(--flag-flyers)}
  .fgrp.g-billing{--tint:var(--flag-billing-bg);--ink2:var(--flag-billing)}
  .fgrp h4{display:flex;align-items:center;gap:8px;font:400 15px Georgia,serif;margin:0 0 8px}
  .fgrp--summary h4{margin:0}
  .fgrp h4 i{width:10px;height:10px;border-radius:3px;background:var(--ink2);flex:none}
  .fgrp h4 span{margin-left:auto;font:italic 11.5px Georgia,serif;color:var(--muted);white-space:nowrap}
  .fgrp h4 .fg-cost{font:500 17px var(--numeral);font-style:normal;color:var(--ink);margin-left:6px}
  .fgrp h4 .fg-cost small{font-size:.6em;color:var(--muted)}
  /* More than five flags of one type: the box keeps five in view and scrolls the rest (capFlagLists). */
  .fgrp-list.is-capped{overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin;
    -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 18px),transparent)}
  .fgrp-list.is-capped:hover,.fgrp-list.is-capped:focus-within{-webkit-mask-image:none;mask-image:none}
  .ftag{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid rgba(38,22,17,.08);font-size:12px}
  .ftag .ft-meta{font-size:10.5px;color:var(--muted);margin-top:2px}
  .ftag .ft-acts{display:flex;gap:4px;flex:none}
  .ftag .ft-acts .btn{padding:4px 10px;font-size:10.5px}

  /* Billing review strip */
  .ba-help{margin:10px 18px 0;font-size:11.5px;color:var(--muted)}
  .ba-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;margin:12px 18px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}
  .ba-cell{padding:12px 16px;border-right:1px solid var(--line-soft);min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
  .ba-cell:last-child{border-right:0}
  .ba-cell .ledger-label{font-weight:400;margin:0}
  .ba-strip input[type=number]{width:100px;font:500 19px var(--numeral);padding:4px 8px}
  .ba-note,.ba-basis{font:italic 10.5px Georgia,serif;color:var(--muted);margin:0}
  .ba-actual{margin:4px 0 0}
  .ba-actual label{display:block;font-size:10.5px;color:var(--muted);margin-bottom:3px}
  .ba-actual input{width:100px}
  .ba-strip input:disabled{background:var(--surface-2);color:var(--muted);opacity:.75}
  .ba-strip input:not(:disabled):not([type=radio]){background:var(--paper)}
  .ba-save{justify-content:center;align-items:center}

  /* Compliance Report head + highlight legend (the text box below is unchanged) */
  .rp-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 18px 14px;border-bottom:1px solid var(--line-soft)}
  .rp-title h2{font:400 20px Georgia,serif}
  .rp-sent{display:flex;gap:6px 16px;flex-wrap:wrap;margin-top:5px;font-size:11px;color:var(--muted);min-height:1em}
  .rp-st{display:inline-flex;align-items:center;gap:6px}
  .rp-st i{width:7px;height:7px;border-radius:50%;border:1.5px solid #cfc2bb}
  .rp-st.on{color:var(--ink)}
  .rp-st.on i{background:var(--green);border-color:var(--green)}
  .rp-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .rp-saved{font-size:11px;color:var(--muted)}
  /* Nothing to save: read as grey, not a faded version of the rose call to action. */
  .btn.flush:disabled{background:var(--line-soft);border-color:var(--line);color:var(--muted)}
  .rp-sep{width:1px;height:20px;background:var(--line);margin:0 2px}
  .rp-q{background:none;border:0;padding:6px 4px;font-size:12px;color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}
  .rp-q:hover{color:var(--ink);text-decoration-color:currentColor}
  .rp-q:focus-visible{outline:2px solid var(--rose-2);outline-offset:2px}
  .fault-legend{align-items:center;gap:8px;margin-bottom:12px;font-size:11.5px;color:var(--ink)}
  .fault-legend .ledger-label{margin-right:4px}
  .fault-legend .fl-item{gap:7px;padding:3px 4px 3px 8px;border-radius:4px;border-bottom:2px solid;cursor:default}
  .fault-legend .fl-item.is-zero{opacity:.45}
  .fl-n{min-width:18px;text-align:center;border-radius:3px;background:rgba(255,255,255,.75);font:500 12px var(--numeral);padding:1px 4px}
  .fl-item.fl-calls{background:var(--flag-calls-bg);border-color:var(--flag-calls)}
  .fl-item.fl-texts{background:var(--flag-texts-bg);border-color:var(--flag-texts)}
  .fl-item.fl-soap{background:var(--flag-soap-bg);border-color:var(--flag-soap)}
  .fl-item.fl-flyers{background:var(--flag-flyers-bg);border-color:var(--flag-flyers)}
  .fl-item.fl-billing{background:var(--flag-billing-bg);border-color:var(--flag-billing)}
  .fl-item.fl-other{background:var(--flag-other-bg);border-color:var(--flag-other)}

  /* Master log status */
  .ml-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:16px 18px 14px;border-bottom:1px solid var(--line-soft)}
  .ml-head h2{font:400 20px Georgia,serif}
  .ml-head p{margin:4px 0 0;max-width:72ch;font-size:11.5px;color:var(--muted)}
  .ml-sum{text-align:right}
  .ml-sum .ledger-figure{display:block;font-size:30px}
  .ml-sum .ledger-figure small{font-size:.45em}
  #master-log-status-body .mls-file{padding:14px 18px;border-bottom:1px solid var(--line-soft)}
  #master-log-status-body .mls-file:last-child{border-bottom:0}
  .mls-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.3fr) auto auto;gap:18px;align-items:end}
  .mls-name{display:block;font-size:12.5px}
  .mls-row .mls-meta{margin-top:2px}
  .mls-bar{height:6px;border-radius:3px;background:var(--track);overflow:hidden}
  .mls-bar span{display:block;height:100%;border-radius:inherit;background:var(--tier-ok)}
  .mls-bar .warn{background:var(--tier-warn)}
  .mls-n{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
  .mls-n .ledger-figure{font-size:16px;color:var(--ink)}
  .mls-field{display:flex;flex-direction:column;gap:5px;min-width:0}
  .mls-field select{max-width:100%;font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
  .mls-row .mls-msg{grid-column:1/-1;margin:0}
  .mls-miss{margin-top:12px;border:1px solid #f0dcc4;background:#fffaf3;border-radius:8px;padding:6px 12px}
  .mls-miss summary{color:var(--amber-ink,#82501f)}
  .mls-miss table{width:100%;border-collapse:collapse;margin:4px 0 6px}
  .mls-miss th{font:12px Georgia,serif;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--muted);text-align:left;padding:5px 8px 5px 0;border-bottom:1px solid #f0dcc4}
  .mls-miss td{padding:7px 8px 7px 0;border-bottom:1px solid #f6e8d6;font-size:12px;vertical-align:top}
  .mls-miss tr:last-child td{border-bottom:0}
  .mls-miss .pill{margin:0 4px 2px 0;font-size:10px;padding:3px 7px}

  /* View Logs: same layout, restyled */
  #log-viewer-section .viewer-list{border-color:var(--line)}
  #log-viewer-section .viewer-row{padding:9px 12px}
  #log-viewer-section .viewer-row .vr-name{font:400 14px Georgia,serif}
  #log-viewer-section .viewer-row.selected{background:var(--tile-bg)}
  #log-viewer-section .viewer-row.selected .vr-name{font-weight:700}
  #log-viewer-section .viewer-row .vr-phone{font-size:10.5px;margin-top:1px}
  .viewer-detail{background:var(--surface);border-color:var(--line);padding:14px 16px;font-size:12px}
  .vd-name{font:400 17px Georgia,serif}
  .vd-sub{font-size:11px;color:var(--muted);margin:1px 0 10px}
  .vd-kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 16px;margin:0 0 12px;padding:10px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);font-size:11.5px}
  .vd-kv dt{font:12px Georgia,serif;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--muted)}
  .vd-kv dd{margin:0;overflow-wrap:anywhere}
  .vd-soap{font:400 13px/1.65 Georgia,serif;color:#3d3330;white-space:pre-wrap}
  .viewer-tabs{display:inline-flex;align-self:flex-start;gap:0;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:8px;padding:3px}
  .viewer-tab{border:0;border-radius:6px;background:none;font-size:11.5px;padding:6px 13px}
  .viewer-tab.active{background:var(--ink);border-color:var(--ink);color:#fff6ef}
  .viewer-events{border-color:var(--line);padding:4px 14px 12px}
  .ve-date-header{display:flex;align-items:center;gap:10px;margin:12px 0 2px;font:12px Georgia,serif;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--muted)}
  .ve-date-header::before,.ve-date-header::after{content:"";flex:1;border-top:1px solid var(--line-soft)}
  .viewer-event{display:flex;gap:12px;align-items:flex-start;padding:9px 0;font-size:12px}
  .ve-time{min-width:64px;flex:0 0 auto;font:12px Georgia,serif;color:var(--muted)}
  .ve-body{flex:1 1 auto;min-width:0}
  .viewer-event .ve-meta{font-size:10.5px;justify-content:flex-start;gap:4px}
  .ve-dir{font-weight:600;color:#4f4642}
  .ve-body{overflow-wrap:anywhere}
  .ve-numbers{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
  .ve-num-chip{font:11px system-ui,sans-serif;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:#4f4642;cursor:pointer;white-space:nowrap}
  .ve-num-chip.active{border-width:2px;font-weight:600}
  .ve-num{font-weight:600;white-space:nowrap}
  .ve-num-0{color:#8a2f45;border-color:#8a2f45}
  .ve-num-1{color:#1f6f6b;border-color:#1f6f6b}
  .ve-num-2{color:#8a6a12;border-color:#8a6a12}
  .ve-num-3{color:#3b5aa3;border-color:#3b5aa3}
  .ve-num-4{color:#6b3f8f;border-color:#6b3f8f}
  .ve-num-5{color:#4d6b2a;border-color:#4d6b2a}
  .ve-dir.out{color:var(--rose-ink)}

  @media(max-width:1100px){
    .ba-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
    .ba-cell{border-bottom:1px solid var(--line-soft)}
    .mls-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
    .mls-row > .btn{justify-self:start}
  }
  @media(max-width:850px){
    .chw-hero,.score-hero{grid-template-columns:minmax(0,1fr)}
    .pr-grid,.flag-groups{grid-template-columns:minmax(0,1fr)}
    .setup-wrap{grid-template-columns:minmax(0,1fr)}
    .setup-summary{position:static}
    .ba-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .mls-row{grid-template-columns:minmax(0,1fr)}
    .ml-sum{text-align:left}
    .rb{grid-template-columns:minmax(0,1fr) 54px}
    .rb-track{grid-column:1/-1;grid-row:2}
    .team-card .viewer-row[data-id]{grid-template-columns:minmax(0,1fr) auto}
    .team-card .vr-last{display:none}
    .upload-item .hint,.upload-item .ml-view-btn,.google-pull{margin-left:0}
  }
  @media(prefers-reduced-motion:reduce){.team-tab,.pr-card,.rp-q{transition:none}}

  .viewer-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 10px;font-size:12px}
  .viewer-flag-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
  .viewer-csv-template{font-size:11.5px;color:var(--muted)}
  .vr-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font:10px system-ui,sans-serif;background:#efe7d9;color:#6b5320;vertical-align:middle}

/* Team-card search hides rows in place (compliance.js filterMemberRows). */
.viewer-row[hidden]{display:none}

/* ---- Flag contests (contest_chw.js on My Compliance, contest_review.js on Compliance) ---------- */
.ct-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.ct-bar[hidden]{display:none}
.ct-bar p{margin:0;font-size:12.5px;color:var(--muted)}
.ct-bar b{color:var(--ink)}
.ck-list li{position:relative}
.ck-list li.ct-can{cursor:pointer;border-radius:8px;transition:background .15s}
.ck-list li.ct-can:hover,.ck-list li.ct-can:focus-visible{background:var(--hover-bg);outline:none}
.ck-list li.ct-can:focus-visible{box-shadow:0 0 0 2px var(--rose-2)}
.ct-flag{grid-column:2;justify-self:start;font-size:11px;font-weight:600;color:var(--pill-warn-text);background:var(--pill-warn-bg);padding:2px 8px;border-radius:7px}
.ct-flag--hint{color:var(--muted);background:transparent;border:1px solid var(--line);opacity:0;transition:opacity .15s}
.ck-list li.ct-can:hover .ct-flag--hint,.ck-list li.ct-can:focus-visible .ct-flag--hint{opacity:1}
@media (hover:none){.ct-flag--hint{opacity:1}}
@media (max-width:850px){.ct-flag{grid-column:1}}

.ct-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}
.ct-modal-card{padding:18px;width:480px;max-width:100%;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 12px 40px rgba(0,0,0,.35)}
.ct-modal-card h3{margin:0 0 12px}
.ct-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin-bottom:12px}
.ct-item p{margin:0;font-size:13px;line-height:1.55;white-space:pre-wrap}
.ct-clients{border:0;margin:0 0 12px;padding:0}
.ct-clients legend{font-size:12px;font-weight:600;margin-bottom:6px;padding:0}
.ct-clients label{display:flex;gap:8px;align-items:center;font-size:12.5px;padding:3px 0}
.ct-one{margin:0 0 12px;font-size:12.5px}
.ct-label{display:block;font-size:12px;font-weight:600;margin:0 0 6px}
.ct-modal textarea,.ct-decide textarea{width:100%;box-sizing:border-box;padding:8px 9px;border:1px solid var(--line);border-radius:7px;font:inherit;font-size:12.5px;background:var(--surface);color:var(--ink);resize:vertical}
.ct-hint,.ct-muted{font-size:11.5px;color:var(--muted);margin:6px 0 0}
.ct-error{font-size:11.5px;color:var(--rose-ink);min-height:16px;margin:6px 0}
.ct-error:empty{min-height:0}
.ct-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.ct-list{list-style:none;margin:0;padding:0}
.ct-row,.ct-contest{padding:12px 0;border-top:1px solid var(--line-soft)}
.ct-row:first-child{border-top:0}
.ct-row-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.ct-status{font-size:11px;font-weight:600;padding:2px 8px;border-radius:7px;background:var(--pill-warn-bg);color:var(--pill-warn-text)}
.ct-status--accepted{background:var(--pill-ok-bg);color:var(--pill-ok-text)}
.ct-status--rejected,.ct-status--denied{background:var(--pill-bad-bg);color:var(--pill-bad-text)}
.ct-who{margin:0 0 4px;font-family:Georgia,serif;font-size:13.5px}
.ct-slip,.ct-reason,.ct-note{margin:0 0 6px;font-size:12.5px;line-height:1.55;white-space:pre-wrap}
.ct-note{padding:6px 10px;border-left:3px solid var(--line);background:var(--surface-2);border-radius:0 6px 6px 0}
.ct-row-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--muted)}
.ct-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;font-size:12px}
.ct-confirm[hidden],.ct-decide[hidden],.ct-gone[hidden],.ct-locked[hidden],.ct-panel[hidden]{display:none}
.ct-empty{color:var(--muted);font-size:12px}

.ct-review,.ct-history{margin-top:18px}
.ct-locked{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ct-locked p{margin:0;font-size:12px;color:var(--muted)}
.ct-person{border-bottom:1px solid var(--line-soft)}
.ct-person:last-child{border-bottom:0}
.ct-person-row{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;width:100%;text-align:left;border:0;border-bottom:0;font-size:12px}
.ct-person-row .vr-last{color:var(--muted)}
.ct-caret{transition:transform .15s;color:var(--muted)}
.ct-person.open .ct-caret{transform:rotate(180deg)}
.ct-panel{padding:0 11px 6px}
.ct-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.ct-spacer{flex:1}
.ct-decide{margin-top:10px}
.ct-gone{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;border-radius:7px;background:var(--pill-bad-bg);color:var(--pill-bad-text);font-size:12px}
.ct-gone p{margin:0;flex:1}
.ct-logs > #log-viewer-section{margin-top:12px;box-shadow:none}

.ct-history summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ct-history summary::-webkit-details-marker{display:none}
.ct-history summary h2:after{content:" ▾";color:var(--muted);font-size:.8em}
.ct-history details[open] summary h2:after{content:" ▴"}
.ct-sum-hint{font-size:11.5px;color:var(--muted)}
.ct-history-tools{display:flex;justify-content:flex-end;margin-bottom:10px;font-size:12px}
.ct-history-tools select{margin-left:6px;font:inherit;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}
.ct-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:14px}
.ct-stat{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--surface-2)}
.ct-stat span{display:block;font-size:11px;color:var(--muted)}
.ct-stat b{font-family:var(--numeral);font-size:20px;font-weight:600}
.ct-h3{font-size:13px;margin:14px 0 6px}
.ct-history .card-body{overflow-x:auto}
.ct-table{width:100%;border-collapse:collapse;font-size:12px}
.ct-table th,.ct-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line-soft);white-space:nowrap}
.ct-table th{font-size:11px;color:var(--muted);font-weight:600}
