/* ═════════════════════════════════════════════════════════════════
   apps.css — step 2 of the redesign: the apps inside the workspaces
   Restyles the shared building blocks every app is made of (panels,
   KPI boxes, tables, buttons, tags, meters, forms, mail, manual) with
   the Command Center tokens from shell.css: bigger type, real panels,
   one colour language (ok / warn / bad). Scoped to .winbody (docked
   panes and popped-out windows) plus the dialogs, so the login screen,
   landing and BSOD are untouched.
   ═════════════════════════════════════════════════════════════════ */

/* ── base type ── */
.winbody{ font-family:var(--f-ui); font-size:13.5px; line-height:1.45; color:var(--c-ink); background:var(--c-chrome); }
.winbody b, .winbody strong{ font-weight:600; }
.winbody .small{ font-size:12px; color:var(--c-ink-2); line-height:1.45; }
.winbody .pos, .winbody .r.pos{ color:var(--c-ok); }
.winbody .neg, .winbody .r.neg{ color:var(--c-bad); }
.winbody .warn{ color:var(--c-warn); }
.winbody h2, .winbody h3{ font-family:var(--f-ui); font-weight:700; }
.winbody input, .winbody select, .winbody textarea{ font-family:var(--f-ui); font-size:13px; }
.winbody select{ padding:3px 4px; min-height:28px; background:#fff;
  border-top:2px solid var(--c-chrome-dk); border-left:2px solid var(--c-chrome-dk);
  border-bottom:2px solid #fff; border-right:2px solid #fff; }
.winbody input[type=number], .winbody input[type=text].box{ min-height:28px; padding:3px 6px; font-family:var(--f-num); font-size:13px; }
.winbody input[type=checkbox], .winbody input[type=radio]{ width:15px; height:15px; vertical-align:-3px; accent-color:var(--c-navy); }
.winbody input[type=range]{ accent-color:var(--c-navy); height:22px; }

/* ── panels: the old etched fieldset becomes a card with a header strip ── */
.winbody .fieldset{
  background:var(--c-paper); padding:0 14px 12px; margin:0 0 12px;
  border:1px solid #8d93a0; border-top:3px solid var(--c-navy);
  box-shadow:2px 2px 0 rgba(0,0,0,.18);
}
.winbody .fieldset > .legend{
  position:static; display:block; margin:0 -14px 10px; padding:6px 14px 6px 12px;
  background:#e9ebf1; border-bottom:1px solid #c9ccd5;
  border-left:4px solid; border-left-color:inherit;       /* accented panels carry their colour into the header */
  font:600 13px/1.35 var(--f-ui); color:var(--c-ink); letter-spacing:.01em;
}
.winbody .fieldset .fieldset{ box-shadow:none; }          /* nested panels stay flat */
.winbody .fieldset > .legend .tag{ vertical-align:1px; }

/* ── layout rows ── */
.winbody .row{ gap:8px 10px; margin:7px 0; }
.winbody .row label{ font-size:13px; min-width:140px; }
.winbody .row .val{ font-family:var(--f-num); font-weight:600; font-size:14px; }

/* ── KPI boxes: the same language as the HUD vitals ── */
.winbody .kpi-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin-bottom:12px; }
.winbody .kpi-box{ min-width:0; padding:7px 11px 8px; background:var(--c-paper);
  border-top:2px solid var(--c-chrome-dk); border-left:2px solid var(--c-chrome-dk);
  border-bottom:2px solid #fff; border-right:2px solid #fff; }
.winbody .kpi-box .k{ font-size:11px; letter-spacing:.05em; line-height:1.3; color:var(--c-ink-2); }
.winbody .kpi-box .v{ font:600 20px/1.2 var(--f-num); margin-top:2px; overflow-wrap:anywhere; }
.winbody .kpi-box .s{ font:12px var(--f-ui); color:var(--c-ink-2); margin-top:1px; }

/* ── tables ── */
.winbody table.grid{ font-size:13px; background:var(--c-paper); border:1px solid #b9bdc7; }
.winbody table.grid th{ font:600 11px var(--f-ui); letter-spacing:.05em; text-transform:uppercase; color:var(--c-ink-2);
  background:#e9ebf1; padding:6px 9px; border:0; border-bottom:2px solid #9aa0ad; }
.winbody table.grid td{ padding:6px 9px; border-bottom:1px solid #e6e7eb; vertical-align:middle; }
.winbody table.grid tbody tr:nth-child(even) td{ background:#f7f8fa; }
.winbody table.grid tr:hover td{ background:#eef2fb; }
.winbody table.grid td.r, .winbody table.grid th.r{ font-family:var(--f-num); font-weight:500; }
.winbody table.grid th.r{ font-family:var(--f-ui); font-weight:600; }
.winbody table.grid tr.total td{ background:#eceef3; border-top:2px solid var(--c-ink); font-weight:700; }

/* ── buttons ── */
.winbody .btn, .victory-box .btn, .decide-box .btn{ font:500 13px var(--f-ui); padding:4px 13px; min-height:28px; }
.winbody .btn:active:not(:disabled){ padding:5px 12px 3px 14px; }
.winbody .btn.primary, .victory-box .btn.primary{ font-weight:600; background:var(--c-navy); color:#fff;
  border-top-color:#6d86d6; border-left-color:#6d86d6; border-bottom-color:#000; border-right-color:#000;
  box-shadow:inset -1px -1px 0 #051236, inset 1px 1px 0 #2f4fb0; }
.winbody .btn.primary:hover:not(:disabled), .victory-box .btn.primary:hover{ background:var(--c-navy-2); }
.winbody .btn.primary:disabled{ background:#8e97b3; color:#dfe3ee; text-shadow:none; }
.winbody .btn.danger{ color:var(--c-bad); font-weight:600; }
.winbody .btn.tiny{ font-size:12px; padding:2px 9px; min-height:24px; }
.winbody .btn.tiny:active:not(:disabled){ padding:3px 8px 1px 10px; }
.winbody .btn.step2{ font-size:16px; min-height:32px; padding:4px 12px; }
.winbody .btn:hover:not(:disabled):not(.primary){ background:#d0d0d0; }

/* ── tags ── */
.winbody .tag{ font:600 11px/1.5 var(--f-ui); padding:0 6px; letter-spacing:.02em; border-width:1px; }

/* ── meters: flat track, solid tone fill ── */
.winbody .meter{ height:12px; background:var(--c-track); border:0; box-shadow:inset 0 0 0 1px #b3b3b3; }
.winbody .meter .fill{ background:var(--c-navy); }
.winbody .meter .fill.ok{ background:var(--c-ok); }
.winbody .meter .fill.warn{ background:var(--c-warn); }
.winbody .meter .fill.bad{ background:var(--c-bad); }

/* ── CoreBank terminal: keep the green screen, make it legible ── */
.winbody .term{ font-family:var(--f-num); font-size:13px; line-height:1.5; padding:12px 14px; }

/* ── mail ── */
.winbody .mail-list{ height:clamp(150px, 30vh, 320px); background:var(--c-paper);
  border-top:2px solid var(--c-chrome-dk); border-left:2px solid var(--c-chrome-dk); border-bottom:2px solid #fff; border-right:2px solid #fff; }
.winbody .mail-row{ padding:6px 10px; font-size:13px; gap:10px; align-items:center; border-bottom:1px solid #eceef2; }
.winbody .mail-row:hover:not(.sel){ background:#eef2fb; }
.winbody .mail-row.unread{ font-weight:600; }
.winbody .mail-row.unread .from::before{ content:''; display:inline-block; width:7px; height:7px; background:var(--c-navy); margin-right:6px; vertical-align:1px; }
.winbody .mail-row.sel{ background:var(--c-navy); }
.winbody .mail-row .from{ width:170px; }
.winbody .mail-row .dt{ width:78px; font-family:var(--f-num); font-size:12px; font-weight:400; }
.winbody .mail-body{ font-size:14px; line-height:1.6; padding:14px 18px; max-width:880px;
  border-top:2px solid var(--c-chrome-dk); border-left:2px solid var(--c-chrome-dk); border-bottom:2px solid #fff; border-right:2px solid #fff; }
.winbody .mail-body .hdr{ font-size:12px; color:var(--c-ink-2); }
.winbody .mail-actions{ flex-wrap:wrap; }

/* ── manual & long reads ── */
.winbody .help-doc{ font-size:14px; line-height:1.65; padding:18px 24px; max-width:900px; }
.winbody .help-doc h2{ font-size:17px; margin:20px 0 8px; padding-bottom:4px; border-bottom:2px solid var(--c-navy); }
.winbody .help-doc p, .winbody .help-doc li{ font-size:14px; margin-bottom:7px; }
.winbody .help-doc code{ font-family:var(--f-num); font-size:12.5px; }

/* ── org chart ── */
.winbody .org-node .n{ font:600 12px/1.25 var(--f-ui); }
.winbody .org-node .s{ font:11px var(--f-num); }
.winbody .org-node .g{ font-size:18px; }

/* ── dialogs (message boxes, confirms, counterbids, retirement…) ── */
.victory-box{ font-family:var(--f-ui); }
.victory-box .content{ font-size:14px; line-height:1.6; }
.victory-box .big{ font:700 21px/1.3 var(--f-ui); }
.victory-box .small{ font-size:12px; }
.toast{ font:13px var(--f-ui); }
.crisis-box{ font-family:var(--f-ui); font-size:13.5px; }
.crisis-stats .v{ font-family:var(--f-num); font-size:16px; }
.crisis-stats .k{ font-size:11px; }
.crisis-log{ font-size:13px; }

/* ── phones: a touch bigger to tap ── */
html.mobile .winbody{ font-size:14px; }
html.mobile .winbody .btn{ min-height:36px; }
html.mobile .winbody .btn.tiny{ min-height:32px; font-size:13px; }
html.mobile .winbody .kpi-strip{ grid-template-columns:repeat(2,minmax(0,1fr)); }
html.mobile .winbody .kpi-box .v{ font-size:18px; }
html.mobile .winbody .fieldset{ padding:0 10px 10px; }
html.mobile .winbody .fieldset > .legend{ margin:0 -10px 8px; padding:6px 10px; }
html.mobile .winbody .mail-row .from{ width:110px; }
html.mobile .winbody .help-doc{ padding:12px 14px; }
/* phones: wide tables scroll sideways instead of crushing the first column */
html.mobile .winbody table.grid th, html.mobile .winbody table.grid td.r{ white-space:nowrap; }
html.mobile .winbody table.grid td:first-child{ min-width:150px; }
html.mobile .winbody table.grid{ -webkit-overflow-scrolling:touch; }
