:root {
  color-scheme: light;
  --navy: #102b45;
  --navy-2: #193e5e;
  --blue: #356e9a;
  --ink: #1d303d;
  --muted: #637481;
  --quiet: #8796a1;
  --line: #d8e1e7;
  --line-strong: #b9c8d2;
  --paper: #f3f6f8;
  --white: #ffffff;
  --amber: #d89c38;
  --amber-pale: #fff4df;
  --green: #23745f;
  --green-pale: #e8f4ef;
  --red: #9a4b3f;
  --red-pale: #f9eeeb;
  --radius: 10px;
  --shadow: 0 18px 50px rgba(16, 43, 69, .18);
  --body: "Segoe UI", Aptos, Arial, sans-serif;
  --display: Georgia, "Times New Roman", serif;
  --data: Consolas, "Courier New", monospace;
}

.admin-report-page { display:grid; gap:16px; min-width:0; color:var(--ink); }
.admin-report-page .personnel-page-heading { margin-bottom:0; }
.report-cutoff-badge { flex:none; padding:8px 11px; border:1px solid #d8e1e6; border-radius:5px; color:#405968; background:#f5f8fa; font-size:10px; font-weight:700; }
.report-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.report-kpis article { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:7px; min-height:75px; padding:13px 15px; border:1px solid var(--line); border-top:2px solid var(--navy); background:#fff; }
.report-kpis article span { color:#647985; font-size:10px; font-weight:650; }
.report-kpis article strong { color:var(--navy); font:400 26px/1 var(--display); }
.report-panel { min-width:0; border:1px solid var(--line); border-top:2px solid var(--navy); background:#fff; }
.report-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px 11px; }
.report-panel-heading h2 { margin:0; color:var(--navy); font:400 20px/1.2 var(--display); }
.report-panel-heading span { color:var(--muted); font-size:9px; }
.report-table { min-width:720px; }
.report-table th { white-space:nowrap; }
.report-table td { font-variant-numeric:tabular-nums; }
.report-table td.report-number { color:var(--navy); font-weight:700; text-align:right; }
.report-table th:nth-child(n+3) { text-align:right; }
.report-table td.report-unknown { color:#75848d; }
.report-date-note { margin:0; color:#6e7f89; font-size:9px; }
@media (max-width:800px) { .report-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .report-cutoff-badge { align-self:flex-start; } .report-kpis article { min-height:66px; padding:10px 11px; } .report-kpis article strong { font-size:22px; } .report-panel-heading { align-items:flex-start; } }
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--paper); }
body { margin: 0; color: var(--ink); font: 14px/1.5 var(--body); background: var(--paper); }
button, input, select, textarea { font: inherit; }
button, a, select { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #d89c38; outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.masthead { height: 76px; padding: 0 clamp(20px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; background: var(--navy); color: white; }
.masthead-brand-group { display:flex; min-width:0; align-items:center; }
.brand-lockup { display: flex; align-items: center; gap: 13px; }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; position: relative; border: 1px solid rgba(255,255,255,.48); color: white; font: 700 13px var(--data); letter-spacing: .06em; }
.brand-mark i { position: absolute; bottom: -1px; left: 7px; right: 7px; height: 3px; background: var(--amber); }
.brand-name { font-size: 13px; font-weight: 650; letter-spacing: .025em; }
.brand-place { margin-top: 2px; font-size: 11px; color: #b6c7d3; letter-spacing: .05em; }
.masthead-right { display: flex; align-items: center; gap: 17px; }
.masthead-nav { display:flex; align-self:stretch; align-items:center; gap:5px; }
.nav-tab { position:relative; display:inline-flex; height:100%; align-items:center; padding:0 14px; color:#cad8e1; font-size:11px; font-weight:600; text-decoration:none; transition:color .15s ease,background .15s ease; }
.nav-tab:hover { color:#fff; background:rgba(255,255,255,.06); }
.nav-tab.active { color:#fff; }
.nav-tab.active::after { position:absolute; right:14px; bottom:0; left:14px; height:3px; background:var(--amber); content:""; }
.local-indicator { color: #d5e2ea; font-size: 11px; display: inline-flex; align-items: center; gap: 7px; }
.local-indicator i { width: 7px; height: 7px; border-radius: 50%; background: #7bc2a5; box-shadow: 0 0 0 3px rgba(123,194,165,.13); }
.admin-access, .admin-logout { min-height: 32px; padding: 0 11px; border: 1px solid rgba(255,255,255,.38); border-radius: 5px; color: white; background: rgba(255,255,255,.08); font-size: 10px; font-weight: 650; white-space: nowrap; }
.admin-access:hover, .admin-logout:hover { background: rgba(255,255,255,.17); }
.admin-account { position:relative; }
.admin-account[open] { z-index:20; }
.admin-account-trigger { display:flex; height:40px; align-items:center; gap:8px; padding:3px 8px 3px 4px; border:1px solid rgba(255,255,255,.2); border-radius:22px; color:#fff; background:rgba(255,255,255,.07); cursor:pointer; list-style:none; }
.admin-account-trigger::-webkit-details-marker { display:none; }
.admin-account-trigger:hover,.admin-account[open] .admin-account-trigger { background:rgba(255,255,255,.14); }
.admin-avatar { display:grid; width:30px; height:30px; place-items:center; border-radius:50%; color:var(--navy); background:#e9c77d; font-size:12px; font-weight:750; text-transform:uppercase; }
.admin-account-name { max-width:145px; overflow:hidden; color:#f3f5f7; font-size:10px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.admin-account-chevron { color:#cad8e1; font-size:13px; line-height:1; }
.admin-account-popover { position:absolute; top:calc(100% + 9px); right:0; display:grid; width:230px; gap:7px; padding:15px; border:1px solid var(--line); border-radius:9px; color:var(--ink); background:#fff; box-shadow:0 14px 34px rgba(5,24,40,.25); }
.admin-session-caption { color:var(--muted); font-size:10px; }
.admin-account-popover strong { overflow:hidden; color:var(--navy); font-size:12px; text-overflow:ellipsis; }
.admin-account-popover .admin-logout { min-height:35px; margin-top:6px; border-color:var(--line); color:var(--navy); background:#f7f9fa; cursor:pointer; text-align:left; }
.admin-account-popover .admin-logout:hover { border-color:#b9cbd6; background:#edf3f6; }
.icon-button { border: 1px solid rgba(255,255,255,.3); color: inherit; background: transparent; width: 32px; height: 32px; border-radius: 50%; font-size: 17px; line-height: 1; display: grid; place-items: center; }
.icon-button:hover { background: rgba(255,255,255,.12); }
.app-shell { max-width: 1440px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 76px) 32px; }
.hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px, .6fr); align-items: center; gap: 42px; padding: 46px 0 34px; border-bottom: 1px solid var(--line-strong); }
.eyebrow { margin: 0 0 8px; color: var(--blue); font: 700 10px/1.2 var(--data); letter-spacing: .11em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 10px; color: var(--navy); font: 400 clamp(30px, 3vw, 43px)/1.1 var(--display); letter-spacing: -.025em; }
.hero-intro { max-width: 660px; margin: 0; color: var(--muted); font-size: 14px; }
.hero-ledger { min-width: 0; padding: 16px 0 11px 24px; border-left: 2px solid var(--amber); }
.ledger-main { display: flex; align-items: baseline; gap: 11px; }
.ledger-number { color: var(--navy); font: 400 40px/1 var(--display); letter-spacing: -.045em; }
.ledger-label { color: var(--muted); font-size: 12px; }
.ledger-rule { height: 1px; width: 100%; margin: 13px 0 10px; background: var(--line); }
.ledger-foot { display: flex; gap: 20px; flex-wrap: wrap; color: var(--muted); font-size: 11px; }
.ledger-foot b { color: var(--navy); font: 700 12px var(--data); }
.source-alert { margin: 21px 0 14px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 14px 17px; border: 1px solid #ead3a7; border-left: 3px solid var(--amber); background: var(--amber-pale); }
.alert-marker { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid #dbb667; border-radius: 50%; color: #805817; font: 700 12px var(--data); }
.source-alert strong { color: #614a24; font-size: 12px; }
.source-alert p { margin: 3px 0 0; color: #74623e; font-size: 11px; }
.text-button, .quiet-button, .clear-filters { border: 0; background: transparent; color: var(--blue); padding: 7px; font-size: 11px; font-weight: 650; white-space: nowrap; }
.text-button:hover, .quiet-button:hover, .clear-filters:hover { text-decoration: underline; }
.metric-strip { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin: 14px 0 22px; background: rgba(255,255,255,.55); }
.metric { padding: 17px 20px 16px; min-height: 99px; border-right: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; align-content: center; column-gap: 12px; }
.metric:last-child { border-right: 0; }
.metric-label { color: var(--muted); font-size: 11px; }
.metric strong { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--navy); font: 400 28px/1 var(--display); }
.metric-note { color: var(--quiet); font-size: 10px; }
.metric-muted strong { color: var(--muted); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(290px,.8fr); gap: 20px; margin: 0 0 34px; }
.panel { min-width: 0; padding: 20px 21px 18px; border-top: 2px solid var(--navy); background: var(--white); }
.panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.panel h2, .worklist-heading h2 { margin: 0; color: var(--navy); font: 400 21px/1.15 var(--display); }
.panel .eyebrow { margin-bottom: 6px; }
.area-bars { display: grid; gap: 10px; margin-top: 20px; }
.area-bar-row { display: grid; grid-template-columns: minmax(120px, 185px) minmax(25px,1fr) 27px; align-items: center; gap: 10px; cursor: pointer; }
.area-bar-name { overflow: hidden; color: #435967; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.area-bar-track { height: 7px; background: #e8eef2; }
.area-bar-fill { height: 100%; background: var(--blue); min-width: 2px; }
.area-bar-row:nth-child(2n) .area-bar-fill { background: #6b98b4; }
.area-bar-count { color: var(--navy); text-align: right; font: 11px var(--data); }
.area-bar-row:hover .area-bar-name { color: var(--blue); text-decoration: underline; }
.priority-panel { border-top-color: var(--amber); }
.priority-lines { margin: 16px 0 14px; border-top: 1px solid var(--line); }
.priority-line { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); align-items: center; }
.priority-line span { color: var(--ink); font-size: 12px; }
.priority-line b { color: var(--navy); font: 700 12px var(--data); white-space: nowrap; }
.priority-line small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; margin-top: -7px; }
.panel-footnote { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.worklist { margin-top: 0; }
.worklist-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding: 0 0 16px; }
.worklist-heading .eyebrow { margin-bottom: 6px; }
.toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.button { display: inline-flex; justify-content: center; align-items: center; gap: 7px; min-height: 35px; border: 1px solid transparent; border-radius: 6px; padding: 0 12px; text-decoration: none; font-size: 11px; font-weight: 650; white-space: nowrap; transition: background .14s ease,border-color .14s ease,transform .14s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--navy); border-color: var(--navy); }
.button-primary:hover { background: var(--navy-2); }
.staff-create-button { min-height:40px; padding-inline:16px; box-shadow:0 2px 0 rgba(16,43,69,.12); }
.staff-create-button > span { display:grid; width:20px; height:20px; place-items:center; border:1px solid rgba(255,255,255,.42); border-radius:50%; font-size:15px; line-height:1; }
.staff-proposal-button { min-height:40px; padding-inline:14px; }
.button-secondary { color: var(--navy); background: white; border-color: var(--line-strong); }
.button-secondary:hover { border-color: var(--blue); background: #f7fafc; }
.button-quiet { color: var(--muted); background: transparent; border-color: transparent; padding: 0 8px; }
.filter-panel { display: grid; grid-template-columns: minmax(240px,1.8fr) repeat(4,minmax(125px,1fr)) minmax(125px,auto) auto; gap: 8px; align-items: end; padding: 13px; background: #eaf0f4; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.search-field, .filter-field { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.search-field { position: relative; }
.search-field input, .filter-field select, .page-size select, .form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 37px; border: 1px solid #c7d3db; border-radius: 5px; background: white; color: var(--ink); padding: 8px 10px; font-size: 11px; }
.search-field input { padding-left: 32px; padding-right: 46px; }
.search-field input::placeholder { color: #8c9aa4; }
.search-icon { position: absolute; bottom: 7px; left: 11px; color: var(--blue); font-size: 20px; line-height: 1; }
.search-field kbd { position: absolute; bottom: 10px; right: 9px; color: #8b9aa5; font: 9px var(--data); }
.filter-field > span { color: #677987; font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.filter-field select { appearance: auto; padding: 7px 8px; }
.clear-filters { min-height: 36px; padding-inline: 9px; }
.include-out-filter { display:flex; align-items:center; gap:7px; min-height:36px; color:#657885; font-size:10px; white-space:nowrap; }
.include-out-filter input { width:14px; height:14px; accent-color:var(--navy); }
.list-meta { display: flex; justify-content: space-between; align-items: center; min-height: 42px; color: var(--muted); font-size: 10px; }
.page-size { display: flex; gap: 7px; align-items: center; font-size: 10px; }
.page-size select { width: auto; min-height: 28px; padding: 4px 23px 4px 7px; font-size: 10px; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-bottom: 0; background: white; }
table { width: 100%; border-collapse: collapse; min-width: 960px; }
th { padding: 10px 12px; color: #536976; background: #f2f6f8; border-bottom: 1px solid var(--line-strong); text-align: left; font: 700 9px var(--data); letter-spacing: .05em; text-transform: uppercase; }
td { padding: 11px 12px; border-bottom: 1px solid #e7edf1; vertical-align: middle; font-size: 11px; }
tbody tr:hover { background: #f8fbfc; }
.id-cell { width: 66px; color: var(--blue); font: 11px var(--data); }
.request-cell { min-width: 260px; max-width: 380px; }
.request-title { display: block; color: var(--navy); font-weight: 650; line-height: 1.35; }
.request-subtitle { display: block; overflow: hidden; max-width: 380px; margin-top: 3px; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.area-cell { min-width: 145px; color: #435864; }
.person-name { display:block; color:#243d4d; font-size:10px; font-weight:700; line-height:1.45; }
.personnel-context { display:block; margin-top:3px; color:#788993; font-size:9px; line-height:1.4; }
.quantity-cell { white-space: nowrap; text-align: right; font: 11px var(--data); }
.badge { display: inline-flex; align-items: center; max-width: 180px; min-height: 22px; padding: 3px 7px; border: 1px solid #d7e1e7; border-radius: 4px; color: #526673; background: #f4f7f9; font-size: 9px; line-height: 1.25; }
.badge.priority { color: #76581d; background: #fff5e1; border-color: #ead4a2; }
.badge.no { color: #8a4a3f; background: #f9efec; border-color: #ecd4cf; }
.badge.ok { color: #226b58; background: #ebf5f0; border-color: #cce3d9; }
.badge.pending { color: #7b6332; background: #fbf6e9; border-color: #ece0bd; }
.badge.out { color: #6b7280; background: #f2f3f4; border-color: #e0e2e4; }
.row-open { min-width: 45px; border: 0; background: transparent; color: var(--blue); font-size: 10px; font-weight: 700; }
.row-open:hover { text-decoration: underline; }
.table-message { height: 100px; color: var(--muted); text-align: center; }
.empty-title { display: block; color: var(--navy); font: 400 19px var(--display); margin-bottom: 4px; }
.pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0 8px; color: var(--muted); font-size: 11px; }
.pagination-controls, .page-numbers { display: flex; align-items: center; justify-content: center; gap: 5px; }
.pagination-controls .button { min-height: 34px; padding: 0 10px; }
.pagination-controls button:disabled { opacity: .45; cursor: default; }
.page-numbers { gap: 4px; }
.page-number { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 7px; border: 1px solid var(--line); border-radius: 5px; color: var(--navy); background: #fff; font: 600 11px var(--data); cursor: pointer; }
.page-number:hover { border-color: var(--blue); background: #f3f7fa; }
.page-number.is-current { border-color: var(--navy); color: #fff; background: var(--navy); }
.page-ellipsis { min-width: 18px; color: var(--muted); text-align: center; }
.app-footer { display: flex; justify-content: space-between; gap: 20px; margin-top: 23px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--quiet); font-size: 9px; }

.record-dialog { width: min(940px, calc(100vw - 32px)); max-width: 940px; max-height: min(96dvh, 1000px); padding: 0; border: 1px solid var(--line-strong); border-radius: 10px; color: var(--ink); background: white; box-shadow: var(--shadow); overflow: hidden; }
.record-dialog::backdrop { background: rgba(9,27,43,.55); backdrop-filter: blur(2px); }
.dialog-topline { display: flex; align-items: center; justify-content: space-between; padding: 12px 23px 0; color: var(--blue); }
.dialog-kicker { font: 700 9px var(--data); letter-spacing: .1em; text-transform: uppercase; }
.dialog-close { color: var(--muted); border-color: var(--line); font-size: 20px; }
.dialog-close:hover { color: var(--navy); background: #eef3f6; }
.dialog-heading { display: flex; align-items: center; gap: 14px; padding: 9px 23px 12px; }
.record-index { flex: 0 0 43px; width: 43px; height: 43px; display: grid; place-items: center; color: white; background: var(--navy); border-bottom: 3px solid var(--amber); font: 12px var(--data); }
.record-index-new { background: var(--blue); }
.dialog-heading h2 { margin: 0; color: var(--navy); font: 400 24px/1.16 var(--display); }
.dialog-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.status-chip { margin-left: auto; padding: 5px 8px; border: 1px solid var(--line); color: var(--muted); border-radius: 4px; font-size: 9px; white-space: nowrap; }
.dialog-tabs { display: flex; gap: 20px; padding: 0 23px; border-bottom: 1px solid var(--line); }
.dialog-tab { position: relative; padding: 10px 1px 11px; border: 0; background: transparent; color: var(--muted); font-size: 11px; }
.dialog-tab.active { color: var(--navy); font-weight: 700; }
.dialog-tab.active::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: var(--amber); }
.record-dialog form { display: flex; flex-direction: column; max-height: inherit; }
.dialog-content { display: none; min-height: 180px; max-height: calc(96dvh - 185px); overflow-y: auto; padding: 12px 20px 16px; }
.dialog-content.active { display: block; }
.source-spine { display: grid; grid-template-columns: 145px 1fr; margin-bottom: 20px; border-left: 3px solid var(--blue); background: #f4f7f9; }
.spine-label { align-self: start; padding: 16px 13px; color: var(--blue); font: 700 9px/1.45 var(--data); letter-spacing: .08em; }
.source-spine > div { padding: 14px 16px; border-left: 1px solid var(--line); }
.source-spine small, .detail-item small { color: var(--muted); font: 700 9px var(--data); letter-spacing: .035em; text-transform: uppercase; }
.source-spine p { margin: 5px 0 0; color: var(--navy); font: 16px/1.35 var(--display); }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 22px; }
.detail-item { padding: 10px 0; border-top: 1px solid var(--line); min-width: 0; }
.detail-item > span, .detail-item p { display: block; margin: 5px 0 0; color: var(--ink); font-size: 11px; overflow-wrap: anywhere; white-space: pre-wrap; }
.detail-item.detail-wide { grid-column: 1 / -1; }
.detail-item p { line-height: 1.6; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; }
.admin-record-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.admin-record-grid .admin-identity-field { grid-column: span 2; }
.admin-record-grid .admin-catalog-field { grid-column: span 3; }
.admin-record-grid .quantity-form-field { grid-column: 1 / span 2; }
.admin-record-grid .admin-fixed-field { grid-column: 1 / span 3; }
.admin-record-grid .admin-classification-field { grid-column: 4 / span 3; }
.form-field { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.form-field > span:first-child { color: #536976; font-size: 10px; font-weight: 650; }
.form-field input, .form-field select, .form-field textarea { min-height: 34px; padding: 6px 9px; font-size: 11px; }
.form-field .catalog-group { display:flex; align-items:center; min-height:34px; padding:6px 9px; border:1px solid #d6e0e5; border-radius:5px; background:#f3f7f8; color:var(--navy); font-size:11px; font-weight:650; }
.form-field textarea { resize: vertical; line-height: 1.45; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--blue); outline: 2px solid rgba(53,110,154,.18); }
.form-wide { grid-column: 1 / -1; }
.select-add { display: flex; gap: 6px; }
.select-add select, .select-add input { flex: 1; min-width: 0; }
.small-plus { flex: 0 0 36px; border: 1px solid var(--line-strong); border-radius: 5px; color: var(--blue); background: white; font-weight: 700; }
.small-plus:hover { border-color: var(--blue); background: #f3f7fa; }
.hidden { display: none !important; }
.review-caveat { margin: 0 0 10px; padding: 7px 10px; border-left: 2px solid var(--amber); color: #66552f; background: var(--amber-pale); font-size: 10px; }
.physical-section { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line-strong); }
.section-line { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 8px; }
.section-line .eyebrow { margin-bottom: 4px; }
.section-line h3 { margin: 0; color: var(--navy); font: 400 17px var(--display); }
.muted-tag { color: var(--muted); font-size: 9px; }
.history-list { display: grid; gap: 0; }
.history-empty { padding: 36px 10px; color: var(--muted); text-align: center; }
.history-entry { display: grid; grid-template-columns: 150px 1fr; gap: 15px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.history-entry time { color: var(--muted); font: 10px var(--data); }
.history-entry p { margin: 0; font-size: 11px; }
.history-entry small { color: var(--muted); display: block; margin-top: 3px; font-size: 10px; }
.dialog-feedback { min-height: 0; padding: 0 23px; color: var(--green); font-size: 10px; }
.dialog-feedback:not(:empty) { padding-top: 8px; }
.dialog-feedback.error { color: var(--red); }
.dialog-footer { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 9px 23px 12px; border-top: 1px solid var(--line); background: white; }
.dialog-footer > div { display: flex; gap: 8px; }
.updated-stamp { color: var(--quiet); font-size: 9px; }
.create-dialog, .import-dialog, .help-dialog { width: min(860px, calc(100vw - 32px)); max-width: 860px; }
.create-dialog { max-height:min(96dvh,1000px); }
.create-dialog[open] { display:flex; flex-direction:column; }
.create-dialog > .dialog-topline,.create-dialog > .dialog-heading { flex:0 0 auto; }
.create-dialog #newForm { min-height:0; flex:1 1 auto; overflow:hidden; }
.new-form-scroll { min-height:0; flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; padding:0 25px 5px; scrollbar-color:#bdcbd4 transparent; scrollbar-width:thin; }
.request-form-section { padding:0 0 11px; }
.request-form-section + .request-form-section { padding-top:10px; border-top:1px solid #e4eaee; }
.request-form-section-heading { display:flex; align-items:center; gap:9px; margin:0 0 7px; }
.request-form-section-heading > span { display:grid; width:26px; height:26px; flex:0 0 26px; place-items:center; border:1px solid #d1dde4; color:var(--blue); background:#f5f8fa; font:700 9px var(--data); }
.request-form-section-heading h3 { margin:0; color:var(--navy); font-size:12px; font-weight:700; }
.request-form-section-heading p { margin:1px 0 0; color:var(--quiet); font-size:10px; }
.request-form-section .form-grid { gap:8px 14px; }
.create-dialog #newForm textarea[name="technical_justification"] { min-height:76px; }
.create-dialog #newForm textarea[name="observations"] { min-height:58px; }
.quantity-form-field { width:min(165px,100%); justify-self:start; }
.quantity-form-field input { text-align:center; font-weight:650; }
.create-dialog .dialog-feedback:not(:empty) { padding:8px 25px 0; }
.create-dialog .dialog-footer { flex:0 0 auto; }
.staff-edit-mode { width:min(680px,calc(100vw - 32px)); max-width:680px; max-height:min(96dvh,900px); }
.staff-edit-mode .dialog-heading { padding-bottom:9px; }
.staff-edit-context { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr); gap:14px; margin:0 24px 11px; padding:9px 13px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:6px; background:#f5f8fa; }
.staff-edit-context > div { display:grid; gap:3px; min-width:0; }
.staff-edit-context span { color:var(--muted); font:700 8px var(--data); letter-spacing:.07em; }
.staff-edit-context strong { overflow-wrap:anywhere; color:var(--navy); font-size:11px; }
.staff-edit-context small { overflow-wrap:anywhere; color:var(--muted); font-size:9px; }
.staff-edit-mode #newForm .form-grid { gap:10px 16px; padding:0 24px 13px; }
.staff-edit-mode .new-form-scroll { padding:0; }
.staff-edit-mode .request-form-section-heading { margin:0 24px 7px; }
.staff-edit-mode .request-form-section + .request-form-section { padding-top:9px; }
.staff-edit-mode #newForm .form-field { gap:4px; }
.staff-edit-mode #newForm .form-field > span:first-child { color:#425b6a; font-size:10px; }
.staff-edit-mode #newForm .form-field select,.staff-edit-mode #newForm .form-field textarea { min-height:36px; border-radius:6px; }
.staff-characteristic-current { display:flex; align-items:center; gap:8px; min-height:36px; }
.staff-characteristic-current output { flex:1; min-width:0; padding:9px 11px; overflow-wrap:anywhere; border:1px solid var(--line); border-radius:6px; color:var(--navy); background:#f5f8fa; font-size:11px; }
.staff-characteristic-current .button { min-height:34px; padding:6px 11px; font-size:10px; }
.staff-edit-mode #newCharacteristic { margin-top:6px; }
.staff-edit-mode #newForm [name="quantity"] { width:142px; max-width:100%; min-height:36px; text-align:center; font:600 13px var(--data); }
.staff-edit-mode #newForm [name="technical_justification"] { min-height:82px; line-height:1.5; }
.staff-edit-mode .dialog-footer { padding:9px 24px 12px; }
.staff-edit-mode .updated-stamp { max-width:260px; line-height:1.45; }
.create-dialog .dialog-content, .import-dialog .dialog-content { max-height: 68vh; }
.upload-zone { display: grid; justify-items: center; gap: 8px; margin: 12px 23px 20px; padding: 29px 18px; border: 1px dashed #aebfca; color: var(--navy); text-align: center; background: #f7fafb; cursor: pointer; }
.upload-zone:hover { border-color: var(--blue); background: #f1f7fa; }
.upload-zone strong { font-size: 12px; }
.upload-zone small { color: var(--muted); font-size: 10px; }
.upload-zone input { max-width: 220px; margin-top: 5px; color: var(--muted); font-size: 10px; }
.upload-icon { display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid var(--line-strong); color: var(--blue); font: 11px var(--data); background: white; }
.help-copy { padding: 0 23px 22px; }
.help-copy p { padding: 10px 0; margin: 0; border-top: 1px solid var(--line); color: #485e6c; font-size: 11px; line-height: 1.6; }
.help-copy b { color: var(--navy); }
.help-copy .help-local { margin-top: 8px; padding: 11px 12px; color: #745a2d; background: var(--amber-pale); border: 0; }
.admin-dialog { width: min(470px, calc(100vw - 32px)); max-height: 96dvh; border-top:3px solid var(--blue); border-radius:11px; box-shadow:0 22px 68px rgba(12,35,54,.24); }
.admin-dialog .dialog-topline { padding:16px 20px 0; }
.admin-login-heading { gap:13px; padding:10px 23px 13px; }
.admin-login-heading h2 { font-size:25px; }
.admin-login-mark { width:47px; height:47px; flex-basis:47px; border-radius:5px 5px 0 0; background:var(--blue); }
.admin-login-mark svg { width:23px; height:23px; fill:none; stroke:#fff; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.admin-form { padding: 0 23px; }
.admin-form .dialog-feedback { padding-inline: 0; }
.admin-form .dialog-footer { margin-inline: -23px; }
.admin-login-note { display:flex; align-items:center; gap:7px; margin:0 0 15px; padding:8px 10px; border:1px solid #dce7ec; border-radius:6px; color:#536a78; background:#f5f8fa; font-size:10px; }
.admin-login-note > span { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#3c8b6e; box-shadow:0 0 0 3px rgba(60,139,110,.12); }
.admin-login-note i { color:#9aa8b0; font-style:normal; }
.admin-login-field { gap:5px; margin:0 0 12px; }
.admin-login-field > span:first-child { color:#405968; font-size:10px; font-weight:700; }
.admin-input-shell { position:relative; display:block; }
.admin-input-shell > svg { position:absolute; top:50%; left:12px; width:17px; height:17px; transform:translateY(-50%); fill:none; stroke:#7a8e9a; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.admin-input-shell input { width:100%; min-height:42px; padding:9px 12px 9px 39px; border:1px solid #c9d6de; border-radius:6px; color:var(--navy); background:#fff; font:12px var(--sans); transition:border-color .16s ease,box-shadow .16s ease; }
.admin-input-shell input::placeholder { color:#92a0a8; }
.admin-input-shell:focus-within input { border-color:var(--blue); outline:0; box-shadow:0 0 0 3px rgba(53,110,154,.13); }
.admin-form .dialog-footer { min-height:57px; margin-top:3px; padding:11px 20px 13px; }
.admin-form .updated-stamp { color:#71838e; }
.admin-login-submit { min-width:106px; gap:8px; }
.admin-login-submit svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:transform .16s ease; }
.admin-login-submit:hover svg { transform:translateX(2px); }
.admin-dialog[open] { animation:admin-login-appear .18s ease-out both; }
@keyframes admin-login-appear { from { opacity:0; transform:translateY(7px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
.toast { position: fixed; right: 22px; bottom: 22px; z-index: 10; max-width: min(420px,calc(100vw - 32px)); padding: 11px 15px; transform: translateY(18px); opacity: 0; pointer-events: none; color: white; background: var(--navy); border-left: 3px solid var(--amber); font-size: 11px; box-shadow: 0 8px 28px rgba(16,43,69,.2); transition: opacity .18s ease,transform .18s ease; }
.toast.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1050px) {
  .app-shell { padding-inline: 28px; }
  .worklist-heading { align-items: flex-start; flex-direction: column; }
  .toolbar { justify-content: flex-start; }
  .filter-panel { grid-template-columns: repeat(4,minmax(120px,1fr)); }
  .search-field { grid-column: span 2; }
  .include-out-filter { grid-column: span 2; }
  .clear-filters { justify-self: end; }
}
@media (max-width: 760px) {
  .masthead { height: 66px; padding-inline: 18px; }
  .brand-mark { width: 38px; height: 38px; }
  .brand-name { font-size: 11px; }
  .brand-place { font-size: 9px; }
  .masthead-right { gap: 8px; }
  .admin-access, .admin-logout { padding-inline: 8px; font-size: 9px; }
  .admin-identity { max-width: 88px; overflow: hidden; text-overflow: ellipsis; }
  .local-indicator { display: none; }
  .app-shell { padding-inline: 18px; }
  .hero { grid-template-columns: 1fr; gap: 22px; padding: 33px 0 24px; }
  .hero-ledger { padding: 0 0 0 16px; }
  .ledger-number { font-size: 34px; }
  .source-alert { grid-template-columns: 27px 1fr; align-items: start; }
  .source-alert .text-button { grid-column: 2; justify-self: start; padding-left: 0; }
  .metric-strip { grid-template-columns: 1fr 1fr; }
  .metric:nth-child(2) { border-right: 0; }
  .metric:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .metric { min-height: 86px; padding: 14px 13px; }
  .dashboard-grid { grid-template-columns: 1fr; gap: 12px; }
  .panel { padding: 17px 15px; }
  .area-bar-row { grid-template-columns: minmax(115px,150px) minmax(30px,1fr) 24px; gap: 8px; }
  .worklist-heading { gap: 13px; }
  .toolbar { gap: 6px; }
  .requirements-page .staff-create-button { min-height:38px; }
  .button { min-height: 34px; padding-inline: 9px; font-size: 10px; }
  .filter-panel { grid-template-columns: 1fr 1fr; padding: 10px; }
  .search-field { grid-column: 1 / -1; }
  .filter-field select { font-size: 10px; }
  .clear-filters { grid-column: 2; }
  .include-out-filter { grid-column: 1 / -1; }
  .table-wrap { border-right: 0; border-left: 0; }
  table { min-width: 0; }
  thead { display: none; }
  tbody, tr, td { display: block; width: 100%; }
  tbody { display: grid; gap: 9px; }
  tbody tr { position: relative; padding: 10px 12px 8px; border: 1px solid var(--line); background: white; }
  td { padding: 0; border: 0; }
  td.id-cell { float: left; width: auto; margin-right: 10px; padding-top: 2px; }
  td.request-cell { max-width: calc(100% - 48px); min-width: 0; padding-right: 30px; }
  .request-subtitle { max-width: 100%; }
  td.area-cell { margin-top: 7px; font-size: 10px; }
  td.quantity-cell { position: absolute; top: 12px; right: 12px; width: auto; text-align: right; color: var(--navy); }
  td:nth-child(5), td:nth-child(6), td:nth-child(7) { display: inline-flex; margin: 8px 5px 0 0; }
  td:last-child { position: absolute; right: 12px; bottom: 12px; width: auto; }
  .pagination { align-items: flex-start; flex-direction: column; padding-top: 10px; }
  .pagination-controls { width: 100%; flex-wrap: wrap; justify-content: flex-start; }
  .app-footer { flex-direction: column; gap: 5px; }
  .record-dialog { width: calc(100vw - 18px); max-height: 96dvh; }
  .create-dialog { width:calc(100vw - 18px); max-height:96dvh; }
  .create-dialog .dialog-topline { padding-inline:15px; }
  .create-dialog .dialog-heading { padding-inline:15px; }
  .new-form-scroll { padding:0 15px 8px; }
  .request-form-section { padding-bottom:9px; }
  .request-form-section + .request-form-section { padding-top:9px; }
  .request-form-section-heading { margin-bottom:6px; }
  .request-form-section .form-grid { grid-template-columns:1fr; gap:8px; }
  .request-form-section .form-wide { grid-column:1; }
  .create-dialog .dialog-footer { padding:10px 15px 14px; }
  .create-dialog .dialog-feedback:not(:empty) { padding-inline:15px; }
  .dialog-topline { padding: 13px 15px 0; }
  .dialog-heading { padding: 10px 15px 14px; gap: 10px; }
  .dialog-heading h2 { font-size: 21px; }
  .record-index { flex-basis: 37px; width: 37px; height: 37px; }
  .status-chip { display: none; }
  .dialog-tabs { padding-inline: 15px; gap: 17px; }
  .dialog-content { max-height: calc(96dvh - 180px); padding: 11px 15px 14px; }
  .source-spine { grid-template-columns: 1fr; }
  .spine-label { padding: 9px 12px 0; }
  .source-spine > div { border-left: 0; padding-top: 9px; }
  .detail-grid, .form-grid { grid-template-columns: 1fr; gap: 10px; }
  .admin-record-grid .admin-identity-field, .admin-record-grid .admin-catalog-field, .admin-record-grid .admin-fixed-field, .admin-record-grid .admin-classification-field { grid-column: 1; }
  .admin-record-grid .quantity-form-field { grid-column: 1; justify-self: start; }
  .detail-item.detail-wide, .form-wide { grid-column: auto; }
  .dialog-footer { padding: 10px 15px 14px; align-items: flex-start; flex-direction: column; }
  .dialog-footer > div { width: 100%; }
  .dialog-footer .button { flex: 1; }
  .history-entry { grid-template-columns: 1fr; gap: 4px; }
  .section-line { align-items: flex-start; flex-direction: column; }
  .analysis-entry-context { grid-template-columns:1fr; gap:9px; margin:0 15px 13px; }
  .analysis-entry-field { padding:0 15px 12px; }
  .analysis-entry-dialog .dialog-feedback { padding-inline:15px; }
  .analysis-entry-submit { min-width:0; }
  .import-dialog .upload-zone { margin-inline: 15px; }
  .help-copy { padding-inline: 15px; }
  .admin-form { padding-inline: 15px; }
  .admin-form .dialog-feedback { padding-inline: 0; }
  .admin-form .dialog-footer { margin-inline: -15px; }
  .admin-dialog .dialog-topline { padding-inline:15px; }
  .admin-login-heading { padding-inline:16px; }
  .admin-form .dialog-footer { padding-inline:15px; }
}
@media (max-width:650px) {
  .staff-edit-context { grid-template-columns:1fr; gap:9px; margin:0 16px 14px; }
  .staff-edit-mode #newForm .form-grid { grid-template-columns:1fr; gap:9px; padding:0 16px 10px; }
  .staff-edit-mode #newForm .form-wide { grid-column:1; }
  .staff-edit-mode .dialog-heading { padding-inline:16px; }
  .staff-edit-mode .dialog-topline { padding-inline:16px; }
  .staff-edit-mode .dialog-footer { padding-inline:16px; }
}

/* Landing dashboard: principal-section view */
.dashboard-shell { max-width: 1280px; min-height: calc(100vh - 76px); margin: 0 auto; padding: 34px clamp(20px,5vw,72px) 26px; }
.dashboard-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,380px); align-items:center; gap:40px; padding:24px 0 25px; border-bottom:1px solid var(--line-strong); }
.intro-copy .eyebrow { margin-bottom:10px; }
.intro-copy h1 { margin:0 0 10px; font:400 clamp(32px,4vw,48px)/1.06 var(--display); letter-spacing:-.035em; }
.intro-copy > p:last-child { max-width:590px; margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.section-picker { display:grid; gap:8px; padding:18px 20px 17px; border:1px solid var(--line-strong); border-top:3px solid var(--amber); background:white; }
.section-picker label { color:var(--navy); font-size:12px; font-weight:750; }
.section-picker select { width:100%; min-height:46px; padding:10px 13px; border:1px solid #aebfca; border-radius:4px; color:var(--navy); background:#fff; font-size:15px; font-weight:650; }
.section-picker select:focus { outline:3px solid rgba(53,110,154,.22); border-color:var(--blue); }
.section-picker > span { color:var(--muted); font-size:10px; }
.dashboard-empty { display:grid; justify-items:center; align-content:center; min-height:340px; padding:45px 20px; text-align:center; }
.empty-mark { display:grid; place-items:center; width:52px; height:52px; margin-bottom:17px; border:1px solid #d3dfe6; border-bottom:3px solid var(--amber); color:var(--navy); font:700 12px var(--data); }
.dashboard-empty h2 { margin:0 0 8px; color:var(--navy); font:400 24px/1.2 var(--display); }
.dashboard-empty p { margin:0; color:var(--muted); font-size:12px; }
.dashboard-content { padding-top:25px; transition:opacity .16s ease; }
.dashboard-content.loading { opacity:.5; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:18px; }
.section-heading .eyebrow { margin-bottom:5px; }
.section-heading h2 { margin:0; color:var(--navy); font:400 27px/1.13 var(--display); }
.section-description { margin:6px 0 0; color:var(--muted); font-size:11px; }
.dashboard-link { min-height:43px; padding-inline:17px; font-size:12px; }
.dashboard-link span { margin-left:5px; font-size:17px; line-height:1; }
.kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid var(--line); background:#fff; }
.kpi-card { display:grid; grid-template-columns:1fr auto; align-content:center; column-gap:13px; min-height:106px; padding:17px 20px; border-right:1px solid var(--line); border-top:2px solid var(--blue); }
.kpi-card:last-child { border-right:0; }
.kpi-card > span { color:var(--muted); font-size:10px; line-height:1.4; }
.kpi-card strong { grid-column:2; grid-row:1 / span 2; align-self:center; color:var(--navy); font:400 34px/1 var(--display); }
.kpi-card small { max-width:190px; margin-top:5px; color:var(--quiet); font-size:9px; line-height:1.45; }
.kpi-pending { border-top-color:#c28b32; }
.kpi-priority { border-top-color:var(--green); }
.dashboard-panels { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; margin-top:18px; }
.data-panel { min-width:0; min-height:270px; padding:18px 20px 20px; border:1px solid var(--line); border-top:2px solid var(--navy); background:#fff; }
.data-panel-heading { display:flex; justify-content:space-between; align-items:end; gap:16px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.data-panel-heading .eyebrow { margin-bottom:5px; }
.data-panel-heading h3 { margin:0; color:var(--navy); font:400 20px/1.2 var(--display); }
.panel-unit { color:var(--quiet); font:10px var(--data); white-space:nowrap; }
.bar-list { display:grid; gap:13px; padding-top:18px; }
.bar-row { display:grid; grid-template-columns:minmax(115px,190px) minmax(28px,1fr) 30px; align-items:center; gap:10px; }
.bar-label { overflow:hidden; color:#485e6c; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.bar-track { height:8px; background:#edf1f4; }
.bar-fill { display:block; height:100%; min-width:0; background:var(--blue); transition:width .28s ease; }
.bar-row:nth-child(2n) .bar-fill { background:#81a4ba; }
.recommendation-panel .bar-row:first-child .bar-fill { background:#b28b42; }
.bar-value { color:var(--navy); text-align:right; font:700 10px var(--data); }
.chart-empty { margin:0; padding:16px 0; color:var(--muted); font-size:11px; }
.data-caveat { display:flex; gap:11px; align-items:flex-start; margin-top:17px; padding:12px 14px; border-left:2px solid var(--amber); background:#f7f5ef; }
.data-caveat > span { display:grid; flex:0 0 18px; place-items:center; width:18px; height:18px; border:1px solid #c6a764; border-radius:50%; color:#735b2c; font:700 10px var(--data); }
.data-caveat p { margin:0; color:#665a40; font-size:10px; line-height:1.55; }
.data-caveat strong { color:#51452c; }
.dashboard-footer { display:flex; justify-content:space-between; gap:20px; margin-top:30px; padding-top:12px; border-top:1px solid var(--line); color:var(--quiet); font-size:9px; }
.dashboard-page .admin-dialog { margin:auto; }
.requirements-page .app-shell { min-height:calc(100vh - 76px); padding-top:34px; }
.requirements-page .worklist-heading { align-items:center; padding-bottom:17px; border-bottom:1px solid var(--line); }
.requirements-page .worklist-heading h2 { font-size:27px; }
.requirements-page .back-dashboard { text-decoration:none; display:inline-flex; align-items:center; }
.requirements-page .back-dashboard:hover { background:rgba(255,255,255,.17); }
.requirements-page .app-footer { margin-top:28px; }
@media (max-width:900px) { .dashboard-intro { grid-template-columns:minmax(0,1fr) minmax(250px,330px); gap:25px; } .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .kpi-card:nth-child(2) { border-right:0; } .kpi-card:nth-child(-n+2) { border-bottom:1px solid var(--line); } }
@media (max-width:650px) { .dashboard-shell { padding:22px 18px 24px; } .dashboard-intro { grid-template-columns:1fr; gap:22px; padding-top:18px; } .intro-copy h1 { font-size:34px; } .section-heading { align-items:stretch; flex-direction:column; } .dashboard-link { width:100%; } .dashboard-panels { grid-template-columns:1fr; } .data-panel { min-height:220px; } .kpi-card { min-height:96px; padding:14px 12px; } .kpi-card strong { font-size:29px; } .kpi-card small { font-size:8px; } .bar-row { grid-template-columns:minmax(100px,140px) minmax(20px,1fr) 27px; gap:8px; } .dashboard-footer { flex-direction:column; gap:5px; } }
@media (prefers-reduced-motion:reduce) { .dashboard-content,.bar-fill { transition:none; } }
@media (max-width: 430px) {
  .masthead { padding-inline: 10px; }
  .brand-lockup { gap: 8px; }
  .brand-mark { width: 34px; height: 34px; }
  .brand-name { max-width: 123px; font-size: 10px; line-height: 1.2; }
  .brand-place { font-size: 8px; }
  .masthead-right { gap: 6px; }
  .admin-access, .admin-logout { padding-inline: 6px; font-size: 8px; }
  .admin-identity { max-width: 66px; font-size: 8px; }
  .masthead-right .icon-button { width: 28px; height: 28px; }
}
@media (max-width:760px) {
  .masthead { height:auto; min-height:104px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"brand account" "nav nav"; align-content:center; gap:2px 9px; padding:8px 18px 0; }
  .masthead-brand-group { grid-area:brand; min-width:0; align-items:flex-start; flex-direction:column; gap:3px; }
  .brand-lockup { gap:8px; }
  .masthead-brand-group .local-indicator { display:inline-flex; margin-left:46px; font-size:9px; }
  .masthead-nav { grid-area:nav; justify-self:center; height:36px; }
  .masthead-right { grid-area:account; justify-self:end; }
  .admin-account-name { max-width:105px; }
  .admin-account-popover { width:min(230px,calc(100vw - 24px)); }
}
@media (max-width:430px) {
  .masthead { padding-inline:10px; }
  .masthead-brand-group .local-indicator { margin-left:42px; font-size:8px; }
  .brand-name { max-width:123px; }
  .admin-account-name { max-width:75px; }
  .nav-tab { padding-inline:12px; font-size:10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Tablero ejecutivo institucional y selector del listado */
.executive-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; padding:29px 0 24px; border-bottom:1px solid var(--line-strong); }
.executive-heading .eyebrow { margin-bottom:9px; }
.executive-heading h1 { margin:0 0 9px; color:var(--navy); font:400 clamp(31px,4vw,45px)/1.08 var(--display); letter-spacing:-.03em; }
.executive-heading p:last-child { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.executive-heading .dashboard-link { flex:0 0 auto; }
.executive-kpis { margin-top:21px; }
.executive-charts { align-items:stretch; margin-top:19px; }
.donut-panel { min-height:0; padding-bottom:15px; }
.donut-panel .data-panel-heading { align-items:center; }
.donut-panel .data-panel-heading h2 { margin:0; color:var(--navy); font:400 20px/1.2 var(--display); }
.chart-caption { min-height:15px; margin:10px 0 2px; color:var(--muted); font-size:10px; }
.donut-layout { display:grid; grid-template-columns:minmax(155px,205px) minmax(0,1fr); align-items:center; gap:14px; min-height:211px; }
.donut-slot { display:grid; place-items:center; min-width:0; }
.donut-svg { display:block; width:min(100%,205px); overflow:visible; }
.donut-slice { stroke:#fff; stroke-width:1.25; cursor:pointer; transition:opacity .15s ease,filter .15s ease; }
.donut-slice:hover,.donut-slice:focus-visible { filter:brightness(1.12); outline:none; }
.donut-slice:not(.selected) { opacity:.87; }
.donut-hole { fill:#fff; }
.donut-center-value { fill:var(--navy); font:700 24px var(--data); text-anchor:middle; dominant-baseline:middle; }
.donut-center-label { fill:var(--muted); font:10px var(--data); text-anchor:middle; }
.donut-legend { display:grid; gap:3px; align-content:center; min-width:0; }
.legend-row { display:grid; grid-template-columns:10px minmax(0,1fr) 28px 35px; align-items:center; gap:7px; width:100%; min-height:25px; padding:3px 5px; border:0; border-radius:2px; color:#465c69; background:transparent; text-align:left; cursor:pointer; }
.legend-row:hover,.legend-row.selected { background:#f0f4f6; color:var(--navy); }
.legend-row i { width:9px; height:9px; border-radius:50%; background:var(--legend-color); }
.legend-row span { overflow:hidden; font-size:9px; line-height:1.25; text-overflow:ellipsis; }
.legend-row b,.legend-row small { color:var(--navy); text-align:right; font:700 9px var(--data); }
.legend-row small { color:var(--muted); font-weight:500; }
.selection-detail { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:45px; margin-top:4px; padding:8px 10px; border-top:1px solid var(--line); color:var(--muted); font-size:9px; line-height:1.4; }
.selection-detail > div { display:grid; gap:2px; min-width:0; }
.selection-detail .detail-kicker { color:var(--quiet); font-size:8px; text-transform:uppercase; letter-spacing:.06em; }
.selection-detail strong { color:var(--navy); font-size:11px; }
.selection-detail small { color:var(--muted); font-size:9px; }
.selection-detail .button { flex:0 0 auto; min-height:32px; padding:6px 10px; font-size:9px; }
.section-filter-row { display:flex; align-items:end; gap:14px; margin:18px 0 8px; }
.section-filter { display:grid; gap:5px; width:min(100%,330px); }
.section-filter-label { display:flex; align-items:center; gap:7px; min-height:18px; }
.section-filter-label > label { color:var(--navy); font-size:11px; font-weight:700; }
.section-info { position:relative; display:inline-flex; }
.section-info > summary { display:grid; width:16px; height:16px; place-items:center; border:1px solid #9babb6; border-radius:50%; color:#5e7280; background:#fff; font:700 10px var(--data); cursor:pointer; list-style:none; }
.section-info > summary::-webkit-details-marker { display:none; }
.section-info > summary:hover,.section-info[open] > summary { border-color:var(--blue); color:var(--blue); background:#eef5f8; }
.section-info > summary:focus-visible { outline:3px solid rgba(53,110,154,.22); outline-offset:2px; }
.section-info > span { position:absolute; z-index:5; top:calc(100% + 8px); left:0; width:min(300px,calc(100vw - 40px)); padding:10px 12px; border:1px solid var(--line-strong); border-radius:5px; color:#435864; background:#fff; box-shadow:0 8px 24px rgba(16,43,69,.14); font-size:11px; line-height:1.5; }
.section-filter select { min-height:40px; padding:8px 11px; border:1px solid #aebfca; border-radius:4px; color:var(--navy); background:#fff; font-size:12px; }
.section-filter select:focus { outline:3px solid rgba(53,110,154,.22); border-color:var(--blue); }
@media (max-width:900px) { .donut-layout { grid-template-columns:minmax(140px,185px) minmax(0,1fr); gap:8px; } .executive-charts { grid-template-columns:1fr; } }
@media (max-width:650px) { .executive-heading { align-items:stretch; flex-direction:column; gap:18px; padding-top:22px; } .executive-heading .dashboard-link { width:100%; } .donut-layout { grid-template-columns:minmax(130px,170px) minmax(0,1fr); min-height:180px; } .donut-svg { width:min(100%,170px); } .selection-detail { align-items:flex-start; } .section-filter-row { align-items:stretch; flex-direction:column; gap:5px; } .section-filter { width:100%; } }
@media (max-width:390px) { .donut-layout { grid-template-columns:1fr; } .donut-svg { width:160px; } .donut-legend { grid-template-columns:1fr 1fr; gap:2px; } .legend-row { grid-template-columns:9px minmax(0,1fr) 24px; gap:5px; } .legend-row small { display:none; } }

/* Flujo de revisión de requerimientos */
.requirements-page .app-shell { max-width:1540px; padding-top:30px; }
.requirements-page .worklist-heading { align-items:flex-end; padding-bottom:18px; }
.requirements-page .worklist-heading h1 { margin:0; font-size:clamp(27px,3vw,36px); }
.worklist-lead { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.work-modes { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:18px 0 19px; }
.work-mode { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:72px; padding:12px 16px; border:1px solid var(--line); background:#fff; text-align:left; }
.work-mode.active { border-color:#94adbd; border-left:3px solid var(--navy); background:#f6f9fb; }
.work-mode.future { background:#f8f9fa; color:#657782; }
.mode-number { display:grid; place-items:center; width:34px; height:34px; border:1px solid var(--line-strong); color:var(--navy); font:700 11px var(--data); }
.work-mode strong,.work-mode small { display:block; }
.work-mode strong { color:var(--navy); font-size:12px; }
.work-mode small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.35; }
.mode-state { padding:5px 8px; border:1px solid #d4e4dc; color:#31715d; background:#edf6f1; font-size:9px; font-weight:700; white-space:nowrap; }
.work-mode.future .mode-state { border-color:#e0e4e7; color:#73818a; background:#f0f2f3; }
.requirements-page .section-filter-row { align-items:center; margin:0 0 12px; padding:13px 15px; border:1px solid var(--line); background:#fff; }
.requirements-page .section-filter { width:min(100%,360px); grid-template-columns:130px minmax(0,1fr); align-items:center; gap:10px; }
.requirements-page .section-filter-label { grid-column:1; }
.requirements-page .section-filter select { grid-column:2; grid-row:1; }
.requirements-page .section-filter select { min-height:39px; }
.area-progress-launch { display:flex; align-items:center; gap:12px; min-height:62px; margin:0 0 12px; padding:10px 13px; border:1px solid var(--line); border-left:3px solid var(--blue); background:#fff; }
.area-progress-launch-icon { display:grid; flex:none; width:35px; height:35px; place-items:center; border-radius:5px; color:var(--blue); background:#edf4f7; font-size:19px; }
.area-progress-launch-copy { min-width:0; flex:1; }
.area-progress-launch-copy h2 { margin:0; color:var(--navy); font-size:12px; font-weight:700; }
.area-progress-launch-copy p { margin:3px 0 0; color:var(--muted); font-size:10px; line-height:1.4; }
.area-progress-launch > strong { flex:none; color:var(--navy); font:400 18px/1 var(--display); white-space:nowrap; }
.area-progress-launch .button { flex:none; min-height:35px; }
.area-progress-dialog { flex-direction:column; width:min(1080px,calc(100vw - 32px)); max-width:none; max-height:min(88vh,900px); padding:0; overflow:hidden; border:1px solid #d1dce2; border-radius:9px; color:var(--ink); background:#fff; box-shadow:0 24px 70px rgba(10,28,44,.28); }
.area-progress-dialog[open] { display:flex; }
.area-progress-dialog::backdrop { background:rgba(9,27,43,.56); backdrop-filter:blur(2px); }
.area-progress-dialog .dialog-topline { flex:none; }
.area-progress-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 22px 13px; }
.area-progress-dialog-heading h2 { margin:0; color:var(--navy); font-size:17px; font-weight:700; }
.area-progress-dialog-heading p { margin:4px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.area-progress-dialog-heading > strong { flex:none; color:var(--navy); font:400 20px/1 var(--display); white-space:nowrap; }
.area-progress-dialog-body { min-height:100px; padding:0 22px 18px; overflow:auto; }
.area-progress-dialog-footer { display:flex; flex:none; justify-content:flex-end; padding:10px 22px 14px; border-top:1px solid var(--line); background:#fafbfc; }
.area-progress-dialog-footer .button { min-height:34px; }
.area-progress-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:9px; }
.area-progress-card { min-width:0; padding:11px 12px; border:1px solid var(--line); border-radius:5px; background:#fbfcfd; }
.area-progress-card.selected { border-color:#8eafc3; background:#f1f7fa; box-shadow:inset 0 0 0 1px rgba(53,110,154,.12); }
.area-progress-card-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; min-width:0; margin-bottom:10px; }
.area-progress-name { overflow:hidden; color:#304b5b; font-size:10px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.area-progress-section { flex:none; padding:3px 6px; border-radius:3px; color:#607581; background:#edf2f5; font-size:8px; font-weight:700; }
.area-progress-card-stats { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:7px; }
.area-progress-card-stats strong { color:var(--navy); font:400 16px/1.1 var(--display); }
.area-progress-card-stats strong span { color:#687b86; font:500 9px/1.2 var(--sans); }
.area-progress-card-stats b { color:#607581; font:700 9px var(--data); }
.area-progress-track { height:7px; overflow:hidden; border-radius:99px; background:#e7edf0; }
.area-progress-track > span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#477b99,#72a394); transition:width .25s ease; }
.area-progress-card small { display:block; margin-top:6px; color:var(--muted); font-size:9px; }
.area-progress-loading { grid-column:1/-1; margin:0; padding:14px; color:var(--muted); font-size:10px; }
.review-filters { display:grid; grid-template-columns:minmax(230px,1.6fr) repeat(3,minmax(118px,1fr)); gap:9px; align-items:end; padding:13px; border:1px solid var(--line); border-top:2px solid var(--navy); background:#eef3f6; }
.review-filters .search-field { gap:5px; }
.filter-caption { color:#536976; font-size:9px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.review-filters .filter-field select { min-height:39px; }
.review-filters .filter-field small { color:var(--muted); font-size:9px; font-weight:500; text-transform:none; }
.review-filters .filter-field select:disabled { color:#8a98a1; background:#e6ecef; border-color:#d5dde2; cursor:not-allowed; }
.review-filters .clear-filters { grid-column:4; justify-self:end; }
.requirements-page .list-meta { min-height:46px; }
.requirements-page .page-size select { min-height:31px; }
.table-wrap { border:1px solid var(--line); box-shadow:0 4px 16px rgba(16,43,69,.035); }
.requirements-page table { width:100%; min-width:0; table-layout:fixed; }
.requirements-page th,.requirements-page td { min-width:0; }
.requirements-page th { position:relative; padding:0; text-align:center; }
.column-resizer { position:absolute; z-index:2; top:0; right:-4px; width:9px; height:100%; padding:0; border:0; background:transparent; cursor:col-resize; touch-action:none; }
.column-resizer::after { position:absolute; top:9px; right:4px; bottom:9px; width:1px; background:#c5d1d8; content:""; }
.column-resizer:hover::after,.column-resizer:focus-visible::after { width:2px; background:var(--amber); }
.column-resizer:focus-visible { outline:2px solid var(--amber); outline-offset:-2px; }
.table-sort { display:flex; align-items:center; justify-content:center; gap:5px; width:100%; min-height:40px; padding:7px 5px; border:0; color:#435c6b; background:#f2f6f8; text-align:center; font:700 9px/1.25 var(--data); letter-spacing:.025em; text-transform:uppercase; white-space:normal; overflow-wrap:anywhere; cursor:pointer; }
.table-sort:hover,.table-sort:focus-visible { color:var(--navy); background:#e7eff3; outline:2px solid rgba(53,110,154,.24); outline-offset:-2px; }
.table-sort span { color:#8a9aa4; font:12px var(--data); }
.requirements-page td { padding:11px 10px; line-height:1.4; }
.requirements-page .id-cell { width:60px; }
.requirements-page tbody td.id-cell { text-align:center; }
.requirements-page td:nth-child(2) { min-width:0; color:#405866; font-size:10px; overflow-wrap:anywhere; }
.requirements-page .area-cell { min-width:0; font-size:10px; overflow-wrap:anywhere; }
.requirements-page .request-cell { min-width:0; max-width:none; overflow-wrap:anywhere; }
.requirements-page .request-group { display:block; margin-top:6px; }
.requirements-page .request-group .badge { white-space:normal; }
.requirements-page .characteristic-cell { min-width:0; color:#425b69; font-size:10px; white-space:normal; overflow-wrap:anywhere; vertical-align:top; }
.requirements-page .quantity-cell { text-align:center; }
.requirements-page td:nth-child(5),.requirements-page td:nth-child(6),.requirements-page td:nth-child(7) { min-width:0; }
.requirements-page .technical-justification-cell,.requirements-page .analysis-cell { white-space:normal; vertical-align:middle; text-align:center; }
.requirements-page th.admin-managed-column { background:#e8f1f5; box-shadow:inset 0 3px #4b7f99; }
.requirements-page th.admin-managed-column .table-sort { color:#254d63; background:#e8f1f5; }
.requirements-page td.admin-managed-column { background:#f1f7f9; }
.requirements-page tr:hover td.admin-managed-column { background:#eaf3f6; }
.requirements-page .observations-cell { white-space:normal; overflow-wrap:anywhere; vertical-align:middle; text-align:center; }
.requirements-page .analysis-cell-content { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:7px; }
.request-detail-info { display:inline-flex; align-items:center; justify-content:center; gap:5px; min-height:30px; padding:4px 9px; border:1px solid #d6e1e7; border-radius:7px; color:#315b72; background:#f8fbfc; font:600 10px var(--data); cursor:pointer; transition:background .14s ease,border-color .14s ease,color .14s ease,transform .14s ease; }
.request-detail-info svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; }
.request-detail-info:hover { transform:translateY(-1px); border-color:#91b0c0; color:#173f59; background:#edf5f8; }
.request-detail-info:focus-visible { outline:3px solid rgba(53,110,154,.22); outline-offset:2px; }
.request-text-dialog { width:min(620px,calc(100vw - 32px)); }
.request-text-content { max-height:calc(90vh - 120px); overflow:auto; padding:8px 25px 22px; }
.request-text-content .eyebrow { margin:0 0 7px; color:var(--blue); }
.request-text-content h2 { margin:0 0 14px; color:var(--navy); font:400 24px/1.2 var(--display); }
.request-text-body { margin:0; padding:14px 16px; border:1px solid var(--line); border-radius:7px; color:#405866; background:#f7f9fa; font-size:13px; line-height:1.7; white-space:pre-wrap; overflow-wrap:anywhere; }
.request-text-dialog .legal-footer { justify-content:flex-end; }
.analysis-row-actions { display:flex; align-items:center; justify-content:center; gap:6px; margin:8px auto 0; }
.analysis-action { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:31px; padding:5px 9px; border:1px solid #afc7d3; border-radius:6px; color:#245a75; background:#eef6f9; font:700 9px var(--data); cursor:pointer; white-space:nowrap; transition:background .14s ease,border-color .14s ease,transform .14s ease; }
.analysis-action svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.analysis-action:hover { transform:translateY(-1px); border-color:#6b9ab0; background:#e2f0f5; }
.analysis-action:focus-visible { outline:3px solid rgba(53,110,154,.25); outline-offset:2px; }
.analysis-action:disabled { opacity:.6; cursor:wait; }
.analysis-action.analysis-publish { border-color:#a8cdb9; color:#1e694f; background:#edf7f0; }
.analysis-action.analysis-publish:hover { border-color:#69a687; background:#e1f1e6; }
.row-management { padding-inline:4px !important; white-space:nowrap; text-align:center; }
.requirements-page .row-management .request-edit,.requirements-page .row-management .staff-edit-icon { display:inline-grid; width:27px; height:27px; margin:0; place-items:center; }
.requirements-page .row-management .request-delete { width:27px; height:27px; margin-left:2px; }
.requirements-page .row-management .characteristic-request-icon { width:27px; height:27px; margin-left:2px; color:#1c6c58; border-color:#bfd8cc; }
.requirements-page .row-management .characteristic-request-icon:hover { border-color:#79aa95; background:#eef7f2; }
.row-icon { display:inline-grid; width:30px; height:30px; place-items:center; padding:0; border:1px solid #cbd6dc; border-radius:6px; color:#31546b; background:#fff; cursor:pointer; vertical-align:middle; }
.row-icon:hover { border-color:#7893a4; background:#f1f6f8; }
.row-icon:focus-visible { outline:3px solid rgba(53,110,154,.28); outline-offset:1px; }
.row-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.7; }
.row-icon.row-delete { margin-left:5px; color:#9b4c44; }
.row-icon.row-delete:hover { border-color:#ccaaa5; background:#fbf1ef; }
.row-icon.analysis-validate { color:#23745d; border-color:#bad8ca; background:#f0f8f3; }
.row-icon:disabled { opacity:.55; cursor:wait; }
.published-mark { display:inline-flex; align-items:center; gap:4px; color:#23745d; font-size:9px; font-weight:700; }
.analysis-entry-dialog { width:min(640px,calc(100vw - 32px)); max-width:640px; }
.analysis-entry-context { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(0,1.4fr); gap:12px; margin:0 23px 10px; padding:9px 12px; border:1px solid var(--line); border-left:3px solid var(--amber); border-radius:6px; background:#f6f8f9; }
.analysis-entry-context>div { display:grid; align-content:start; gap:4px; min-width:0; }
.analysis-entry-context span { color:var(--muted); font:700 8px var(--data); letter-spacing:.07em; }
.analysis-entry-context strong,.analysis-entry-context small { overflow-wrap:anywhere; color:var(--navy); font-size:10px; }
.analysis-entry-context small { color:var(--muted); font-size:9px; }
.analysis-entry-field { padding:0 23px 10px; }
.analysis-entry-field textarea { min-height:120px; font-size:12px; line-height:1.5; }
.analysis-entry-dialog .dialog-feedback { padding-inline:23px; }
.analysis-entry-submit { min-width:150px; }
.analysis-entry-icon { color:#fff; background:#276c88; }
.confirm-dialog { width:min(440px,calc(100vw - 28px)); padding:0; border:1px solid #d1dce2; border-radius:10px; color:var(--ink); background:#fff; box-shadow:0 24px 70px rgba(10,28,44,.28); }
.confirm-dialog::backdrop { background:rgba(9,27,43,.55); backdrop-filter:blur(2px); }
.confirm-content { padding:14px 22px 8px; }
.confirm-content h2 { margin:0 0 8px; color:var(--navy); font-size:20px; }
.confirm-content p { margin:0 0 8px; color:#536976; font-size:12px; line-height:1.55; }
.confirm-content .confirm-warning { color:#96524a; }
.confirm-dialog .dialog-footer { display:flex; justify-content:flex-end; gap:8px; padding:14px 20px 18px; }
.button-danger { min-height:36px; padding:0 14px; border:1px solid #a65048; border-radius:5px; color:#fff; background:#a65048; font:inherit; cursor:pointer; }
.button-danger:hover { background:#843e38; }
.button-danger:disabled { opacity:.6; cursor:wait; }
.analysis-status { display:inline-flex; align-items:center; gap:5px; min-height:22px; padding:3px 8px; border:1px solid #d9e1e5; border-radius:999px; color:#6b5a35; background:#fbf6e9; font-size:9px; font-weight:700; line-height:1.2; white-space:nowrap; }
.analysis-status>span { display:inline-grid; width:14px; height:14px; place-items:center; border:1px solid currentColor; border-radius:50%; font-size:9px; line-height:1; }
.analysis-status.ok { border-color:#cce3d9; color:#226b58; background:#ebf5f0; }
.analysis-status.observed { border-color:#ead4a2; color:#76581d; background:#fff5e1; }
.analysis-status.no { border-color:#ecd4cf; color:#8a4a3f; background:#f9efec; }
.requirements-page .badge { max-width:100%; }
.requirements-page .request-title-row { display:flex; align-items:flex-start; gap:7px; min-width:0; }
.requirements-page .request-title.request-open { display:block; flex:1; min-width:0; padding:0; border:0; border-radius:0; appearance:none; -webkit-appearance:none; box-shadow:none; color:var(--navy); background:transparent; text-align:left; font:inherit; font-weight:650; line-height:1.35; cursor:pointer; }
.requirements-page .request-title.request-open:hover { color:var(--blue); text-decoration:underline; }
.requirements-page .request-title.request-open:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.requirements-page .request-edit { display:grid; flex:none; width:27px; height:27px; margin:-5px -4px 0 0; place-items:center; border:1px solid #d7e1e7; border-radius:5px; color:#5b7482; background:#fff; cursor:pointer; transition:color .14s ease,border-color .14s ease,background .14s ease; }
.requirements-page .request-edit:hover { border-color:#8eafc3; color:var(--blue); background:#eef5f8; }
.requirements-page .request-edit:focus-visible { outline:3px solid rgba(53,110,154,.22); outline-offset:2px; }
.requirements-page .request-edit svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; }
.fixed-info-open { display:inline-flex; align-items:center; gap:5px; padding:0; border:0; background:transparent; cursor:pointer; }
.fixed-info-open:focus-visible { outline:2px solid var(--blue); outline-offset:3px; border-radius:4px; }
.info-mark { display:inline-grid; width:16px; height:16px; place-items:center; border:1px solid #9eb4c1; border-radius:50%; color:#567384; font:700 10px var(--data); }
.fixed-info-open:hover .info-mark { border-color:var(--blue); color:var(--blue); }
.fixed-asset-cell { min-width:116px; }
.requirements-page .fixed-asset-cell { min-width:0; }
.fixed-admin-controls { display:flex; align-items:center; justify-content:center; gap:6px; }
.asset-fixed-select { width:88px; min-height:30px; padding:4px 23px 4px 8px; border:1px solid #c8d5dc; border-radius:6px; color:var(--navy); background:#fff; font:600 11px var(--sans); cursor:pointer; }
.asset-fixed-select:focus-visible { outline:2px solid rgba(53,110,154,.25); border-color:var(--blue); }
.asset-fixed-select.saving { opacity:.65; cursor:wait; }
.legal-dialog { width:min(660px,calc(100vw - 32px)); max-width:660px; max-height:min(90vh,790px); padding:0; border:1px solid var(--line-strong); border-radius:10px; color:var(--ink); background:#fff; box-shadow:var(--shadow); overflow:hidden; }
.legal-dialog::backdrop { background:rgba(9,27,43,.58); backdrop-filter:blur(2px); }
.legal-guide-content { max-height:calc(90vh - 120px); overflow:auto; padding:8px 25px 18px; }
.legal-guide-content .eyebrow { margin:0 0 7px; color:var(--blue); }
.legal-guide-content h2 { max-width:540px; margin:0; color:var(--navy); font:400 25px/1.2 var(--display); }
.legal-intro { margin:9px 0 17px; color:var(--muted); font-size:12px; line-height:1.55; }
.legal-criteria { display:grid; gap:8px; }
.legal-criteria article { display:grid; grid-template-columns:29px 1fr; gap:10px; padding:11px 12px; border:1px solid var(--line); background:#f7f9fa; }
.legal-criteria article>span { color:#a3752a; font:700 10px var(--data); }
.legal-criteria strong,.legal-sources>strong { color:var(--navy); font-size:11px; }
.legal-criteria p { margin:3px 0 0; color:#586d79; font-size:10px; line-height:1.55; }
.legal-sources { margin-top:15px; padding-top:12px; border-top:1px solid var(--line); }
.legal-sources ul { display:grid; gap:9px; margin:8px 0 0; padding-left:18px; color:#586d79; font-size:10px; line-height:1.55; }
.legal-sources a { display:inline-block; margin-left:3px; color:#27678c; font-weight:700; }
.legal-footer { display:flex; justify-content:flex-end; padding:10px 24px 14px; border-top:1px solid var(--line); background:#fafbfc; }
.legal-footer .button { min-height:34px; }
.requirements-page .pagination { align-items:center; }
@media (max-width:1150px) { .review-filters { grid-template-columns:repeat(3,minmax(140px,1fr)); } .review-filters .search-field { grid-column:span 2; } .review-filters .clear-filters { grid-column:3; } }
@media (max-width:760px) {
  .requirements-page .app-shell { padding:20px 15px 28px; }
  .requirements-page .worklist-heading { gap:12px; }
  .requirements-page .toolbar { width:100%; }
  .work-modes { grid-template-columns:1fr; gap:8px; margin:13px 0; }
  .work-mode { min-height:64px; padding:9px 11px; }
  .requirements-page .section-filter-row { align-items:stretch; flex-direction:column; gap:7px; padding:11px; }
  .requirements-page .section-filter { width:100%; grid-template-columns:1fr; gap:5px; }
  .requirements-page .section-filter-label,.requirements-page .section-filter select { grid-column:1; grid-row:auto; }
  .area-progress-launch { flex-wrap:wrap; gap:9px; padding:10px; }
  .area-progress-launch-copy { min-width:calc(100% - 54px); }
  .area-progress-launch > strong { margin-left:44px; font-size:15px; }
  .area-progress-launch .button { margin-left:auto; }
  .area-progress-dialog { width:calc(100vw - 20px); max-height:92vh; }
  .area-progress-dialog-heading { align-items:flex-start; flex-direction:column; gap:8px; padding:13px 15px 10px; }
  .area-progress-dialog-heading > strong { font-size:18px; }
  .area-progress-dialog-body { padding:0 15px 14px; }
  .area-progress-dialog-footer { padding:9px 15px 12px; }
  .area-progress-cards { grid-template-columns:1fr; }
  .review-filters { grid-template-columns:1fr 1fr; gap:8px; padding:10px; }
  .review-filters .search-field { grid-column:1 / -1; }
  .review-filters .clear-filters { grid-column:1 / -1; justify-self:start; }
  .requirements-page .list-meta { align-items:flex-start; flex-direction:column; gap:8px; padding:8px 0; }
  .requirements-page table { display:block; width:100% !important; min-width:0; table-layout:auto; }
  .requirements-page colgroup { display:none; }
  .requirements-page thead { display:none; }
  .requirements-page tbody { display:grid; width:100%; gap:9px; }
  .requirements-page tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"id section" "area area" "request request" "characteristic characteristic" "quantity quantity" "justification justification" "observations observations" "fixed analysis" "actions actions"; gap:8px 12px; width:100%; min-width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid var(--line); background:#fff; }
  .requirements-page tbody td { display:block; width:auto; min-width:0; max-width:none; padding:0; border:0; font-size:10px; }
  .requirements-page tbody .area-cell,.requirements-page tbody .request-cell { min-width:0; }
  .requirements-page tbody td::before { display:block; margin-bottom:3px; color:#7b8a94; font-size:8px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; content:attr(data-label); }
  .requirements-page tbody td:nth-child(1) { grid-area:id; }
  .requirements-page tbody td:nth-child(2) { grid-area:section; text-align:right; }
  .requirements-page tbody td:nth-child(3) { grid-area:area; }
  .requirements-page tbody td:nth-child(4) { grid-area:request; max-width:none; padding:0; }
  .requirements-page tbody td:nth-child(5) { grid-area:characteristic; }
  .requirements-page tbody td:nth-child(6) { position:static; grid-area:quantity; color:var(--ink); }
  .requirements-page tbody td:nth-child(7) { grid-area:justification; }
  .requirements-page tbody td:nth-child(8) { position:static; grid-area:observations; }
  .requirements-page tbody td:nth-child(9) { grid-area:fixed; }
  .requirements-page tbody td:nth-child(10) { grid-area:analysis; }
  .requirements-page tbody td:nth-child(11) { grid-area:actions; justify-self:end; }
  .requirements-page tbody td:nth-child(2)::before,.requirements-page tbody td:nth-child(1)::before,.requirements-page tbody td:nth-child(4)::before { display:none; }
  .requirements-page .quantity-cell { font:11px var(--data); }
  .requirements-page .request-subtitle { white-space:normal; }
  .legal-dialog { width:calc(100vw - 18px); max-height:94dvh; }
  .legal-guide-content { max-height:calc(94dvh - 120px); padding:8px 16px 15px; }
  .legal-guide-content h2 { font-size:22px; }
  .legal-footer { padding-right:16px; padding-left:16px; }
}
@media (prefers-reduced-motion:reduce) { .work-mode,.table-sort,.requirements-page .row-open,.consultation-back svg,.admin-input-shell input,.admin-login-submit svg { transition:none; } .admin-dialog[open] { animation:none; } .consultation-back:hover { transform:none; } }

/* Flujo de entrada: tablero, consulta general y trabajo asociado a un área. */
.dashboard-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:9px; }
.dashboard-actions .dashboard-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.area-picker-dialog { width:min(560px,calc(100vw - 30px)); max-width:560px; }
.area-picker-form { display:grid; gap:9px; padding:0 23px 12px; }
.area-picker-form .form-field { display:grid; gap:6px; }
.area-picker-form .form-field>span { color:#526a79; font-size:11px; font-weight:700; }
.area-picker-form select { width:100%; min-height:37px; padding:0 12px; border:1px solid #c8d5dc; border-radius:6px; color:var(--navy); background:#fff; font:12px var(--sans); }
.area-picker-form select:disabled { color:#84949d; background:#f2f5f6; }
.area-picker-form .dialog-feedback:empty { display:none; }
.area-picker-form .dialog-footer { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:2px -23px -18px; padding:13px 23px 18px; border-top:1px solid var(--line); background:#fafbfc; }
.area-context-filter { display:grid; min-width:min(340px,100%); gap:4px; }
.area-context-filter strong { color:var(--navy); font-size:13px; }
.requirements-page .section-filter-row:has(.area-context-filter:not(.hidden)) { justify-content:flex-start; }
.requirements-page .read-only-action { display:inline-block; min-width:25px; color:#a0adb5; text-align:center; }
.admin-panel-link { display:flex; align-items:center; min-height:34px; padding:0 9px; border:1px solid var(--line); border-radius:5px; color:var(--navy); background:#f7f9fa; font-size:10px; font-weight:650; text-decoration:none; }
.admin-panel-link:hover { border-color:#b9cbd6; background:#edf3f6; }
.requirements-page.consultation-mode #requestColumns col:last-child,
.requirements-page.consultation-mode #requirementsTable thead th:last-child,
.requirements-page.consultation-mode #requestRows td:last-child { display:none; }
.requirements-page.consultation-mode #requirementsTable thead th:nth-last-child(2) .column-resizer { display:none; }
.requirements-page.consultation-mode #staffCreateButton,
.requirements-page.consultation-mode #newButton { display:none !important; }
.consultation-back { gap:8px; }
.consultation-back svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s ease; }
.consultation-back:hover { transform:translateY(-1px); box-shadow:0 5px 14px rgba(18,52,77,.12); }
.consultation-back:hover svg { transform:translateX(-3px); }
.consultation-back:focus-visible { outline:2px solid rgba(53,110,154,.35); outline-offset:2px; }
@media (max-width:760px) {
  .requirements-page.consultation-mode tbody td:nth-child(11) { display:none; }
  .requirements-page.consultation-mode tbody tr { grid-template-areas:"id section" "area area" "request request" "characteristic characteristic" "quantity quantity" "justification justification" "observations observations" "fixed analysis"; }
}
@media (max-width:650px) {
  .dashboard-actions { width:100%; flex-direction:column; align-items:stretch; }
  .dashboard-actions .dashboard-link { width:100%; }
  .area-picker-form { padding:0 16px 14px; }
  .area-picker-form .dialog-footer { align-items:stretch; flex-direction:column; margin:2px -16px -14px; padding:12px 16px 14px; }
  .area-picker-form .dialog-footer>div { display:flex; justify-content:flex-end; gap:8px; }
  .area-context-filter { width:100%; }
}

/* Admin workspace navigation */
.requirements-page.admin-mode .app-shell { display:grid; grid-template-columns:224px minmax(0,1fr); gap:0 22px; max-width:1660px; padding:24px clamp(16px,2.2vw,32px) 30px; }
.admin-mode .admin-sidebar:not(.hidden) { display:flex; }
.admin-sidebar { position:sticky; top:16px; grid-column:1; grid-row:1 / span 2; min-width:0; min-height:calc(100vh - 106px); flex-direction:column; align-self:start; padding:17px 13px 13px; border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:7px; background:#fff; box-shadow:0 4px 15px rgba(16,43,69,.045); }
.admin-sidebar-brand { display:flex; align-items:center; gap:10px; padding:1px 3px 17px; border-bottom:1px solid #e7edf0; }
.admin-sidebar-mark { display:grid; width:37px; height:37px; flex:0 0 37px; place-items:center; border-bottom:3px solid var(--amber); color:#fff; background:var(--navy); font:700 10px var(--data); letter-spacing:.04em; }
.admin-sidebar-brand strong { display:block; color:var(--navy); font-size:12px; font-weight:750; }
.admin-sidebar-brand small { display:block; margin-top:3px; color:var(--muted); font-size:9px; line-height:1.35; }
.admin-sidebar-caption { margin:18px 8px 7px; color:#7c8e99; font:700 8px var(--data); letter-spacing:.1em; }
.admin-sidebar-nav { display:grid; gap:4px; }
.admin-sidebar-link { position:relative; display:flex; min-height:41px; align-items:center; gap:10px; padding:0 10px; border:1px solid transparent; border-radius:5px; color:#4b6372; font-size:11px; font-weight:650; text-decoration:none; transition:background .16s ease,border-color .16s ease,color .16s ease; }
.admin-sidebar-link svg { width:17px; height:17px; flex:0 0 17px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.5; }
.admin-sidebar-link:hover { border-color:#e1e9ee; color:var(--navy); background:#f6f9fa; }
.admin-sidebar-link.active { border-color:#d6e1e7; color:var(--navy); background:#edf3f6; }
.admin-sidebar-link.active::before { position:absolute; top:6px; bottom:6px; left:-1px; width:3px; border-radius:0 3px 3px 0; background:var(--amber); content:""; }
.admin-sidebar-current { width:6px; height:6px; margin-left:auto; border-radius:50%; background:#34846a; box-shadow:0 0 0 3px rgba(52,132,106,.12); }
.admin-sidebar-status { display:flex; align-items:center; gap:8px; margin-top:auto; padding:11px 8px 1px; border-top:1px solid #e7edf0; color:#627582; font-size:9px; line-height:1.35; }
.admin-sidebar-status-dot { width:7px; height:7px; flex:0 0 7px; border-radius:50%; background:#36856b; box-shadow:0 0 0 3px rgba(54,133,107,.12); }
.requirements-page.admin-mode .worklist { grid-column:2; grid-row:1; min-width:0; }
.requirements-page.admin-mode .admin-personnel-page { grid-column:2; grid-row:1; min-width:0; }
.requirements-page.admin-mode .app-footer { grid-column:2; grid-row:2; margin-top:13px; }
@media (max-width:1050px) {
  .requirements-page.admin-mode .app-shell { grid-template-columns:190px minmax(0,1fr); gap:0 15px; padding-inline:15px; }
  .admin-sidebar { padding-inline:10px; }
}
@media (max-width:760px) {
  .requirements-page.admin-mode .app-shell { display:flex; flex-direction:column; gap:12px; padding:17px 15px 24px; }
  .admin-sidebar { position:static; min-height:0; width:100%; flex-direction:row; align-items:center; gap:12px; padding:9px 10px; border-top:1px solid var(--line); border-left:3px solid var(--navy); }
  .admin-sidebar-brand { flex:0 0 auto; padding:0 11px 0 0; border-right:1px solid #e7edf0; border-bottom:0; }
  .admin-sidebar-mark { width:31px; height:31px; flex-basis:31px; font-size:9px; }
  .admin-sidebar-brand small,.admin-sidebar-caption,.admin-sidebar-status { display:none; }
  .admin-sidebar-nav { display:flex; min-width:0; flex:1; }
  .admin-sidebar-link { min-height:36px; padding:0 9px; }
  .requirements-page.admin-mode .worklist,.requirements-page.admin-mode .app-footer { grid-column:auto; grid-row:auto; }
  .requirements-page.admin-mode .admin-personnel-page { grid-column:auto; grid-row:auto; }
  .requirements-page.admin-mode .app-footer { margin-top:0; }
}
@media (prefers-reduced-motion:reduce) { .admin-sidebar-link { transition:none; } }

/* CRUD de personal vinculado al módulo de trabajo por área */
.admin-sidebar-nav { gap:5px; }
.admin-personnel-page { min-width:0; color:var(--ink); }
.personnel-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.personnel-page-heading .eyebrow { margin:0 0 6px; }
.personnel-page-heading h1 { margin:0; color:var(--navy); font:400 clamp(25px,3vw,34px)/1.08 var(--display); }
.personnel-page-heading p { max-width:650px; margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.personnel-page-heading .button { flex:0 0 auto; min-height:39px; gap:7px; }
.personnel-page-heading .button > span { display:grid; width:19px; height:19px; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; font-size:14px; }
.personnel-module-context { display:flex; align-items:center; gap:11px; margin-bottom:15px; padding:11px 13px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:6px; background:#f5f8fa; }
.personnel-module-icon { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border-bottom:2px solid var(--amber); color:#fff; background:var(--navy); font:700 11px var(--data); }
.personnel-module-context strong,.personnel-module-context small { display:block; }
.personnel-module-context strong { color:var(--navy); font-size:11px; }
.personnel-module-context small { margin-top:3px; color:var(--muted); font-size:9px; }
.personnel-context-tag { margin-left:auto; padding:5px 7px; border:1px solid #d4e5dc; border-radius:4px; color:#35755e; background:#eef7f2; font:700 8px var(--data); letter-spacing:.04em; white-space:nowrap; }
.personnel-toolbar { display:grid; grid-template-columns:minmax(210px,1.6fr) repeat(2,minmax(145px,1fr)) minmax(112px,.7fr); align-items:end; gap:10px; padding:13px; border:1px solid var(--line); border-top:2px solid var(--navy); background:#f6f8f9; }
.personnel-toolbar label { display:grid; min-width:0; gap:5px; }
.personnel-toolbar label > span { color:#526a79; font-size:9px; font-weight:750; letter-spacing:.045em; text-transform:uppercase; }
.personnel-toolbar input,.personnel-toolbar select { width:100%; min-height:36px; padding:7px 10px; border:1px solid #c8d5dc; border-radius:5px; color:var(--navy); background:#fff; font:11px var(--sans); }
.personnel-toolbar input:focus,.personnel-toolbar select:focus,.personnel-form input:focus,.personnel-form select:focus { border-color:var(--blue); outline:2px solid rgba(53,110,154,.15); }
.personnel-toolbar select:disabled { color:#8b9aa2; background:#edf1f3; }
.personnel-list-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 1px 8px; color:var(--muted); font-size:9px; }
.personnel-list-meta > span:first-child { color:#4b6372; font-weight:650; }
.personnel-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:5px; background:#fff; }
.personnel-table { width:100%; min-width:750px; border-collapse:collapse; table-layout:fixed; }
.personnel-table th { height:38px; padding:8px 10px; border-bottom:1px solid #cdd9df; color:#667b88; background:#f2f6f8; font:700 8px var(--data); letter-spacing:.045em; text-align:left; text-transform:uppercase; }
.personnel-table th:first-child { width:19%; }
.personnel-table th:nth-child(2) { width:20%; }
.personnel-table th:nth-child(3) { width:13%; }
.personnel-table th:nth-child(4) { width:25%; }
.personnel-table th:nth-child(5) { width:11%; }
.personnel-table th:last-child { width:12%; text-align:center; }
.personnel-table td { padding:10px; border-bottom:1px solid #e6ecef; color:#435b6a; font-size:10px; line-height:1.4; overflow-wrap:anywhere; vertical-align:middle; }
.personnel-table tbody tr:last-child td { border-bottom:0; }
.personnel-table tbody tr:hover { background:#f9fbfc; }
.personnel-name { display:block; color:var(--navy); font-size:10px; }
.personnel-module-label { display:block; margin-top:3px; color:#85949c; font-size:8px; }
.personnel-state { display:inline-flex; align-items:center; gap:6px; padding:4px 7px; border:1px solid; border-radius:12px; font-size:9px; font-weight:650; white-space:nowrap; }
.personnel-state::before { width:6px; height:6px; border-radius:50%; background:currentColor; content:""; }
.personnel-state.is-active { border-color:#d2e4da; color:#34785d; background:#f1f8f4; }
.personnel-state.is-inactive { border-color:#e0e4e6; color:#7e8b92; background:#f4f6f7; }
.personnel-row-actions { display:flex; justify-content:center; gap:6px; }
.personnel-row-action { display:grid; width:30px; height:30px; place-items:center; border:1px solid #ccd8df; border-radius:5px; color:#355d76; background:#fff; cursor:pointer; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.personnel-row-action:hover { border-color:#a9c2d1; background:#f1f6f8; }
.personnel-row-action svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.55; stroke-linecap:round; stroke-linejoin:round; }
.personnel-row-action.is-danger { color:#a24d46; }
.personnel-row-action.is-danger:hover { border-color:#e2c7c4; background:#fcf4f3; }
.personnel-row-action.is-disable { color:#8a6526; }
.personnel-row-action.is-disable:hover { border-color:#e6d6b5; background:#fbf7ed; }
.personnel-row-action.is-delete { color:#a24d46; }
.personnel-row-action.is-delete:hover { border-color:#e2c7c4; background:#fcf4f3; }
.personnel-row-action.is-restore { color:#35765d; }
.personnel-empty { padding:35px 12px!important; color:var(--muted)!important; text-align:center; }
.personnel-empty strong,.personnel-empty span { display:block; }
.personnel-empty strong { color:var(--navy); font:400 17px var(--display); }
.personnel-empty span { margin-top:4px; font-size:10px; }
.personnel-dialog { width:min(570px,calc(100vw - 30px)); max-width:570px; }
.personnel-dialog-heading .record-index { width:43px; height:43px; flex-basis:43px; }
.personnel-dialog-heading .record-index svg { width:22px; height:22px; fill:none; stroke:#fff; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.personnel-dialog-module { display:grid; gap:3px; margin:0 23px 14px; padding:9px 12px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:5px; background:#f5f8fa; }
.personnel-dialog-module span { color:#71838e; font:700 8px var(--data); letter-spacing:.06em; }
.personnel-dialog-module strong { color:var(--navy); font-size:10px; }
.personnel-dialog-module small { color:var(--muted); font-size:9px; }
.personnel-form { padding:0 23px; }
.personnel-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px 14px; padding-bottom:12px; }
.personnel-form-grid .form-field { gap:5px; }
.personnel-form-grid .form-field > span:first-child { color:#425b6a; font-size:10px; }
.personnel-form-grid input,.personnel-form-grid select { min-height:37px; border-radius:6px; }
.personnel-form-grid select:disabled { color:#87979f; background:#edf1f3; }
.personnel-form-wide { grid-column:1/-1; }
.personnel-form .dialog-footer { margin:3px -23px 0; padding:12px 20px 14px; }
.personnel-form .updated-stamp { max-width:240px; line-height:1.4; }
.personnel-form .dialog-feedback { padding-inline:0; }
.personnel-form .dialog-feedback:not(:empty) { padding-bottom:8px; }
.personnel-delete-dialog { width:min(820px,calc(100vw - 30px)); max-width:820px; max-height:min(90vh,850px); overflow:auto; }
.personnel-delete-dialog .confirm-content { padding-bottom:8px; }
.personnel-delete-identity { display:grid; gap:4px; margin:12px 0; padding:10px 12px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:5px; background:#f5f8fa; }
.personnel-delete-identity strong { color:var(--navy); font-size:12px; }
.personnel-delete-identity span,.personnel-delete-progress { color:var(--muted); font-size:10px; }
.personnel-delete-progress { margin:10px 0 7px; font-weight:700; }
.personnel-dependency-list { display:grid; max-height:42vh; overflow:auto; border:1px solid var(--line); border-radius:5px; background:#fff; }
.personnel-dependency-item { display:grid; grid-template-columns:145px minmax(0,1fr) auto; align-items:center; gap:12px; padding:11px 12px; border-bottom:1px solid #e7edef; }
.personnel-dependency-item:last-child { border-bottom:0; }
.personnel-dependency-item.is-resolved { background:#f3f8f5; }
.personnel-dependency-check { display:flex; align-items:center; gap:7px; color:#536b79; font-size:9px; }
.personnel-dependency-check input { accent-color:#35765d; }
.personnel-dependency-copy { display:grid; min-width:0; gap:4px; }
.personnel-dependency-copy strong { color:var(--navy); font-size:10px; }
.personnel-dependency-copy small { color:var(--muted); font-size:9px; line-height:1.45; }
.personnel-dependency-action { white-space:nowrap; }
.personnel-dependency-controls { display:flex; align-items:end; flex-wrap:wrap; gap:7px; margin-top:6px; }
.personnel-dependency-controls label { display:grid; min-width:min(270px,100%); flex:1; gap:4px; color:#526a79; font-size:9px; }
.personnel-dependency-controls select { min-height:33px; padding:5px 8px; border:1px solid #c8d5dc; border-radius:5px; color:var(--navy); background:#fff; font:10px var(--sans); }
.personnel-dependency-empty { display:grid; gap:5px; padding:18px; text-align:center; }
.personnel-dependency-empty strong { color:var(--navy); font-size:11px; }
.personnel-dependency-empty span { color:var(--muted); font-size:9px; }
.personnel-delete-dialog .dialog-feedback { margin:5px 0 0; }
@media (max-width:650px) {
  .personnel-dependency-item { grid-template-columns:1fr; align-items:start; gap:7px; }
  .personnel-dependency-action { justify-self:start; }
  .personnel-dependency-list { max-height:50vh; }
}
@media (max-width:1050px) { .personnel-toolbar { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
  .personnel-page-heading { align-items:stretch; flex-direction:column; gap:12px; }
  .personnel-page-heading .button { align-self:flex-start; }
  .personnel-toolbar { grid-template-columns:1fr 1fr; gap:9px; padding:10px; }
  .personnel-search { grid-column:1/-1; }
  .personnel-list-meta { align-items:flex-start; flex-direction:column; gap:4px; }
  .personnel-table { min-width:700px; }
  .personnel-dialog-module { margin-inline:15px; }
  .personnel-form { padding-inline:15px; }
  .personnel-form-grid { grid-template-columns:1fr; gap:9px; }
  .personnel-form-wide { grid-column:1; }
  .personnel-form .dialog-footer { margin-inline:-15px; padding-inline:15px; }
}
@media (prefers-reduced-motion:reduce) { .personnel-row-action { transition:none; } }

.asset-universe-caveat { border-left-color:#c88718; background:#fffaf0; }
.asset-assessment-panel { margin:16px 0; padding:18px; border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:4px; background:#fff; }
.asset-assessment-panel h2 { margin:2px 0 5px; color:var(--navy); font:26px/1.15 Georgia,serif; }
.asset-assessment-panel>div>p:last-child { margin:0; color:var(--muted); font-size:12px; }
.asset-assessment-panel form { display:grid; grid-template-columns:minmax(260px,2fr) minmax(200px,1fr) minmax(260px,2fr) minmax(190px,1.25fr) auto; gap:10px; align-items:end; margin-top:14px; }
.asset-assessment-panel label,.asset-universe-upload { display:grid; gap:5px; color:var(--ink); font-size:11px; font-weight:650; }
.asset-assessment-panel label>span { color:var(--muted); }
.asset-assessment-panel textarea { min-height:40px; resize:vertical; }
.asset-assessment-panel input,.asset-assessment-panel select,.asset-assessment-panel textarea { width:100%; padding:9px 10px; border:1px solid var(--line); border-radius:4px; background:#fff; color:var(--ink); font:inherit; }
.asset-assessment-panel form>small { grid-column:1/-1; min-height:14px; color:var(--muted); font-weight:400; }
.asset-universe-toolbar { grid-template-columns:minmax(220px,1.25fr) minmax(260px,2fr) minmax(180px,1fr) minmax(180px,1fr); }
.asset-universe-upload input { display:block; width:100%; min-height:40px; padding:7px; border:1px dashed var(--line); border-radius:4px; background:#fff; color:var(--ink); }
.asset-universe-upload small,.asset-universe-table .catalog-detail { display:block; margin-top:4px; color:var(--muted); font-size:11px; line-height:1.4; }
.asset-universe-table { min-width:1100px; }
.asset-universe-table td { vertical-align:top; }
.asset-universe-table td strong { color:var(--navy); }
.asset-universe-pager { display:flex; justify-content:center; align-items:center; gap:16px; padding:14px; color:var(--muted); }
.asset-link-open { padding:7px 12px; white-space:nowrap; }
#assetLinkForm { display:grid; gap:13px; padding:0 24px 24px; }
#assetLinkForm .dialog-footer { margin:0; padding:14px 0 0; }
@media (max-width:1050px) { .asset-universe-toolbar { grid-template-columns:1fr 1fr; } .asset-assessment-panel form { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .asset-universe-toolbar,.asset-assessment-panel form { grid-template-columns:1fr; } .asset-universe-pager { gap:8px; } }

/* Catálogo institucional administrado desde el módulo de trabajo */
.requirements-page.admin-mode .admin-catalog-page { grid-column:2; grid-row:1; min-width:0; }
.catalog-module-icon { font-family:var(--display); font-size:17px; }
.catalog-toolbar { display:grid; grid-template-columns:minmax(230px,1.7fr) minmax(190px,1fr) minmax(130px,.65fr); align-items:end; gap:10px; padding:13px; border:1px solid var(--line); border-top:2px solid var(--navy); background:#f6f8f9; }
.catalog-toolbar label { display:grid; min-width:0; gap:5px; }
.catalog-toolbar label>span { color:#526a79; font-size:9px; font-weight:750; letter-spacing:.045em; text-transform:uppercase; }
.catalog-toolbar input,.catalog-toolbar select { width:100%; min-height:36px; padding:7px 10px; border:1px solid #c8d5dc; border-radius:5px; color:var(--navy); background:#fff; font:11px var(--sans); }
.catalog-toolbar input:focus,.catalog-toolbar select:focus,.catalog-form input:focus,.catalog-form select:focus,.catalog-form textarea:focus { border-color:var(--blue); outline:2px solid rgba(53,110,154,.15); }
.catalog-table { min-width:900px; }
.catalog-table th:first-child { width:18%; }
.catalog-table th:nth-child(2) { width:20%; }
.catalog-table th:nth-child(3) { width:23%; }
.catalog-table th:nth-child(4) { width:14%; }
.catalog-table th:nth-child(5) { width:9%; text-align:center; }
.catalog-table th:nth-child(6) { width:8%; }
.catalog-table th:last-child { width:8%; }
.catalog-table td:nth-child(5) { text-align:center; font-variant-numeric:tabular-nums; }
.catalog-item-name { display:block; color:var(--navy); font-size:10px; }
.catalog-detail { display:block; margin-top:3px; color:#788993; font-size:8px; line-height:1.4; }
.catalog-characteristics { display:flex; flex-wrap:wrap; gap:4px; }
.catalog-characteristic-chip { max-width:100%; padding:3px 6px; border:1px solid #d9e3e8; border-radius:4px; color:#4c6371; background:#f6f8f9; font-size:8px; line-height:1.35; overflow-wrap:anywhere; }
.catalog-characteristic-more { color:#71838e; font-size:8px; white-space:nowrap; }
.catalog-dialog { width:min(650px,calc(100vw - 30px)); max-width:650px; }
.catalog-dialog-mark { width:43px; height:43px; flex:0 0 43px; border-bottom:2px solid var(--amber); color:#fff; background:#316e99; font:700 15px var(--display); }
.catalog-form { padding:0 23px; }
.catalog-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px 14px; padding-bottom:8px; }
.catalog-form-grid .form-field { gap:5px; }
.catalog-form-grid .form-field>span:first-child { color:#425b6a; font-size:10px; }
.catalog-form-grid input,.catalog-form-grid select { min-height:37px; border-radius:6px; }
.catalog-form-grid textarea { min-height:75px; padding:10px 11px; border-radius:6px; resize:vertical; font:11px/1.5 var(--sans); }
.catalog-form-grid small { color:var(--muted); font-size:9px; line-height:1.35; }
.catalog-characteristic-manager { display:grid; gap:7px; }
.catalog-characteristic-add { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.catalog-characteristic-add input { min-width:0; min-height:36px; padding:7px 10px; border:1px solid #c8d5dc; border-radius:6px; color:var(--navy); background:#fff; font:11px var(--sans); }
.catalog-characteristic-add .button { min-height:36px; padding:7px 11px; }
.catalog-characteristic-list { display:grid; max-height:230px; overflow:auto; border:1px solid #d9e3e8; border-radius:6px; background:#fff; }
.catalog-characteristic-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:8px; padding:7px 9px; border-bottom:1px solid #edf1f3; }
.catalog-characteristic-row:last-child { border-bottom:0; }
.catalog-characteristic-label { min-width:0; color:#304e61; font-size:10px; overflow-wrap:anywhere; }
.catalog-characteristic-usage { color:#778893; font-size:8px; white-space:nowrap; }
.catalog-characteristic-toggle { padding:4px 7px; border:1px solid #c9d6dd; border-radius:4px; color:#2c704f; background:#f4faf6; font:700 8px var(--sans); cursor:pointer; }
.catalog-characteristic-row.is-inactive .catalog-characteristic-label { color:#8a969d; text-decoration:line-through; }
.catalog-characteristic-row.is-inactive .catalog-characteristic-toggle { color:#80591b; background:#fffaf0; }
.catalog-characteristic-empty { padding:13px; color:#778893; font-size:9px; text-align:center; }
.catalog-characteristic-manager>small { color:var(--muted); font-size:9px; line-height:1.4; }
.catalog-form-wide { grid-column:1/-1; }
.catalog-impact-note { margin:4px 0 10px; padding:8px 10px; border-left:2px solid var(--amber); color:#617581; background:#f7f8f8; font-size:9px; line-height:1.45; }
.catalog-form .dialog-footer { margin:3px -23px 0; padding:12px 20px 14px; }
.catalog-form .updated-stamp { max-width:235px; line-height:1.4; }
.catalog-form .dialog-feedback { padding-inline:0; }
.catalog-form .dialog-feedback:not(:empty) { padding-bottom:8px; }
@media (max-width:1050px) { .catalog-toolbar { grid-template-columns:1fr 1fr; } .catalog-toolbar label:first-child { grid-column:1/-1; } }
@media (max-width:760px) {
  .requirements-page.admin-mode .admin-catalog-page { grid-column:auto; grid-row:auto; }
  .catalog-toolbar { grid-template-columns:1fr; gap:9px; padding:10px; }
  .catalog-toolbar label:first-child { grid-column:auto; }
  .catalog-form { padding-inline:15px; }
  .catalog-form-grid { grid-template-columns:1fr; gap:9px; }
  .catalog-form-wide { grid-column:1; }
  .catalog-characteristic-row { grid-template-columns:minmax(0,1fr) auto; }
  .catalog-characteristic-usage { grid-column:1; grid-row:2; }
  .catalog-characteristic-toggle { grid-column:2; grid-row:1/3; }
  .catalog-form .dialog-footer { margin-inline:-15px; padding-inline:15px; }
}

/* Administración directa del catálogo de características */
.characteristic-admin-tabs { display:flex; gap:5px; margin:16px 0 0; padding:0 12px; border-bottom:1px solid var(--line); }
.characteristic-admin-tab { min-height:39px; padding:9px 13px; border:0; border-bottom:2px solid transparent; color:#607582; background:transparent; font:700 10px var(--sans); cursor:pointer; }
.characteristic-admin-tab[aria-selected="true"] { border-bottom-color:var(--blue); color:var(--navy); }
.characteristic-admin-tab:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
#characteristicRequestsPanel,#characteristicCatalogPanel { min-width:0; }
.characteristic-catalog-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:19px 2px 14px; }
.characteristic-catalog-heading h2 { margin:2px 0 4px; color:var(--navy); font:700 19px var(--display); }
.characteristic-catalog-heading p:last-child { max-width:680px; margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.characteristic-catalog-heading .eyebrow { margin:0; color:#687e8a; font-size:9px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.characteristic-catalog-toolbar { grid-template-columns:minmax(210px,1.5fr) minmax(165px,.9fr) minmax(190px,1fr) minmax(80px,.35fr); }
.characteristic-catalog-table { min-width:900px; }
.characteristic-catalog-table th:nth-child(1) { width:24%; }
.characteristic-catalog-table th:nth-child(2) { width:29%; }
.characteristic-catalog-table th:nth-child(3) { width:12%; text-align:center; }
.characteristic-catalog-table th:nth-child(4) { width:12%; }
.characteristic-catalog-table th:last-child { width:23%; }
.characteristic-catalog-table td:nth-child(3) { text-align:center; font-variant-numeric:tabular-nums; }
.characteristic-catalog-actions { display:flex; flex-wrap:wrap; gap:5px; }
.characteristic-catalog-actions .button { min-height:28px; padding:5px 8px; font-size:9px; }
.characteristic-catalog-actions .button:disabled { opacity:.52; cursor:not-allowed; }
#catalogCharacteristicDeleteDialog .dialog-feedback { padding-inline:20px; }
@media (max-width:1050px) {
  .characteristic-catalog-toolbar { grid-template-columns:1fr 1fr; }
  .characteristic-catalog-toolbar label:first-child { grid-column:1/-1; }
}
@media (max-width:760px) {
  .characteristic-admin-tabs { margin-top:10px; padding-inline:5px; }
  .characteristic-admin-tab { flex:1; padding-inline:7px; }
  .characteristic-catalog-heading { align-items:stretch; flex-direction:column; gap:10px; padding-top:14px; }
  .characteristic-catalog-heading .button { width:100%; }
  .characteristic-catalog-toolbar { grid-template-columns:1fr; }
  .characteristic-catalog-toolbar label:first-child { grid-column:auto; }
  .characteristic-catalog-actions { justify-content:flex-start; }
  #catalogCharacteristicDeleteDialog .dialog-feedback { padding-inline:15px; }
}

/* Solicitudes de alta de bienes: misma ficha institucional y revisión trazable */
.new-catalog-proposal { margin-top:12px; padding:12px 13px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:6px; background:#f6f8fa; }
.new-catalog-proposal-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.new-catalog-proposal-heading strong,.new-catalog-proposal-heading small { display:block; }
.new-catalog-proposal-heading strong { color:var(--navy); font-size:11px; }
.new-catalog-proposal-heading small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.4; }
.new-catalog-proposal-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 13px; }
.new-catalog-proposal-grid .form-field { gap:5px; }
.new-catalog-proposal-grid .form-field>span { color:#425b6a; font-size:10px; font-weight:650; }
.new-catalog-proposal-grid input,.new-catalog-proposal-grid select,.proposal-spec-add input { min-width:0; min-height:36px; padding:7px 10px; border:1px solid #c8d5dc; border-radius:6px; color:var(--navy); background:#fff; font:11px var(--sans); }
.proposal-spec-add { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; }
.proposal-spec-add .button { min-height:36px; padding:7px 10px; }
.proposal-spec-list { display:grid; gap:5px; margin-top:6px; }
.proposal-spec-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; }
.proposal-spec-row input { width:100%; }
.proposal-spec-remove { padding:5px; font-size:9px; }
.proposal-spec-remove:disabled { color:#a2adb4; cursor:not-allowed; }
.proposal-similarities { margin-top:8px; color:#506775; font-size:9px; line-height:1.4; }
.proposal-similarities:empty { display:none; }
.proposal-similarities p { margin:0 0 6px; }
.proposal-similarities ul { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.proposal-similarities li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:6px 8px; border:1px solid #dce5ea; border-radius:5px; background:#fff; }
.proposal-similarities li strong,.proposal-similarities li small { display:block; }
.proposal-similarities li strong { color:var(--navy); font-size:9px; }
.proposal-similarities li small { margin-top:2px; color:var(--muted); font-size:8px; }
.proposal-similarity-confirm { display:flex; align-items:flex-start; gap:7px; margin-top:8px; color:#755b25; font-size:9px; line-height:1.4; }
.proposal-similarity-confirm input { flex:0 0 auto; margin:1px 0 0; }
.new-catalog-proposal-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }
.new-catalog-proposal-actions small { color:var(--muted); font-size:9px; }
.new-catalog-proposal-actions > div { display:flex; flex:0 0 auto; gap:7px; }
.proposal-create-dialog { width:min(680px,calc(100vw - 30px)); max-width:680px; max-height:90dvh; overflow:auto; }
.proposal-create-context { display:grid; gap:3px; margin:0 23px 4px; padding:9px 11px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:5px; background:#f5f8fa; }
.proposal-create-context span { color:var(--muted); font:700 8px var(--data); letter-spacing:.07em; }
.proposal-create-context strong { color:var(--navy); font-size:11px; }
.proposal-modal-content { margin:9px 23px 20px; }
.proposal-toolbar { grid-template-columns:minmax(280px,1fr) minmax(190px,.45fr); }
.proposal-table { min-width:940px; }
.proposal-table th:first-child { width:19%; }
.proposal-table th:nth-child(2) { width:17%; }
.proposal-table th:nth-child(3) { width:23%; }
.proposal-table th:nth-child(4) { width:21%; }
.proposal-table th:nth-child(5) { width:10%; }
.proposal-table th:last-child { width:10%; }
.proposal-review-open { min-height:30px; padding:5px 9px; font-size:9px; }
.proposal-review-dialog { width:min(760px,calc(100vw - 30px)); max-width:760px; max-height:90dvh; overflow:auto; }
.proposal-origin { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0 23px 13px; padding:9px 10px; border:1px solid var(--line); border-left:3px solid var(--blue); border-radius:5px; background:#f5f8fa; }
.proposal-origin span,.proposal-origin strong { display:block; }
.proposal-origin span { color:#647987; font:700 7px var(--data); letter-spacing:.06em; }
.proposal-origin strong { margin-top:4px; color:var(--navy); font-size:9px; line-height:1.35; overflow-wrap:anywhere; }
.proposal-review-form { padding:0 23px 16px; }
.proposal-review-form .catalog-form-grid { gap:9px 12px; }
.proposal-review-form .catalog-form-grid textarea { min-height:58px; }
.proposal-history { margin:5px 0 8px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.proposal-history>summary { padding:9px 1px; color:var(--navy); font-size:10px; font-weight:700; cursor:pointer; }
.proposal-history ol { display:grid; gap:8px; max-height:230px; overflow:auto; margin:0; padding:0 0 10px 18px; }
.proposal-history li { padding-left:3px; color:#314c5f; font-size:9px; }
.proposal-history li>strong,.proposal-history li>small { display:block; }
.proposal-history li>small { margin-top:2px; color:var(--muted); font-size:8px; }
.proposal-history li>p { margin:4px 0; color:#526a79; line-height:1.4; }
.proposal-history li details { margin-top:4px; }
.proposal-history li details summary { color:#356e99; font-size:8px; cursor:pointer; }
.proposal-history pre { max-height:130px; overflow:auto; padding:6px; border-radius:4px; color:#455e6d; background:#f5f8fa; font:8px/1.4 var(--data); white-space:pre-wrap; }
.proposal-review-footer { position:sticky; bottom:-16px; margin:4px -23px -16px; padding:10px 20px 13px; border-top:1px solid var(--line); background:#fff; }
.proposal-review-footer>div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.characteristic-proposal-origin { border-left-color:var(--gold); }
.characteristic-request-origin { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:760px) {
  .new-catalog-proposal-grid,.proposal-toolbar { grid-template-columns:1fr; }
  .new-catalog-proposal-grid .form-wide { grid-column:1; }
  .new-catalog-proposal-actions { align-items:flex-start; flex-direction:column; }
  .new-catalog-proposal-actions > div { width:100%; }
  .new-catalog-proposal-actions > div .button { flex:1; }
  .proposal-create-context { margin-inline:15px; }
  .proposal-modal-content { margin-inline:15px; }
  .proposal-origin { grid-template-columns:1fr 1fr; margin-inline:15px; }
  .characteristic-request-origin { grid-template-columns:1fr; }
  .proposal-review-form { padding-inline:15px; }
  .proposal-review-footer { margin-inline:-15px; padding-inline:15px; }
  .proposal-review-footer>div { width:100%; }
  .proposal-review-footer button { flex:1 1 auto; }
}

/* Administración del catálogo de áreas y su checklist de dependencias */
.requirements-page.admin-mode .admin-areas-page { grid-column:2; grid-row:1; min-width:0; }
.admin-areas-page { min-width:0; color:var(--ink); }
.areas-table { min-width:760px; }
.areas-table th:first-child { width:19%; }
.areas-table th:nth-child(2) { width:28%; }
.areas-table th:nth-child(3),.areas-table th:nth-child(4),.areas-table th:nth-child(5) { width:14%; }
.areas-table th:last-child { width:11%; text-align:center; }
.areas-table td:nth-child(n+3):nth-child(-n+5) { color:#435b6a; font-variant-numeric:tabular-nums; }
.area-dependency-controls { display:grid; grid-template-columns:minmax(140px,1fr) auto; align-items:end; gap:8px; margin-top:8px; }
.area-dependency-controls label { display:grid; gap:4px; }
.area-dependency-controls label span { color:#526a79; font-size:9px; font-weight:700; }
.area-dependency-controls select { min-height:32px; padding:5px 8px; border:1px solid #c8d5dc; border-radius:4px; color:var(--navy); background:#fff; font:10px var(--sans); }
.area-history-note { margin:8px 0; color:#667b88; font-size:10px; line-height:1.45; }
@media (max-width:760px) {
  .requirements-page.admin-mode .admin-areas-page { grid-column:auto; grid-row:auto; }
  .area-dependency-controls { grid-template-columns:1fr; }
  .area-dependency-controls .button { width:100%; }
}


.area-bulk-panel { display:grid; grid-template-columns:minmax(190px,1fr) auto minmax(180px,1fr) auto; align-items:end; gap:9px; margin:9px 0; padding:10px; border:1px solid var(--line); border-radius:5px; background:#f8fafb; }
.area-bulk-select-all { display:flex; align-items:center; gap:7px; min-height:34px; color:var(--navy); font-size:10px; font-weight:650; }
.area-bulk-select-all input,.personnel-dependency-check input[data-work-area-select] { accent-color:var(--blue); }
.area-bulk-count { align-self:center; color:var(--muted); font-size:9px; white-space:nowrap; }
.area-bulk-destination { display:grid; gap:4px; color:#526a79; font-size:9px; font-weight:650; }
.area-bulk-destination select { min-height:34px; padding:5px 8px; border:1px solid #c8d5dc; border-radius:5px; color:var(--navy); background:#fff; font:10px var(--sans); }
#workAreaBulkMove { min-height:34px; white-space:nowrap; }
#confirmWorkAreaDelete.button-secondary { color:#687985; background:#edf1f3; border-color:#d5dfe3; cursor:not-allowed; }
.personnel-dependency-check input[data-work-area-select] { cursor:pointer; }
@media (max-width:700px) { .area-bulk-panel { grid-template-columns:1fr 1fr; } .area-bulk-select-all { grid-column:1/-1; } .area-bulk-count { grid-column:1/-1; } .area-bulk-destination { min-width:0; } .area-bulk-panel button { width:100%; } }

/* Form validation is rendered in the application so the browser never shows native prompts. */
.system-required-indicator {
  display: inline-flex;
  margin-left: 6px;
  color: var(--red, #a33e36);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
  vertical-align: middle;
}
.system-form-validation {
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid #e5b7b1;
  border-radius: 8px;
  background: #fff5f3;
  color: var(--red, #a33e36);
  font-size: 12px;
  line-height: 1.45;
}
.system-form-validation[hidden] { display: none; }
.system-invalid {
  border-color: var(--red, #a33e36) !important;
  box-shadow: 0 0 0 2px rgb(163 62 54 / 12%);
}
