/* JEM Warehouse Logistics Hub v2 — base: tokens, reset, typography, icons, utilities, hub theme tokens, print.
   Split verbatim from public/styles.css (V2-SPEC §2.3): rules are copied unchanged and in their
   original relative order, so the cascade (and the look) is identical to v1. Load order on every
   page: base.css -> shell.css -> components.css -> pages/<name>.css. */

    :root {
      --navy:#0F1C2E; --navy2:#16263D; --jem:#17B8C6; --jem2:#0E9DAA; --jemSoft:#E6F8FA;
      --pos:#059669; --posSoft:#DCFCE7; --neg:#DC2626; --negSoft:#FEE2E2;
      --warn:#D97706; --warnSoft:#FEF3C7; --blue:#2563EB; --blueSoft:#EFF6FF;
      --ink1:#0F172A; --ink2:#334155; --ink3:#64748B; --ink4:#94A3B8;
      --surf:#FFFFFF; --surf2:#F8FAFC; --surf3:#F1F5F9; --line:#E2E8F0; --line2:#CBD5E1;
      --r6:6px; --r10:10px; --r14:14px; --r18:18px; --r24:24px;
      --shadow:0 6px 22px rgba(15,23,42,.07); --shadow2:0 14px 40px rgba(15,23,42,.16);
      --side:248px;
      --font:'Inter','Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
      --accent-rgb:23,184,198; --accent2-rgb:14,157,170; --accent-soft-text:#9FE7EE; --accent-muted:#7FB7C0; --mark-ink:#06222a; --hero-stop:#1d3556;
    }
    * { box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
    html,body { height:100%; }
    body {
      margin:0; font-family:var(--font); color:var(--ink1); background:var(--surf2);
      font-size:15px; line-height:1.45; -webkit-font-smoothing:antialiased;
    }
    h1,h2,h3,h4 { margin:0; font-weight:800; letter-spacing:-.01em; }
    p { margin:0; }
    button,input,select,textarea { font:inherit; color:inherit; }
    button { border:0; border-radius:var(--r10); cursor:pointer; font-weight:700; min-height:44px; }
    button:disabled { cursor:not-allowed; opacity:.5; }
    input,select,textarea {
      width:100%; min-height:46px; border:1.5px solid var(--line); border-radius:var(--r10);
      padding:11px 13px; background:var(--surf); color:var(--ink1); transition:border-color .15s, box-shadow .15s;
    }
    input:focus,select:focus,textarea:focus { outline:0; border-color:var(--jem); box-shadow:0 0 0 4px var(--jemSoft); }
    textarea { min-height:90px; resize:vertical; line-height:1.5; }
    label { font-weight:700; font-size:13.5px; color:var(--ink2); }
    .ico { display:inline-flex; align-items:center; justify-content:center; }
    .ico svg { width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

/* typography utilities (from the v1 "Cards / sections" block) */
    .muted { color:var(--ink3); font-size:13px; }
    .tiny { font-size:11.5px; color:var(--ink4); }
    hr { border:0; border-top:1px solid var(--line); margin:16px 0; }

/* shared animations (used by drawer, modal, toasts, camera) */
    @keyframes slideup { from { transform:translateY(18px); opacity:.4; } to { transform:translateY(0); opacity:1; } }
    @keyframes fade { from { opacity:0; } to { opacity:1; } }

    /* ---------- Hub themes ---------- */
    body[data-theme="uk"] {
      --navy:#23264F; --navy2:#2D326E; --jem:#3A3F86; --jem2:#2D326E; --jemSoft:#E9EAF6;
      --accent-rgb:58,63,134; --accent2-rgb:45,50,110; --accent-soft-text:#C2C5EC; --accent-muted:#8A8FC4;
      --mark-ink:#FFFFFF; --hero-stop:#34386F;
    }
    body[data-theme="fast"] {
      --navy:#1C2C5E; --navy2:#253C7B; --jem:#E8A11E; --jem2:#C8881A; --jemSoft:#FBF1DA;
      --accent-rgb:232,161,30; --accent2-rgb:200,136,26; --accent-soft-text:#F6CF8A; --accent-muted:#C9A765;
      --mark-ink:#16203F; --hero-stop:#2A3E72;
    }

/* Utility used throughout index.html/app.js to toggle visibility (login/app view, error boxes, etc.) — must come after everything else so it always wins. */
.hidden{display:none!important}

/* ---------- Print ----------
   v2 retires window.print() and the #printReport markup: the inspection PDF is rendered on the
   server (GET /api/inspections/:id/pdf, V2-SPEC §6.1), so the v1 .pr-* report rules are not carried
   over. Printing a page from the browser just drops the app chrome. */
@media print {
  .sidebar, .topbar, .bottomnav, .toasts, .drawer, .modal, .lightbox, .cam-overlay { display:none !important; }
  .content { margin-left:0 !important; }
  html, body { background:#fff !important; }
}
