/* Omopforge app screens: tokens only (design/tokens.css + identity.css). */
#app{display:grid;gap:var(--space-4)}
.stack{display:grid;gap:var(--space-3)}
.row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.row.between{justify-content:space-between}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4);box-shadow:var(--shadow)}
.card h2,.card h3{margin-top:0}
.appbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:var(--space-3)}
.tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tabs button{background:transparent;color:var(--ink);border:1px solid var(--line)}
.tabs button[aria-selected=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.msg{padding:var(--space-2) var(--space-3);border-radius:var(--radius);border:1px solid var(--line);font-size:var(--text-sm)}
.msg.ok{border-color:var(--good);color:var(--good)}
.msg.error{border-color:var(--crit);color:var(--crit)}
.msg.info{color:var(--muted)}
.meter{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.meter>span{display:block;height:100%;background:var(--accent)}
.chip{display:inline-block;padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:var(--text-sm);color:var(--muted)}
.chip.good{color:var(--good);border-color:var(--good)}.chip.warn{color:var(--warn);border-color:var(--warn)}.chip.crit{color:var(--crit);border-color:var(--crit)}
.bar{height:6px;background:var(--line);border-radius:3px;min-width:60px}
.bar>span{display:block;height:100%;background:var(--accent);border-radius:3px}
.conf{font-variant-numeric:tabular-nums}
.tiny{font-size:var(--text-sm);color:var(--muted);margin:0}
button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}
button.link{background:none;border:0;color:var(--accent);padding:0;text-decoration:underline;cursor:pointer}
.callout.refused{border:1px solid var(--crit);border-left-width:6px;border-radius:var(--radius);padding:var(--space-3);background:var(--surface)}
.callout.refused h3{margin-top:0;color:var(--crit)}
.scroll{overflow-x:auto;max-width:100%}
.alts{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-3)}
label.field{display:grid;gap:4px;font-size:var(--text-sm);color:var(--muted)}
td.n{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:480px){.card{padding:var(--space-3)}.row{gap:var(--space-2)}}
