/* Planner pages: fix-list, defects, review-queue, fix-log. Tokens only (assets/tokens.css). Extends app.css; adds only what it lacks. */

/* two-line table cell: value, then a muted line */
.c2{display:inline-flex;flex-direction:column;gap:var(--space-2);vertical-align:middle}
.c2 .note{white-space:normal}
.c2 > span:first-child{white-space:nowrap}
.stack.tight{gap:var(--space-4)}

/* quiet scope/filters */
.toolbar.scope{row-gap:var(--space-8);column-gap:var(--space-16)}
.scope-g{display:inline-flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}
.scope-g > .lbl{margin-right:var(--space-2)}
.toolbar > .lbl{margin-right:var(--space-2)}
.toolbar input[type=date]{min-height:var(--size-control-height-compact);border:var(--line-strong);border-radius:var(--radius-control);padding:0 var(--space-8);font:var(--font-body);background:var(--surface-raised);color:var(--text-primary)}
.toolbar input[type=date]:hover{border-color:var(--border-hover)}
.toolbar input[type=search]{min-height:var(--size-control-height-compact);width:var(--layout-search-width);max-width:100%}

/* fix-list */
.fl-thumb{height:calc(var(--size-thumb-sm) + var(--space-8))}
.fl-table td{vertical-align:middle}
.fl-table td.wrap{min-width:var(--space-48)}
.fl-table .fl-acts{text-align:right}
.fl-table .fl-acts .hstack{justify-content:flex-end;flex-wrap:nowrap;flex-direction:column;align-items:flex-end}
.fl-table .fl-acts .note{display:block;white-space:normal;max-width:calc(var(--layout-kv-label-width) + var(--space-24))}
.fl-table tbody tr.click td{height:calc(var(--size-thumb-sm) + var(--space-16))}

/* select toggle (switch): state also carried by the word beside it */
.sw{position:relative;display:inline-block;vertical-align:middle;width:var(--space-32);height:var(--space-16);padding:0;border:var(--line-strong);border-radius:var(--radius-pill);background:var(--surface-group);cursor:pointer;margin-right:var(--space-6)}
.sw .knob{position:absolute;top:var(--space-1);left:var(--space-1);width:var(--space-12);height:var(--space-12);border-radius:var(--radius-pill);background:var(--text-placeholder);transition:transform var(--dur-feedback) var(--ease-standard)}
.sw[aria-checked=true]{background:var(--action-primary);border-color:var(--action-primary)}
.sw[aria-checked=true] .knob{background:var(--text-on-accent);transform:translateX(var(--space-16))}
.sw:hover{border-color:var(--border-hover)}
.sw-t{font:var(--font-label);color:var(--text-secondary);white-space:nowrap}

/* defects register: row expansion */
.reg-table td:first-child{white-space:nowrap}
.exp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--layout-kv-label-width) * 2),1fr));gap:var(--space-24);align-items:start}
.exp-grid .h{margin-bottom:var(--space-8)}
.exp-grid .kv{grid-template-columns:auto 1fr}
.exp-foot{margin-top:var(--space-12);display:flex;gap:var(--space-8);align-items:center;font:var(--font-body)}
.exp-foot .sep{color:var(--text-placeholder)}
.hist .s{grid-template-columns:auto 1fr}
.hist .s .t{white-space:nowrap}
.exp-grid .chart svg{max-width:100%;height:auto}

