/* UX-02 shared dense component contract. Theme tokens converge without changing authority. */
:root{--im-font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--im-text:#edf4f6;--im-muted:#b4c5ce;--im-surface:#14212b;--im-line:#526772;--im-focus:#83e8d4;--im-ok:#a4e8c8;--im-warn:#ffd294;--im-error:#ffb4bd;--im-row:40px;--im-radius:8px;--im-gap:12px;--im-small:12px}
:root:not([data-theme]),:root[data-theme="light"]{--im-text:#142c38;--im-muted:#405764;--im-surface:#fff;--im-line:#70818b;--im-focus:#00634f;--im-ok:#126442;--im-warn:#775000;--im-error:#a3263b}
body{font-family:var(--im-font)}
[data-density="compact"]{--im-row:36px;--im-gap:8px}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--im-focus)!important;outline-offset:3px}
:where(input:not([type=checkbox]):not([type=radio]),select,textarea){font:inherit;min-height:var(--im-row)}
:where(button,.btn,.button){min-height:36px}
:where(label.field,.stack-form label){gap:6px}
:where(input,select,textarea)[aria-invalid="true"]{border:2px solid var(--im-error)}
.form-error{color:var(--im-error);font-size:13px;line-height:1.5}
.im-object-header h1{font-size:clamp(24px,2.2vw,32px);line-height:1.2;letter-spacing:-.025em}
.im-object-header p{line-height:1.55;max-width:80ch}
.im-state{display:inline-flex;align-items:center;gap:6px;border:1px solid currentColor;border-radius:999px;padding:3px 9px;font-size:var(--im-small);font-weight:600;line-height:1.4;background:var(--im-surface);color:var(--im-muted);white-space:normal}
.im-state[data-state="fresh"],.im-state[data-state="success"]{color:var(--im-ok)}
.im-state[data-state="stale"],.im-state[data-state="partial"],.im-state[data-state="pending"]{color:var(--im-warn)}
.im-state[data-state="failed"]{color:var(--im-error)}
.im-record-table{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;border-radius:var(--im-radius)}
.im-record-table table{width:100%;border-collapse:collapse}
.im-record-table caption{text-align:left;padding:12px 8px;color:var(--im-text);font-weight:600;font-size:14px;caption-side:top}
.im-count{display:block;color:var(--im-muted);font-size:var(--im-small);font-weight:400;line-height:1.6}
.im-record-table th{color:var(--im-muted);font-size:var(--im-small);text-align:left;text-transform:none}
.im-record-table :is(td,th){height:var(--im-row);padding:var(--im-gap);border-bottom:1px solid var(--im-line);vertical-align:middle}
.im-metric strong{font-variant-numeric:tabular-nums;font-size:24px;line-height:1.3}
.im-metric small{display:block;color:var(--im-muted);font-size:var(--im-small);line-height:1.5}
.im-evidence{margin-block:12px;padding:12px;background:var(--im-surface);color:var(--im-text);border:1px solid var(--im-line);border-radius:var(--im-radius)}
.im-evidence summary{cursor:pointer;font-size:14px;font-weight:600;min-height:28px}
.im-evidence dd{overflow-wrap:anywhere}
.im-update-status{margin:4px 0 12px;font-size:var(--im-small);line-height:1.5;color:var(--im-muted)}
dialog{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}
@media(pointer:coarse){:where(button,.btn,.button,input:not([type=checkbox]):not([type=radio]),select,summary){min-height:44px}}
@media(prefers-reduced-motion:reduce){.im-state,.im-record-table,dialog{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.im-record-table td{font-size:13px;line-height:1.5}
.im-typed-form{display:grid;gap:var(--im-gap)}
.im-typed-form label{display:grid;gap:6px;font-size:14px}

#uxUpdateStatus:empty{display:none}#uxUpdateStatus{flex-shrink:0;padding:6px 16px;margin:0;border-bottom:1px solid var(--im-line)}

.window-status{height:auto;min-height:40px;flex-wrap:wrap;gap:8px;padding:4px 12px}.window-status,.window-status button{font-size:12px;line-height:1.4}
@media(pointer:coarse){.icon-button,.ui-icon-button{min-width:44px}}

.im-metric{display:flex;gap:12px;align-items:flex-start;min-width:0}.im-metric strong,.im-metric span{display:block}
