:root {
  color-scheme: light;
  --navy: #000f9f;
  --blue: #0f5aad;
  --cyan: #3639a4;
  --green: #14a66f;
  --red: #eb2b3d;
  --amber: #f2a20d;
  --ink: #191817;
  --muted: #64748b;
  --line: #dbe4ef;
  --surface: #ffffff;
  --background: #f8f9fa;
  --mint: #95e1bf;
  font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ink); background: var(--background); font-size: 12px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }
.eyebrow { margin: 0 0 8px; letter-spacing: .12em; font-size: 12px; font-weight: 800; color: #70e8c5; }
.eyebrow.blue { color: var(--blue); }
.muted { color: var(--muted); }
.error { min-height: 20px; color: var(--red); font-weight: 650; }
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, 1.1fr) minmax(360px, .9fr); }
.login-visual { padding: 10vh 9vw; color: white; background: radial-gradient(circle at 75% 25%, #154776 0, transparent 36%), linear-gradient(145deg, #06192e, #0a2d4e); }
.login-assistpro-logo { width: min(310px, 72%); max-height: 110px; object-fit: contain; object-position: left center; filter: brightness(0) invert(1); }
.login-visual h1 { max-width: 620px; margin: 36px 0 18px; font-size: clamp(42px, 5vw, 72px); line-height: 1.04; }
.login-visual p { max-width: 600px; color: #cad8e8; font-size: 20px; line-height: 1.5; }
.login-visual ul { padding: 0; margin-top: 40px; display: grid; gap: 16px; list-style: none; }
.login-visual li::before { content: "✓"; margin-right: 12px; color: #70e8c5; font-weight: 900; }
.brand-mark { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 18px; background: linear-gradient(135deg, #0f5fff, #08a9c6); color: white; font-weight: 900; }
.brand-mark.small { width: 42px; height: 42px; border-radius: 12px; }
.login-panel { display: grid; place-items: center; padding: 40px; }
.login-card { width: min(430px, 100%); padding: 38px; border-radius: 28px; background: white; box-shadow: 0 30px 80px rgba(7,31,56,.14); }
.login-card h2 { margin: 0; font-size: 34px; }
.login-runtime { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.login-runtime div { min-width: 0; padding: 10px 11px; border-radius: 10px; background: #f3f6fb; }
.login-runtime span { display: block; color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.login-runtime strong, .login-runtime code { display: block; margin-top: 4px; overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.login-runtime .runtime-wide { grid-column: 1 / -1; }
label { display: grid; gap: 7px; margin: 18px 0; color: #3d495c; font-weight: 700; }
input, textarea, select { width: 100%; border: 1px solid var(--line); border-radius: 12px; padding: 13px 14px; background: white; color: var(--ink); outline: none; }
textarea { min-height: 82px; resize: vertical; font: inherit; }
input:focus, textarea:focus, select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(12,53,199,.11); }
input[type="file"] { padding: 10px; background: #f8faff; }
.primary, .secondary { border: 0; border-radius: 12px; padding: 13px 18px; font-weight: 800; }
.primary { width: 100%; color: white; background: var(--blue); }
.primary:hover { background: #092ba6; }
.primary.compact { width: auto; }
.secondary { color: var(--blue); border: 1px solid #b8c6df; background: white; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 240px 1fr; transition: grid-template-columns .3s ease; }
.app-shell.sidebar-collapsed { grid-template-columns: 0 1fr; }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 0; display: flex; flex-direction: column; overflow-y: auto; color: white; background: linear-gradient(180deg, #000f9f 0%, #000c7a 100%); box-shadow: 0 8px 24px rgba(0,15,159,.16); transition: transform .3s ease; }
.app-shell.sidebar-collapsed .sidebar { transform: translateX(-100%); }
.sidebar-brand { min-height: 104px; display: grid; place-items: center; gap: 3px; padding: 14px 12px 11px; border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(0,0,0,.15); }
.sidebar-brand img { width: 158px; max-height: 62px; filter: brightness(0) invert(1); }
.sidebar-brand span { color: rgba(255,255,255,.8); font-size: 10px; font-weight: 700; letter-spacing: 1.7px; }
nav { display: block; }
.menu-header { width: 100%; min-height: 34px; padding: 8px 12px; display: flex; align-items: center; justify-content: space-between; border: 0; border-top: 1px solid rgba(255,255,255,.08); border-radius: 0; color: rgba(255,255,255,.65); background: transparent; text-align: left; font-size: 10px; font-weight: 700; letter-spacing: .8px; cursor: pointer; }
.menu-header span { display: flex; gap: 7px; align-items: center; }
.menu-header.active { color: white; border-left: 3px solid var(--mint); background: linear-gradient(90deg, rgba(149,225,191,.18), rgba(149,225,191,.04)); }
.menu-header:focus-visible { outline: 2px solid var(--mint); outline-offset: -3px; }
.menu-header .fa-chevron-down { font-size: 8px; opacity: .65; transition: transform .2s ease; }
.menu-header[aria-expanded="false"] .fa-chevron-down { transform: rotate(-90deg); }
.menu-group { overflow: hidden; background: rgba(0,0,0,.10); }
.menu-group[hidden] { display: none; }
.nav-item { position: relative; width: 100%; display: flex; gap: 10px; align-items: center; padding: 8px 12px 8px 35px; border: 0; border-left: 3px solid transparent; border-radius: 0; color: rgba(255,255,255,.95); background: transparent; text-align: left; font-size: 11px; font-weight: 400; transition: all .2s ease; }
.nav-item i { width: 15px; text-align: center; font-size: 11px; }
.nav-item:hover, .nav-item.active { padding-left: 39px; border-left-color: var(--mint); color: white; background: rgba(149,225,191,.16); font-weight: 700; }
.sidebar-footer { position: sticky; bottom: 0; margin-top: auto; padding: 12px; border-top: 1px solid rgba(255,255,255,.1); display: grid; gap: 8px; color: rgba(255,255,255,.72); background: linear-gradient(180deg, transparent, rgba(0,0,0,.3)); font-size: 10px; }
.text-button { padding: 0; border: 0; color: white; background: none; text-align: left; }
.workspace { min-width: 0; padding: 0 18px 32px; }
.topbar { min-height: 64px; display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: 0 -18px 14px; padding: 8px 18px; border-bottom: 1px solid #dce3eb; background: white; box-shadow: 0 2px 8px rgba(0,15,159,.06); }
.topbar > div:first-of-type { flex: 1; }
.topbar h1 { margin: 0; font-size: 20px; font-weight: 800; color: #14264c; }
.sidebar-toggle { width: 38px; height: 38px; border: 1px solid #d4dfeb; border-radius: 7px; color: #000f9f; background: white; }
.topbar-actions { display: flex; gap: 7px; align-items: center; }
.badge { padding: 6px 9px; border-radius: 99px; font-size: 10px; font-weight: 800; }
.badge.success { color: #087349; background: #dcf7eb; }
.badge.neutral { color: #27415f; border: 1px solid #ccd8e8; background: white; }
.loading { margin-bottom: 14px; padding: 12px 16px; border-radius: 12px; color: var(--blue); background: #e9efff; }
.metric-grid { display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 10px; }
.metric-card, .route-card, .route-summary, .picking-summary { border: 1px solid var(--line); border-radius: 8px; background: white; box-shadow: 0 6px 18px rgba(15,23,42,.045); }
.metric-card { padding: 11px 12px; border-top: 3px solid #0f5aad; }
.metric-card span { display: block; color: var(--muted); font-size: 13px; }
.metric-card strong { display: block; margin-top: 5px; font-size: 23px; }
.section-heading { margin: 15px 0 10px; display: flex; justify-content: space-between; align-items: end; gap: 14px; }
.section-heading h2 { margin: 0; font-size: 18px; color: #14264c; }
.route-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 16px; }
.route-card { padding: 20px; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.route-card:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(17,39,71,.1); }
.route-card-header { display: flex; justify-content: space-between; gap: 15px; }
.route-card h3 { margin: 0 0 5px; }
.route-card p { margin: 5px 0; color: var(--muted); }
.progress { height: 8px; margin: 18px 0 9px; overflow: hidden; border-radius: 99px; background: #e7ecf4; }
.progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--blue), var(--cyan)); }
.status { display: inline-block; padding: 6px 10px; border-radius: 99px; color: #37516b; background: #eaf0f7; font-size: 11px; font-weight: 900; }
.route-summary, .picking-summary { padding: 18px 20px; margin-bottom: 16px; display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.route-summary strong, .picking-summary strong { font-size: 22px; }
.search { max-width: 380px; }
.planning-grid { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 18px; align-items: start; }
.configuration-grid { display: grid; grid-template-columns: repeat(2, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.foundation-grid { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(420px, 1.1fr); gap: 16px; align-items: start; }
.compact-form label { margin: 11px 0; }
.compact-form h3 { margin: 0 0 12px; }
.foundation-list { max-height: calc(100vh - 260px); }
.static-row { cursor: default; }
.configuration-grid h3, .configuration-lists h3 { margin: 0 0 14px; }
.configuration-lists { display: grid; grid-template-columns: repeat(2, minmax(280px, 1fr)); gap: 16px; margin-top: 18px; }
.catalog-status-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; margin: 16px 0; }
.catalog-status-grid article { padding: 13px 15px; border: 1px solid var(--line); border-radius: 12px; background: white; }
.catalog-status-grid span { display: block; color: var(--muted); font-size: 10px; font-weight: 850; letter-spacing: .06em; }
.catalog-status-grid strong { display: block; margin-top: 5px; font-size: 14px; }
.field-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.check-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 12px; }
.check-grid label { display: flex; gap: 8px; align-items: center; margin: 5px 0; font-size: 13px; }
.check-grid input { width: auto; }
.master-list { display: grid; gap: 8px; max-height: 430px; margin-top: 14px; overflow: auto; }
.master-row { width: 100%; display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #f8faff; text-align: left; cursor: pointer; }
.master-row:hover { border-color: #a8bde6; background: #eef3ff; }
.master-row strong, .master-row small { display: block; }
.master-row small { margin-top: 4px; color: var(--muted); }
.form-card, .preview-card { padding: 13px; border: 1px solid var(--line); border-radius: 8px; background: white; box-shadow: 0 6px 18px rgba(15,23,42,.045); }
.form-card label:first-child { margin-top: 0; }
.preview-card { min-width: 0; }
.preview-metrics { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.preview-metrics span { padding: 8px 11px; border-radius: 99px; color: #25405e; background: #eaf0f7; font-size: 12px; font-weight: 800; }
.preview-table-wrap { max-height: 560px; }
.preview-table-wrap table { min-width: 920px; }
.preview-table-wrap thead { position: sticky; top: 0; z-index: 1; }
.success-message { color: #087349; font-weight: 750; }
.optimization-panel { display: grid; gap: 16px; margin: 18px 0; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 8px 25px rgba(17,39,71,.05); }
.optimization-panel h3 { margin: 0 0 6px; }
.optimization-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.optimization-result { display: grid; gap: 12px; }
.optimization-metrics { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.optimization-metrics span { padding: 11px; border-radius: 10px; color: var(--muted); background: #f3f6fb; font-size: 12px; }
.optimization-metrics strong { display: block; margin-top: 4px; color: var(--ink); font-size: 14px; }
.provider-warning { padding: 11px 13px; border-radius: 10px; color: #7a4d00; background: #fff3cf; }
.link-button { border: 0; padding: 6px 10px; border-radius: 9px; color: var(--blue); background: #e9efff; font-weight: 800; }
.audit-dialog { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; border: 0; border-radius: 22px; color: var(--ink); box-shadow: 0 30px 90px rgba(7,31,56,.3); }
.audit-dialog::backdrop { background: rgba(7,20,37,.62); }
.audit-header { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: flex-start; padding: 22px 24px 16px; border-bottom: 1px solid var(--line); background: white; }
.audit-header h2 { margin: 0; }
.icon-button { width: 38px; height: 38px; border: 0; border-radius: 50%; color: var(--muted); background: #edf1f6; font-size: 25px; }
.audit-content { padding: 22px 24px 28px; }
.audit-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
.audit-summary div { padding: 13px; border-radius: 12px; background: #f3f6fb; }
.audit-section { margin-top: 24px; }
.audit-section h3 { margin: 0 0 12px; }
.timeline { display: grid; gap: 12px; }
.timeline-item { padding: 14px 16px; border-left: 4px solid var(--blue); border-radius: 0 12px 12px 0; background: #f6f8fc; }
.timeline-item h4 { margin: 0 0 4px; }
.timeline-item p { margin: 4px 0; }
.incident-resolution { display: grid; gap: 10px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.incident-resolution label { display: grid; gap: 7px; font-weight: 750; }
.incident-resolution textarea { width: 100%; min-height: 88px; resize: vertical; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: white; }
.resolution-result { margin-top: 12px !important; padding: 11px 12px; border-radius: 10px; color: #087349; background: #dcf7eb; }
.proof-chip { display: inline-block; margin: 5px 5px 0 0; padding: 6px 9px; border: 1px solid #99dfbf; border-radius: 99px; color: #087349; background: #dcf7eb; font: inherit; font-size: 11px; font-weight: 850; }
.proof-open { cursor: pointer; }
.proof-open:hover { background: #c7f1dd; }
.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 18px; background: white; }
table { width: 100%; border-collapse: collapse; min-width: 840px; }
th, td { padding: 14px 16px; border-bottom: 1px solid #e6ebf2; text-align: left; vertical-align: middle; }
th { color: #57657a; background: #f7f9fc; font-size: 12px; letter-spacing: .04em; }
td { font-size: 14px; }
tr:last-child td { border-bottom: 0; }
.cell-main { display: block; font-weight: 800; }
.cell-sub { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }

/* Homologación visual AssistPro ER */
.content-section { font-size: 12px; }
.content-section > .muted { margin: 5px 0 9px; }
.eyebrow { margin-bottom: 3px; font-size: 9px; letter-spacing: .08em; }
label { gap: 4px; margin: 9px 0; color: #475569; font-size: 11px; font-weight: 800; }
input, textarea, select { min-height: 33px; padding: 7px 9px; border-radius: 7px; font-size: 12px; }
textarea { min-height: 68px; }
.primary, .secondary { min-height: 33px; padding: 7px 11px; border-radius: 7px; font-size: 11px; }
.primary { background: #0f5aad; }
.primary:hover { background: #084985; }
.search { max-width: 320px; }
.route-grid { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 10px; }
.route-card { padding: 13px; border-radius: 8px; }
.route-card h3 { font-size: 14px; }
.route-card p { font-size: 11px; }
.route-summary, .picking-summary { padding: 10px 12px; margin-bottom: 10px; border-radius: 8px; }
.route-summary strong, .picking-summary strong { font-size: 16px; }
.planning-grid, .foundation-grid, .configuration-grid { gap: 10px; }
.configuration-lists { gap: 10px; margin-top: 10px; }
.catalog-status-grid { gap: 8px; margin: 10px 0; }
.catalog-status-grid article { padding: 9px 10px; border-radius: 8px; }
.catalog-status-grid strong { font-size: 12px; }
.compact-form label { margin: 8px 0; }
.master-list { gap: 5px; margin-top: 8px; }
.master-row { min-height: 44px; padding: 7px 9px; border-radius: 7px; background: #fbfdff; }
.master-row strong { font-size: 11px; }
.master-row small { margin-top: 2px; font-size: 10px; }
.status { padding: 3px 7px; font-size: 9px; }
.table-wrap { border-radius: 8px; }
table { min-width: 780px; }
th, td { padding: 8px 9px; }
th { position: sticky; top: 0; z-index: 1; font-size: 10px; text-transform: uppercase; }
td { font-size: 11px; }
.login-visual { background: linear-gradient(145deg, #000f9f, #000c7a); }
.login-card { border-radius: 8px; box-shadow: 0 8px 24px rgba(0,15,159,.16); }
.brand-mark { background: #000f9f; }
.catalog-page-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: 18px 0 12px; }
.catalog-page-head h2 { margin: 0; color: #14264c; font-size: 21px; }
.catalog-page-head h2 i { width: 34px; height: 34px; display: inline-grid; place-items: center; margin-right: 8px; border-radius: 8px; color: white; background: linear-gradient(135deg,#1746d1,#149ac0); font-size: 15px; }
.catalog-page-head p:last-child { margin: 4px 0 0 44px; color: var(--muted); }
.catalog-toolbar { min-height: 58px; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: white; box-shadow: 0 5px 14px rgba(15,23,42,.035); }
.catalog-search { min-width: min(440px,60vw); display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid #cbd5e1; border-radius: 7px; background: white; }
.catalog-search i { color: #64748b; }
.catalog-search input { min-height: 36px; padding-left: 0; border: 0; box-shadow: none; }
.catalog-search.inline { min-width: 0; margin: 8px 0; }
.catalog-panel { padding: 0; overflow: hidden; }
.catalog-panel-head { min-height: 60px; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.catalog-panel-head h3 { margin: 0; color: #0f172a; font-size: 14px; }
.catalog-panel-head small { display: block; margin-top: 2px; color: var(--muted); }
.count-chip { min-width: 38px; padding: 7px 10px; border: 1px solid #cad8ff; border-radius: 10px; color: #0c35c7; background: #eef3ff; text-align: center; font-weight: 800; }
.catalog-grid { overflow: auto; }
.catalog-grid table { min-width: 760px; }
.catalog-grid th { background: #f1f5fb; }
.catalog-grid .action-cell { width: 88px; white-space: nowrap; }
.grid-action { width: 30px; height: 30px; margin-right: 4px; border: 1px solid #bfd2eb; border-radius: 8px; color: #46627c; background: #f8fbff; }
.grid-action.edit { border-color: #f0c978; color: #8a5a00; background: #fff8e9; }
.configuration-grid, .foundation-grid > form { display: none; }
.foundation-grid { display: block; }
.foundation-grid .preview-card { width: 100%; }
.configuration-lists { grid-template-columns: 1fr; }
.catalog-modal-backdrop { position: fixed; inset: 0; z-index: 1990; background: rgba(15,31,64,.55); backdrop-filter: blur(3px); }
.catalog-modal-form { display: none !important; }
.catalog-modal-form.is-modal-open { position: fixed; z-index: 2000; inset: 50% auto auto 50%; width: min(850px, calc(100vw - 36px)); max-height: calc(100vh - 60px); display: block !important; overflow: auto; padding: 0 24px 18px; transform: translate(-50%,-50%); border: 0; border-radius: 18px; box-shadow: 0 28px 80px rgba(15,23,42,.34); }
.catalog-modal-form > h3 { position: sticky; top: 0; z-index: 2; margin: 0 -24px 16px; padding: 18px 54px 18px 24px; color: white; background: linear-gradient(90deg,#1746b4,#2274c7); font-size: 16px; }
.catalog-modal-close { position: absolute; z-index: 3; top: 10px; right: 14px; width: 36px; height: 36px; border: 0; color: white; background: transparent; font-size: 20px; }
.catalog-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 15px; padding-top: 14px; border-top: 1px solid var(--line); }
.catalog-modal-actions .primary { width: auto; order: 2; }
.catalog-modal-actions .modal-cancel { order: 1; }
.order-editor { width:min(940px,calc(100vw - 36px)) !important; }
.order-lines-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:14px 0 8px; }
.order-lines-head div { display:grid; gap:2px; }
.order-lines-head small { color:var(--muted); }
.order-lines-grid { display:grid; gap:7px; padding:9px; border:1px solid var(--line); border-radius:9px; background:#f7f9fc; }
.order-line-row { display:grid; grid-template-columns:minmax(300px,1fr) minmax(120px,180px) 36px; gap:8px; align-items:end; padding:7px; border:1px solid #dce4ee; border-radius:7px; background:white; }
.order-line-row label { margin:0; }
.order-line-row .grid-action { margin-bottom:2px; color:#b4233b; border-color:#f0b7c0; background:#fff4f5; }
.order-no-lp { display:flex; gap:9px; align-items:center; margin:10px 0; padding:10px 12px; border:1px solid #b8d7f2; border-radius:8px; color:#174e78; background:#eff8ff; }
@media (max-width:760px){.order-line-row{grid-template-columns:1fr 110px 36px}.order-lines-head{align-items:flex-start;flex-direction:column}}
body.modal-locked { overflow: hidden; }
.executive-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:12px; padding:22px 24px; overflow:hidden; border-radius:12px; color:white; background:linear-gradient(120deg,#061d52 0%,#000f9f 58%,#0e7aa5 100%); box-shadow:0 10px 26px rgba(0,15,159,.18); }
.executive-hero h2 { margin:3px 0 5px; font-size:27px; }
.executive-hero p { margin:0; color:rgba(255,255,255,.82); }
.executive-meta { display:grid; justify-items:end; gap:8px; min-width:210px; }
.executive-meta small { color:rgba(255,255,255,.76); }
.demo-badge,.read-only-chip { display:inline-flex; align-items:center; padding:6px 9px; border-radius:99px; font-size:9px; font-weight:900; letter-spacing:.06em; }
.demo-badge { color:#6f4500; background:#ffe4a5; }
.demo-badge.operational { color:#056844; background:#d9f7e9; }
.read-only-chip { color:#31516f; background:#edf3f8; }
.executive-filterbar { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:8px; align-items:end; margin-bottom:12px; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:0 5px 14px rgba(15,23,42,.04); }
.executive-filterbar label { margin:0; }
.filter-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; gap:7px; }
.executive-kpi-grid { display:grid; grid-template-columns:repeat(6,minmax(140px,1fr)); gap:9px; margin-bottom:12px; }
.executive-kpi { min-height:112px; display:flex; gap:11px; align-items:flex-start; padding:14px; border:1px solid var(--line); border-top:3px solid var(--tone,#1746d1); border-radius:9px; background:white; box-shadow:0 6px 17px rgba(15,23,42,.05); }
.executive-kpi.blue { --tone:#1746d1; }.executive-kpi.cyan { --tone:#12a8c7; }.executive-kpi.green { --tone:#16a36a; }.executive-kpi.gold { --tone:#e59a18; }.executive-kpi.red { --tone:#dd4057; }
.kpi-icon { width:30px; height:30px; flex:0 0 30px; display:grid; place-items:center; border-radius:8px; color:var(--tone); background:color-mix(in srgb,var(--tone) 11%,white); }
.executive-kpi span,.executive-kpi small { display:block; color:var(--muted); }
.executive-kpi span { min-height:27px; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.executive-kpi strong { display:block; margin:3px 0; color:#10264b; font-size:21px; }
.executive-kpi small { font-size:9px; line-height:1.35; }
.executive-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:10px; }
.executive-panel { min-height:270px; padding:15px; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:0 6px 18px rgba(15,23,42,.045); }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:14px; }
.panel-heading h3 { margin:2px 0 0; color:#14264c; font-size:15px; }
.trend-chart { min-height:195px; }
.trend-legend { display:flex; gap:15px; color:var(--muted); font-size:10px; }
.trend-legend span { display:flex; align-items:center; gap:5px; }
.trend-legend i,.chart-legend i { width:9px; height:9px; display:inline-block; border-radius:2px; }
.trend-legend .scheduled,.bar.scheduled { background:#1746d1; }.trend-legend .terminal,.bar.terminal { background:#12a8c7; }.trend-legend .delivered,.bar.delivered { background:#16a36a; }
.trend-bars { height:170px; display:flex; align-items:flex-end; gap:9px; padding-top:18px; border-bottom:1px solid #dce4ee; }
.trend-day { min-width:42px; flex:1; display:grid; gap:6px; text-align:center; }
.bar-stack { height:135px; display:flex; justify-content:center; align-items:flex-end; gap:3px; }
.bar { width:9px; min-height:2px; border-radius:4px 4px 0 0; }
.trend-day small { color:var(--muted); font-size:9px; }
.distribution-chart { display:grid; grid-template-columns:145px 1fr; gap:18px; align-items:center; min-height:200px; }
.donut { width:135px; height:135px; display:grid; place-items:center; border-radius:50%; }
.donut::before { content:""; grid-area:1/1; width:82px; height:82px; border-radius:50%; background:white; }
.donut span { z-index:1; grid-area:1/1; display:grid; color:var(--muted); text-align:center; font-size:9px; }
.donut strong { color:#14264c; font-size:22px; }
.chart-legend { display:grid; gap:7px; }
.chart-legend span { display:grid; grid-template-columns:10px 1fr auto; gap:7px; align-items:center; color:var(--muted); font-size:10px; }
.chart-legend b { color:#334155; }.chart-legend em { font-style:normal; font-weight:850; }
.status-bars { display:grid; gap:13px; }
.status-bar div { display:flex; justify-content:space-between; gap:12px; color:#43546a; font-size:10px; font-weight:800; }
.status-bar progress { width:100%; height:8px; margin-top:5px; overflow:hidden; border:0; border-radius:99px; accent-color:#1746d1; }
.risk-panel { border-top:3px solid #dd4057; }
.eyebrow.risk { color:#bd263e; }
.risk-row { display:flex; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid var(--line); }
.risk-row:last-child { border-bottom:0; }
.risk-row > i { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; color:#bd263e; background:#fff0f2; }
.risk-row strong,.risk-row small { display:block; }.risk-row small { margin-top:3px; color:var(--muted); }
.methodology-card { margin-top:10px; padding:12px 14px; border:1px solid var(--line); border-radius:9px; background:white; }
.methodology-card summary { cursor:pointer; color:#1746d1; font-weight:850; }
.methodology-card p { margin:8px 0 0; color:var(--muted); }.methodology-card p strong { margin-right:8px; color:#334155; text-transform:capitalize; }
.executive-separation { margin:10px 0 0; padding:10px 12px; border-radius:8px; color:#385168; background:#edf3f8; font-size:10px; }
.empty-state { min-height:160px; display:grid; place-items:center; color:var(--muted); }
.map-heading { align-items:flex-start; padding:18px 20px; border-radius:12px; color:white; background:linear-gradient(120deg,#000f9f,#075f98 70%,#0d9eb7); }
.map-heading .eyebrow,.map-heading p { color:rgba(255,255,255,.82); }.map-heading h2 { color:white; }
.map-filterbar { margin:12px 0; padding:11px 12px; display:grid; grid-template-columns:1fr 1.2fr 1.2fr 1fr auto; gap:8px; align-items:end; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:0 5px 14px rgba(15,23,42,.04); }
.map-filterbar label { margin:0; }
.map-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-bottom:12px; }
.map-summary article { padding:11px 13px; display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:9px; background:white; }
.map-summary i { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; color:#1746d1; background:#eaf0ff; }
.map-summary strong,.map-summary span { display:block; }.map-summary strong { color:#071f4b; font-size:19px; }.map-summary span { color:var(--muted); font-size:10px; }
.map-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr); gap:10px; }
.map-panel,.map-stops-panel { min-width:0; padding:14px; border:1px solid var(--line); border-radius:9px; background:white; box-shadow:0 6px 18px rgba(15,23,42,.045); }
.delivery-map-canvas { min-height:500px; overflow:hidden; border:1px solid #cad7e5; border-radius:9px; background:radial-gradient(circle at 40% 35%,#f9fbfd,#e8eef6); }
.delivery-map-canvas .gm-style { font-family:inherit; }.map-notice { margin:8px 0 0; color:var(--muted); font-size:9px; }
.map-stop-list { max-height:530px; overflow:auto; display:grid; gap:6px; padding-right:3px; }
.map-stop-card { width:100%; padding:9px; display:grid; grid-template-columns:32px 1fr auto; gap:8px; align-items:center; border:1px solid #dde5ef; border-radius:8px; color:#1f2d42; background:#fff; text-align:left; }
.map-stop-card:hover,.map-stop-card.selected { border-color:#1746d1; background:#eef3ff; box-shadow:0 0 0 2px rgba(23,70,209,.12); }.map-stop-card:focus-visible { outline:3px solid rgba(23,70,209,.28); outline-offset:1px; }
.map-stop-card strong,.map-stop-card small,.map-stop-card em { display:block; }.map-stop-card strong { color:#071f4b; font-size:11px; }.map-stop-card small { margin-top:2px; color:#315a8a; font-size:9px; }.map-stop-card em { margin-top:3px; color:#718096; font-size:8px; font-style:normal; }
.map-sequence { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:white; background:#1746d1; font-weight:900; }
.sequence-marker-wrap { background:transparent; border:0; }.sequence-marker { width:34px; height:34px; border:3px solid white; border-radius:50%; color:white; background:var(--marker,#1746d1); box-shadow:0 3px 10px rgba(7,31,75,.35); font:800 12px inherit; }
.map-missing-panel { margin-top:12px; min-height:0; }.missing-coordinate { padding:8px 0; display:flex; justify-content:space-between; gap:16px; border-top:1px solid #edf0f4; }.missing-coordinate span { color:var(--muted); }.map-data-ok { margin:0; padding:9px; color:#117a50; background:#e9f8f0; border-radius:8px; }
.schematic-map { width:100%; min-height:480px; }.schematic-stop { cursor:pointer; }.schematic-stop circle { fill:#1746d1; stroke:white; stroke-width:3; filter:drop-shadow(0 3px 4px rgba(7,31,75,.25)); }.schematic-stop text { fill:white; font-size:12px; font-weight:900; text-anchor:middle; }.schematic-stop.selected circle { fill:#df4057; stroke:#071f4b; }
@media (max-width: 1050px) {
  .metric-grid { grid-template-columns: repeat(3, 1fr); }
  .planning-grid { grid-template-columns: 1fr; }
  .foundation-grid { grid-template-columns: 1fr; }
  .configuration-lists { grid-template-columns: 1fr 1fr; }
  .catalog-status-grid { grid-template-columns: 1fr 1fr; }
  .executive-filterbar { grid-template-columns:repeat(3,1fr); }
  .executive-kpi-grid { grid-template-columns:repeat(3,1fr); }
  .map-filterbar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-filterbar button { width:100%; }
  .map-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-layout { grid-template-columns:1fr; }
  .delivery-map-canvas { min-height:420px; }
  .map-stop-list { max-height:380px; }
}
@media (max-width: 760px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-visual { display: none; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: static; width: 100%; height: auto; max-height: 46vh; flex-direction: column; align-items: stretch; overflow: auto; }
  .sidebar-brand { min-height: 70px; padding: 8px; }
  .sidebar nav { display: block; margin-left: 0; }
  .sidebar-footer { display: none; }
  .workspace { padding: 22px 16px 50px; }
  .topbar { align-items: flex-start; }
  .topbar-actions { flex-direction: column; align-items: stretch; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .audit-summary { grid-template-columns: 1fr; }
  .configuration-grid, .configuration-lists, .foundation-grid, .field-pair { grid-template-columns: 1fr; }
  .catalog-status-grid { grid-template-columns: 1fr; }
  .executive-hero { flex-direction:column; }.executive-meta { justify-items:start; }
  .executive-filterbar,.executive-kpi-grid,.executive-grid { grid-template-columns:1fr; }
  .distribution-chart { grid-template-columns:1fr; justify-items:center; }
  .map-filterbar,.map-summary { grid-template-columns:1fr; }
}