/* review queue: one case per block, divided, never boxed */
.divide > .case{padding:var(--space-16)}
.case{display:flex;flex-direction:column;gap:var(--space-12)}
.case-h{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}
.case-ev{display:flex;gap:var(--space-16);flex-wrap:wrap;align-items:flex-start}
.case-ev .case-fig{flex:0 0 auto;width:calc(var(--layout-case-image) * 4 / 3);max-width:100%}
.case-fig{margin:0;flex:1 1 calc(var(--layout-kv-label-width) * 2);max-width:calc(var(--layout-kv-label-width) * 2.5);display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.unm .case-fig{max-width:calc(var(--layout-kv-label-width) * 2)}
.case-fig .evidence{height:var(--layout-case-image);width:100%;aspect-ratio:4/3}
.case-fig .note{line-height:var(--space-16)}
#rq-unmapped{scroll-margin-top:calc(var(--layout-topbar-height) + var(--space-24))}
.case-acts{padding-top:var(--space-4)}
.case-acts select{min-height:var(--size-control-height-default)}
.case-cmp{display:flex;gap:var(--space-24);align-items:flex-start;flex-wrap:wrap}
.case-cmp .cmp{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;flex:0 1 var(--layout-popover-width)}
.case-cmp .cmp-arrow{color:var(--text-placeholder);align-self:center}
.rq-crit{border-color:var(--level-critical-edge)}

/* fix log */
.fl-log td{vertical-align:middle}
.ba{display:inline-flex;gap:var(--space-8)}
.ba .fig,.rp .fig{display:inline-flex;flex-direction:column;gap:var(--space-2)}
.ba .fig .note{text-align:center}
.ba .ni{display:inline-block;font:var(--font-metadata);padding:var(--space-12) var(--space-8)}
.rp{display:inline-flex;gap:var(--space-8);align-items:center}
.fl-log tbody tr.sel td{background:var(--interactive-selected)}

@media (max-width:45em){
  .toolbar input[type=search]{width:100%}
  table.records tr.exp td{display:block;text-align:left;padding:var(--space-8) 0}
  table.records tr.exp::before{content:none}
  .fl-table tbody tr.click td,.fl-log td{height:auto}
  .fl-table .fl-acts{text-align:left}
  .fl-table .fl-acts .hstack{justify-content:flex-start;flex-wrap:wrap;flex-direction:row;align-items:center}
  .sw-t{display:inline}
  .case-fig,.unm .case-fig{flex-basis:100%;max-width:none}
  .case-ev .case-fig{width:100%;flex:1 1 100%}
  .case-cmp .cmp-arrow{display:none}
}
.tbl-wrap tr.exp td{white-space:normal}
.img-missing{display:flex;align-items:center;justify-content:center;width:100%;height:var(--layout-case-image);border:var(--line);border-radius:var(--radius-control);background:var(--surface-group)}

/* location block (app/loc.js): Ground now / Belt / Last check, one shared look */
.loc{display:flex;flex-direction:column;gap:var(--space-8);font:var(--font-body)}
.loc-row{display:grid;grid-template-columns:var(--layout-kv-label-width) 1fr;gap:var(--space-12);align-items:baseline}
.loc-k{color:var(--text-tertiary);font:var(--font-label)}
.loc-v{display:block;min-width:0}
.loc-v > .note{display:block;margin-top:var(--space-2)}
.loc-sub{display:block}
.loc-acts{padding-top:var(--space-4)}
.loc-compact{display:inline-flex;gap:var(--space-8);align-items:baseline;flex-wrap:wrap;font:var(--font-body)}
.loc-compact .loc-k{margin-right:var(--space-4)}
.loc-map{display:inline-flex;align-items:center;gap:var(--space-4);white-space:nowrap}
@media (max-width:45em){.loc-row{grid-template-columns:1fr;gap:var(--space-2)}}

/* evidence comparison (ui.js evidenceCompare): two images, same height, labelled, paired enlarge */
.evc{display:flex;flex-direction:column;gap:var(--space-12);min-width:0}
.evc-pair{display:flex;gap:var(--space-16);flex-wrap:wrap;align-items:flex-start}
.evc-fig{margin:0;display:flex;flex-direction:column;gap:var(--space-6);min-width:0;flex:1 1 calc(var(--layout-kv-label-width) * 2);max-width:calc(var(--layout-kv-label-width) * 3)}
.evc-cap{font:var(--font-label);color:var(--text-secondary);display:flex;gap:var(--space-6);align-items:baseline;flex-wrap:wrap}
.evc-img{position:relative;display:inline-block;align-self:flex-start;max-width:100%;height:var(--layout-evidence-height);border-radius:var(--radius-control);border:var(--line);background:var(--surface-camera);overflow:hidden}
.evc-img img{display:block;height:100%;width:auto;max-width:100%;object-fit:cover;cursor:zoom-in}
.evc-img.none{display:flex;align-items:center;justify-content:center;padding:0 var(--space-16);width:var(--layout-evidence-height);background:var(--surface-group)}
.evc-img.img-missing{height:var(--layout-evidence-height);width:var(--layout-evidence-height);margin:0}
.evc-box{position:absolute;border:var(--size-border-width-thick) solid var(--level-critical-fill);border-radius:var(--radius-badge);pointer-events:none}
.evc-meta{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-8);margin:0;font:var(--font-body)}
.evc-meta dt{color:var(--text-tertiary);font:var(--font-label)}
.evc-meta dd{margin:0;min-width:0}
.evc-acts{display:flex}
.evc-rows{border-collapse:collapse;font:var(--font-body);width:100%;max-width:calc(var(--layout-kv-label-width) * 6)}
.evc-rows th,.evc-rows td{text-align:left;padding:var(--space-4) var(--space-12) var(--space-4) 0;border-bottom:var(--line);font-weight:inherit}
.evc-rows thead th{color:var(--text-secondary);font:var(--font-label)}
.evc-rows tbody th{color:var(--text-tertiary);font:var(--font-label);white-space:nowrap}
.evc-diff{font:var(--font-body);color:var(--text-primary);padding:var(--space-8) var(--space-12);border-left:var(--size-border-width-thick) solid var(--border-strong);background:var(--surface-group);border-radius:var(--radius-control)}
.evc.sm .evc-pair{flex-wrap:nowrap;gap:var(--space-8)}
.evc.sm .evc-fig{flex:0 0 auto;max-width:none;gap:var(--space-2)}
.evc.sm .evc-img{height:calc(var(--size-thumb-md) + var(--space-16))}
.evc.sm .evc-cap{font:var(--font-metadata);color:var(--text-tertiary)}
.evc.sm .evc-acts{display:none}
.evc-big{display:flex;gap:var(--space-16);justify-content:center;align-items:flex-start;flex-wrap:wrap}
.evc-bigfig{margin:0;display:flex;flex-direction:column;gap:var(--space-4);flex:1 1 calc(var(--layout-kv-label-width) * 3);min-width:0}
.evc-bigfig .bigimg{max-height:calc(100vh - var(--space-48) * 4)}

