:root {
  --bg: #eef1f3;
  --surface: #ffffff;
  --surface-soft: #f7f8f9;
  --text: #20272d;
  --muted: #66717b;
  --line: #d9dee2;
  --line-strong: #b9c0c6;
  --graphite: #1c252b;
  --graphite-2: #26333b;
  --amber: #d98b13;
  --amber-dark: #a96305;
  --amber-soft: #fff2d8;
  --good: #287a4b;
  --good-soft: #e5f5ec;
  --warning: #a86500;
  --warning-soft: #fff1d2;
  --danger: #b33a33;
  --danger-soft: #fde9e7;
  --info: #275f8f;
  --shadow: 0 14px 34px rgba(25, 34, 40, .09);
  --radius: 5px;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; color: var(--text); background: var(--bg); }
body { font-size: 14px; line-height: 1.45; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .22;
  background-image:
    radial-gradient(circle at 15% 18%, transparent 0 34px, rgba(55,70,78,.10) 35px 36px, transparent 37px 70px, rgba(55,70,78,.07) 71px 72px, transparent 73px),
    radial-gradient(circle at 82% 72%, transparent 0 48px, rgba(55,70,78,.08) 49px 50px, transparent 51px 92px, rgba(55,70,78,.06) 93px 94px, transparent 95px),
    linear-gradient(rgba(65,77,84,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(65,77,84,.035) 1px, transparent 1px);
  background-size: 320px 260px, 420px 360px, 42px 42px, 42px 42px;
}

.app-shell { min-height: 100vh; display: block; position: relative; }
.sidebar { background: linear-gradient(180deg, #182127 0%, #202c33 70%, #151d22 100%); color: #eef3f5; position: fixed; inset: 0 auto 0 0; width: 255px; height: 100dvh; min-height: 0; display: flex; flex-direction: column; overflow: hidden; z-index: 20; box-shadow: 8px 0 24px rgba(15, 22, 26, .12); }
.brand { display: flex; align-items: center; height: 88px; padding: 18px 22px; border-bottom: 1px solid rgba(255,255,255,.08); background-image: linear-gradient(135deg, rgba(217,139,19,.10), transparent 50%); }
.brand img { width: 100%; max-height: 50px; object-fit: contain; object-position: left center; }
.main-nav { flex: 1 1 auto; min-height: 0; padding: 12px 10px; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; }
.nav-group-label { margin: 15px 10px 6px; color: #91a0a8; text-transform: uppercase; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.nav-link { min-height: 42px; padding: 7px 10px; margin: 3px 0; display: flex; align-items: center; gap: 10px; border-left: 3px solid transparent; color: #dce4e8; transition: .16s ease; }
.nav-icon { width: 30px; height: 28px; display: grid; place-items: center; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08); color: #eeb65c; flex: 0 0 auto; }
.svg-icon { width: 18px; height: 18px; display: block; }
.nav-link b { font-size: 13px; font-weight: 600; }
.nav-link:hover { background: rgba(255,255,255,.055); color: white; }
.nav-link.is-active { background: linear-gradient(90deg, rgba(217,139,19,.22), rgba(217,139,19,.04)); border-left-color: var(--amber); color: white; }
.nav-link.is-active > .nav-icon { background: var(--amber); border-color: var(--amber); color: #1f2529; }
.sidebar-footer { padding: 14px 20px 18px; border-top: 1px solid rgba(255,255,255,.08); display: grid; gap: 2px; }
.sidebar-footer small { color: #96a4ab; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-footer strong { font-size: 13px; }
.sidebar-footer span { color: #e6b25f; font-size: 11px; }

.main-area { min-width: 0; min-height: 100vh; margin-left: 255px; width: calc(100% - 255px); display: flex; flex-direction: column; }
.topbar { min-height: 68px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 10px 24px; position: sticky; top: 0; z-index: 15; backdrop-filter: blur(10px); }
.menu-toggle { display: none; border: 1px solid var(--line); background: white; width: 38px; height: 38px; }
.system-title { display: grid; }
.system-title strong { font-size: 15px; }
.system-title span { color: var(--muted); font-size: 12px; }
.topbar-actions { display: flex; align-items: center; gap: 18px; }
.topbar-actions time { color: var(--muted); font-size: 12px; min-width: 160px; text-align: right; }
.content-area { width: 100%; max-width: 1700px; margin: 0 auto; padding: 26px; flex: 1; }
.app-footer { padding: 12px 26px; background: var(--graphite); color: #b9c4ca; display: flex; justify-content: space-between; gap: 20px; font-size: 11px; }

.page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.page-head h1 { margin: 2px 0 4px; font-size: 28px; line-height: 1.2; }
.page-head p { margin: 0; color: var(--muted); max-width: 800px; }
.eyebrow { color: var(--amber-dark); text-transform: uppercase; font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.panel { background: var(--surface); border: 1px solid var(--line); border-top: 3px solid #c9d0d4; box-shadow: var(--shadow); padding: 20px; margin-bottom: 20px; border-radius: var(--radius); }
.section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.section-head h2 { margin: 0 0 3px; font-size: 18px; }
.section-head p { margin: 0; color: var(--muted); font-size: 12px; }
hr { border: 0; border-top: 1px solid var(--line); margin: 20px 0; }
code { background: #edf0f2; padding: 2px 5px; border-radius: 3px; font-size: 12px; }

.btn { border: 1px solid var(--line-strong); background: white; color: var(--text); min-height: 38px; padding: 8px 14px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-weight: 700; border-radius: 4px; transition: .15s ease; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(28,37,43,.10); }
.btn-primary { background: linear-gradient(180deg, #e59a25, #cc7d07); color: #fff; border-color: #b66d04; text-shadow: 0 1px 1px rgba(0,0,0,.12); }
.btn-outline { background: #fff; }
.btn-danger { background: var(--danger-soft); color: var(--danger); border-color: #e5aaa5; }
.btn-small { min-height: 31px; padding: 5px 9px; font-size: 11px; }
.btn.disabled { pointer-events: none; opacity: .45; }
.inline-form { display: inline-flex; }

.alert { padding: 11px 14px; margin: 0 0 16px; border: 1px solid; border-left-width: 5px; background: white; }
.alert-success { color: var(--good); background: var(--good-soft); border-color: #a8d6ba; }
.alert-danger { color: var(--danger); background: var(--danger-soft); border-color: #e7aaa5; }
.alert-warning { color: var(--warning); background: var(--warning-soft); border-color: #e7c87d; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-grid label { display: grid; align-content: start; gap: 6px; color: #3e484f; font-size: 12px; font-weight: 700; }
.form-grid input, .form-grid select, .form-grid textarea, .filter-row input, .module-admin-card input { width: 100%; min-height: 40px; border: 1px solid var(--line-strong); background: white; padding: 8px 10px; border-radius: 3px; color: var(--text); outline: none; }
.form-grid textarea { min-height: 92px; resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus, .filter-row input:focus { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(217,139,19,.13); }
.form-wide { grid-column: 1 / -1; }
.form-two-cols { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-actions { display: flex; gap: 10px; margin-top: 5px; }
.required { color: var(--danger); }
.checkbox-field { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 600; }
.checkbox-field input { width: 18px; min-height: auto; height: 18px; }
.compact-form { grid-template-columns: 1fr; }
.narrow-panel { max-width: 760px; }

.hero-dashboard { min-height: 175px; padding: 26px 30px; margin-bottom: 18px; display: flex; justify-content: space-between; align-items: center; gap: 30px; color: white; background:
  radial-gradient(circle at 80% 20%, rgba(217,139,19,.25), transparent 32%),
  repeating-radial-gradient(circle at 82% 60%, transparent 0 32px, rgba(255,255,255,.045) 33px 34px),
  linear-gradient(120deg, #19242a, #2b3941); border-left: 6px solid var(--amber); box-shadow: var(--shadow); }
.hero-dashboard h1 { margin: 3px 0 6px; font-size: 29px; }
.hero-dashboard p { margin: 0; color: #c9d4d9; }
.hero-dashboard .eyebrow { color: #f2b95d; }
.readiness-ring { width: 125px; height: 125px; border-radius: 50%; display: grid; place-items: center; align-content: center; background: radial-gradient(circle at center, #223038 57%, transparent 58%), conic-gradient(var(--amber) calc(var(--value) * 1%), rgba(255,255,255,.12) 0); flex: 0 0 auto; }
.readiness-ring strong { font-size: 27px; }
.readiness-ring span { width: 80px; text-align: center; color: #c8d3d8; font-size: 10px; }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.metric-card { background: white; border: 1px solid var(--line); border-top: 4px solid var(--info); padding: 15px 17px; box-shadow: 0 8px 18px rgba(25,34,40,.06); }
.metric-card span, .metric-card small { color: var(--muted); display: block; }
.metric-card strong { display: block; font-size: 28px; margin: 5px 0 1px; }
.metric-danger { border-top-color: var(--danger); }
.metric-warning { border-top-color: var(--amber); }
.dashboard-columns { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 18px; align-items: start; }
.alert-list { display: grid; gap: 7px; }
.alert-list a { display: grid; grid-template-columns: 90px 1fr auto; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); background: var(--surface-soft); }
.alert-list a:hover { border-color: var(--amber); }
.alert-type { color: var(--amber-dark); font-size: 10px; text-transform: uppercase; font-weight: 900; }
.alert-list time { color: var(--muted); font-size: 11px; }
.shortcut-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.shortcut-card { border: 1px solid var(--line); padding: 11px; display: flex; align-items: center; gap: 9px; min-height: 56px; }
.shortcut-card:hover { border-color: var(--amber); background: var(--amber-soft); }
.shortcut-icon, .module-icon { width: 34px; height: 34px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; flex: 0 0 auto; }
.shortcut-icon .svg-icon, .module-icon .svg-icon { width: 18px; height: 18px; }
.shortcut-card strong { font-size: 12px; }

.registry-form-panel { border-top-color: var(--amber); }
.registry-tools { align-items: flex-end; }
.filter-row { display: flex; align-items: flex-end; gap: 8px; }
.filter-row label { display: grid; gap: 5px; font-size: 11px; font-weight: 700; }
.filter-row input { min-width: 240px; }
.table-panel { padding: 0; overflow: hidden; }
.table-panel > .section-head { padding: 18px 20px 0; }
.table-scroll { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table th { background: #edf0f2; color: #3d474e; text-align: center; padding: 10px 9px; border-bottom: 1px solid var(--line-strong); white-space: nowrap; }
.data-table td { padding: 9px; border-bottom: 1px solid #e7eaec; vertical-align: middle; }
.data-table tbody tr:hover { background: #fffaf1; }
.id-cell { color: var(--muted); font-weight: 800; white-space: nowrap; }
.actions-cell { white-space: nowrap; text-align: right; }
.status-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 25px; padding: 3px 8px; border: 1px solid; font-size: 10px; font-weight: 800; white-space: nowrap; }
.status-good { color: var(--good); border-color: #9dceb1; background: var(--good-soft); }
.status-warning { color: var(--warning); border-color: #dfbd6b; background: var(--warning-soft); }
.status-danger { color: var(--danger); border-color: #e0a09b; background: var(--danger-soft); }
.status-neutral { color: #58636b; border-color: #c6cdd1; background: #edf0f2; }
.empty-cell, .empty-state { color: var(--muted); text-align: center; padding: 24px !important; }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 14px 20px; }

.subnav { display: flex; gap: 4px; flex-wrap: wrap; margin: -4px 0 16px; padding: 5px; border: 1px solid var(--line); background: white; }
.subnav a { padding: 8px 11px; font-size: 11px; font-weight: 700; color: var(--muted); }
.subnav a.is-active { background: var(--graphite); color: white; }
.admin-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
.admin-card { background: white; border: 1px solid var(--line); border-left: 4px solid var(--amber); padding: 18px; display: flex; gap: 14px; box-shadow: var(--shadow); }
.admin-card-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; flex: 0 0 auto; }
.admin-card-icon .svg-icon { width: 20px; height: 20px; }
.admin-card strong { font-size: 15px; }
.admin-card p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.module-admin-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.module-admin-card { padding: 16px; border: 1px solid var(--line); background: var(--surface-soft); transition: .15s ease; }
.module-admin-card.is-enabled { border-top: 4px solid var(--amber); background: white; }
.module-admin-card.is-disabled { opacity: .58; filter: grayscale(.35); }
.module-admin-card h3 { margin: 13px 0 4px; }
.module-admin-card p { color: var(--muted); min-height: 49px; font-size: 11px; }
.module-admin-card label { display: grid; gap: 5px; font-size: 10px; font-weight: 700; }
.module-card-top { display: flex; justify-content: space-between; align-items: center; }
.switch input { display: none; }
.switch span { display: block; width: 42px; height: 22px; background: #bac1c6; border-radius: 20px; position: relative; }
.switch span::after { content: ""; width: 16px; height: 16px; background: white; border-radius: 50%; position: absolute; top: 3px; left: 3px; transition: .18s; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.switch input:checked + span { background: var(--amber); }
.switch input:checked + span::after { transform: translateX(20px); }
.admin-roles-layout { grid-template-columns: 300px minmax(0, 1fr); }
.role-list { display: grid; gap: 5px; }
.role-list a { padding: 10px; border: 1px solid var(--line); display: grid; }
.role-list a.is-active { border-color: var(--amber); background: var(--amber-soft); }
.role-list small { color: var(--muted); margin-top: 2px; }
.permission-panel { overflow: hidden; }
.permission-matrix { overflow-x: auto; }
.permission-matrix td:not(:first-child) { text-align: center; }
.permission-matrix input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--amber-dark); }
.permission-extra { display: flex; flex-wrap: wrap; gap: 8px 12px; text-align: left; }
.permission-extra label { white-space: nowrap; font-size: 10px; }
.admin-permission-row { background: #fff8eb; }

.module-roadmap { min-height: 220px; display: flex; align-items: center; gap: 22px; border-top-color: var(--amber); }
.module-roadmap-icon { width: 82px; height: 82px; display: grid; place-items: center; flex: 0 0 auto; background: var(--graphite); color: #f0b455; }
.module-roadmap-icon .svg-icon { width: 42px; height: 42px; }
.module-roadmap h2 { margin: 0 0 6px; }
.module-roadmap p { color: var(--muted); max-width: 760px; }
.roadmap-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.roadmap-tags span { border: 1px solid #d9bd82; background: var(--amber-soft); color: #87530b; padding: 4px 8px; font-size: 10px; font-weight: 700; }
.access-denied { max-width: 760px; margin: 50px auto; }
.map-layout { grid-template-columns: minmax(0, 1.5fr) minmax(300px, .5fr); }
.map-canvas { padding: 0; }
.map-grid-bg { min-height: 520px; display: grid; place-items: center; background-color: #e9edef; background-image: linear-gradient(rgba(42,60,68,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(42,60,68,.08) 1px, transparent 1px), repeating-radial-gradient(circle at 45% 46%, transparent 0 48px, rgba(42,60,68,.09) 49px 50px); background-size: 36px 36px, 36px 36px, auto; }
.map-empty { width: 300px; text-align: center; background: rgba(255,255,255,.92); border: 1px solid var(--line-strong); padding: 25px; box-shadow: var(--shadow); }
.map-empty strong { display: block; font-size: 44px; color: var(--amber-dark); }
.map-empty span { font-weight: 800; }
.map-empty p { color: var(--muted); font-size: 11px; }
.location-list { display: grid; gap: 6px; }
.location-list a { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); padding: 9px; }
.location-list small { display: block; color: var(--muted); }
.location-dot { width: 13px; height: 13px; background: var(--danger); border-radius: 50%; box-shadow: 0 0 0 4px var(--danger-soft); }
.warehouse-dot { background: var(--amber); box-shadow: 0 0 0 4px var(--amber-soft); }

.login-body { min-height: 100vh; display: grid; place-items: center; background:
  radial-gradient(circle at 16% 18%, rgba(217,139,19,.20), transparent 28%),
  repeating-radial-gradient(circle at 75% 60%, transparent 0 38px, rgba(255,255,255,.035) 39px 40px),
  linear-gradient(125deg, #121b20, #2a3941); color: white; padding: 25px; }
.login-shell { width: min(980px, 100%); display: grid; grid-template-columns: 1.2fr .8fr; background: rgba(22,31,36,.82); border: 1px solid rgba(255,255,255,.11); box-shadow: 0 25px 70px rgba(0,0,0,.35); backdrop-filter: blur(10px); }
.login-brand { padding: 55px; display: flex; flex-direction: column; justify-content: center; min-height: 470px; background-image: linear-gradient(135deg, rgba(217,139,19,.08), transparent 60%); }
.login-brand img { width: min(390px, 100%); max-height: 90px; object-fit: contain; object-position: left center; margin-bottom: 35px; }
.login-brand h1 { font-size: 32px; max-width: 520px; margin: 0 0 12px; }
.login-brand p { color: #bcc9cf; max-width: 530px; }
.login-card { background: white; color: var(--text); padding: 42px; display: flex; flex-direction: column; justify-content: center; }
.login-card h1, .login-card h2 { margin: 5px 0 8px; }
.login-card > p, .login-card > small { color: var(--muted); }
.login-card > small { margin-top: 22px; }
.install-shell { grid-template-columns: .9fr 1.1fr; }

@media (max-width: 1180px) {
  .metric-grid { grid-template-columns: repeat(3, 1fr); }
  .module-admin-grid, .admin-card-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; width: 265px; transform: translateX(-105%); transition: .2s; }
  .sidebar-open .sidebar { transform: translateX(0); }
  .menu-toggle { display: inline-grid; place-items: center; }
  .system-title { margin-right: auto; margin-left: 12px; }
  .topbar-actions time { display: none; }
  .dashboard-columns, .map-layout, .admin-roles-layout { grid-template-columns: 1fr; }
  .login-shell { grid-template-columns: 1fr; }
  .login-brand { min-height: auto; padding: 38px; }
  .login-brand h1 { font-size: 25px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 650px) {
  .content-area { padding: 16px; }
  .page-head { align-items: flex-start; flex-direction: column; }
  .form-grid, .form-two-cols { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .metric-grid, .module-admin-grid, .admin-card-grid, .shortcut-grid { grid-template-columns: 1fr; }
  .hero-dashboard { align-items: flex-start; flex-direction: column; }
  .filter-row { align-items: stretch; flex-direction: column; width: 100%; }
  .filter-row input { min-width: 0; }
  .registry-tools { align-items: stretch; flex-direction: column; }
  .topbar { padding: 9px 14px; }
  .app-footer { flex-direction: column; }
  .login-brand, .login-card { padding: 28px; }
}


.sidebar { overflow: hidden; }
.sidebar::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 18%, rgba(217,139,19,.18), transparent 20%),
    radial-gradient(circle at 82% 78%, rgba(217,139,19,.10), transparent 26%),
    repeating-radial-gradient(circle at 70% 22%, transparent 0 34px, rgba(255,255,255,.04) 35px 36px),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: auto, auto, auto, 38px 38px, 38px 38px;
  opacity: .6;
}
.sidebar > * { position: relative; z-index: 1; }
.brand { height: auto; min-height: 94px; gap: 14px; align-items: center; }
.brand img { width: 120px; flex: 0 0 auto; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: 14px; letter-spacing: .03em; }
.brand-copy small { color: #94a3ab; font-size: 11px; line-height: 1.3; max-width: 120px; }
.nav-group { position: relative; padding-bottom: 6px; margin-bottom: 6px; }
.nav-group::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 0; height: 1px; background: rgba(255,255,255,.045); }
.nav-group:last-child::after { display: none; }
.nav-group-label { margin-top: 13px; display: flex; align-items: center; gap: 8px; }
.nav-group-label::before { content: ""; width: 22px; height: 2px; background: rgba(238,182,92,.75); display: inline-block; }
.nav-link { border-left-width: 0; border-radius: 8px; position: relative; padding: 8px 10px; }
.nav-link::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: transparent; transition: .16s ease; }
.nav-link:hover { background: rgba(255,255,255,.07); }
.nav-link.is-active { background: linear-gradient(90deg, rgba(217,139,19,.22), rgba(217,139,19,.06)); }
.nav-link.is-active::before { background: var(--amber); }
.nav-link[data-group="organization"] .nav-icon { color: #8ed1ff; }
.nav-link[data-group="resources"] .nav-icon { color: #f2b95d; }
.nav-link[data-group="planning"] .nav-icon { color: #a8c87f; }
.nav-link[data-group="operations"] .nav-icon { color: #ff978e; }
.nav-link[data-group="development"] .nav-icon { color: #d4c1ff; }
.nav-link[data-group="system"] .nav-icon { color: #d2d9dd; }
.nav-link.is-active .nav-icon { color: #1f2529 !important; }
.status-legend { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.status-legend em { font-style: normal; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; padding: 4px 6px; border: 1px solid; }
.legend-good { color: #9de0bb; border-color: rgba(157,224,187,.35); background: rgba(46,112,71,.24); }
.legend-warning { color: #f6c86e; border-color: rgba(246,200,110,.35); background: rgba(168,101,0,.18); }
.legend-danger { color: #ffaca3; border-color: rgba(255,172,163,.35); background: rgba(179,58,51,.18); }
.topbar { box-shadow: 0 4px 18px rgba(19,27,31,.05); }
.topbar-left { display: flex; align-items: center; gap: 14px; min-width: 0; }
.system-chip { display: inline-flex; width: fit-content; align-items: center; min-height: 22px; padding: 2px 8px; border: 1px solid #d9c08b; background: #fff8ea; color: #915a04; font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 4px; }
.operating-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 4px 10px; border: 1px solid #d7e1e6; background: #f7fafb; color: #465159; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.operating-pill .inline-icon { width: 15px; height: 15px; }
.content-area { padding-top: 22px; }
.page-head { align-items: center; }
.page-head-card { display: flex; align-items: center; gap: 16px; min-width: 0; }
.page-head-icon { width: 58px; height: 58px; flex: 0 0 auto; display: grid; place-items: center; background: linear-gradient(180deg, #26343c, #1b2429); color: #f1b55a; border: 1px solid #31424b; box-shadow: 0 10px 20px rgba(23,32,37,.12); }
.page-head-icon .svg-icon { width: 26px; height: 26px; }
.page-head h1 { margin-top: 0; }
.dashboard-head { margin-bottom: 14px; }
.panel { border-top-width: 4px; }
.section-head h2 { display: inline-flex; align-items: center; gap: 8px; }
.hero-dashboard { border-radius: 8px; }
.metric-card { border-radius: 6px; }
.shortcut-card, .alert-list a, .data-table tbody tr, .role-list a, .location-list a, .module-admin-card, .admin-card { border-radius: 6px; }
.data-table tbody tr:hover { background: #fffaf1; }
.table-panel { border-top-color: var(--line-strong); }
.registry-form-panel, .module-roadmap, .permission-panel, .narrow-panel { border-top-color: var(--amber); }
.map-canvas, .map-layout .panel, .hero-dashboard, .panel, .topbar, .menu-toggle, .btn { border-radius: 6px; }
.filter-row input, .module-admin-card input, .form-grid input, .form-grid select, .form-grid textarea { border-radius: 4px; }
.login-body { background:
  radial-gradient(circle at 16% 18%, rgba(217,139,19,.20), transparent 28%),
  radial-gradient(circle at 84% 70%, rgba(217,139,19,.10), transparent 22%),
  repeating-radial-gradient(circle at 75% 60%, transparent 0 38px, rgba(255,255,255,.035) 39px 40px),
  linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
  linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
  linear-gradient(125deg, #121b20, #2a3941);
  background-size: auto, auto, auto, 38px 38px, 38px 38px, auto; }
@media (max-width: 900px) {
  .brand-copy small { max-width: none; }
  .topbar { padding: 10px 16px; }
  .topbar-actions { gap: 10px; }
  .topbar-actions time { min-width: auto; }
  .operating-pill { display: none; }
  .page-head { align-items: flex-start; }
  .page-head-card { align-items: flex-start; }
}

/* Etap 2: szczegółowe karty operacyjne i rozwinięty pulpit gotowości */
.record-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; padding: 22px 24px; background: linear-gradient(115deg, #fff, #f8fafb); border: 1px solid var(--line); border-left: 5px solid var(--amber); box-shadow: var(--shadow); border-radius: 7px; }
.record-hero-main { min-width: 0; }
.record-back { display: inline-flex; margin-bottom: 14px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.record-back:hover { color: var(--amber-dark); }
.record-title-row { display: flex; align-items: center; gap: 16px; }
.record-title-row h1 { margin: 2px 0 4px; font-size: 27px; line-height: 1.2; overflow-wrap: anywhere; }
.record-title-row p { margin: 0; color: var(--muted); max-width: 820px; }
.record-icon { width: 64px; height: 64px; }
.record-icon .svg-icon { width: 30px; height: 30px; }
.record-hero-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; flex: 0 0 auto; }
.record-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .65fr); gap: 18px; align-items: start; }
.record-main-column, .record-side-column { min-width: 0; }
.record-side-column { position: sticky; top: 90px; }
.detail-section { border-top-color: #c7d0d5; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.detail-grid-single { grid-template-columns: 1fr; }
.detail-item { min-height: 76px; padding: 13px 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.detail-item > span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; margin-bottom: 6px; }
.detail-item > strong { display: block; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }
.detail-wide { grid-column: 1 / -1; min-height: auto; }
.detail-text { font-weight: 500; line-height: 1.62; white-space: normal; }
.detail-empty { color: #a2abb0; font-weight: 500; }
.detail-relation { color: var(--info); border-bottom: 1px dotted currentColor; }
.detail-relation:hover { color: var(--amber-dark); }
.operational-panel { border-top-color: var(--amber); }
.operational-facts { display: grid; gap: 8px; }
.operational-fact { padding: 11px 12px; border-left: 4px solid #aeb8bd; background: var(--surface-soft); display: grid; gap: 3px; }
.operational-fact span { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; }
.operational-fact strong { font-size: 14px; }
.fact-good { border-left-color: var(--good); background: var(--good-soft); }
.fact-warning { border-left-color: var(--warning); background: var(--warning-soft); }
.fact-danger { border-left-color: var(--danger); background: var(--danger-soft); }
.files-panel { border-top-color: var(--info); }
.counter-badge { display: inline-grid; place-items: center; min-width: 29px; height: 29px; padding: 0 8px; background: var(--graphite); color: white; font-size: 11px; font-weight: 900; border-radius: 15px; }
.file-upload-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: end; padding: 12px; margin-bottom: 12px; background: #f5f8f9; border: 1px solid var(--line); }
.file-upload-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.file-upload-form input[type="file"] { width: 100%; min-height: 36px; padding: 5px; border: 1px solid var(--line-strong); background: white; font-size: 11px; }
.file-upload-form small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; }
.file-list { display: grid; gap: 7px; }
.file-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px; border: 1px solid var(--line); background: white; }
.file-symbol { width: 34px; height: 34px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; }
.file-symbol .svg-icon { width: 17px; height: 17px; }
.file-info { min-width: 0; display: grid; }
.file-info a { color: var(--info); font-size: 12px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-info small { color: var(--muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.icon-button { border: 0; width: 27px; height: 27px; display: grid; place-items: center; background: #edf0f2; color: var(--text); font-size: 18px; line-height: 1; }
.danger-icon { color: var(--danger); background: var(--danger-soft); }
.compact-empty { padding: 12px !important; }
.metadata-panel { border-top-color: #9da9af; }
.metadata-list { display: grid; gap: 0; margin: 0; }
.metadata-list div { display: grid; grid-template-columns: 125px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.metadata-list div:last-child { border-bottom: 0; }
.metadata-list dt { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.metadata-list dd { margin: 0; text-align: right; font-size: 11px; font-weight: 700; overflow-wrap: anywhere; }
.related-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.related-list a { min-height: 55px; padding: 10px 12px; border: 1px solid var(--line); display: grid; gap: 3px; background: var(--surface-soft); }
.related-list a:hover { border-color: var(--amber); background: var(--amber-soft); }
.related-list strong { font-size: 12px; }
.related-list span { color: var(--muted); font-size: 10px; }
.audit-timeline-panel { margin-top: 18px; border-top-color: var(--graphite); }
.audit-timeline { position: relative; display: grid; gap: 0; padding-left: 7px; }
.audit-timeline::before { content: ""; position: absolute; left: 12px; top: 6px; bottom: 6px; width: 2px; background: #d9dfe2; }
.audit-timeline article { position: relative; display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 10px; padding: 8px 0; }
.audit-dot { width: 12px; height: 12px; margin: 5px 0 0 0; border-radius: 50%; background: var(--amber); border: 3px solid white; box-shadow: 0 0 0 2px #d8b06e; z-index: 1; }
.audit-timeline article div { display: grid; gap: 2px; }
.audit-timeline article strong { font-size: 12px; }
.audit-timeline article small { color: var(--muted); font-size: 10px; }

.readiness-hero { min-height: 210px; }
.readiness-hero-copy { max-width: 850px; }
.readiness-hero-copy > p { max-width: 760px; }
.hero-status-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.hero-status-row span { padding: 6px 9px; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.055); color: #ccd6db; font-size: 10px; }
.hero-status-row b { color: white; font-size: 13px; margin-right: 3px; }
.readiness-ring-good { background: radial-gradient(circle at center, #223038 57%, transparent 58%), conic-gradient(var(--good) calc(var(--value) * 1%), rgba(255,255,255,.12) 0); }
.readiness-ring-warning { background: radial-gradient(circle at center, #223038 57%, transparent 58%), conic-gradient(var(--warning) calc(var(--value) * 1%), rgba(255,255,255,.12) 0); }
.readiness-ring-danger { background: radial-gradient(circle at center, #223038 57%, transparent 58%), conic-gradient(var(--danger) calc(var(--value) * 1%), rgba(255,255,255,.12) 0); }
.readiness-ring-neutral { background: radial-gradient(circle at center, #223038 57%, transparent 58%), conic-gradient(#7d8a91 calc(var(--value) * 1%), rgba(255,255,255,.12) 0); }
.readiness-domains-panel { border-top-color: var(--amber); }
.domain-score-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.domain-score-card { padding: 13px; border: 1px solid var(--line); background: white; display: grid; gap: 10px; }
.domain-score-card:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(25,34,40,.08); }
.domain-score-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.domain-score-head strong { font-size: 12px; }
.domain-score-head b { font-size: 20px; }
.domain-score-card small { color: var(--muted); font-size: 10px; }
.progress-track { height: 7px; background: #e8ecee; overflow: hidden; }
.progress-track span { display: block; height: 100%; background: #87949b; }
.domain-good .progress-track span, .coverage-good .progress-track span { background: var(--good); }
.domain-warning .progress-track span, .coverage-warning .progress-track span { background: var(--warning); }
.domain-danger .progress-track span, .coverage-danger .progress-track span { background: var(--danger); }
.dashboard-alert-columns { grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr); }
.operational-alert-list a { grid-template-columns: 105px minmax(0, 1fr) 100px; border-left: 4px solid #b8c1c6; }
.operational-alert-list .alert-entry-danger { border-left-color: var(--danger); background: var(--danger-soft); }
.operational-alert-list .alert-entry-warning { border-left-color: var(--warning); background: var(--warning-soft); }
.operational-alert-list time { display: grid; text-align: right; }
.operational-alert-list time small { font-size: 9px; font-weight: 700; }
.quality-list { display: grid; gap: 7px; }
.quality-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 43px; padding: 8px 10px; border: 1px solid var(--line); background: var(--surface-soft); }
.quality-list span { font-size: 11px; font-weight: 700; }
.quality-list strong { min-width: 32px; height: 28px; display: grid; place-items: center; padding: 0 8px; font-size: 12px; }
.quality-warning { color: var(--danger); background: var(--danger-soft); }
.quality-good { color: var(--good); background: var(--good-soft); }
.coverage-panel { border-top-color: var(--info); }
.coverage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.coverage-card { padding: 12px; border: 1px solid var(--line); background: white; display: grid; gap: 9px; }
.coverage-card:hover { border-color: var(--amber); }
.coverage-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.coverage-card-head strong { font-size: 11px; }
.coverage-card-head b { font-size: 13px; }
.coverage-card small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.coverage-danger { border-left: 4px solid var(--danger); }
.coverage-warning { border-left: 4px solid var(--warning); }
.coverage-good { border-left: 4px solid var(--good); }
.coverage-neutral { border-left: 4px solid #98a4aa; }
.shortcut-grid-wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1280px) {
  .record-layout { grid-template-columns: minmax(0, 1.35fr) minmax(315px, .65fr); }
  .domain-score-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coverage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shortcut-grid-wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
  .record-hero { align-items: flex-start; flex-direction: column; }
  .record-hero-actions { justify-content: flex-start; }
  .record-layout { grid-template-columns: 1fr; }
  .record-side-column { position: static; }
  .dashboard-alert-columns { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .record-title-row { align-items: flex-start; }
  .record-icon { width: 52px; height: 52px; }
  .detail-grid, .related-list { grid-template-columns: 1fr; }
  .detail-wide { grid-column: auto; }
  .file-upload-form { grid-template-columns: 1fr; }
  .file-upload-form small { grid-column: auto; }
  .domain-score-grid, .coverage-grid, .shortcut-grid-wide { grid-template-columns: 1fr; }
  .operational-alert-list a { grid-template-columns: 1fr; gap: 5px; }
  .operational-alert-list time { text-align: left; }
  .hero-status-row { display: grid; }
}


/* Modal forms */
body.modal-open { overflow: hidden; }
.app-modal { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; padding: 24px; }
.app-modal.is-open { display: flex; }
.modal-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(10, 16, 20, .72); backdrop-filter: blur(3px); cursor: default; animation: modalFade .16s ease-out; }
.modal-dialog { position: relative; z-index: 1; width: min(100%, 780px); max-height: min(92vh, 980px); background: var(--surface); border: 1px solid #aeb8be; border-top: 4px solid var(--amber); box-shadow: 0 30px 90px rgba(0,0,0,.38); display: flex; overflow: hidden; animation: modalRise .18s ease-out; }
.modal-dialog-wide { width: min(100%, 1040px); }
.modal-dialog-compact { width: min(100%, 620px); }
.modal-form { min-width: 0; width: 100%; max-height: inherit; display: flex; flex-direction: column; }
.modal-header { min-height: 88px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #fff, #f7f9fa); flex: 0 0 auto; }
.modal-title-group { min-width: 0; display: flex; align-items: center; gap: 14px; }
.modal-title-group h2 { margin: 1px 0 3px; font-size: 20px; line-height: 1.2; }
.modal-title-group p { margin: 0; color: var(--muted); font-size: 11px; }
.modal-title-icon { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; background: var(--graphite); color: #f2b95d; }
.modal-title-icon .svg-icon { width: 22px; height: 22px; }
.modal-close { width: 34px; height: 34px; min-width: 34px; display: grid; place-items: center; padding: 0; border: 1px solid #bd3d35; background: #d94b42; color: white; font-size: 24px; font-weight: 400; line-height: 1; box-shadow: none; }
.modal-close:hover { background: #bd342d; color: white; transform: none; }
.modal-body { min-height: 0; padding: 20px; overflow-y: auto; overscroll-behavior: contain; background: #f8fafb; }
.modal-form-grid { padding: 18px; border: 1px solid var(--line); background: white; }
.modal-footer { min-height: 68px; padding: 14px 20px; border-top: 1px solid var(--line); background: white; display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex: 0 0 auto; box-shadow: 0 -8px 18px rgba(24,33,38,.04); }
.file-add-button { margin-bottom: 12px; width: 100%; }
.file-modal-content { display: grid; gap: 14px; padding: 18px; border: 1px solid var(--line); background: white; }
.file-modal-content > label { display: grid; gap: 7px; font-size: 12px; font-weight: 700; }
.file-modal-content input[type="file"] { width: 100%; min-height: 44px; border: 1px solid var(--line-strong); background: white; padding: 8px; }
.upload-note { display: flex; align-items: flex-start; gap: 10px; padding: 11px; border: 1px solid #e4c67e; background: var(--warning-soft); color: #7d5107; font-size: 11px; }
.upload-note .svg-icon { width: 18px; height: 18px; flex: 0 0 auto; }
@keyframes modalFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes modalRise { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 760px) {
  .app-modal { padding: 0; align-items: stretch; }
  .modal-dialog, .modal-dialog-wide, .modal-dialog-compact { width: 100%; max-height: 100vh; height: 100vh; border-left: 0; border-right: 0; border-bottom: 0; }
  .modal-header { padding: 14px; min-height: 76px; }
  .modal-title-icon { width: 38px; height: 38px; }
  .modal-title-group p { display: none; }
  .modal-body { padding: 12px; }
  .modal-form-grid { grid-template-columns: 1fr; padding: 14px; }
  .modal-form-grid .form-wide { grid-column: auto; }
  .modal-footer { padding: 12px; }
  .modal-footer .btn { flex: 1; }
}

/* Etap 3A — zasoby i logistyka */
.registry-filter-row { flex-wrap: wrap; justify-content: flex-end; }
.registry-filter-row label { min-width: 150px; }
.registry-filter-row .filter-search { min-width: 250px; flex: 1 1 250px; }
.filter-row select { width: 100%; min-height: 40px; border: 1px solid var(--line-strong); background: white; padding: 8px 10px; border-radius: 4px; color: var(--text); outline: none; }
.filter-row select:focus { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(217,139,19,.13); }
.form-help { display: block; color: var(--muted); font-size: 10px; line-height: 1.35; font-weight: 500; }
.modal-form-sections { display: grid; gap: 14px; }
.modal-form-section { border: 1px solid var(--line); background: white; }
.modal-form-section-head { padding: 11px 15px; border-bottom: 1px solid var(--line); background: linear-gradient(180deg, #f8fafb, #f1f4f5); }
.modal-form-section-head h3 { margin: 0; font-size: 13px; }
.modal-form-section .modal-form-grid { border: 0; padding: 15px; }
.logistics-section { border-top-color: var(--info); }
.warehouse-tree { display: grid; gap: 7px; }
.warehouse-tree-row { position: relative; min-height: 64px; margin-left: calc(var(--tree-depth) * 28px); padding: 9px 10px; border: 1px solid var(--line); background: var(--surface-soft); display: grid; grid-template-columns: 28px minmax(0,1fr) auto auto; gap: 10px; align-items: center; }
.warehouse-tree-row::before { content: ""; position: absolute; left: -15px; top: -8px; bottom: 50%; width: 13px; border-left: 1px solid #c6ced2; border-bottom: 1px solid #c6ced2; display: var(--tree-line, block); }
.warehouse-tree-row[style*="--tree-depth: 0"]::before { display: none; }
.tree-icon { width: 28px; height: 28px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; }
.tree-icon .svg-icon { width: 16px; height: 16px; }
.tree-content { min-width: 0; display: grid; gap: 2px; }
.tree-content strong { font-size: 12px; }
.tree-content small { color: var(--muted); font-size: 10px; }
.tree-content p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.tree-actions { display: flex; gap: 5px; justify-content: flex-end; }
.component-summary { margin-bottom: 14px; padding: 12px 14px; border: 1px solid #cbd7dd; background: #f7fafb; display: grid; gap: 7px; }
.component-summary > div:first-child { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.component-summary span { color: var(--muted); font-size: 11px; font-weight: 700; }
.component-summary strong { font-size: 20px; }
.component-summary small { color: var(--muted); font-size: 10px; }
.component-table td:first-child { min-width: 220px; }
.table-subtext { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; font-weight: 400; }
.detail-item strong code, .data-table code.record-code { display: inline-flex; padding: 4px 7px; border: 1px solid #cbd4d9; background: #f1f4f5; color: #344149; font-size: 11px; font-weight: 800; letter-spacing: .04em; }
@media (max-width: 900px) {
  .warehouse-tree-row { margin-left: calc(min(var(--tree-depth), 2) * 18px); grid-template-columns: 28px minmax(0,1fr); }
  .warehouse-tree-row > .status-badge, .tree-actions { grid-column: 2; justify-self: start; }
}
@media (max-width: 760px) {
  .registry-filter-row label, .registry-filter-row .filter-search { min-width: 0; width: 100%; }
  .warehouse-tree-row { margin-left: 0; }
  .warehouse-tree-row::before { display: none; }
  .tree-actions { flex-wrap: wrap; }
}

/* Etap 3B — ruch zasobów */
.resource-subnav { margin-top: -4px; }
.section-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.movement-summary-grid, .movement-stock-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.movement-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.movement-summary-grid article, .movement-stock-grid article { background: white; border: 1px solid var(--line); border-top: 4px solid var(--info); padding: 13px 15px; box-shadow: 0 8px 18px rgba(25,34,40,.05); }
.movement-summary-grid span, .movement-stock-grid span { display: block; color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.movement-summary-grid strong, .movement-stock-grid strong { display: block; margin-top: 4px; font-size: 22px; }
.movement-stock-grid .stock-good { border-top-color: var(--good); }
.movement-stock-grid .stock-warning { border-top-color: var(--warning); }
.movement-stock-grid .stock-info { border-top-color: var(--amber); }
.movement-stock-box { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; padding: 10px; border: 1px solid #cbd7dd; background: #f7fafb; }
.movement-stock-box > div { padding: 8px 10px; border-left: 3px solid var(--info); background: white; }
.movement-stock-box span { display: block; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.movement-stock-box strong { display: block; margin-top: 3px; font-size: 14px; }
.movement-filter-row { max-width: 1150px; }
.movement-filter-row label { min-width: 130px; }
.movement-table td { vertical-align: middle; }
.movement-table td:nth-child(4) { min-width: 220px; }
.movement-table td:nth-child(6), .movement-table td:nth-child(7) { min-width: 170px; }
.movement-table .actions-cell, .movement-compact-table td:last-child { white-space: nowrap; }
.movement-detail-section { border-top-color: var(--amber); }
.movement-compact-table td:first-child { white-space: nowrap; }
.is-hidden { display: none !important; }
@media (max-width: 1050px) {
  .movement-stock-grid, .movement-stock-box { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .movement-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .movement-stock-grid, .movement-stock-box { grid-template-columns: 1fr; }
  .section-actions { width: 100%; justify-content: stretch; }
  .section-actions .btn { flex: 1; }
}

/* Etap 3C: utrzymanie, usterki i automatyczna gotowość */
.readonly-field { min-height: 40px; display: flex; align-items: center; padding: 8px 10px; border: 1px solid var(--line); background: #eef1f3; color: #4e5961; font-weight: 800; }
.maintenance-tabs { margin-top: -8px; }
.maintenance-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.maintenance-metrics .metric-card { display: block; }
.maintenance-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.maintenance-mini-card { position: relative; display: grid; gap: 4px; min-height: 112px; padding: 13px; border: 1px solid var(--line); border-left: 4px solid var(--good); background: var(--surface-soft); }
.maintenance-mini-card.is-warning { border-left-color: var(--warning); background: var(--warning-soft); }
.maintenance-mini-card.is-danger { border-left-color: var(--danger); background: var(--danger-soft); }
.maintenance-mini-card.is-muted { opacity: .58; border-left-color: #89949b; }
.maintenance-mini-card strong { font-size: 13px; }
.maintenance-mini-card span { color: var(--muted); font-size: 11px; }
.maintenance-mini-card b { font-size: 12px; }
.maintenance-mini-card a { margin-top: auto; color: var(--amber-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.compact-maintenance-table { margin-top: 5px; }
.readiness-detail-section { border-top-color: var(--info); }
.readiness-detail-score { display: flex; align-items: center; gap: 10px; }
.readiness-detail-score > strong { font-size: 24px; }
.readiness-score-ready > strong { color: var(--good); }
.readiness-score-limited > strong { color: var(--warning); }
.readiness-score-not_ready > strong { color: var(--danger); }
.readiness-reason-list { display: grid; gap: 8px; }
.readiness-reason { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px; border: 1px solid var(--line); background: var(--surface-soft); }
.readiness-reason > span { width: 28px; height: 28px; display: grid; place-items: center; }
.readiness-reason .svg-icon { width: 18px; height: 18px; }
.readiness-reason p { margin: 0; font-size: 12px; }
.readiness-reason-good { border-color: #a8d6ba; background: var(--good-soft); color: var(--good); }
.readiness-reason-warning { border-color: #e7c87d; background: var(--warning-soft); color: var(--warning); }
.readiness-reason-danger { border-color: #e7aaa5; background: var(--danger-soft); color: var(--danger); }
.defects-detail-section { border-top-color: var(--danger); }
.defect-list { display: grid; gap: 8px; }
.defect-list article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 12px; border: 1px solid var(--line); background: var(--surface-soft); }
.defect-list article > div:first-child { display: grid; gap: 3px; }
.defect-list code { width: fit-content; }
.defect-list small { color: var(--muted); }
.readiness-rule-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.readiness-rule-card { padding: 15px; border: 1px solid var(--line); border-top: 4px solid var(--info); background: var(--surface-soft); }
.rule-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.rule-card-head h3 { margin: 2px 0 0; font-size: 16px; }
.rule-chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.rule-chip-list span { padding: 4px 7px; border: 1px solid; font-size: 10px; font-weight: 800; }
.rule-on { color: var(--good); border-color: #a8d6ba !important; background: var(--good-soft); }
.rule-off { color: #7c878e; border-color: #cfd5d8 !important; background: #edf0f2; text-decoration: line-through; }
.rule-modal-list { display: grid; gap: 8px; }
.rule-modal-list label { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--line); background: var(--surface-soft); cursor: pointer; }
.rule-modal-list input { width: 19px; height: 19px; accent-color: var(--amber-dark); }
.movement-readiness-box { display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 16px; padding: 11px 13px; border: 1px solid #b9cbd8; background: #eef6fb; }
.movement-readiness-box > div { display: grid; }
.movement-readiness-box span { color: var(--muted); font-size: 10px; text-transform: uppercase; font-weight: 900; letter-spacing: .06em; }
.movement-readiness-box strong { color: var(--info); }
.movement-readiness-box p { margin: 0; color: #46545d; font-size: 11px; }
.movement-readiness-box.is-warning { border-color: #e0bf75; background: var(--warning-soft); }
.movement-readiness-box.is-warning strong { color: var(--warning); }
.movement-readiness-box.is-danger { border-color: #dc9b96; background: var(--danger-soft); }
.movement-readiness-box.is-danger strong { color: var(--danger); }
.emergency-override-section { border: 2px solid #d99b95; background: #fff6f5; }
.emergency-override-section .modal-form-section-head h3 { color: var(--danger); }
@media (max-width: 1180px) {
  .readiness-rule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maintenance-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .maintenance-metrics, .readiness-rule-grid, .maintenance-card-grid { grid-template-columns: 1fr; }
  .defect-list article { grid-template-columns: 1fr; }
  .movement-readiness-box { grid-template-columns: 1fr; }
}

/* Etap 3D — QR, mobilna obsługa i inwentaryzacja */
.inventory-member-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; }
.inventory-member-grid .form-check { border: 1px solid var(--line); background: var(--surface-soft); padding: 9px 10px; }
.inventory-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.inventory-hero .record-hero-actions { max-width: 620px; }
.inventory-scanner-panel { border-top-color: var(--amber); }
.inventory-scan-form { display: grid; grid-template-columns: minmax(260px, 2fr) 110px 180px minmax(180px, 1fr) auto; align-items: end; gap: 10px; }
.inventory-scan-form label { display: grid; gap: 5px; font-size: 11px; font-weight: 700; }
.inventory-scan-form input, .inventory-scan-form select { width: 100%; min-height: 42px; border: 1px solid var(--line-strong); background: white; padding: 8px 10px; }
.inventory-scan-form .btn { min-height: 42px; }
.inventory-series-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.qr-camera-box { margin-top: 14px; position: relative; min-height: 280px; overflow: hidden; background: #111a1f; color: white; display: grid; place-items: center; }
.qr-camera-box video { width: 100%; max-height: 480px; object-fit: cover; }
.qr-camera-guide { position: absolute; width: min(56vw, 250px); aspect-ratio: 1; border: 3px solid #f2b95d; box-shadow: 0 0 0 9999px rgba(0,0,0,.32); pointer-events: none; }
.qr-camera-box p { position: absolute; left: 15px; right: 15px; bottom: 12px; margin: 0; padding: 8px 10px; background: rgba(20,28,33,.82); text-align: center; font-size: 12px; }
.qr-camera-box .btn { position: absolute; right: 12px; top: 12px; }
.inventory-layout { grid-template-columns: minmax(0, 1.5fr) minmax(300px, .5fr); }
.table-progress { width: 100px; height: 7px; background: #e4e8ea; overflow: hidden; margin: 0 auto 4px; }
.table-progress span { display: block; height: 100%; background: var(--amber); }
.simple-list { display: grid; gap: 7px; }
.simple-list > div { border: 1px solid var(--line); background: var(--surface-soft); padding: 9px; display: grid; }
.simple-list small { color: var(--muted); }
.unknown-list { display: grid; gap: 8px; }
.unknown-list article { border: 1px solid var(--line); background: var(--surface-soft); padding: 10px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.unknown-list article > div { flex: 1 1 160px; display: grid; }
.unknown-list small { color: var(--muted); }
.qr-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.qr-toolbar select { min-height: 40px; border: 1px solid var(--line-strong); background: white; padding: 8px 10px; }
.qr-label-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.qr-label-card { background: white; border: 1px solid #aeb6bb; padding: 10px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; position: relative; min-height: 120px; }
.qr-label-card.is-not-selected { opacity: .38; }
.label-selector { position: absolute; right: 6px; top: 6px; z-index: 2; }
.qr-label-code { width: 86px; height: 86px; display: grid; place-items: center; }
.qr-label-code svg, .qr-identity-code svg { display: block; width: 100%; height: 100%; }
.qr-label-copy { min-width: 0; display: grid; gap: 5px; }
.qr-label-copy strong { font-size: 13px; overflow-wrap: anywhere; }
.qr-label-copy span { font-weight: 900; }
.qr-label-copy small { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.label-size-small .qr-label-card { min-height: 90px; padding: 7px; }
.label-size-small .qr-label-code { width: 66px; height: 66px; }
.label-size-large { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.label-size-large .qr-label-card { min-height: 170px; padding: 16px; }
.label-size-large .qr-label-code { width: 130px; height: 130px; }
.qr-identity-content { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px; align-items: center; }
.qr-identity-code { width: 120px; height: 120px; }
.qr-identity-content > div:last-child { display: grid; gap: 8px; }
.qr-identity-content code { width: fit-content; font-weight: 900; }
.mobile-resource-card { max-width: 760px; margin: 0 auto; display: grid; gap: 16px; }
.mobile-resource-head { background: linear-gradient(120deg, #19242a, #2b3941); color: white; padding: 20px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; border-left: 5px solid var(--amber); }
.mobile-resource-head h1 { margin: 3px 0; font-size: 25px; }
.mobile-resource-head p { margin: 0; color: #c7d2d7; }
.mobile-readiness-score { background: white; border: 1px solid var(--line); padding: 14px; display: flex; align-items: center; gap: 18px; }
.mobile-readiness-score strong { font-size: 34px; color: var(--amber-dark); }
.mobile-readiness-score span { color: var(--muted); }
.mobile-fact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mobile-fact-grid > div { background: white; border: 1px solid var(--line); padding: 12px; display: grid; gap: 3px; }
.mobile-fact-grid span { color: var(--muted); font-size: 11px; }
.mobile-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }

@media print {
  body.printing-qr-labels .sidebar,
  body.printing-qr-labels .topbar,
  body.printing-qr-labels .app-footer,
  body.printing-qr-labels .page-head,
  body.printing-qr-labels .subnav,
  body.printing-qr-labels .qr-toolbar,
  body.printing-qr-labels .flash-stack { display: none !important; }
  body.printing-qr-labels .app-shell { display: block; }
  body.printing-qr-labels .content-area { max-width: none; padding: 0; }
  body.printing-qr-labels .qr-label-grid { display: grid; gap: 3mm; }
  body.printing-qr-labels .qr-label-card { break-inside: avoid; box-shadow: none; }
  body.printing-qr-labels .qr-label-card.is-not-selected { display: none; }
  body.printing-qr-labels .label-selector { display: none; }
  body.printing-qr-labels .label-size-small { grid-template-columns: repeat(3, 50mm); }
  body.printing-qr-labels .label-size-small .qr-label-card { width: 50mm; height: 30mm; min-height: 0; }
  body.printing-qr-labels .label-size-medium { grid-template-columns: repeat(2, 70mm); }
  body.printing-qr-labels .label-size-medium .qr-label-card { width: 70mm; height: 40mm; min-height: 0; }
  body.printing-qr-labels .label-size-large { grid-template-columns: 100mm; }
  body.printing-qr-labels .label-size-large .qr-label-card { width: 100mm; height: 60mm; min-height: 0; }
}

@media (max-width: 1180px) {
  .inventory-scan-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scan-code-field, .scan-notes-field { grid-column: 1 / -1; }
  .qr-label-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .inventory-member-grid, .inventory-metric-grid, .mobile-fact-grid, .mobile-action-grid { grid-template-columns: 1fr; }
  .inventory-layout { grid-template-columns: 1fr; }
  .inventory-scan-form { grid-template-columns: 1fr; }
  .scan-code-field, .scan-notes-field { grid-column: auto; }
  .qr-toolbar { align-items: stretch; flex-direction: column; }
  .qr-label-grid { grid-template-columns: 1fr; }
  .qr-label-card { min-height: 110px; }
  .mobile-resource-head { grid-template-columns: auto minmax(0, 1fr); }
  .mobile-resource-head > .status-badge { grid-column: 1 / -1; width: 100%; }
  .qr-identity-content { grid-template-columns: 90px minmax(0, 1fr); }
  .qr-identity-code { width: 90px; height: 90px; }
}

/* ETAP 4 — OBIEKTY OCHRONNE I INFRASTRUKTURA */
.object-subnav { margin-top: -6px; }
.button-row { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.subsection-title { margin: 22px 0 10px; font-size: 15px; }
.readiness-detail-section { border-top-color: var(--amber); }
.readiness-score-badge { min-width: 72px; min-height: 46px; display: inline-grid; place-items: center; padding: 7px 12px; border: 1px solid; font-size: 20px; font-weight: 900; }
.readiness-score-badge.tone-ready { color: var(--good); border-color: #91c6a7; background: var(--good-soft); }
.readiness-score-badge.tone-limited { color: var(--warning); border-color: #dfbd6b; background: var(--warning-soft); }
.readiness-score-badge.tone-not_ready { color: var(--danger); border-color: #e0a09b; background: var(--danger-soft); }
.readiness-score-badge.tone-unknown { color: var(--muted); border-color: var(--line-strong); background: var(--surface-soft); }
.readiness-detail-grid { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 22px; align-items: center; }
.readiness-gauge { display: grid; place-items: center; }
.readiness-gauge-circle { --readiness-value: 0; width: 145px; height: 145px; border-radius: 50%; display: grid; place-items: center; align-content: center; background: radial-gradient(circle at center, white 58%, transparent 59%), conic-gradient(var(--amber) calc(var(--readiness-value) * 1%), #e8ecef 0); border: 1px solid var(--line); }
.readiness-gauge-circle strong { font-size: 30px; }
.readiness-gauge-circle span { max-width: 100px; text-align: center; color: var(--muted); font-size: 11px; }
.readiness-reasons { display: grid; gap: 7px; }
.readiness-reasons h3 { margin: 0 0 4px; }
.readiness-reason { display: flex; align-items: flex-start; gap: 9px; padding: 9px 11px; border: 1px solid var(--line); background: var(--surface-soft); }
.readiness-reason .svg-icon { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 1px; }
.reason-warning { border-left: 4px solid var(--warning); }
.reason-danger { border-left: 4px solid var(--danger); }
.readiness-block-callout { margin-top: 16px; display: flex; flex-direction: column; gap: 3px; }
.activation-list { display: grid; gap: 8px; }
.activation-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 14px; border: 1px solid var(--line); background: var(--surface-soft); }
.activation-card:hover { border-color: var(--amber); background: var(--amber-soft); }
.activation-card div { min-width: 0; display: grid; gap: 2px; }
.activation-card strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activation-card small { color: var(--muted); }
.activation-checklist { display: grid; gap: 9px; }
.activation-check-item { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(360px, 1.2fr); gap: 16px; align-items: center; padding: 13px; border: 1px solid var(--line); border-left: 5px solid var(--line-strong); background: white; }
.activation-check-item.status-done { border-left-color: var(--good); background: var(--good-soft); }
.activation-check-item.status-blocked { border-left-color: var(--danger); background: var(--danger-soft); }
.activation-check-item.status-not_applicable { border-left-color: var(--muted); opacity: .75; }
.activation-check-item > div { display: grid; gap: 3px; }
.activation-check-item small { color: var(--muted); }
.activation-item-form { display: grid; grid-template-columns: 145px minmax(140px, 1fr) auto; gap: 8px; align-items: center; }
.activation-item-form select, .activation-item-form input { width: 100%; min-height: 35px; border: 1px solid var(--line-strong); padding: 6px 8px; }
.override-warning { padding: 12px; border: 1px solid #e0a09b; background: var(--danger-soft); }
.map-control-panel { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.map-filters { display: flex; gap: 10px; flex-wrap: wrap; }
.map-filters label { display: grid; gap: 5px; font-size: 11px; font-weight: 800; }
.map-filters select { min-width: 175px; min-height: 38px; border: 1px solid var(--line-strong); background: white; padding: 7px 9px; }
.map-legend { display: flex; gap: 12px; flex-wrap: wrap; font-size: 11px; }
.map-legend span { display: inline-flex; align-items: center; gap: 5px; }
.map-dot { width: 11px; height: 11px; border-radius: 50%; display: inline-block; flex: 0 0 auto; border: 2px solid rgba(255,255,255,.75); box-shadow: 0 0 0 1px rgba(30,40,45,.24); }
.dot-ready { background: var(--good); }
.dot-limited { background: var(--warning); }
.dot-not_ready { background: var(--danger); }
.dot-unknown { background: #75818a; }
.map-stage-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: 18px; align-items: start; }
.operational-map-panel { padding: 0; overflow: hidden; }
.operational-coordinate-map { position: relative; min-height: 620px; overflow: hidden; background: #e9edef; background-image: radial-gradient(circle at 18% 20%, rgba(217,139,19,.10), transparent 24%), repeating-radial-gradient(circle at 50% 50%, transparent 0 58px, rgba(40,60,68,.08) 59px 60px), linear-gradient(rgba(42,60,68,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(42,60,68,.08) 1px, transparent 1px); background-size: auto, auto, 42px 42px, 42px 42px; }
.map-grid-lines::before, .map-grid-lines::after { content: ""; position: absolute; pointer-events: none; }
.map-grid-lines::before { inset: 12% 8%; border: 1px dashed rgba(44,62,70,.25); }
.map-grid-lines::after { left: 50%; top: 5%; bottom: 5%; border-left: 1px solid rgba(44,62,70,.16); }
.operational-map-marker { position: absolute; transform: translate(-50%, -50%); z-index: 2; }
.operational-map-marker > span { width: 29px; height: 29px; border-radius: 50% 50% 50% 5px; transform: rotate(-45deg); display: grid; place-items: center; border: 2px solid white; color: white; font-size: 10px; font-weight: 900; box-shadow: 0 4px 10px rgba(20,30,35,.28); }
.operational-map-marker > span::first-letter {  }
.operational-map-marker > div { display: none; position: absolute; left: 20px; top: 15px; width: 220px; padding: 9px 11px; background: white; border: 1px solid var(--line-strong); box-shadow: var(--shadow); z-index: 5; }
.operational-map-marker:hover > div, .operational-map-marker:focus > div { display: grid; gap: 2px; }
.operational-map-marker small { color: var(--muted); }
.marker-ready > span { background: var(--good); }
.marker-limited > span { background: var(--warning); }
.marker-not_ready > span { background: var(--danger); }
.marker-unknown > span { background: #75818a; }
.marker-warehouse > span { border-radius: 3px; transform: none; background: var(--graphite); color: #f2b95d; }
.map-note { display: block; padding: 10px 14px; color: var(--muted); background: white; border-top: 1px solid var(--line); }
.map-side-list { max-height: 690px; overflow: hidden; display: flex; flex-direction: column; }
.map-point-list { overflow-y: auto; display: grid; gap: 6px; }
.map-point-list-item { display: flex; align-items: flex-start; gap: 9px; padding: 9px; border: 1px solid var(--line); }
.map-point-list-item:hover { border-color: var(--amber); background: var(--amber-soft); }
.map-point-list-item div { display: grid; min-width: 0; }
.map-point-list-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.map-point-list-item small { color: var(--muted); }
.operational-coordinate-map .map-empty { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%, -50%); }
.is-hidden { display: none !important; }
@media (max-width: 1050px) {
  .map-stage-layout { grid-template-columns: 1fr; }
  .map-side-list { max-height: none; }
  .operational-coordinate-map { min-height: 520px; }
  .activation-check-item { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .readiness-detail-grid { grid-template-columns: 1fr; }
  .map-control-panel { align-items: stretch; flex-direction: column; }
  .map-filters { display: grid; grid-template-columns: 1fr; }
  .map-filters select { width: 100%; }
  .operational-coordinate-map { min-height: 440px; }
  .activation-item-form { grid-template-columns: 1fr; }
}


/* Etap 4: interaktywna mapa operacyjna */
.operational-coordinate-map { cursor: grab; touch-action: none; user-select: none; isolation: isolate; }
.operational-coordinate-map.is-dragging { cursor: grabbing; }
.map-tile-layer, .map-marker-layer { position: absolute; inset: 0; overflow: hidden; }
.map-tile-layer { z-index: 0; background: rgba(233,237,239,.78); }
.map-tile-layer img { position: absolute; width: 256px; height: 256px; max-width: none; pointer-events: none; }
.map-grid-lines { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .22; }
.map-marker-layer { z-index: 3; pointer-events: none; }
.operational-map-marker { position: absolute; transform: translate(-50%, -50%); z-index: 2; pointer-events: auto; }
.operational-map-marker > span { width: 31px; height: 31px; border-radius: 50%; transform: none; display: grid; place-items: center; border: 2px solid white; color: white; font-size: 10px; font-weight: 900; box-shadow: 0 4px 10px rgba(20,30,35,.28); }
.operational-map-marker > span::first-letter { }
.marker-warehouse > span { border-radius: 4px; transform: none; background: var(--graphite); color: #f2b95d; }
.map-controls { position: absolute; top: 12px; right: 12px; z-index: 8; display: grid; gap: 4px; }
.map-controls button { width: 38px; height: 38px; border: 1px solid var(--line-strong); background: rgba(255,255,255,.96); color: var(--graphite); display: grid; place-items: center; font-size: 20px; font-weight: 800; box-shadow: 0 4px 10px rgba(20,30,35,.14); }
.map-controls button:hover { border-color: var(--amber); color: var(--amber-dark); }
.map-controls .svg-icon { width: 17px; height: 17px; }
.map-attribution { position: absolute; right: 7px; bottom: 5px; z-index: 7; padding: 2px 5px; background: rgba(255,255,255,.86); color: #536069; font-size: 9px; pointer-events: none; }
.operational-coordinate-map .map-empty { z-index: 6; pointer-events: none; }

/* ETAP 5 — siły, zespoły, zdolności i współdziałanie */
.entity-subnav { margin-bottom: 18px; }
.force-score-wrap { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.force-readiness-panel .progress-track { height:10px; margin:2px 0 16px; overflow:hidden; border-radius:999px; background:rgba(120,130,145,.16); }
.force-readiness-panel .progress-track span { display:block; height:100%; background:var(--amber); }
.readiness-reasons-list { display:grid; gap:8px; }
.force-readiness-panel .readiness-reason { display:flex; align-items:flex-start; gap:10px; padding:10px 12px; border:1px solid rgba(218,151,29,.28); background:rgba(218,151,29,.07); }
.force-readiness-panel .readiness-reason > span { display:grid; place-items:center; flex:0 0 22px; width:22px; height:22px; font-weight:800; border-radius:50%; background:rgba(218,151,29,.18); }
.force-readiness-panel .readiness-reason p { margin:1px 0 0; }
.force-readiness-panel .readiness-reason.is-positive { border-color:rgba(49,145,93,.28); background:rgba(49,145,93,.07); }
.force-readiness-panel .readiness-reason.is-positive > span { background:rgba(49,145,93,.18); }
.force-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.force-card { display:flex; flex-direction:column; gap:12px; min-width:0; padding:16px; border:1px solid var(--line); background:var(--surface-soft); }
.force-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.force-card-head > div { min-width:0; }
.force-card-head strong { display:block; font-size:1rem; }
.force-card-head small, .table-subtext { display:block; margin-top:3px; color:var(--muted); }
.force-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin:0; }
.force-card dl div { min-width:0; }
.force-card dt { color:var(--muted); font-size:.78rem; }
.force-card dd { margin:2px 0 0; font-weight:650; overflow-wrap:anywhere; }
.force-card-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
.contact-check-list { display:grid; gap:8px; }
.contact-check-list article { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 12px; border:1px solid var(--line); background:var(--surface-soft); }
.contact-check-list article > div { min-width:0; }
.contact-check-list strong, .contact-check-list small { display:block; }
.contact-check-list small { margin-top:3px; color:var(--muted); }
.agreement-party-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.agreement-party-row:last-child { border-bottom:0; }
.agreement-party-row > a { display:flex; flex-direction:column; min-width:0; text-decoration:none; }
.agreement-party-row > a span { color:var(--muted); font-size:.82rem; }
.score-inline { white-space:nowrap; font-weight:750; color:var(--muted); }
.force-readiness-panel .readiness-score-badge { min-width:58px; text-align:center; padding:7px 10px; border:1px solid var(--line); background:var(--surface-soft); }
.force-readiness-panel .readiness-score-badge.tone-ready { color:#197249; }
.force-readiness-panel .readiness-score-badge.tone-limited { color:#9a6400; }
.force-readiness-panel .readiness-score-badge.tone-not_ready { color:#a52c2c; }
@media (max-width:900px) { .force-card-grid { grid-template-columns:1fr; } }
@media (max-width:620px) {
  .force-card dl { grid-template-columns:1fr; }
  .agreement-party-row { grid-template-columns:1fr auto; }
  .agreement-party-row form { grid-column:2; grid-row:1; }
  .force-score-wrap { justify-content:flex-start; }
}

/* ===== ETAP 6: PLANOWANIE, SCENARIUSZE I PROCEDURY ===== */
.planning-subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.planning-subnav a{padding:10px 14px;border:1px solid var(--line,#d8dee6);background:#fff;color:#27313c;text-decoration:none;font-weight:700}.planning-subnav a.is-active{background:linear-gradient(135deg,#c97913,#e49b27);border-color:#b56a0f;color:#fff}.planning-metrics{margin-bottom:16px}.planning-big-score{font-size:30px;line-height:1;color:#9a5208}.planning-detail{margin-top:16px}.planning-list{display:grid;gap:8px}.planning-list>a,.planning-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border:1px solid #e2e6ea;background:#fff;text-decoration:none;color:inherit}.planning-list>a:hover,.planning-list-row:hover{border-color:#d58a28;background:#fffaf2}.planning-list strong,.planning-list-row strong{display:block}.planning-list small,.planning-list-row small{display:block;color:#69727d;margin-top:3px}.planning-list em,.planning-list-row em{font-style:normal;font-weight:800;color:#4c5661}.planning-list-row>a{min-width:0;color:inherit;text-decoration:none}.fact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px}.fact-grid>div{border:1px solid #e3e7eb;background:#fafbfc;padding:12px}.fact-grid span{display:block;color:#6f7780;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.fact-grid strong{display:block;font-size:22px;margin-top:4px}.planning-version-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start;margin-top:16px}.planning-version-list{display:grid;gap:8px;position:sticky;top:86px}.planning-version-list>a{display:grid;gap:5px;border:1px solid #e0e4e8;padding:12px;text-decoration:none;color:inherit;background:#fff}.planning-version-list>a.is-active{border-left:4px solid #d98216;background:#fff8ee}.planning-version-list small{color:#6c7580}.planning-version-content{display:grid;gap:16px;min-width:0}.detail-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.detail-sections section{border:1px solid #e4e7eb;padding:14px;background:#fbfcfd}.detail-sections h3{margin-top:0}.procedure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.procedure-card{display:grid;gap:7px;border:1px solid #e1e5e9;padding:14px;text-decoration:none;color:inherit;background:#fff}.procedure-card:hover{border-color:#cf7b12;background:#fff9f0}.procedure-card code{color:#9b570b;font-weight:800}.procedure-card span,.procedure-card small{color:#6c7580}.procedure-detail{margin-top:16px}.procedure-steps{list-style:none;padding:0;margin:0;display:grid;gap:10px}.procedure-steps>li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start;border:1px solid #e0e5e9;padding:14px;background:#fff}.procedure-steps>li>span{display:grid;place-items:center;width:36px;height:36px;background:#f2d4a7;color:#713c00;font-weight:900}.procedure-steps p{margin:5px 0;color:#4f5862}.procedure-steps small{color:#6e7680}.reason-list{margin:10px 0;padding-left:20px;display:grid;gap:7px}.reason-list li::marker{color:#ce7710}.planning-print{max-width:190mm;margin:0 auto;background:#fff;color:#111;padding:14mm;font:11pt/1.45 Arial,sans-serif}.planning-print header{border-bottom:2px solid #111;padding-bottom:10px;margin-bottom:14px}.planning-print header h1{font-size:22pt;margin:5px 0}.planning-print h2{font-size:15pt;border-bottom:1px solid #bbb;padding-bottom:4px;margin-top:18px}.planning-print h3{font-size:12pt;margin-bottom:3px}.planning-print-score{display:flex;justify-content:space-between;border:2px solid #111;padding:10px;margin:12px 0}.planning-print footer{display:flex;justify-content:space-between;border-top:1px solid #aaa;margin-top:20px;padding-top:8px;font-size:9pt}.modal-window.modal-large{width:min(980px,calc(100vw - 32px))}
@media(max-width:1050px){.procedure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-version-layout{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:760px){.planning-version-layout{grid-template-columns:1fr}.planning-version-list{position:static}.procedure-grid,.detail-sections,.fact-grid{grid-template-columns:1fr}.procedure-steps>li{grid-template-columns:36px minmax(0,1fr)}.procedure-steps>li>.inline-actions{grid-column:1/-1}.planning-list>a,.planning-list-row{grid-template-columns:auto minmax(0,1fr) auto}.planning-list-row form{grid-column:1/-1}.planning-subnav{display:grid;grid-template-columns:1fr 1fr}.planning-big-score{font-size:24px}}
@media print{body:has(.planning-print) .sidebar,body:has(.planning-print) .topbar,body:has(.planning-print) .app-footer{display:none!important}body:has(.planning-print) .main-area,body:has(.planning-print) .content-area{margin:0!important;padding:0!important;width:100%!important}.planning-print{padding:0;max-width:none}.planning-print .btn{display:none!important}}

/* ETAP 6 — samodzielny wydruk wersji planu */
.planning-print-body{margin:0;background:#fff;color:#111827;font-family:Arial,Helvetica,sans-serif}
.planning-print-body .planning-print{width:min(190mm,calc(100% - 24px));margin:12px auto;padding:0;background:#fff;color:#111827}
.planning-print-body .planning-print header{border-bottom:2px solid #c97912;padding-bottom:14px;margin-bottom:18px}
.planning-print-body .planning-print header span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}
.planning-print-body .planning-print h1{margin:6px 0 4px;font-size:26px}
.planning-print-body .planning-print h2{font-size:17px;border-bottom:1px solid #d1d5db;padding-bottom:5px;margin:20px 0 8px}
.planning-print-body .planning-print h3{font-size:14px;margin:12px 0 4px}
.planning-print-body .planning-print p,.planning-print-body .planning-print li{font-size:12px;line-height:1.45}
.planning-print-body .planning-print-score{display:flex;justify-content:space-between;gap:16px;padding:10px 12px;border:1px solid #d1d5db;background:#fff7ed;margin-bottom:18px}
.planning-print-body .planning-print footer{display:flex;justify-content:space-between;border-top:1px solid #d1d5db;margin-top:24px;padding-top:8px;font-size:10px;color:#6b7280}
@media print{.planning-print-body .planning-print{width:auto;margin:0;padding:0}.planning-print-body .planning-print section{break-inside:avoid}.planning-print-body .planning-print h2,.planning-print-body .planning-print h3{break-after:avoid}}


/* Etap 7 — zdarzenia i sztab operacyjny */
.modal-form > form { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; overflow: hidden; }
.incident-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 12px; }
.incident-card { display: flex; min-height: 180px; flex-direction: column; gap: 9px; padding: 16px; border: 1px solid var(--line); border-left: 4px solid var(--amber); background: var(--surface); color: var(--text); text-decoration: none; }
.incident-card:hover { border-color: #89949a; background: #fbfcfc; }
.incident-card > div,.incident-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.incident-card h3 { margin: 0; font-size: 17px; }
.incident-card p { margin: 0; color: var(--muted); flex: 1 1 auto; }
.incident-card code { color: var(--muted); }
.incident-card footer { padding-top: 10px; border-top: 1px solid var(--line); }
.operations-feed { display: grid; gap: 8px; }
.operations-feed a { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--line); color: var(--text); text-decoration: none; }
.operations-feed a:last-child { border-bottom: 0; }
.operations-feed strong,.operations-feed small { min-width: 0; }
.operations-feed small { color: var(--muted); }
.incident-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 24px; align-items: start; padding: 22px; border: 1px solid var(--line); border-top: 4px solid var(--amber); background: linear-gradient(135deg,#fff,#f5f7f8); }
.incident-hero h1 { margin: 4px 0 8px; }
.incident-hero p { margin: 0; max-width: 860px; color: var(--muted); }
.incident-metrics { display: grid; grid-template-columns: repeat(4,minmax(110px,1fr)); gap: 9px; min-width: 470px; }
.incident-metrics div { padding: 12px; border: 1px solid var(--line); background: #fff; }
.incident-metrics span,.incident-metrics small { display: block; color: var(--muted); font-size: 12px; }
.incident-metrics strong { display: block; margin: 4px 0; font-size: 21px; }
.staff-list { display: grid; gap: 8px; }
.staff-row { display: grid; grid-template-columns: minmax(160px,1fr) minmax(180px,1.2fr) auto auto; gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid var(--line); background: #fff; }
.staff-row small { color: var(--muted); }
.incident-timeline { position: relative; display: grid; gap: 12px; padding-left: 20px; }
.incident-timeline::before { content: ''; position: absolute; left: 6px; top: 5px; bottom: 5px; width: 2px; background: var(--line); }
.incident-log-entry { position: relative; padding: 14px 15px; border: 1px solid var(--line); background: #fff; }
.incident-log-entry::before { content: ''; position: absolute; left: -20px; top: 18px; width: 10px; height: 10px; border: 2px solid #fff; background: var(--amber); box-shadow: 0 0 0 1px var(--line); border-radius: 50%; }
.incident-log-entry > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 8px; }
.incident-log-entry h3 { margin: 0; font-size: 15px; }
.incident-log-entry p { margin: 8px 0 0; white-space: pre-wrap; }
.incident-log-entry footer { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 10px; color: var(--muted); font-size: 12px; }
.incident-procedures { display: grid; gap: 12px; }
.incident-procedure { border: 1px solid var(--line); background: #fff; }
.incident-procedure > header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: #f6f8f9; }
.incident-procedure h3 { margin: 0; font-size: 15px; }
.incident-procedure .data-table { margin: 0; }
.assignment-reference.is-hidden { display: none; }
.incident-command-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.incident-command-card { padding: 14px; border: 1px solid var(--line); background: #fff; }
.incident-command-card h3 { margin: 0 0 9px; font-size: 14px; }
.incident-report-summary { display: flex; flex-wrap: wrap; gap: 7px; }
.marker-incident > span { transform: scale(1.12); border-width: 3px; }
.marker-incident > div { border-left: 3px solid var(--danger); }
@media (max-width: 980px) {
  .incident-hero { grid-template-columns: 1fr; }
  .incident-metrics { min-width: 0; }
  .staff-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .incident-metrics { grid-template-columns: repeat(2,1fr); }
  .operations-feed a { grid-template-columns: 1fr; gap: 3px; }
  .staff-row,.incident-command-grid { grid-template-columns: 1fr; }
  .incident-log-entry > header { flex-direction: column; }
}

/* Etap 8 — ewakuacja i ochrona ludności */
.evacuation-flow { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); gap: 10px; align-items: stretch; }
.evacuation-flow article { display: flex; min-width: 0; flex-direction: column; justify-content: center; gap: 5px; padding: 15px; border: 1px solid var(--line); border-top: 3px solid var(--amber); background: var(--surface-soft); }
.evacuation-flow article span,.evacuation-flow article small { color: var(--muted); }
.evacuation-flow article span { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.evacuation-flow article strong { overflow-wrap: anywhere; }
.evacuation-flow-arrow { display: grid; place-items: center; color: var(--amber-dark); font-size: 24px; font-weight: 900; }
.form-note { padding: 11px 13px; border: 1px solid rgba(201,121,18,.32); background: rgba(201,121,18,.08); color: var(--text); font-size: 13px; }
.marker-evacuation > span { border-width: 3px; background: var(--danger); }
.marker-evacuation-point > span { background: var(--amber-dark); }
@media (max-width: 900px) {
  .evacuation-flow { grid-template-columns: 1fr; }
  .evacuation-flow-arrow { transform: rotate(90deg); min-height: 22px; }
}

/* Etap 9 — łączność i komunikaty */
.communication-message-body {
    padding: 18px 20px;
    border: 1px solid var(--line, #d9dde3);
    background: rgba(255,255,255,.72);
    font-size: 1.02rem;
    line-height: 1.65;
    white-space: normal;
}
.stacked-actions { display: grid; gap: 9px; }
.btn-block { width: 100%; justify-content: center; }
.table-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.section-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.inline-form { display: inline-flex; margin: 0; }
@media (max-width: 760px) {
    .communication-message-body { padding: 14px; }
    .table-actions, .section-actions { justify-content: flex-start; }
}

/* ===== ETAP 12: SPÓJNY INTERFEJS, SPRAWOZDAWCZOŚĆ I VERTIS OLiOC 1.0 ===== */
/* Jedna belka zakładek dla wszystkich modułów — zastępuje rozbieżne subnav/module-subnav/planning-subnav. */
.subnav,
.module-subnav,
.planning-subnav {
    display: flex;
    align-items: stretch;
    gap: 5px;
    flex-wrap: wrap;
    width: 100%;
    margin: 0 0 18px;
    padding: 6px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--amber);
    border-radius: 8px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 22px rgba(31,37,41,.055);
}
.subnav a,
.module-subnav a,
.planning-subnav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: transparent;
    color: #59646c;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.subnav a:hover,
.module-subnav a:hover,
.planning-subnav a:hover {
    border-color: #d9dfe3;
    background: #f3f5f6;
    color: var(--graphite);
}
.subnav a.is-active,
.module-subnav a.is-active,
.planning-subnav a.is-active {
    border-color: #b86b0d;
    background: linear-gradient(135deg,#bf7010,#df941f);
    color: #fff;
    box-shadow: inset 0 -1px 0 rgba(0,0,0,.12);
}
.detail-subnav { margin-top: 14px; }

/* Stabilizacja górnego paska i nagłówków przy długich nazwach modułów. */
.topbar { gap: 16px; }
.topbar-left,
.system-title { min-width: 0; }
.system-title strong,
.system-title span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-actions { flex: 0 0 auto; }
.page-head-card { min-width: 0; }
.page-head-card > div:last-child { min-width: 0; }
.page-head h1 { overflow-wrap: anywhere; }
.record-hero-actions { max-width: min(100%, 420px); }
.record-hero-actions .btn,
.record-hero-actions form { max-width: 100%; }

/* Sprawozdawczość */
.reporting-metrics { margin-bottom: 18px; }
.reporting-summary-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); gap: 16px; margin-bottom: 16px; }
.reporting-deadline-list { display: grid; gap: 8px; }
.reporting-deadline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-left: 4px solid #aeb8be;
    background: #fff;
    color: var(--text);
    text-decoration: none;
}
.reporting-deadline:hover { border-color: #cc8121; background: #fffaf2; }
.reporting-deadline.is-warning { border-left-color: var(--warning); }
.reporting-deadline.is-danger { border-left-color: var(--danger); background: #fff8f7; }
.reporting-deadline > div { min-width: 0; }
.reporting-deadline code,
.reporting-deadline strong,
.reporting-deadline small { display: block; }
.reporting-deadline strong { margin: 3px 0; overflow-wrap: anywhere; }
.reporting-deadline small { color: var(--muted); }
.reporting-deadline time { min-width: 105px; text-align: right; font-weight: 800; }
.reporting-deadline time small { margin-top: 3px; font-weight: 600; }
.reporting-section-progress { display: grid; gap: 8px; }
.reporting-section-progress > div { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 5px 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.reporting-section-progress > div:last-child { border-bottom: 0; }
.reporting-section-progress small { grid-column: 2; color: var(--muted); }
.reporting-snapshot-grid { display: grid; grid-template-columns: repeat(6,minmax(120px,1fr)); gap: 10px; }
.reporting-snapshot-grid > div { padding: 13px; border: 1px solid var(--line); border-top: 3px solid var(--amber); background: var(--surface-soft); }
.reporting-snapshot-grid span,
.reporting-snapshot-grid small { display: block; color: var(--muted); }
.reporting-snapshot-grid strong { display: block; margin: 5px 0; font-size: 20px; }
.reporting-sections { display: grid; gap: 14px; }
.reporting-section-card { overflow: hidden; }
.reporting-section-content { padding: 4px 20px 20px; color: #303940; line-height: 1.65; white-space: normal; }
.reporting-long-text { min-height: 320px; }
.reporting-history article p { margin: 5px 0 0; color: var(--muted); }
.reporting-print table { width: 100%; border-collapse: collapse; }
.reporting-print th,
.reporting-print td { padding: 6px 8px; border: 1px solid #cfd4d8; text-align: left; vertical-align: top; }
.status-muted { color: #69747b; border-color: #cfd5d9; background: #f1f3f4; }

/* Diagnostyka wydania 1.0 */
.system-health-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.system-health-item { padding: 14px; border: 1px solid var(--line); background: var(--surface-soft); }
.system-health-item span,
.system-health-item small { display: block; color: var(--muted); }
.system-health-item strong { display: block; margin: 5px 0; overflow-wrap: anywhere; }
.system-health-item.is-good { border-top: 3px solid var(--good); }
.system-health-item.is-warning { border-top: 3px solid var(--warning); }
.system-health-item.is-danger { border-top: 3px solid var(--danger); }

@media (max-width: 1100px) {
    .reporting-snapshot-grid { grid-template-columns: repeat(3,minmax(130px,1fr)); }
    .system-health-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .subnav,
    .module-subnav,
    .planning-subnav {
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scrollbar-width: thin;
        padding-bottom: 7px;
    }
    .subnav a,
    .module-subnav a,
    .planning-subnav a { flex: 0 0 auto; min-width: max-content; }
    .topbar-actions { gap: 8px; }
    .operating-pill { display: none; }
    .reporting-summary-grid { grid-template-columns: 1fr; }
    .reporting-snapshot-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .reporting-deadline { align-items: flex-start; }
    .system-health-grid { grid-template-columns: 1fr; }
}
@media (max-width: 460px) {
    .reporting-snapshot-grid { grid-template-columns: 1fr; }
    .reporting-deadline { display: grid; }
    .reporting-deadline time { text-align: left; }
}


/* Pomoc i szybki start 1.0 */
.help-process { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.help-process > div { display:grid; grid-template-columns:42px minmax(0,1fr); gap:2px 10px; align-items:center; padding:14px; border:1px solid var(--line); background:var(--surface-soft); }
.help-process strong { grid-row:1/3; display:grid; place-items:center; width:38px; height:38px; background:var(--amber-soft); color:#784000; font-size:18px; }
.help-process span { font-weight:800; }
.help-process small { color:var(--muted); }
.help-module-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:16px; }
.help-module-card { display:grid; grid-template-columns:52px minmax(0,1fr); gap:14px; align-items:start; margin:0; }
.help-module-card h2 { margin:0 0 5px; font-size:17px; }
.help-module-card p { margin:0; color:var(--muted); }
.help-steps { margin:0; padding-left:22px; display:grid; gap:9px; }
@media(max-width:760px){.help-process,.help-module-grid{grid-template-columns:1fr}}

/* ===== VERTIS OLiOC 1.0.1 — pełna responsywność i centrum pomocy ===== */
html { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
body { min-width: 320px; overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; }
input, select, textarea, button { max-width: 100%; }
:focus-visible { outline: 3px solid rgba(217,139,19,.42); outline-offset: 2px; }

.sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 19;
  border: 0;
  padding: 0;
  background: rgba(9,15,18,.62);
  backdrop-filter: blur(2px);
}
.menu-toggle { flex: 0 0 auto; font-size: 20px; line-height: 1; }
.page-head-actions,
.record-hero-actions,
.section-actions,
.form-actions,
.modal-footer,
.button-row,
.inline-actions { min-width: 0; flex-wrap: wrap; }
.page-head-actions { display: flex; gap: 8px; justify-content: flex-end; }
.page-head-actions .btn,
.record-hero-actions .btn,
.record-hero-actions form,
.section-actions .btn { min-width: 0; }
.section-head > div:first-child,
.page-head-card > div:last-child,
.record-hero-main,
.record-title-row > div:last-child { min-width: 0; }
.section-head h2,
.section-head p,
.record-hero h1,
.record-hero p,
.data-table td,
.detail-item strong,
.help-module-card p { overflow-wrap: anywhere; }

/* Formularze: bez wyjeżdżania pól poza kontener i bez powiększania widoku na iOS. */
.form-grid,
.modal-form-grid,
.filter-grid,
.filter-row,
.filter-bar { min-width: 0; }
.form-grid label,
.modal-form-grid label,
.filter-grid label,
.filter-row label,
.filter-bar label { min-width: 0; }
.form-grid input,
.form-grid select,
.form-grid textarea,
.modal-form-grid input,
.modal-form-grid select,
.modal-form-grid textarea,
.filter-row input,
.filter-row select,
.filter-bar input,
.filter-bar select { min-width: 0; }
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"] { min-width: 0; }

/* Tabele pozostają pełne, ale dają się wygodnie przewijać dotykiem. */
.table-scroll {
  position: relative;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
  touch-action: pan-x pan-y;
}
.table-scroll.is-scrollable { box-shadow: inset -14px 0 12px -16px rgba(22,31,36,.8); }
.table-scroll.is-scrollable.at-scroll-end { box-shadow: inset 14px 0 12px -16px rgba(22,31,36,.8); }
.table-scroll.is-scrollable:not(.at-scroll-start):not(.at-scroll-end) { box-shadow: inset 14px 0 12px -16px rgba(22,31,36,.8), inset -14px 0 12px -16px rgba(22,31,36,.8); }
.data-table { max-width: none; }
.data-table .actions-cell {
  position: sticky;
  right: 0;
  z-index: 2;
  background: #fff;
  box-shadow: -8px 0 10px -12px rgba(20,29,34,.8);
}
.data-table tbody tr:hover .actions-cell { background: #fffaf1; }
.permission-matrix { max-width: 100%; -webkit-overflow-scrolling: touch; }

/* Listy jakości są używane zarówno przez linki, jak i zwykłe wiersze. */
.quality-list > a,
.quality-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 43px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.quality-list > div strong { text-align: right; overflow-wrap: anywhere; }

/* Centrum pomocy */
.help-search-panel { border-top-color: var(--amber); }
.help-search-label { display: grid; gap: 7px; font-size: 12px; font-weight: 800; }
.help-search-control { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; border: 1px solid var(--line-strong); background: #fff; }
.help-search-control:focus-within { border-color: var(--amber); box-shadow: 0 0 0 3px rgba(217,139,19,.13); }
.help-search-control input { width: 100%; min-width: 0; min-height: 46px; padding: 10px 6px; border: 0; outline: 0; background: transparent; }
.help-search-control .btn { margin: 4px; }
.help-search-icon { display: grid; place-items: center; color: var(--amber-dark); }
.help-search-icon .svg-icon { width: 20px; height: 20px; }
.help-search-status { margin: 8px 0 0; color: var(--muted); font-size: 11px; }
.help-process { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.help-process > a {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: 2px 10px;
  align-items: center;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.help-process > a:hover { border-color: var(--amber); background: var(--amber-soft); }
.help-process > a strong { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; background: var(--amber-soft); color: #784000; font-size: 18px; }
.help-process > a span { font-weight: 800; }
.help-process > a small { color: var(--muted); overflow-wrap: anywhere; }
.help-quick-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 9px; }
.help-quick-link { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 10px 12px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-quick-link:hover { border-color: var(--amber); background: var(--amber-soft); }
.help-quick-link > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; }
.help-quick-link .svg-icon { width: 18px; height: 18px; }
.help-section-title { margin: 4px 0 12px; }
.help-module-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-bottom: 16px; }
.help-module-card { display: block; min-width: 0; margin: 0; padding: 0; overflow: hidden; }
.help-module-card-head { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 13px; align-items: start; padding: 16px; }
.help-module-icon { width: 48px; height: 48px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; }
.help-module-icon .svg-icon { width: 24px; height: 24px; }
.help-module-card h2 { margin: 0 0 5px; font-size: 17px; }
.help-module-card p { margin: 0; color: var(--muted); }
.help-module-details { border-top: 1px solid var(--line); background: var(--surface-soft); }
.help-module-details summary { padding: 11px 16px; font-weight: 800; cursor: pointer; color: #4b565e; }
.help-module-details[open] summary { color: var(--amber-dark); border-bottom: 1px solid var(--line); }
.help-module-details ol { margin: 0; padding: 13px 18px 16px 38px; display: grid; gap: 7px; }
.help-module-details li::marker { color: var(--amber-dark); font-weight: 800; }
.help-no-results strong { display: block; font-size: 18px; }
.help-no-results p { margin-bottom: 0; }
.help-rule-list > div strong { display: block; min-width: 0; height: auto; padding: 4px 7px; line-height: 1.3; }
.help-faq { display: grid; gap: 8px; }
.help-faq details { border: 1px solid var(--line); background: var(--surface-soft); }
.help-faq summary { padding: 12px 14px; cursor: pointer; font-weight: 800; }
.help-faq details[open] summary { border-bottom: 1px solid var(--line); color: var(--amber-dark); }
.help-faq p { margin: 0; padding: 13px 14px; color: #4f5961; }

/* Tablet poziomo i mniejsze laptopy: pełna szerokość treści, menu jako szuflada. */
@media (max-width: 1180px) {
  .app-shell { display: block; }
  .sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: min(86vw, 300px);
    height: 100dvh;
    min-height: 0;
    transform: translateX(-105%);
    transition: transform .2s ease;
    z-index: 30;
  }
  .sidebar-open .sidebar { transform: translateX(0); }
  .sidebar-open .sidebar-backdrop { display: block; }
  body.sidebar-open { overflow: hidden; }
  .menu-toggle { display: inline-grid; place-items: center; }
  .main-area { width: 100%; margin-left: 0; }
  .content-area { max-width: none; padding: 20px; }
  .topbar { padding: 10px 18px; }
  .topbar-actions time { display: none; }
  .operating-pill { display: none; }
  .system-title { margin: 0; }
  .dashboard-columns,
  .map-layout,
  .admin-roles-layout,
  .map-stage-layout { grid-template-columns: 1fr; }
  .map-point-list { max-height: 320px; overflow-y: auto; }
  .help-process { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Smartfony i wąskie tablety. */
@media (max-width: 700px) {
  body { font-size: 14px; }
  .topbar { min-height: 58px; padding: 8px max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left)); gap: 8px; }
  .menu-toggle { width: 42px; height: 42px; }
  .system-chip,
  .system-title > span:last-child { display: none; }
  .system-title strong { font-size: 13px; max-width: 44vw; }
  .topbar-actions { gap: 5px; }
  .topbar-actions form { display: flex; }
  .topbar-actions .btn { min-height: 42px; padding-inline: 9px; }
  .content-area { padding: 12px max(10px, env(safe-area-inset-right)) 18px max(10px, env(safe-area-inset-left)); }
  .app-footer { padding: 12px max(12px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); gap: 5px; }
  .panel { padding: 14px; margin-bottom: 13px; box-shadow: 0 7px 18px rgba(25,34,40,.07); }
  .table-panel { padding: 0; }
  .table-panel > .section-head { padding: 14px 14px 0; }
  .section-head { flex-direction: column; gap: 10px; margin-bottom: 12px; }
  .section-head > .btn,
  .section-head > form,
  .section-head > .section-actions { width: 100%; }
  .section-head > .btn { justify-content: center; }
  .section-actions { justify-content: stretch; }
  .section-actions .btn,
  .section-actions form { flex: 1 1 145px; }
  .section-actions form .btn { width: 100%; }
  .page-head { gap: 12px; margin-bottom: 13px; }
  .page-head-card { gap: 11px; }
  .page-head-icon { width: 46px; height: 46px; }
  .page-head-icon .svg-icon { width: 22px; height: 22px; }
  .page-head h1 { font-size: 22px; }
  .page-head p { font-size: 12px; }
  .page-head-actions { width: 100%; justify-content: stretch; }
  .page-head-actions .btn,
  .page-head-actions form { flex: 1 1 145px; }
  .page-head-actions form .btn { width: 100%; }
  .btn { min-height: 44px; padding: 9px 12px; }
  .btn-small { min-height: 40px; font-size: 11px; }
  .form-grid,
  .form-two-cols,
  .modal-form-grid,
  .filter-grid { grid-template-columns: 1fr !important; }
  .form-wide,
  .modal-form-grid .form-wide { grid-column: auto !important; }
  .form-grid input,
  .form-grid select,
  .form-grid textarea,
  .modal-form-grid input,
  .modal-form-grid select,
  .modal-form-grid textarea,
  .filter-row input,
  .filter-row select,
  .filter-bar input,
  .filter-bar select { min-height: 44px; font-size: 16px; }
  .filter-row,
  .filter-bar,
  .registry-tools { width: 100%; flex-direction: column; align-items: stretch; }
  .filter-row label,
  .filter-bar label,
  .registry-filter-row label,
  .registry-filter-row .filter-search { width: 100%; min-width: 0; }
  .filter-row .btn,
  .filter-bar .btn { width: 100%; }
  .metric-grid,
  .movement-summary-grid,
  .movement-stock-grid,
  .movement-stock-box,
  .incident-metrics,
  .reporting-snapshot-grid,
  .system-health-grid { grid-template-columns: 1fr 1fr !important; gap: 9px; }
  .metric-card { padding: 12px; }
  .metric-card strong { font-size: 23px; }
  .hero-dashboard { min-height: 0; padding: 18px; gap: 18px; }
  .hero-dashboard h1 { font-size: 23px; }
  .readiness-ring { width: 108px; height: 108px; }
  .record-hero { padding: 15px; }
  .record-title-row { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 10px; }
  .record-icon { width: 46px; height: 46px; }
  .record-hero-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .record-hero-actions .btn,
  .record-hero-actions form,
  .record-hero-actions form .btn { width: 100%; }
  .record-hero-actions > :only-child { grid-column: 1 / -1; }
  .subnav,
  .module-subnav,
  .planning-subnav {
    margin-bottom: 13px;
    padding: 5px;
    border-radius: 6px;
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
  }
  .subnav a,
  .module-subnav a,
  .planning-subnav a { min-height: 42px; flex: 0 0 auto; scroll-snap-align: center; }
  .data-table { min-width: 720px; }
  .data-table th,
  .data-table td { padding: 10px 9px; }
  .pagination { justify-content: center; flex-wrap: wrap; padding: 12px; }
  .app-modal { padding: 0; align-items: stretch; }
  .modal-dialog,
  .modal-dialog-wide,
  .modal-dialog-compact,
  .modal-window.modal-large {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    border: 0;
    border-top: 4px solid var(--amber);
  }
  .modal-header { min-height: 68px; padding: 10px 12px; gap: 10px; }
  .modal-title-group { gap: 9px; }
  .modal-title-icon { width: 38px; height: 38px; }
  .modal-title-group h2 { font-size: 17px; }
  .modal-title-group p { display: none; }
  .modal-close { width: 40px; height: 40px; min-width: 40px; }
  .modal-body { padding: 10px; }
  .modal-form-grid { padding: 12px; }
  .modal-footer { min-height: 64px; padding: 9px max(9px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(9px, env(safe-area-inset-left)); display: grid; grid-template-columns: 1fr 1fr; }
  .modal-footer .btn,
  .modal-footer form,
  .modal-footer form .btn { width: 100%; }
  .activation-check-item,
  .activation-item-form,
  .staff-row,
  .incident-command-grid,
  .readiness-detail-grid,
  .qr-identity-content { grid-template-columns: 1fr !important; }
  .activation-item-form .btn { width: 100%; }
  .warehouse-tree-row { grid-template-columns: 28px minmax(0,1fr); }
  .tree-actions,
  .warehouse-tree-row > .status-badge { grid-column: 2; justify-self: stretch; }
  .tree-actions .btn { flex: 1; }
  .operational-map { min-height: 430px; }
  .map-toolbar,
  .map-filters { display: grid; grid-template-columns: 1fr; width: 100%; }
  .map-filters select,
  .map-toolbar .btn { width: 100%; }
  .operational-map-marker > div { width: min(220px, 72vw); }
  .planning-list > a,
  .planning-list-row,
  .operations-feed a,
  .alert-list a { grid-template-columns: 1fr !important; }
  .planning-list-row form { grid-column: auto; }
  .procedure-steps > li { grid-template-columns: 36px minmax(0,1fr); }
  .procedure-steps > li > .inline-actions { grid-column: 1 / -1; width: 100%; }
  .help-process,
  .help-module-grid { grid-template-columns: 1fr; }
  .help-module-card-head { grid-template-columns: 42px minmax(0,1fr); padding: 13px; }
  .help-module-icon { width: 42px; height: 42px; }
  .help-module-card-head .btn { grid-column: 1 / -1; width: 100%; }
  .help-search-control { grid-template-columns: 38px minmax(0,1fr); }
  .help-search-control .btn { grid-column: 1 / -1; margin: 0 4px 4px; }
  .help-quick-grid { grid-template-columns: 1fr 1fr; }
  .help-rule-list > div { align-items: flex-start; flex-direction: column; }
  .help-rule-list > div strong { text-align: left; }
}

@media (max-width: 430px) {
  .system-title strong { max-width: 38vw; }
  .topbar-actions .btn { font-size: 10px; padding-inline: 7px; }
  .metric-grid,
  .movement-summary-grid,
  .movement-stock-grid,
  .movement-stock-box,
  .incident-metrics,
  .reporting-snapshot-grid,
  .system-health-grid { grid-template-columns: 1fr !important; }
  .record-hero-actions,
  .modal-footer,
  .help-quick-grid { grid-template-columns: 1fr; }
  .help-process > a { padding: 12px; }
  .login-body { padding: 0; }
  .login-shell { min-height: 100dvh; }
  .login-brand { padding: 24px 20px; }
  .login-brand h1 { font-size: 22px; }
  .login-card { padding: 24px 20px calc(24px + env(safe-area-inset-bottom)); }
}

/* Krótkie ekrany poziome: modal i menu nie mogą wyjść poza dostępną wysokość. */
@media (max-height: 560px) and (orientation: landscape) {
  .brand { min-height: 72px; padding-block: 10px; }
  .brand img { max-height: 40px; }
  .sidebar-footer { display: none; }
  .modal-header { min-height: 58px; padding-block: 8px; }
  .modal-footer { min-height: 56px; padding-block: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (max-width: 700px) {
  .incident-metrics { min-width: 0; }
  .map-empty { width: min(300px, calc(100% - 24px)); }
  .module-roadmap { align-items: flex-start; flex-direction: column; }
  .module-roadmap-icon { width: 58px; height: 58px; }
  .module-roadmap-icon .svg-icon { width: 28px; height: 28px; }
}

/* ===== VERTIS OLiOC 1.0.2 — stałe menu i pełny podręcznik ===== */
.sidebar .brand,
.sidebar .sidebar-footer { flex: 0 0 auto; }
.sidebar .main-nav { scroll-behavior: smooth; }
.sidebar .main-nav::-webkit-scrollbar { width: 9px; }
.sidebar .main-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border: 2px solid transparent; background-clip: padding-box; }
.sidebar .main-nav::-webkit-scrollbar-track { background: transparent; }

.help-layout { display: grid; grid-template-columns: 255px minmax(0,1fr); gap: 18px; align-items: start; }
.help-toc { position: sticky; top: 86px; max-height: calc(100dvh - 104px); overflow-y: auto; padding: 15px; box-shadow: 0 8px 18px rgba(25,34,40,.06); }
.help-toc > strong { display: block; margin-bottom: 10px; font-size: 14px; }
.help-toc nav { display: grid; gap: 3px; }
.help-toc a { padding: 8px 9px; border-left: 3px solid transparent; color: #4d5860; font-size: 12px; font-weight: 700; }
.help-toc a:hover { border-left-color: var(--amber); background: var(--amber-soft); color: var(--amber-dark); }
.help-manual { min-width: 0; }
.help-topic { scroll-margin-top: 86px; }
.help-search-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 8px; }
.help-search-footer .help-search-status { margin: 0; }
.help-search-footer .inline-actions { display: flex; gap: 6px; }
.help-process-detailed { grid-template-columns: repeat(3,minmax(0,1fr)); }
.help-process-detailed > div { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 2px 10px; align-items: center; min-width: 0; padding: 14px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-process-detailed > div strong { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; background: var(--amber-soft); color: #784000; font-size: 18px; }
.help-process-detailed > div span { font-weight: 800; }
.help-process-detailed > div small { color: var(--muted); overflow-wrap: anywhere; }
.help-callout { margin-top: 15px; padding: 14px 16px; border-left: 5px solid var(--amber); background: var(--amber-soft); }
.help-callout strong { display: block; margin-bottom: 3px; }
.help-callout p { margin: 0; color: #5e4b2a; }
.help-manual-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.help-manual-grid > section { min-width: 0; padding: 14px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-manual-grid h3 { margin: 0 0 9px; font-size: 14px; }
.help-bullet-list,
.help-number-list { margin: 0; padding-left: 20px; display: grid; gap: 6px; color: #465159; }
.help-number-list { list-style: decimal; }
.help-bullet-list li::marker,
.help-number-list li::marker { color: var(--amber-dark); font-weight: 800; }
.help-workflow-grid { display: grid; gap: 9px; }
.help-workflow-grid details { border: 1px solid var(--line); background: var(--surface-soft); }
.help-workflow-grid summary { cursor: pointer; padding: 12px 14px; font-weight: 800; }
.help-workflow-grid details[open] summary { border-bottom: 1px solid var(--line); color: var(--amber-dark); }
.help-workflow-grid ul,
.help-workflow-grid ol { padding: 13px 18px 15px 38px; }
.help-module-manuals { display: grid; gap: 10px; }
.help-manual-section { scroll-margin-top: 86px; border: 1px solid var(--line); border-top: 3px solid #c9d0d4; background: #fff; box-shadow: 0 8px 18px rgba(25,34,40,.05); }
.help-manual-section > summary { display: grid; grid-template-columns: 46px minmax(0,1fr) auto 24px; gap: 12px; align-items: center; padding: 13px 15px; cursor: pointer; list-style: none; }
.help-manual-section > summary::-webkit-details-marker { display: none; }
.help-manual-section > summary::after { content: '＋'; grid-column: 4; font-size: 20px; color: var(--amber-dark); }
.help-manual-section[open] > summary::after { content: '−'; }
.help-manual-section[open] > summary { border-bottom: 1px solid var(--line); background: #fffaf2; }
.help-manual-section > summary > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.help-manual-section > summary strong { font-size: 16px; }
.help-manual-section > summary small { color: var(--muted); overflow-wrap: anywhere; }
.help-manual-icon { width: 46px; height: 46px; display: grid; place-items: center; background: var(--graphite); color: #f2b95d; }
.help-manual-icon .svg-icon { width: 23px; height: 23px; }
.help-access-badge { padding: 4px 7px; border: 1px solid; font-style: normal; font-size: 10px; text-transform: uppercase; font-weight: 900; letter-spacing: .04em; }
.help-access-badge.is-available { color: var(--good); border-color: #a8d6ba; background: var(--good-soft); }
.help-access-badge.is-unavailable { color: var(--muted); border-color: var(--line); background: var(--surface-soft); }
.help-manual-body { padding: 15px; }
.help-manual-lead { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; margin-bottom: 13px; }
.help-manual-lead p { margin: 0; }
.help-status-list { display: grid; gap: 6px; }
.help-status-list > div { display: grid; grid-template-columns: minmax(110px,.35fr) minmax(0,1fr); gap: 9px; align-items: start; padding: 7px 8px; border: 1px solid var(--line); background: #fff; }
.help-status-list strong { color: var(--amber-dark); font-size: 11px; }
.help-status-list span { color: #4d5860; }
.help-definition-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.help-definition-grid > div { padding: 13px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-definition-grid strong { display: block; margin-bottom: 4px; }
.help-definition-grid p { margin: 0; color: var(--muted); }
.help-device-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.help-device-grid > section { padding: 14px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-device-grid h3 { margin: 0 0 9px; }
.help-checklist { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.help-checklist label { display: flex; align-items: flex-start; gap: 10px; padding: 11px; border: 1px solid var(--line); background: var(--surface-soft); }
.help-checklist input { margin-top: 3px; }
.help-checklist span { display: grid; gap: 2px; }
.help-checklist small { color: var(--muted); }
.help-faq details p { line-height: 1.65; }
.help-manual .is-hidden,
.help-layout .is-hidden { display: none !important; }

@media (max-width: 1180px) {
  .help-layout { grid-template-columns: 1fr; }
  .help-toc { position: static; max-height: none; }
  .help-toc nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
  .help-process-detailed,
  .help-definition-grid,
  .help-device-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .help-manual-grid { grid-template-columns: 1fr; }
  .help-checklist { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .help-search-footer { align-items: stretch; flex-direction: column; }
  .help-search-footer .inline-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .help-toc nav { grid-template-columns: 1fr; }
  .help-process-detailed,
  .help-definition-grid,
  .help-device-grid { grid-template-columns: 1fr; }
  .help-manual-section > summary { grid-template-columns: 40px minmax(0,1fr); padding: 11px; }
  .help-manual-section > summary::after { grid-column: 2; grid-row: 2; justify-self: end; }
  .help-manual-icon { width: 40px; height: 40px; }
  .help-access-badge { grid-column: 1 / -1; justify-self: start; }
  .help-manual-body { padding: 11px; }
  .help-manual-lead { flex-direction: column; }
  .help-manual-lead .btn { width: 100%; }
  .help-status-list > div { grid-template-columns: 1fr; gap: 3px; }
}
.help-topic .section-head .eyebrow { display: block; margin-bottom: 4px; }
.help-section-title .eyebrow { display: block; margin-bottom: 4px; }
