/* Eagle AI dashboard — the shared design layer (slice 4.6).
   One stylesheet for every page: tokens, the app shell, and the small set of
   components the pages compose from. Pages carry no <style> block of their
   own, so a change here changes the product everywhere at once. */

:root {
  --bg:            #0a0e17;
  --surface:       #111827;
  --surface-2:     #161f31;
  --surface-3:     #1c2637;
  --border:        #222d42;
  --border-soft:   #1a2333;
  --text:          #e9eef8;
  --text-dim:      #9aa7bd;
  --text-faint:    #6b7891;
  --accent:        #5b86ff;
  --accent-soft:   #5b86ff1f;
  --accent-text:   #a9c0ff;

  --critical-bg: #4a1030; --critical-fg: #ff6b9e;
  --high-bg:     #3d1a12; --high-fg:     #ff9a5c;
  --medium-bg:   #38330f; --medium-fg:   #f2d24b;
  --low-bg:      #123526; --low-fg:      #5cd8a0;
  --neutral-bg:  #1f2740; --neutral-fg:  #9aa7bd;
  --danger-bg:   #4a0f1a; --danger-fg:   #ffb3c0;

  --radius:    10px;
  --radius-sm: 7px;
  --sidebar:   248px;
  --topbar:    58px;
  --shadow: 0 1px 2px #0006, 0 8px 24px #0003;
}

* { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }

/* ---------------------------------------------------------------- shell -- */

.app { display: flex; min-height: 100vh; }

.sidebar {
  width: var(--sidebar);
  flex: 0 0 var(--sidebar);
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }

.brand {
  display: flex; align-items: center; gap: .6rem;
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--border-soft);
  position: sticky; top: 0; background: var(--surface); z-index: 2;
}
.brand .mark {
  width: 28px; height: 28px; border-radius: 8px; flex: 0 0 28px;
  background: linear-gradient(135deg, var(--accent), #8a5bff);
  display: grid; place-items: center;
}
.brand .mark svg { width: 17px; height: 17px; stroke: #fff; }
.brand .name { font-weight: 700; letter-spacing: -.01em; font-size: .95rem; }
.brand .name span { display: block; font-weight: 400; font-size: .68rem; color: var(--text-faint); letter-spacing: .04em; text-transform: uppercase; }

.nav { padding: .75rem .6rem 1.5rem; }
.nav-group + .nav-group { margin-top: 1.1rem; }
.nav-group > h3 {
  margin: 0 0 .35rem;
  padding: 0 .55rem;
  font-size: .64rem;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--text-faint);
  font-weight: 600;
}
.nav-item {
  display: flex; align-items: center; gap: .6rem;
  padding: .46rem .55rem;
  border-radius: var(--radius-sm);
  color: var(--text-dim);
  font-size: .845rem;
  position: relative;
}
.nav-item svg { width: 16px; height: 16px; flex: 0 0 16px; stroke: currentColor; fill: none; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.nav-item .lbl { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-item:hover { background: var(--surface-2); color: var(--text); }
.nav-item.active { background: var(--accent-soft); color: var(--accent-text); font-weight: 600; }
.nav-item.active::before {
  content: ""; position: absolute; left: -.6rem; top: 50%; transform: translateY(-50%);
  width: 3px; height: 18px; border-radius: 0 3px 3px 0; background: var(--accent);
}
.nav-item.locked { color: var(--text-faint); }
.nav-item.locked:hover { background: var(--surface-2); color: var(--text-dim); }
.nav-item.locked_by_permission { color: var(--text-faint); cursor: not-allowed; }
.nav-item.locked_by_permission:hover { background: var(--surface-2); color: var(--text-faint); }
.nav-item .phase {
  font-size: .6rem; font-weight: 700; letter-spacing: .03em;
  color: var(--text-faint); background: var(--surface-3);
  border: 1px solid var(--border); border-radius: 999px;
  padding: .05rem .35rem; flex: 0 0 auto;
}
.nav-item .phase.permission { display:flex; align-items:center; gap:.2rem; }
.nav-item .phase.permission svg { width:10px; height:10px; flex:0 0 10px; }
.permission-denied { max-width:42rem; }
.permission-denied-icon { width:2.5rem; height:2.5rem; color:var(--text-faint); margin-bottom:.65rem; }
.permission-denied-icon svg { width:100%; height:100%; stroke:currentColor; fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.permission-denied h2 { margin:0 0 .45rem; font-size:1.05rem; }
.permission-denied p { margin:0 0 1rem; color:var(--text-dim); }
.nav-item .count {
  font-size: .65rem; font-weight: 700; color: #fff; background: var(--accent);
  border-radius: 999px; padding: .05rem .38rem; flex: 0 0 auto;
}
.nav-compliance { display:none; }

/* ---------------------------------------------------------------- main --- */

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.topbar {
  height: var(--topbar);
  flex: 0 0 var(--topbar);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0 1.5rem;
  background: #0a0e17e6;
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 5;
}
.topbar .crumb { display: flex; align-items: baseline; gap: .55rem; min-width: 0; }
.topbar .crumb h1 { margin: 0; font-size: 1rem; font-weight: 650; letter-spacing: -.01em; }
.topbar .crumb .sub { color: var(--text-faint); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar .tools { display: flex; align-items: center; gap: .6rem; flex: 0 0 auto; }

.who { display: flex; align-items: center; gap: .5rem; padding-left: .6rem; border-left: 1px solid var(--border); }
.who .avatar {
  width: 26px; height: 26px; border-radius: 50%; flex: 0 0 26px;
  background: linear-gradient(135deg, #5b86ff, #b45bff);
  display: grid; place-items: center; font-size: .7rem; font-weight: 700; color: #fff;
}
.who .nm { font-size: .78rem; color: var(--text-dim); max-width: 11rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.who a { font-size: .78rem; color: var(--text-faint); }
.who a:hover { color: var(--text); }

.content { padding: 1.5rem; max-width: 1240px; width: 100%; }
.content.narrow { max-width: 900px; }

.page-head { margin-bottom: 1.25rem; }
.page-head h2 { margin: 0 0 .3rem; font-size: 1.15rem; font-weight: 650; letter-spacing: -.015em; }
.page-head p { margin: 0; color: var(--text-dim); font-size: .85rem; max-width: 68ch; }

/* --------------------------------------------------------- components --- */

.card {
  background: var(--surface);
  border: 1px solid var(--border-soft);
  border-radius: var(--radius);
  padding: 1.15rem 1.3rem;
  margin-bottom: 1.1rem;
}
.card > h3 {
  margin: 0 0 .85rem; font-size: .82rem; font-weight: 650;
  text-transform: uppercase; letter-spacing: .06em; color: var(--text-dim);
}
.card .foot { margin: .9rem 0 0; color: var(--text-faint); font-size: .78rem; }

.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: .75rem; margin-bottom: 1.1rem; }
.stat {
  background: var(--surface); border: 1px solid var(--border-soft);
  border-radius: var(--radius); padding: .9rem 1rem;
}
.stat .k { font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; color: var(--text-faint); font-weight: 600; }
.stat .v { font-size: 1.65rem; font-weight: 680; letter-spacing: -.03em; margin-top: .15rem; line-height: 1.1; }
.stat .h { font-size: .74rem; color: var(--text-faint); margin-top: .1rem; }
.stat.critical .v { color: var(--critical-fg); }
.stat.high .v     { color: var(--high-fg); }
.stat.medium .v   { color: var(--medium-fg); }
.stat.low .v      { color: var(--low-fg); }

.pills { display: flex; gap: .45rem; flex-wrap: wrap; }
.pill {
  padding: .28rem .65rem; border-radius: 999px;
  font-size: .74rem; font-weight: 650; letter-spacing: .01em;
  background: var(--neutral-bg); color: var(--neutral-fg);
}
.pill.critical { background: var(--critical-bg); color: var(--critical-fg); }
.pill.high     { background: var(--high-bg);     color: var(--high-fg); }
.pill.medium   { background: var(--medium-bg);   color: var(--medium-fg); }
.pill.low      { background: var(--low-bg);      color: var(--low-fg); }

.tag {
  display: inline-block; padding: .12rem .45rem; border-radius: 5px;
  font-size: .67rem; font-weight: 700; letter-spacing: .035em;
  background: var(--neutral-bg); color: var(--neutral-fg); white-space: nowrap;
}
.tag.critical, .tag.CRITICAL { background: var(--critical-bg); color: var(--critical-fg); }
.tag.high, .tag.HIGH         { background: var(--high-bg);     color: var(--high-fg); }
.tag.medium, .tag.MEDIUM     { background: var(--medium-bg);   color: var(--medium-fg); }
.tag.low, .tag.LOW           { background: var(--low-bg);      color: var(--low-fg); }
.tag.open, .tag.queued       { background: var(--low-bg);      color: var(--low-fg); }
.tag.approved                { background: var(--medium-bg);   color: var(--medium-fg); }
.tag.dispatched              { background: var(--accent-soft); color: var(--accent-text); }
.tag.closed, .tag.done, .tag.dismissed { background: var(--neutral-bg); color: var(--neutral-fg); }
.tag.warn { background: var(--high-bg); color: var(--high-fg); }

table { width: 100%; border-collapse: collapse; }
th {
  text-align: left; font-size: .66rem; text-transform: uppercase; letter-spacing: .07em;
  color: var(--text-faint); font-weight: 600;
  padding: .5rem .6rem; border-bottom: 1px solid var(--border);
}
td { padding: .7rem .6rem; border-bottom: 1px solid var(--border-soft); font-size: .855rem; vertical-align: top; }
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover td { background: var(--surface-2); }
td.actions { text-align: right; white-space: nowrap; }
.t-title { color: var(--text); font-weight: 500; }
a.t-title:hover { color: var(--accent-text); text-decoration: underline; }
.t-meta { color: var(--text-faint); font-size: .765rem; }
.t-mono { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: .76rem; color: var(--text-dim); }

button, .btn {
  font: inherit; font-size: .78rem; font-weight: 600;
  padding: .4rem .75rem; border-radius: var(--radius-sm);
  border: 1px solid transparent; background: var(--accent); color: #fff;
  cursor: pointer; display: inline-flex; align-items: center; gap: .35rem;
}
button:hover, .btn:hover { background: #4a76f5; }
button.secondary, .btn.secondary { background: var(--surface-3); color: var(--text); border-color: var(--border); }
button.secondary:hover, .btn.secondary:hover { background: #253045; }
button.ghost, .btn.ghost { background: transparent; color: var(--text-dim); border-color: var(--border); }
button.ghost:hover, .btn.ghost:hover { background: var(--surface-2); color: var(--text); }
button.sm, .btn.sm { padding: .25rem .55rem; font-size: .73rem; }

input[type=text], input[type=email], input[type=password], select, textarea {
  font: inherit; font-size: .8rem;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: .42rem .6rem;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
input::placeholder { color: var(--text-faint); }
select { cursor: pointer; }

form.inline { display: inline-flex; align-items: center; gap: .35rem; }
.form-row { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }

.banner {
  border-radius: var(--radius-sm); padding: .6rem .85rem;
  font-size: .81rem; margin-bottom: 1rem;
  border: 1px solid transparent;
}
.banner.error { background: var(--danger-bg); color: var(--danger-fg); border-color: #7a2233; }
.banner.info  { background: var(--surface-2); color: var(--text-dim); border-color: var(--border); }

.empty {
  text-align: center; color: var(--text-faint);
  padding: 2.4rem 1rem; font-size: .85rem;
}
.empty strong { display: block; color: var(--text-dim); font-weight: 600; margin-bottom: .25rem; }

.history { list-style: none; padding: 0; margin: .5rem 0 0; }
.history li {
  padding: .32rem 0; font-size: .775rem; color: var(--text-dim);
  border-bottom: 1px solid var(--border-soft);
}
.history li:last-child { border-bottom: none; }
.history li .when { color: var(--text-faint); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .72rem; margin-right: .4rem; }

.signals { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .55rem; margin-bottom: .9rem; }
.signals .cell { background: var(--surface-2); border: 1px solid var(--border-soft); padding: .55rem .7rem; border-radius: var(--radius-sm); }
.signals .cell .k { color: var(--text-faint); font-size: .63rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 600; }
.signals .cell .v { margin-top: .3rem; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .9rem; flex-wrap: wrap; }
.tabs { display: flex; gap: .3rem; }
.tabs a {
  padding: .32rem .7rem; border-radius: 999px; font-size: .78rem;
  color: var(--text-dim); border: 1px solid transparent;
}
.tabs a:hover { background: var(--surface-2); color: var(--text); }
.tabs a.on { background: var(--accent-soft); color: var(--accent-text); font-weight: 600; }

.mention-filters {
  display: grid; grid-template-columns: minmax(180px, 2fr) repeat(5, minmax(115px, 1fr));
  gap: .7rem; align-items: end;
}
.mention-filters label {
  display: grid; gap: .25rem; color: var(--text-faint); font-size: .68rem;
  text-transform: uppercase; letter-spacing: .06em; font-weight: 600;
}
.mention-filters input, .mention-filters select { width: 100%; }
.mention-filters .filter-actions {
  grid-column: 1 / -1; display: flex; align-items: center; gap: .45rem; flex-wrap: wrap;
}
.table-scroll { overflow-x: auto; }
.mentions-table { min-width: 880px; }
.mention-context { margin-top: .2rem; }
.date-kind { display: block; color: var(--text-dim); font-size: .65rem; text-transform: uppercase; letter-spacing: .05em; }
.money-value { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 1.35rem !important; }
.operations-table { min-width: 820px; }
.audit-filters {
  display:grid; grid-template-columns:repeat(6,minmax(8.5rem,1fr)); gap:.65rem;
  align-items:end; padding:.8rem; margin-bottom:1rem; border:1px solid var(--border-soft);
  border-radius:var(--radius); background:var(--surface);
}
.audit-filters label { display:grid; gap:.25rem; min-width:0; color:var(--text-faint); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.audit-filters input,.audit-filters select { width:100%; min-width:0; }
.audit-filters .audit-search { grid-column:span 2; }
.audit-filters .filter-actions { grid-column:1 / -1; display:flex; gap:.45rem; flex-wrap:wrap; }
.audit-panel { padding:0; overflow:hidden; }
.audit-table { margin:0; }
.audit-table code { color:var(--accent-text); overflow-wrap:anywhere; }
.audit-table small { display:block; margin-top:.2rem; color:var(--text-faint); overflow-wrap:anywhere; }
.audit-detail { min-width:7rem; }
.audit-detail summary { cursor:pointer; color:var(--accent-text); }
.audit-detail pre { max-width:32rem; max-height:18rem; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text-dim); font-size:.7rem; }
.audit-pager { display:flex; justify-content:flex-end; padding:.8rem 1rem; border-top:1px solid var(--border-soft); }
.tag.audit-ok { background:var(--low-bg); color:var(--low-fg); }
.tag.audit-refused,.tag.audit-error { background:var(--danger-bg); color:var(--danger-fg); }
.mention-snippet {
  color: var(--text-dim); font-size: .77rem; line-height: 1.35; margin-top: .3rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  max-width: 62rem;
}
.eyebrow {
  color: var(--text-faint); font-size: .66rem; text-transform: uppercase;
  letter-spacing: .07em; font-weight: 600; margin-bottom: .2rem;
}
.source-card h2 { margin: 0; font-size: 1.05rem; line-height: 1.35; }
.source-snippet { color: var(--text-dim); margin: .7rem 0; max-width: 80ch; }
.context-actions { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; margin-top: .8rem; }
.context-actions.compact { margin-top: .3rem; gap: .75rem; font-size: .74rem; color: var(--accent-text); }
.context-actions.compact a:hover { text-decoration: underline; }
.pager {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .75rem;
  margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--border-soft);
}
.pager > :last-child { justify-self: end; }

/* ------------------------------------------------------ not-built page --- */
.page-header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.1rem; }
.page-header h1 { margin:.1rem 0; font-size:1.3rem; }
.page-intro,.section-heading p,.muted { color:var(--text-dim); }
.eyebrow { margin:0; color:var(--text-faint); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; }
.panel { background:var(--surface); border:1px solid var(--border-soft); border-radius:var(--radius); padding:1.15rem 1.3rem; margin-bottom:1.1rem; }
.section-heading h2 { margin:0; font-size:1rem; }
.section-heading p { margin:.2rem 0 .8rem; }
.button { font:inherit; font-size:.78rem; font-weight:600; padding:.4rem .75rem; border-radius:var(--radius-sm); background:var(--accent); color:#fff; }
.button-secondary { background:var(--surface-3); color:var(--text); border-color:var(--border); }
.button-danger { background:var(--danger-bg); color:var(--danger-fg); border-color:#7a2233; }
.banner-error { background:var(--danger-bg); color:var(--danger-fg); border-color:#7a2233; }
.banner-success { background:var(--low-bg); color:var(--low-fg); border-color:#245f49; }
.badge { display:inline-flex; padding:.15rem .45rem; border-radius:999px; background:var(--neutral-bg); color:var(--neutral-fg); font-size:.67rem; font-weight:700; }
.badge-success { background:var(--low-bg); color:var(--low-fg); }
.badge-warning { background:var(--medium-bg); color:var(--medium-fg); }
.monitoring-source-grid,.monitoring-plan-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:1rem; }
.source-card,.plan-card,.monitoring-item { min-width:0; border:1px solid var(--border); border-radius:12px; padding:1rem; background:var(--surface-2); }
.source-card { display:grid; gap:.65rem; }
.source-card div { display:flex; justify-content:space-between; gap:.75rem; }
.source-card small { display:block; }
.monitoring-items { display:grid; gap:1rem; }
.monitoring-item-head { display:flex; justify-content:space-between; gap:1rem; }
.monitoring-item-head h3 { margin:.15rem 0; }
.chip-row { display:flex; flex-wrap:wrap; gap:.4rem; margin:.75rem 0; }
.chip { display:inline-flex; padding:.2rem .5rem; border-radius:999px; background:var(--surface-3); font-size:.78rem; }
.compact-form,.target-form,.monitoring-create-form { display:flex; flex-wrap:wrap; align-items:end; gap:.65rem; margin-top:.75rem; }
.compact-form input,.compact-form select,.monitoring-create-form input,.monitoring-create-form select,.target-form input { min-width:0; flex:1 1 150px; font:inherit; font-size:.8rem; background:var(--surface-2); color:var(--text); border:1px solid var(--border); border-radius:var(--radius-sm); padding:.42rem .6rem; }
.monitoring-create-form label { display:grid; gap:.3rem; }
.monitoring-create-form fieldset { display:flex; flex-wrap:wrap; gap:.5rem; border:0; padding:0; }
.check-label { display:inline-flex!important; align-items:center; gap:.25rem; }
.check-label input { min-width:auto; }
.is-archived { opacity:.72; }
.is-paused { border-color:var(--medium-fg); }
.history-list { font-size:.86rem; }
.field-error { flex:1 0 100%; margin:.15rem 0 0; color:var(--danger-fg); font-size:.78rem; }
.field-error[hidden] { display:none; }
form[data-pending="true"] { opacity:.72; }
.toast-stack { position:fixed; z-index:30; top:1rem; right:1rem; width:min(24rem,calc(100vw - 2rem)); display:grid; gap:.6rem; pointer-events:none; }
.toast { pointer-events:auto; display:flex; justify-content:space-between; gap:.8rem; padding:.8rem .9rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-2); box-shadow:var(--shadow); }
.toast strong,.toast p { display:block; margin:0; }
.toast p { color:var(--text-dim); font-size:.78rem; }
.toast-success { border-color:#245f49; }
.toast-error { border-color:#7a2233; }
.toast-close { align-self:start; border:0; background:transparent; color:var(--text-dim); font:inherit; font-size:1.2rem; cursor:pointer; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.unavailable-state { color:var(--medium-fg); }
.source-choice-head { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; }
.source-choice-head h3 { margin:0 0 .15rem; }
.source-choice.is-unavailable { opacity:.82; }
.term-list { max-height:12rem; overflow:auto; padding-left:1.2rem; color:var(--text-dim); font-size:.82rem; }
.source-exclusions { color:var(--text-dim); font-size:.8rem; }
.run-plan-recalculate { display:flex; align-items:center; gap:.75rem; margin-top:1rem; }
.stage-list { list-style:none; padding:0; margin:0; display:grid; gap:.6rem; }
.stage-list li { display:flex; justify-content:space-between; gap:1rem; padding:.75rem; border:1px solid var(--border-soft); border-radius:var(--radius-sm); background:var(--surface-2); }
.stage-list p { margin:.2rem 0 0; color:var(--text-dim); font-size:.8rem; }
.cost-breakdown,.budget-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.75rem; }
.cost-breakdown { margin-bottom:1rem; }
.cost-breakdown div,.budget-grid article { display:grid; gap:.25rem; padding:.8rem; border:1px solid var(--border-soft); border-radius:var(--radius-sm); background:var(--surface-2); }
.cost-breakdown span,.budget-grid small { color:var(--text-faint); font-size:.74rem; }
.budget-grid strong { font-size:1.05rem; }
.review-boundary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem; padding:1rem 1.2rem; border:1px dashed var(--border); border-radius:var(--radius); color:var(--text-dim); }
.review-boundary strong { color:var(--text); }
.page-actions,.completion-actions { display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; }
.page-actions form { margin:0; }
.scan-confirm {
  display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:1.25rem 0 1.1rem;
  padding:1rem 1.1rem; border:1px solid var(--accent); border-radius:var(--radius);
  background:var(--accent-soft);
}
.scan-confirm p { margin:.2rem 0 0; color:var(--text-dim); font-size:.8rem; }
.scan-status-text { font-size:1.15rem!important; }
.money-value-small { font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace; }
.scan-source-grid,.summary-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:.75rem;
}
.scan-work-card,.summary-grid article {
  min-width:0; padding:.85rem; border:1px solid var(--border-soft);
  border-radius:var(--radius-sm); background:var(--surface-2);
}
.scan-work-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.scan-metrics { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:.65rem; color:var(--text-faint); font-size:.75rem; }
.scan-metrics b { color:var(--text); }
.scan-stage-list { list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.scan-stage-list li {
  display:grid; grid-template-columns:2rem 1fr auto; align-items:center; gap:.7rem;
  padding:.7rem .8rem; border:1px solid var(--border-soft); border-radius:var(--radius-sm);
  background:var(--surface-2);
}
.scan-stage-list small { display:block; color:var(--text-faint); margin-top:.15rem; }
.stage-index {
  width:1.75rem; height:1.75rem; display:grid; place-items:center; border-radius:50%;
  background:var(--surface-3); color:var(--text-faint); font-size:.72rem; font-weight:700;
}
.summary-grid { margin-bottom:1rem; }
.summary-grid article { display:grid; gap:.25rem; }
.summary-grid span { color:var(--text-faint); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; }
.summary-grid small { color:var(--text-faint); }
.completion-actions { padding-top:.25rem; }
.tag.scan-completed { background:var(--low-bg); color:var(--low-fg); }
.tag.scan-running,.tag.scan-queued { background:var(--accent-soft); color:var(--accent-text); }
.tag.scan-stop_requested,.tag.scan-refused,.tag.scan-failed { background:var(--danger-bg); color:var(--danger-fg); }
.tag.scan-stopped,.tag.scan-pending { background:var(--neutral-bg); color:var(--neutral-fg); }


.notbuilt { max-width: 620px; margin: 2rem auto; text-align: center; }
.notbuilt .glyph {
  width: 54px; height: 54px; margin: 0 auto 1rem; border-radius: 14px;
  background: var(--surface-2); border: 1px solid var(--border);
  display: grid; place-items: center;
}
.notbuilt .glyph svg { width: 26px; height: 26px; stroke: var(--text-faint); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.notbuilt h2 { margin: 0 0 .5rem; font-size: 1.2rem; font-weight: 650; }
.notbuilt .lead { color: var(--text-dim); font-size: .88rem; margin: 0 0 1.15rem; }
.notbuilt .slice {
  display: inline-block; background: var(--surface-2); border: 1px solid var(--border);
  border-radius: var(--radius); padding: .7rem 1rem; font-size: .82rem; color: var(--text-dim);
}
.notbuilt .slice b { color: var(--text); }

/* ------------------------------------------------------------- signin --- */

.signin { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; }
.signin .box { width: 100%; max-width: 370px; }
.signin .brand { border: none; padding: 0 0 1.5rem; justify-content: center; background: none; position: static; }
.signin .card { padding: 1.5rem; margin: 0; }
.signin label { display: block; font-size: .74rem; font-weight: 600; color: var(--text-dim); margin: 0 0 .3rem; }
.signin input { width: 100%; margin-bottom: .85rem; padding: .55rem .7rem; }
.signin button { width: 100%; justify-content: center; padding: .55rem; font-size: .85rem; }
.signin .foot { text-align: center; color: var(--text-faint); font-size: .74rem; margin-top: 1rem; }

.picker { display: grid; gap: .6rem; }
.picker a {
  display: flex; align-items: center; justify-content: space-between;
  padding: .85rem 1rem; background: var(--surface-2);
  border: 1px solid var(--border); border-radius: var(--radius); font-weight: 550;
}
.picker a:hover { border-color: var(--accent); background: var(--surface-3); }
.picker a .go { color: var(--text-faint); font-size: .78rem; }

/* --------------------------------------------------------- responsive --- */

@media (max-width: 940px) {
  .sidebar { position: fixed; left: 0; top: 0; z-index: 20; transform: translateX(-100%); transition: transform .18s ease; box-shadow: var(--shadow); }
  .sidebar:target { transform: translateX(0); }
  .main { width: 100%; }
  .menu-btn { display: inline-flex !important; }
  .content { padding: 1.1rem; }
  .mention-filters { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .audit-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .scan-confirm { align-items:stretch; flex-direction:column; }
  .scan-confirm button { justify-content:center; }
  .scan-stage-list li { grid-template-columns:1.75rem 1fr; }
  .scan-stage-list li > .tag { grid-column:2; justify-self:start; }
}
.menu-btn { display: none; }

@media (max-width: 620px) {
  .topbar .crumb .sub, .who .nm { display: none; }
  .topbar .crumb h1 { white-space:nowrap; }
  .topbar .retired-link, .who > a { display:none; }
  .nav-compliance { display:flex; margin-top:1rem; border-top:1px solid var(--border); border-radius:0; padding-top:.9rem; }
  .stats { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); }
  table, thead, tbody, tr, td, th { display: block; }
  thead { display: none; }
  tbody tr { border-bottom: 1px solid var(--border); padding: .65rem 0; }
  td { border: none; padding: .28rem .3rem; overflow-wrap: anywhere; }
  td[data-label]::before {
    content: attr(data-label); display: block; margin-bottom: .12rem;
    color: var(--text-faint); font-size: .6rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .07em;
  }
  td[data-label="Mention"]::before,
  td[data-label="Mention to review"]::before,
  td[data-label="Task"]::before,
  td[data-label="Action"]::before { display: none; }
  td.actions { text-align: left; padding-top: .5rem; white-space: normal; }
  td.actions form.inline { flex-wrap: wrap; }
  td.actions input[type=text] { width: auto !important; max-width: 100%; min-width: 0; }
  .mention-filters { grid-template-columns: 1fr; }
  .audit-filters { grid-template-columns:1fr; }
  .audit-filters .audit-search { grid-column:auto; }
  .mentions-table, .operations-table { min-width: 0; }
  .mentions-table thead { display: none; }
  .pager { grid-template-columns: 1fr 1fr; }
  .pager .t-meta { grid-column: 1 / -1; grid-row: 1; text-align: center; }
}

/* W6 Action Centre: one decision, clear evidence, secondary corrections. */
.review-tabs { display:flex; gap:.45rem; flex-wrap:wrap; margin:0 0 .8rem; padding:.25rem; border:1px solid var(--border-soft); border-radius:var(--radius); background:var(--surface); }
.review-tabs a { display:flex; align-items:center; gap:.45rem; padding:.55rem .7rem; border:1px solid transparent; border-radius:var(--radius-sm); color:var(--text-dim); font-size:.82rem; font-weight:650; }
.review-tabs a span { min-width:1.6rem; padding:.08rem .36rem; border-radius:999px; background:var(--surface-3); color:var(--text); text-align:center; }
.review-tabs a.on { border-color:var(--accent); background:var(--accent-soft); color:var(--text); }
.review-filters { display:grid; grid-template-columns:minmax(13rem,2fr) repeat(3,minmax(8rem,1fr)) auto; gap:.5rem; align-items:end; padding:.65rem; margin-bottom:.8rem; border:1px solid var(--border-soft); border-radius:var(--radius); background:var(--surface); }
.review-filters label,.bulk-action-form label { display:grid; gap:.2rem; color:var(--text-dim); font-size:.68rem; }
.review-filters input,.review-filters select,.bulk-action-form input,.bulk-action-form select { min-height:2.75rem; width:100%; }
.review-result-heading { display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.review-total { margin:.35rem 0 .7rem; }
.review-list { display:grid; gap:.75rem; }
.review-card { display:grid; grid-template-columns:7.5rem minmax(0,1fr) minmax(13rem,16rem); gap:1rem; padding:1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-2); transition:border-color .15s, box-shadow .15s, background .15s; }
.review-card.selected { border-color:var(--accent); background:linear-gradient(90deg,var(--accent-soft),var(--surface-2) 28%); box-shadow:0 0 0 1px var(--accent-soft); }
.review-card.critical-card { border-left:4px solid var(--critical-fg); }
.severity-anchor { min-height:5.4rem; padding:.8rem .65rem; border-radius:var(--radius-sm); display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.15rem; text-align:center; background:var(--neutral-bg); color:var(--neutral-fg); }
.severity-anchor span { font-size:.6rem; text-transform:uppercase; letter-spacing:.08em; opacity:.8; }
.severity-anchor strong { font-size:.86rem; letter-spacing:.035em; overflow-wrap:anywhere; }
.severity-anchor small { font-size:.62rem; line-height:1.25; }
.severity-anchor.critical { background:var(--critical-bg); color:var(--critical-fg); }
.severity-anchor.high { background:var(--high-bg); color:var(--high-fg); }
.severity-anchor.medium { background:var(--medium-bg); color:var(--medium-fg); }
.severity-anchor.low { background:var(--low-bg); color:var(--low-fg); }
.review-card-main { min-width:0; }
.review-card-topline { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.review-card h2 { margin:.35rem 0; font-size:1.02rem; line-height:1.35; overflow-wrap:anywhere; }
.review-badges { display:flex; gap:.35rem; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.review-snippet { color:var(--text-dim); line-height:1.5; margin:.3rem 0; overflow-wrap:anywhere; }
.dismissal-note { margin:.6rem 0 0; color:var(--danger-fg); }
.review-history { position:relative; margin-top:.65rem; color:var(--text-dim); font-size:.76rem; }
.review-history summary,.review-secondary summary { min-height:2.75rem; display:flex; align-items:center; cursor:pointer; color:var(--accent-text); font-weight:650; list-style:none; }
.review-history summary::-webkit-details-marker,.review-secondary summary::-webkit-details-marker { display:none; }
.review-history-panel { position:absolute; z-index:8; left:0; top:calc(100% + .25rem); width:min(34rem,calc(100vw - 3rem)); max-height:18rem; overflow:auto; padding:.75rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow); }
.review-history-panel ol { margin:0; padding-left:1.15rem; }
.review-history-panel li { margin:.3rem 0; }
.review-actions { display:flex; flex-direction:column; align-items:stretch; gap:.45rem; }
.review-actions form { margin:0; }
.review-actions .button { width:100%; min-height:2.75rem; }
.review-primary .button { min-height:3.15rem; font-size:.88rem; font-weight:750; box-shadow:0 5px 16px #315bc833; }
.review-secondary { border-top:1px solid var(--border); }
.review-secondary-panel { display:grid; gap:.5rem; padding-top:.2rem; }
.review-action-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem; align-items:end; }
.review-action-form label { display:grid; gap:.2rem; color:var(--text-dim); font-size:.68rem; }
.review-action-form select,.review-action-form input { width:100%; min-height:2.75rem; }
.review-action-form .button { width:auto; }
.bulk-bar[hidden] { display:none; }
.bulk-bar { position:sticky; top:calc(var(--topbar) + .5rem); z-index:7; margin-bottom:.8rem; padding:.8rem; border:1px solid var(--accent); border-radius:var(--radius); background:#121d32f5; box-shadow:var(--shadow); backdrop-filter:blur(8px); }
.bulk-selection,.bulk-action-form,.confirm-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; }
.bulk-selection { margin-bottom:.6rem; align-items:center; }
.bulk-selection strong { margin-right:auto; }
.bulk-selection .button,.bulk-action-form .button { min-height:2.75rem; }
.bulk-action-form label { min-width:10rem; flex:1; }
.bulk-action-form label[hidden] { display:none; }
.text-button { border:0; background:transparent; color:var(--accent); min-height:2.75rem; cursor:pointer; }
.review-select { display:inline-flex; gap:.45rem; align-items:center; min-height:2.75rem; font-weight:700; cursor:pointer; }
.review-select input { width:1.25rem; height:1.25rem; accent-color:var(--accent); }
.pagination { display:flex; justify-content:center; align-items:center; gap:1rem; margin-top:1rem; }
.confirm-card { max-width:46rem; padding:1.25rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-2); }
.summary-list div { display:grid; grid-template-columns:9rem 1fr; padding:.6rem 0; border-bottom:1px solid var(--border); }
.summary-list dt { color:var(--text-dim); }.summary-list dd { margin:0; font-weight:700; }
.bulk-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(8rem,1fr)); gap:.7rem; margin-bottom:1rem; }
.bulk-summary div { padding:1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface-2); }
.bulk-summary strong,.bulk-summary span { display:block; }.bulk-summary strong { font-size:1.65rem; }
.result-list { display:grid; gap:.5rem; }.result-list article { padding:.8rem; border:1px solid var(--border); border-radius:var(--radius-sm); }.result-list article strong { margin-left:.5rem; }.result-list article p { margin:.35rem 0 0; color:var(--text-dim); }

@media (max-width: 760px) {
  .review-filters { grid-template-columns:1fr; }
  .bulk-action-form { display:grid; grid-template-columns:1fr; }
  .bulk-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .review-card { grid-template-columns:5.5rem minmax(0,1fr); }
  .review-actions { grid-column:1 / -1; padding-top:.7rem; border-top:1px solid var(--border); }
  .review-tabs a { flex:1 1 calc(50% - .55rem); justify-content:space-between; }
  .review-action-form { grid-template-columns:1fr; }
  .review-action-form .button { width:100%; }
  .review-result-heading { align-items:flex-start; flex-direction:column; gap:0; }
}
@media (max-width: 430px) {
  .content { padding:.75rem; overflow-x:clip; }
  .review-card { grid-template-columns:1fr; gap:.65rem; padding:.8rem; }
  .severity-anchor { min-height:auto; align-items:flex-start; text-align:left; }
  .severity-anchor small { display:block; }
  .review-card-topline { align-items:flex-start; }
  .review-actions { grid-column:1; }
  .review-tabs { gap:.3rem; }
  .review-tabs a { min-height:2.75rem; padding:.45rem .5rem; }
  .bulk-selection .button { flex:1 1 8rem; }
  .topbar { padding:0 .75rem; }
}

/* W7 Overview: linked statistics, never a second work queue. */
.overview-band { margin-bottom:1.35rem; }
.overview-band-head { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin:0 0 .65rem; }
.overview-band-head span,.overview-label { color:var(--text-faint); font-size:.66rem; font-weight:700; letter-spacing:.075em; text-transform:uppercase; }
.overview-band-head h2 { margin:.08rem 0 0; font-size:1rem; }
.overview-band-head p { margin:0; color:var(--text-faint); font-size:.76rem; }
.overview-grid { display:grid; gap:.75rem; }
.overview-grid-review { grid-template-columns:repeat(5,minmax(0,1fr)); }
.overview-grid-cases { grid-template-columns:repeat(3,minmax(0,1fr)); }
.overview-grid-distributions { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:.75rem; }
.overview-tile { min-width:0; min-height:7.2rem; padding:1rem; border:1px solid var(--border-soft); border-radius:var(--radius); background:var(--surface); }
a.overview-tile { display:flex; flex-direction:column; justify-content:center; transition:border-color .15s,background .15s,transform .15s; }
a.overview-tile:hover { border-color:var(--accent); background:var(--surface-2); transform:translateY(-1px); }
.overview-tile > strong { margin:.3rem 0 .15rem; font-size:1.85rem; line-height:1.05; letter-spacing:-.035em; }
.overview-tile > small,.overview-pair a span,.overview-scan-metrics small { color:var(--text-faint); font-size:.72rem; }
.overview-tile.critical > strong { color:var(--critical-fg); }
.overview-pair { display:grid; grid-template-rows:1fr auto; padding:0; overflow:hidden; }
.overview-pair > a { min-height:4.5rem; padding:.75rem 1rem; display:flex; flex-direction:column; justify-content:center; }
.overview-pair > a + a { min-height:2.75rem; border-top:1px solid var(--border); flex-direction:row; justify-content:space-between; align-items:center; gap:.5rem; }
.overview-pair strong { margin:.15rem 0 0; font-size:1.5rem; }
.overview-pair b { font-size:1.05rem; }
.overview-scan { gap:.8rem; }
.overview-scan-title { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; }
.overview-scan-title strong { font-size:1rem; margin-right:auto; }
.overview-scan-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.5rem; }
.overview-scan-metrics span { min-width:0; padding:.6rem .7rem; border-radius:var(--radius-sm); background:var(--surface-2); }
.overview-scan-metrics b,.overview-scan-metrics small { display:block; overflow-wrap:anywhere; }
.overview-scan-metrics b { font-size:1rem; }
.overview-language-samples { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
.overview-language-samples span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-dim); font-size:.75rem; }
.overview-language-samples b { margin-right:.35rem; color:var(--text-faint); font-size:.62rem; text-transform:uppercase; }
.overview-distribution { min-height:0; }
.overview-distribution > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(7rem,1fr)); gap:.4rem; margin-top:.65rem; }
.overview-distribution a { min-height:2.75rem; padding:.5rem .6rem; display:flex; align-items:center; justify-content:space-between; gap:.6rem; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-2); }
.overview-distribution a:hover { border-color:var(--accent); }
.overview-distribution a span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-dim); font-size:.75rem; }
.overview-planned { border-style:dashed; }
.overview-planned h2 { margin:.55rem 0 .25rem; font-size:1rem; }
.overview-planned p { margin:0; color:var(--text-dim); }
@media (max-width: 1050px) { .overview-grid-review { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 700px) {
  .overview-band-head { align-items:flex-start; flex-direction:column; gap:.2rem; }
  .overview-grid-review,.overview-grid-cases,.overview-grid-distributions { grid-template-columns:1fr; }
  .overview-scan-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 430px) {
  .overview-tile { min-height:6.2rem; padding:.85rem; }
  .overview-pair { padding:0; }
  .overview-scan-metrics,.overview-language-samples { grid-template-columns:1fr; }
}