/* defect record: the state answer under the identity line, and the assessment with controls beside the evidence */
.state-ans{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);flex-wrap:wrap;margin:var(--space-12) 0 var(--space-16);padding:var(--space-12) var(--space-16);background:var(--surface-raised);border:var(--line);border-left:var(--size-border-width-thick) solid var(--action-primary);border-radius:var(--radius-control);font:var(--font-body)}
.state-ans .sa-t{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.state-ans .sa-text{font-weight:var(--fw-emphasis);color:var(--text-primary)}
.state-ans .sa-act{flex:none}
.dsec > .state-ans{margin:0}
.assess{display:flex;gap:var(--space-24);flex-wrap:wrap;align-items:flex-start}
.assess-ev{flex:1 1 calc(var(--layout-kv-label-width) * 4);min-width:0}
.assess-ctl{flex:1 1 calc(var(--layout-kv-label-width) * 2);min-width:0}

/* fix-list: unselected rows are visibly outside the stoppage plan */
.fl-table tbody tr.out-plan td{color:var(--text-tertiary)}
.fl-table tbody tr.out-plan td .sw-t{color:var(--text-tertiary);font-style:italic}
.fl-table tbody tr.out-plan{background:var(--surface-sunken)}
.page-meta b.mono{font-weight:var(--fw-emphasis)}

/* review queue: reason counts jump to their sections; equal-weight decision pair */
.rq-jump{color:var(--text-link);text-decoration:underline;text-underline-offset:var(--space-2)}
.region[id^="rq-"]{scroll-margin-top:calc(var(--layout-topbar-height) + var(--space-24))}
.region[id^="rq-"]:focus{outline:none}
.rq-pair{padding-right:var(--space-8);border-right:var(--line);margin-right:var(--space-4)}
.case-acts .spacer{flex:1}

/* image with its labels beside it (wide screens); stacked on phone and in table cells */
@media (min-width:45em){
  .evc:not(.sm) .evc-fig{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-12);row-gap:var(--space-6);align-items:start;max-width:calc(var(--layout-kv-label-width) * 4.5);flex:1 1 calc(var(--layout-kv-label-width) * 3.5)}
  .evc:not(.sm) .evc-cap{grid-column:1 / -1}
  .evc:not(.sm) .evc-meta{grid-template-columns:1fr;gap:0;align-self:start}
  .evc:not(.sm) .evc-meta dd{margin-bottom:var(--space-6)}
}
.evc.sm .evc-img,.evc.sm .evc-img img{max-width:none}
.fl-log td .evc.sm{min-width:max-content}

