/* Campaign Review — page-local styles.
   Table matches the Requests page (.pl-tbl / .pl-row), which is the house pattern; those
   rules live inside requests.html rather than tokens.css, so they are restated here.
   ⚠️ Tokens are --ink and --border. There is NO --ink-1 or --line: the first version used
   both, which silently produced white-on-white (the active filter tab was invisible). */
.cr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.cr-h1{font-size:20px;font-weight:700;margin:0 0 4px}
.cr-sub{font-size:12.5px;color:var(--ink-3);font-weight:500}

.cr-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.cr-tab{font:inherit;font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid var(--border);
        background:var(--surface);color:var(--ink-2);cursor:pointer}
.cr-tab:hover{background:var(--surface-1)}
.cr-tab.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cr-cnt{font-size:11px;opacity:.75;margin-left:2px}
.cr-q{flex:1;min-width:200px;max-width:340px;margin-left:auto;font:inherit;font-size:13px;padding:7px 11px;
      border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}

.cr-msg{font-size:12.5px;color:var(--ink-3);min-height:18px;margin-bottom:6px;opacity:0;transition:opacity .15s}
.cr-msg.on{opacity:1}
.cr-msg.bad{color:var(--red)}

/* bulk bar — only present while rows are selected */
.cr-bulk{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 12px;margin-bottom:10px;
         border:1px solid var(--border);border-radius:10px;background:var(--surface-1)}
.cr-bulk__n{font-size:12.5px;font-weight:700;color:var(--ink)}
.cr-bulk__sp{flex:1}

.cr-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.pl-tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.pl-tbl thead th{position:sticky;top:0;background:var(--surface-1);z-index:3;text-align:left;font-size:10.5px;
                 font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);
                 padding:13px 18px;border-bottom:1px solid var(--border);white-space:nowrap}
.pl-tbl tbody td{padding:15px 18px;border-top:1px solid var(--border);vertical-align:top;transition:background .12s}
.pl-tbl tbody tr:first-child td{border-top:none}
.pl-row:hover td{background:var(--surface-1)}
.pl-tbl.zebra tbody tr.pl-row.alt td{background:color-mix(in srgb,var(--surface-1) 55%,var(--surface))}
.pl-tbl.zebra tbody tr.pl-row.alt:hover td{background:var(--surface-1)}
.pl-tbl .r{text-align:right}
.pl-tbl .ck{width:34px}

.cr-co{font-weight:600}
.pl-tbl .cr-sub{font-size:11.5px;color:var(--ink-4);margin-top:2px}
.cr-by{font-size:10.5px;color:var(--ink-4);margin-top:5px}

.cr-sgroup{display:flex;gap:5px;flex-wrap:wrap}
.cr-s{font:inherit;font-size:11px;font-weight:700;padding:4px 8px;border-radius:6px;cursor:pointer;white-space:nowrap;
      border:1px solid var(--border);background:var(--surface-1);color:var(--ink-3)}
.cr-s:hover{border-color:var(--ink-4);color:var(--ink-2)}
.cr-s.on.cr-s--eye{background:var(--blue-bg);color:var(--blue);border-color:transparent}
.cr-s.on.cr-s--maybe{background:var(--amber-bg);color:var(--amber);border-color:transparent}
.cr-s.on.cr-s--rebuild{background:var(--red-bg);color:var(--red);border-color:transparent}

.cr-note{width:100%;min-width:150px;font:inherit;font-size:12.5px;padding:6px 9px;border:1px solid var(--border);
         border-radius:7px;background:var(--surface-1);color:var(--ink)}
.cr-note:focus{outline:none;border-color:var(--accent);background:var(--surface)}
.cr-empty{padding:34px;text-align:center;color:var(--ink-3);font-size:13px;
          border:1px solid var(--border);border-radius:12px;background:var(--surface)}

.cr-ads{display:inline-block;margin-top:5px;font-size:11px;font-weight:600;color:var(--accent);text-decoration:none}
.cr-ads:hover{text-decoration:underline}
.pl-row{cursor:pointer}
.pl-row.is-sel td{background:var(--accent-soft)}
.pl-row.is-sel:hover td{background:var(--accent-soft)}

.cr-amb{color:var(--ink-3);cursor:help;border-bottom:1px dotted var(--ink-4)}
.cr-amb__t{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-4)}

.cr-by--stale{color:var(--amber)}
.cr-mark{margin-top:6px;font:inherit;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:6px;
         cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--ink-2)}
.cr-mark:hover{border-color:var(--green);color:var(--green)}
.cr-done{margin-top:6px;font-size:10.5px;font-weight:700;color:var(--green);display:flex;align-items:center;gap:6px}
.cr-undo{font:inherit;font-size:10px;font-weight:600;padding:1px 5px;border-radius:5px;cursor:pointer;
         border:1px solid var(--border);background:var(--surface);color:var(--ink-4)}
.cr-undo:hover{color:var(--ink-2)}

.cr-mb{margin-left:auto;font:inherit;font-size:12.5px;padding:6px 10px;border:1px solid var(--border);
       border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer}
.cr-links{display:flex;gap:10px;margin-top:5px;flex-wrap:wrap}
.cr-venue{font-weight:600;color:var(--ink-2)}

.cr-views{display:flex;gap:4px;margin-bottom:12px;background:var(--surface-1);padding:3px;border-radius:9px;width:fit-content}
.cr-view{font:inherit;font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:7px;border:none;
         background:none;color:var(--ink-3);cursor:pointer}
.cr-view.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(20,22,30,.08)}
/* Past Reports — one collapsed header per day, so a month of triage reads as a short
   list. Only the newest day is expanded by default (see dayOpen). */
.cr-histbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cr-histbar .cr-sub{margin-left:auto}
.cr-day{margin-bottom:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.cr-dayh{display:flex;align-items:center;gap:10px;width:100%;font:inherit;text-align:left;cursor:pointer;
         padding:11px 14px;border:none;background:none;color:var(--ink)}
.cr-dayh:hover{background:var(--surface-1)}
.cr-day.is-open .cr-dayh{border-bottom:1px solid var(--border)}
.cr-dayh__c{font-size:15px;line-height:1;color:var(--ink-4);transition:transform .12s;display:inline-block}
.cr-day.is-open .cr-dayh__c{transform:rotate(90deg)}
.cr-dayh__t{font-size:13px;font-weight:700}
.cr-dayh__n{font-size:11.5px;color:var(--ink-3);font-weight:500}
.cr-dayh__s{display:flex;gap:5px;flex-wrap:wrap;margin-left:auto}
/* history rows are read-only — the pointer cursor from .pl-row would promise a click */
.cr-hist{border:none;border-radius:0}
.cr-hist .pl-row{cursor:default}
.cr-hist .pl-row:hover td{background:transparent}

.cr-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.cr-pg{font:inherit;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;
       border:1px solid var(--border);background:var(--surface);color:var(--ink-2)}
.cr-pg:hover:not(:disabled){background:var(--surface-1);color:var(--ink)}
.cr-pg:disabled{opacity:.4;cursor:default}
.cr-pg__i{font-size:12px;color:var(--ink-3);font-weight:500}
.il-h{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:5px;display:inline-block;white-space:nowrap}
.h-eye{background:var(--blue-bg);color:var(--blue)}
.h-may{background:var(--amber-bg);color:var(--amber)}
.h-reb{background:var(--red-bg);color:var(--red)}
.h-clr{background:var(--surface-1);color:var(--ink-4)}
