/* Layout only; colours, radii and type come from the ShadCn.Blazor default theme (CSS variables on :root and .dark). */
:root { --mono: var(--font-mono, ui-monospace, "Cascadia Code", Menlo, Consolas, monospace); }
html, body { height: 100%; margin: 0; }
body { background: hsl(var(--background)); color: hsl(var(--foreground)); font-family: var(--font-sans, system-ui, sans-serif); font-size: 14px; line-height: 1.45; }
#app, .lathe-main { height: 100%; }
.boot { display: flex; align-items: center; justify-content: center; height: 100%; padding: 16px; }
.boot-card { width: min(520px, 100%); background: hsl(var(--card)); border: 1px solid hsl(var(--border)); border-radius: 12px; padding: 24px; }
.boot-title { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.boot-sub { color: hsl(var(--muted-foreground)); margin-bottom: 16px; }
.boot-bar { height: 8px; background: hsl(var(--muted)); border-radius: 4px; overflow: hidden; }
.boot-fill { height: 100%; width: 0; background: hsl(var(--primary)); transition: width .2s; }
.boot-text { margin-top: 8px; color: hsl(var(--muted-foreground)); font-family: var(--mono); font-size: 12px; }
.pg { display: grid; grid-template-rows: auto 1fr; height: 100%; }
.pg-toolbar { display: flex; align-items: center; gap: 10px; padding: 8px 14px; border-bottom: 1px solid hsl(var(--border)); background: hsl(var(--card)); flex-wrap: wrap; }
.pg-title { font-weight: 600; margin-right: auto; }
.pg-title small { color: hsl(var(--muted-foreground)); font-weight: 400; margin-left: 8px; }
.status { color: hsl(var(--muted-foreground)); font-size: 12px; min-width: 120px; }
.status.err { color: hsl(var(--destructive)); }
.pg-body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, 1fr); min-height: 0; }
.col { display: grid; grid-template-rows: auto 1fr; min-height: 0; min-width: 0; }
.tabs { display: flex; gap: 4px; padding: 6px 8px; border-bottom: 1px solid hsl(var(--border)); background: hsl(var(--card)); overflow-x: auto; align-items: center; }
.tabs .count { margin-left: 6px; }
#editor { min-height: 0; height: 100%; }
.panel { overflow: auto; padding: 10px 12px; min-height: 0; font-size: 13px; }
.mono { font-family: var(--mono); font-size: 12px; white-space: pre; margin: 0; }
.problems { list-style: none; margin: 0; padding: 0; }
.problems li { padding: 5px 0; border-bottom: 1px solid hsl(var(--border)); cursor: pointer; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; }
.problems .loc { color: hsl(var(--muted-foreground)); font-size: 12px; }
.num { text-align: right !important; font-variant-numeric: tabular-nums; }
.bar { display: inline-block; height: 8px; background: hsl(var(--primary)); border-radius: 2px; vertical-align: middle; }
.section { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: hsl(var(--muted-foreground)); margin: 14px 0 6px; font-weight: 600; }
.kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin-bottom: 8px; }
.kpi b { display: block; font-size: 18px; }
.kpi span { color: hsl(var(--muted-foreground)); font-size: 12px; }
.hint { color: hsl(var(--muted-foreground)); font-size: 12px; }
.tip { cursor: pointer; margin: 6px 0; }
.wrap { white-space: normal; word-break: break-word; }
.stack > * + * { margin-top: 8px; }
@media (max-width: 900px) { .pg-body { grid-template-columns: 1fr; grid-template-rows: minmax(0, 55vh) minmax(0, 1fr); } }