/* ---------- Defect and alarm record, 30 Oct: Status and actions, history, evidence views, growth chart, sightings ---------- */
/* Tones for the action vocabulary (app/actionMeta.js): existing tokens only */
.tone-neutral{color:var(--text-secondary)} .tone-info{color:var(--action-primary)} .tone-ok{color:var(--level-fixed-text)}
.tone-warn{color:var(--level-major-text)} .tone-crit{color:var(--level-critical-text)} .tone-muted{color:var(--text-tertiary)}
.err.st-err,.ahist .err,.empty.err{font:var(--font-body);color:var(--level-critical-text)}
.empty.err{flex-wrap:wrap}

/* Status and actions */
.st-sec{margin-top:var(--space-16)}
.st-acts{gap:var(--space-8)}
.st-lines{display:flex;flex-direction:column;gap:var(--space-4);font:var(--font-body)}
.st-closed{color:var(--text-secondary)}
.stack.tight{gap:var(--space-4)}

/* History (app/history.js) */
.ahist{display:flex;flex-direction:column;gap:var(--space-8)}
.hist-bar{display:flex;gap:var(--space-8);flex-wrap:wrap}
.hist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hd{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) 0 var(--space-2);font:var(--font-label);color:var(--text-tertiary)}
.hd::after{content:'';flex:1;border-top:var(--line)}
.he{display:grid;grid-template-columns:var(--size-icon-lg) minmax(0,1fr);gap:var(--space-8);padding:var(--space-6) 0;font:var(--font-body)}
.he-ico{display:flex;align-items:flex-start;justify-content:center;padding-top:var(--space-2)}
.he-l1{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-8)}
.he-actor{font:var(--font-emphasis)}
.he-verb{color:var(--text-primary)}
.he-ft{color:var(--text-tertiary)}
.he-time{margin-left:auto;font:var(--font-data-sm);color:var(--text-tertiary);white-space:nowrap}
.he-why{color:var(--text-secondary);overflow-wrap:anywhere}
.he.sys .he-actor,.he.sys .he-verb{color:var(--text-tertiary);font-weight:var(--fw-body)}
.he.sys .he-why{color:var(--text-tertiary)}
.he.rem .he-why{color:var(--text-primary)}
.he-more>summary{cursor:pointer;min-height:var(--space-24);display:flex;align-items:center;color:var(--text-secondary);border-radius:var(--radius-badge)}
.he-more>summary:hover{color:var(--text-primary)}
.he-more>summary:focus-visible{outline:var(--focus);outline-offset:var(--size-focus-ring-offset)}
.he-ppl{list-style:none;margin:var(--space-4) 0 var(--space-4);padding:0 0 0 var(--space-12);display:flex;flex-direction:column;gap:var(--space-2)}
.hist-more{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}
.hist-more:empty{display:none}
.hist-remark{display:flex;flex-direction:column;gap:var(--space-6);border-top:var(--line);padding-top:var(--space-12)}
.hist-send{display:flex;justify-content:flex-end}

/* Evidence images: three views per frame (ui.js evidenceImage / evidenceCompare / openViewer) */
.eimg{position:relative}
.eimg-frame{position:relative;display:block}
.evc-img .eimg-frame{height:100%}
.eimg > .eimg-sw{position:absolute;top:var(--space-8);right:var(--space-8);z-index:1}
.eimg-sw,.eimg-sw button{font:var(--font-label)}
.eimg > .eimg-sw,.evc-top .eimg-sw{opacity:var(--opacity-muted-mark);transition:opacity var(--dur-feedback) var(--ease-standard)}
.eimg:hover > .eimg-sw,.eimg:focus-within > .eimg-sw,.evc:hover .evc-top .eimg-sw,.evc:focus-within .evc-top .eimg-sw{opacity:1}
.eimg-sw button:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}
.eimg-sw button:focus-visible{outline:var(--size-focus-ring-width) solid var(--focus-ring);outline-offset:calc(var(--size-focus-ring-width) * -1)}
.evc-top{display:flex;justify-content:flex-end}
.eimg-note{position:absolute;left:var(--space-8);bottom:var(--space-8);font:var(--font-label);color:var(--text-secondary);background:var(--surface-raised);padding:0 var(--space-6);border-radius:var(--radius-badge);pointer-events:none}
.note.img-missing{display:flex;align-items:center;justify-content:center;min-height:var(--size-thumb-md);padding:var(--space-8) var(--space-12);background:var(--surface-group);border-radius:var(--radius-control)}
.viewer{background:var(--surface-overlay);border-radius:var(--radius-dialog);box-shadow:var(--shadow-modal);width:min(var(--layout-dialog-width-lg),100%);max-height:100%;display:flex;flex-direction:column;gap:var(--space-8);padding:var(--space-12) var(--space-16);overflow:hidden}
.viewer-top{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap}
.viewer-cap{flex:1 1 calc(var(--layout-kv-label-width) * 1.5);min-width:0;font:var(--font-body)}
.viewer-ctl{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}
.viewer-body{display:flex;align-items:center;gap:var(--space-8);min-height:0}
.viewer-frames{flex:1;display:flex;gap:var(--space-12);justify-content:center;align-items:flex-start;min-width:0;overflow:auto}
.viewer-fig{margin:0;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}
.viewer-img{position:relative;display:inline-block;max-width:100%}
.viewer .bigimg{max-width:100%;max-height:calc(100vh - var(--space-48) * 4)}
.viewer-nav[hidden]{display:none}
.viewer-foot{text-align:center}

/* Measured growth chart (app/chart.js): drawn at its real width, so text stays at the 11 px floor */
.chart.gc text{font:var(--font-data-sm)}
.chart.gc .tickx{stroke:var(--data-baseline)}
.chart.gc text.thr-lab{paint-order:stroke;stroke:var(--surface-raised);stroke-width:var(--space-4);stroke-linejoin:round}
.chart.gc .dot{cursor:default}
.chart.gc.pick .dot,.chart.gc .hit{cursor:pointer}
.chart.gc .hit{fill:transparent}
.chart.gc .hl-ring{fill:none;stroke:var(--action-primary);stroke-width:var(--size-border-width-thick);pointer-events:none}
.chart-cap{margin-top:var(--space-6)}

/* Sightings page */
.sx-tools{padding-bottom:var(--space-8)}
.sx-tools input[type=date]{min-height:var(--size-control-height-compact);border:var(--line-strong);border-radius:var(--radius-control);padding:0 var(--space-8);font:var(--font-body);background:var(--surface-raised);color:var(--text-primary)}
.sx-bar{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;min-height:var(--size-control-height-compact);margin-bottom:var(--space-8);font:var(--font-body)}
.sx-note{width:100%}
.sx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--layout-kv-label-width) * 1.5),1fr));gap:var(--space-16)}
.sx-card{display:flex;flex-direction:column;gap:var(--space-6);min-width:0;padding:var(--space-4);border-radius:var(--radius-control)}
.sx-img{position:relative}
.sx-thumb{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-control);border:var(--line);background:var(--surface-camera);cursor:zoom-in}
.sx-tick{position:absolute;top:var(--space-6);left:var(--space-6);display:flex;align-items:center;justify-content:center;width:var(--size-icon-lg);height:var(--size-icon-lg);background:var(--surface-raised);border-radius:var(--radius-badge);border:var(--line-strong);cursor:pointer}
.sx-table .sx-tick{position:static;background:none;border:0}
.sx-table .sx-thumb,.sx-table .thumb{width:auto;height:var(--size-thumb-md)}
.sx-meta{display:flex;flex-direction:column;gap:var(--space-2);font:var(--font-body)}
.sx-l1,.sx-l3{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}
.sx-card.kb,.sx-row.kb,.sx-card.sx-flash,.sx-row.sx-flash{outline:var(--size-focus-ring-width) solid var(--focus-ring);outline-offset:var(--size-focus-ring-offset)}
.sx-spread{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;margin-bottom:var(--space-8)}
.sx-strip{display:flex;gap:var(--space-12);overflow-x:auto;padding-bottom:var(--space-8)}
.sx-frame{flex:none;width:calc(var(--layout-kv-label-width) * 1.4);margin:0;display:flex;flex-direction:column;gap:var(--space-6)}
.sx-frame figcaption{display:flex;flex-direction:column;gap:var(--space-2);font:var(--font-body)}
.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap;padding-top:var(--space-12)}
@media (max-width:45em){
  .he-time{margin-left:0;width:100%}
  .viewer-frames{flex-direction:column;align-items:center}
  .viewer-nav{position:absolute;bottom:var(--space-12);z-index:1}
  .viewer-nav[data-v-step="-1"]{left:var(--space-12)} .viewer-nav[data-v-step="1"]{right:var(--space-12)}
  .viewer{position:relative}
}
