:root {
  --brand-primary: #0072bc;
  --brand-hover: #005a94;
  --brand-deep: #17324d;
  --brand-deep-2: #244a6b;
  --info-soft: #e8f4fb;
  --info-border: #b8d8ea;
  --success: #18865c;
  --success-soft: #e5f5ee;
  --warning: #b45c16;
  --warning-soft: #fff0df;
  --danger: #c13d3d;
  --danger-soft: #fde3e3;
  --action-blue: #1769aa;
  --action-teal: #287f89;
  --action-green: #3f7f6d;
  --action-slate: #5b6f7f;
  --neutral-bg: #f4f6f8;
  --neutral-surface: #fff;
  --neutral-border: #dce3e8;
  --neutral-text: #263746;
  --neutral-muted: #687986;
  --navy: var(--brand-deep);
  --navy-2: var(--brand-deep-2);
  --blue: var(--brand-primary);
  --blue-soft: var(--info-soft);
  --bg: var(--neutral-bg);
  --surface: var(--neutral-surface);
  --border: var(--neutral-border);
  --text: var(--neutral-text);
  --muted: var(--neutral-muted);
  --green: var(--success);
  --orange: var(--warning);
  --red: var(--danger);
  --shadow: 0 1px 3px rgba(19, 41, 61, .08);
  --control-height: 39px;
  --control-border: #c9d3da;
  --control-radius: 5px;
  --control-padding-x: 10px;
  --control-focus-ring: 0 0 0 2px rgba(0,114,188,.12);
  --input-group-border: #b8d8ea;
  --input-group-background: #f5fbfe;
  --input-group-radius: 7px;
  --content-gutter: 19px;
  --form-card-bottom-space: 22px;
  --section-gap: 18px;
  --action-gap: 8px;
  --placeholder: #aeb8bf;
  /* 大型ピクトグラム（配送管理アクションカード／各種設定・マスタカード）の共通寸法。
     個別画面でのサイズ調整はせず、この変数だけを狭い画面用メディアクエリで書き換える。 */
  --pictogram-size: 48px;
  --pictogram-size-lg: 56px;
  --pictogram-col: 56px;
  --pictogram-col-lg: 64px;
}

.portal-card .audit-list { grid-template-columns: 180px 1fr; }.audit-list dd { font-weight: 600; }
.container-detail-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 20px 0; }.container-detail-summary > div { padding: 13px; border: 1px solid var(--border); border-radius: 6px; background: #f8fafb; }.container-detail-summary span,.container-detail-summary strong { display: block; }.container-detail-summary span { margin-bottom: 5px; color: var(--muted); font-size: 11px; }.container-detail-summary strong { font-size: 14px; }.container-detail-summary .safe { color: var(--green); }
.portal-bars.portal-usage-chart { height: 190px; gap: 20px; padding: 34px 20px 26px; overflow: visible; }.portal-usage-chart i { position: relative; flex: 1; max-width: 70px; min-width: 32px; }.portal-usage-chart i b { position: absolute; top: calc(100% + 8px); left: 50%; color: var(--muted); font-size: 11px; font-style: normal; transform: translateX(-50%); }.portal-usage-chart i span { position: absolute; bottom: calc(100% + 8px); left: 50%; color: var(--text); font-size: 12px; font-style: normal; font-weight: 800; white-space: nowrap; transform: translateX(-50%); }

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif; color: var(--text); background: var(--bg); font-size: 14px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
select,
textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  color: var(--text);
  background: #fff;
  outline: 0;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
select {
  height: var(--control-height);
  padding: 0 var(--control-padding-x);
}
textarea {
  min-height: 76px;
  padding: 9px var(--control-padding-x);
  resize: vertical;
}
input::placeholder,
textarea::placeholder {
  color: var(--placeholder);
  font-weight: 400 !important;
  opacity: 1;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]):focus,
select:focus,
textarea:focus {
  border-color: var(--blue);
  box-shadow: var(--control-focus-ring);
}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]):disabled,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"])[readonly],
select:disabled,
textarea:disabled,
textarea[readonly] {
  color: #7d8b94;
  border-color: #d6dde1;
  background: #edf1f3;
}
.modal-backdrop { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(17,42,60,.48); }
.modal-card { width: min(850px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: 24px; border-radius: 10px; background: #fff; box-shadow: 0 20px 55px rgba(12,32,48,.3); }
.modal-card.wide-modal { width: min(1100px, 100%); }
.container-identity-panel { margin: 18px 19px 0; padding: 17px; border: 1px solid var(--input-group-border); border-radius: var(--input-group-radius); background: var(--input-group-background); }
.container-identity-panel .section-label { display: flex; align-items: baseline; gap: 12px; margin-bottom: 13px; }.container-identity-panel .section-label strong { color: #0c619a; font-size: 15px; }.container-identity-panel .section-label span { color: #5c7380; font-size: 12px; }
.container-identity-fields { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 13px; }.container-identity-fields .form-item span { color: #0c619a; font-size: 12px; }.container-identity-fields input { font-size: 15px; font-weight: 700; }
.container-identity-meta { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; margin-top: 13px; padding-top: 13px; border-top: 1px dashed #b4d6e9; }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 17px; border-bottom: 1px solid var(--border); }.modal-head h2 { margin: 7px 0 4px; font-size: 20px; }.modal-head p { margin: 0; color: var(--muted); }
.modal-close { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%; color: var(--muted); background: var(--bg); font-size: 24px; line-height: 1; }.modal-close:hover { color: var(--text); background: #e7eef2; }
.modal-form { margin-top: 20px; }.modal-note { display: flex; gap: 12px; margin-top: 17px; padding: 13px 15px; border-radius: 6px; color: #315160; background: var(--blue-soft); }.modal-note strong { color: var(--blue); white-space: nowrap; }.modal-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.container-search-unified { display:block; margin-top:20px; }
.container-search-unified > span { display:block; margin-bottom:7px; }
.container-search-unified input { width:100%; }
.new-entry td { background: #f0f9f4; }.new-entry td:first-child { box-shadow: inset 3px 0 #18865c; }
.operation-flow { display: flex; align-items: center; gap: 12px; margin: 0 28px 18px; padding: 13px 16px; border: 1px solid #b8d8ea; border-radius: 7px; color: #315160; background: #f5fbfe; }.operation-flow strong { color: var(--blue); white-space: nowrap; }.operation-flow span { font-size: 12px; }.operation-flow b { color: var(--blue); }.operation-flow button { margin-left: auto; white-space: nowrap; }
.issue-filter .form-grid { padding: 18px; }.issue-filter-actions { display: flex; gap: 10px; justify-content: flex-end; padding: 0 18px 12px; }.issue-filter-actions button { min-width: 170px; white-space: nowrap; }.issue-hint { padding: 0 18px 18px; color: var(--muted); font-size: 12px; }.output-checks { display: flex; gap: 22px; flex-wrap: wrap; padding: 16px 19px; background: #f8fafb; border-bottom: 1px solid var(--border); }.output-checks label { font-weight: 700; }.output-checks input { accent-color: var(--blue); margin-right: 6px; }.barcode { display: inline-block; letter-spacing: 1px; font-family: monospace; font-size: 11px; color: var(--navy); }.issue-actions { display: flex; justify-content: flex-end; gap: 10px; padding: 15px 18px; }.issue-document { display: grid; grid-template-columns: 1fr 290px; gap: 22px; align-items: center; padding: 20px; border: 1px solid #b8d8ea; border-radius: 7px; background: #f7fbfe; }.issue-document h2 { margin: 8px 0; font-size: 17px; }.issue-document p { margin: 0; color: var(--muted); line-height: 1.65; }.document-mini { display: grid; gap: 8px; padding: 16px; border: 1px solid #9aabb6; background: #fff; box-shadow: 3px 3px 0 #d9e4ea; }.document-mini b { color: var(--blue); }.document-mini span { font: 700 12px monospace; }.document-mini i { padding: 5px 0; border-bottom: 1px dashed #b4c0c7; font-style: normal; color: #65747e; }.route-import { margin-bottom: 20px; padding: 20px; border: 1px solid #b8d8ea; border-radius: 7px; background: #f5fbfe; }.route-import h2 { margin: 10px 0 6px; font-size: 19px; }.route-import p { color: var(--muted); }
.issued-slip-list { display: grid; gap: 10px; padding: 18px; }.issued-slip-list button { display: grid; grid-template-columns: 165px 1fr auto; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--border); border-radius: 6px; text-align: left; color: var(--text); background: #fff; }.issued-slip-list button:hover { border-color: var(--blue); background: var(--blue-soft); }.issued-slip-list strong { color: var(--blue); }.issued-slip-list span { color: var(--muted); font-size: 12px; }.issued-slip-list b { color: var(--blue); font-size: 12px; }
.portal-shell { min-height: 100vh; background: #f3f7f9; color: var(--text); }.portal-topbar { height: 70px; display: flex; align-items: center; gap: 35px; padding: 0 max(28px, calc((100vw - 1180px) / 2)); background: #fff; border-bottom: 1px solid var(--border); }.portal-logo { display: flex; align-items: center; gap: 10px; color: var(--navy); font-weight: 800; white-space: nowrap; }.portal-logo b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 7px; color: #fff; background: var(--blue); font-size: 12px; }.portal-topbar nav { display: flex; gap: 20px; flex: 1; }.portal-topbar nav button { border: 0; padding: 24px 0 20px; color: var(--muted); background: transparent; }.portal-topbar nav button.active { border-bottom: 3px solid var(--blue); color: var(--blue); font-weight: 800; }.portal-user { font-size: 13px; }.portal-main { max-width: 1050px; margin: 0 auto; padding: 38px 24px; }.portal-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 20px; }.portal-heading p { margin: 0 0 6px; color: var(--muted); }.portal-heading h1 { margin: 0 0 7px; font-size: 26px; }.portal-heading small { color: var(--muted); }.portal-bill { display: flex; align-items: center; gap: 28px; padding: 23px 27px; border-radius: 9px; color: #fff; background: linear-gradient(120deg,#0067aa,#168bd0); box-shadow: 0 6px 20px rgba(0,114,188,.2); }.portal-bill span,.portal-bill small { display: block; color: #d9f0fc; }.portal-bill strong { display: block; margin: 7px 0; font-size: 32px; }.portal-status { margin-left: auto; border-left: 1px solid rgba(255,255,255,.35); padding-left: 24px; }.portal-status strong { font-size: 14px; }.portal-bill .primary { border-color: #fff; color: var(--blue); background: #fff; white-space: nowrap; }.portal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 20px 0; }.portal-card { margin-bottom: 20px; padding: 20px; border: 1px solid var(--border); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }.portal-card h2 { margin: 0 0 15px; font-size: 17px; }.portal-card dl { display: grid; grid-template-columns: 1fr auto; gap: 12px; margin: 0 0 16px; }.portal-card dt { color: var(--muted); }.portal-card dd { margin: 0; font-weight: 700; }.portal-usage { display: block; font-size: 30px; color: var(--blue); }.portal-card p { color: var(--muted); font-size: 12px; }.portal-bars { display: flex; height: 70px; align-items: end; gap: 10px; margin: 12px 0; border-bottom: 1px solid var(--border); }.portal-bars i { width: 24px; border-radius: 4px 4px 0 0; background: #80b9dc; }.portal-check { display: flex; align-items: center; gap: 26px; background: #f6fbf8; border-color: #c7e7d9; }.portal-check > div { flex: 1; }.portal-check h2 { margin: 8px 0; }.portal-check p { margin: 0; line-height: 1.6; }.portal-notice { display: grid; grid-template-columns: 1fr auto; gap: 9px; align-items: center; }.portal-notice span { color: var(--muted); font-size: 12px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px minmax(0, 1fr); }
.sidebar { background: var(--navy); color: #fff; padding: 0 14px 24px; position: fixed; inset: 0 auto 0 0; width: 232px; overflow-y: auto; overscroll-behavior: contain; }
.brand { height: 70px; display: flex; align-items: center; gap: 10px; padding: 0 8px; border-bottom: 1px solid rgba(255,255,255,.14); }
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 7px; background: #fff; color: var(--navy); font-weight: 800; font-size: 13px; }
.brand strong { display: block; font-size: 19px; letter-spacing: .02em; }
.brand small { color: #bdd0df; font-size: 10px; }
.nav-label { margin: 25px 12px 8px; color: #8eabc0; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.nav-item { width: 100%; border: 0; color: #dce8f0; background: transparent; display: flex; align-items: center; gap: 11px; padding: 11px 12px; border-radius: 6px; text-align: left; margin: 3px 0; cursor: pointer; transition: background-color .14s ease, color .14s ease; }
.nav-item:hover { background: rgba(255,255,255,.07); }
.nav-item:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 2px; background: rgba(255,255,255,.07); }
.nav-item.active { background: var(--blue); color: #fff; font-weight: 700; }
.nav-item.active:focus-visible { outline-color: #fff; }
.nav-icon { width: 20px; height: 20px; flex: 0 0 20px; display: grid; place-items: center; text-align: center; font-size: 16px; color: #9fb7c7; }
.nav-icon svg { width: 20px; height: 20px; display: block; }
.nav-item:hover .nav-icon { color: #cddce6; }
.nav-item.active .nav-icon { color: #fff; }
.sidebar-footer { margin: 26px 0 0; border-top: 1px solid rgba(255,255,255,.14); padding: 14px 10px 0; color: #c7d6e0; font-size: 12px; }

/* Inline SVG pictograms used outside the sidebar (guide/status/master-data icons).
   These reuse the same visual language (viewBox 24, stroke 1.7, round caps/joins,
   fill none, currentColor) inside existing badge/circle containers, so no size or
   color rules on the containers themselves need to change — only make sure the
   svg centers cleanly and a small inline-button variant for icon+label buttons. */
.policy-symbol svg,
.block-icon svg,
.scope-icon svg,
.equipment-symbol svg,
.reading-guide-icon svg,
.delivery-guide-icon svg,
.safety-guide-icon svg,
.integration-icon svg,
.stat-icon svg,
.global-search span svg,
.safety-work-note > span svg,
.reading-work-note > span svg,
.manual-hero label span svg { display: block; }
.btn-icon-label { display: inline-flex; align-items: center; gap: 7px; }
.btn-icon-label svg { flex: 0 0 auto; }

/* 大型ピクトグラム共通クラス（配送管理の大型アクションカード／各種設定・マスタカードの一覧）。
   背景の円・角丸四角は付けず、アイコン単体をカード内で上下中央に表示する。
   表示サイズはここでのみ管理し、画面ごとの個別調整は行わない。 */
.pictogram { display: grid; place-items: center; }
.pictogram svg { display: block; width: var(--pictogram-size); height: var(--pictogram-size); }
.delivery-main-actions span.pictogram svg { width: var(--pictogram-size-lg); height: var(--pictogram-size-lg); }
@media (max-width: 900px) {
  :root { --pictogram-size: 40px; --pictogram-size-lg: 44px; --pictogram-col: 48px; --pictogram-col-lg: 52px; }
}

.settings-hub { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.workflow-steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin: 0 0 20px; overflow: hidden; border: 1px solid var(--border); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.workflow-steps > div { position: relative; min-height: 84px; padding: 16px 14px 14px 48px; border-right: 1px solid var(--border); color: var(--muted); }
.workflow-steps > div:last-child { border-right: 0; }
.workflow-steps b { position: absolute; left: 15px; top: 17px; display: grid; place-items: center; width: 23px; height: 23px; border: 1px solid #b6c4ce; border-radius: 50%; font-size: 12px; }
.workflow-steps span,.workflow-steps small { display: block; }.workflow-steps span { margin-bottom: 5px; color: var(--text); font-weight: 800; }.workflow-steps small { font-size: 11px; line-height: 1.35; }
.workflow-steps .active { background: #f1f9fd; color: #356072; }.workflow-steps .active b { border-color: var(--blue); color: #fff; background: var(--blue); }.workflow-steps .active span { color: var(--blue); }
.settings-hub button { display: grid; grid-template-columns: var(--pictogram-col) 1fr auto; column-gap: 16px; align-items: center; min-height: 104px; padding: 20px 22px; border: 1px solid var(--border); border-radius: 7px; text-align: left; color: var(--text); background: #fff; box-shadow: var(--shadow); }
.settings-hub button:hover { border-color: var(--blue); background: var(--blue-soft); }
.settings-hub b { grid-column: 1; grid-row: 1 / span 2; display: grid; place-items: center; width: 100%; color: var(--blue); background: none; border-radius: 0; }
.settings-hub strong { grid-column: 2; grid-row: 1; align-self: end; font-size: 15px; }.settings-hub span { grid-column: 2; grid-row: 2; align-self: start; min-width: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }.settings-hub span small { display: block; margin-top: 7px; color: var(--blue); font-size: 11px; font-weight: 800; }.settings-hub i { grid-column: 3; grid-row: 1 / span 2; align-self: center; color: var(--blue); font-style: normal; font-weight: 800; white-space: nowrap; }.master-links { grid-template-columns: repeat(2, 1fr); }

.main { grid-column: 2; min-width: 0; }
.topbar { height: 70px; background: #fff; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 28px; position: sticky; top: 0; z-index: 5; }
.global-search { display: flex; align-items: center; gap: 9px; background: var(--bg); border: 1px solid transparent; border-radius: 6px; padding: 8px 12px; width: min(430px, 44vw); }
.global-search:focus-within { background: #fff; border-color: var(--blue); }
.global-search input { border: 0; outline: 0; background: transparent; width: 100%; color: var(--text); }
.operator { display: flex; align-items: center; gap: 12px; }
.operator-avatar { width: 34px; height: 34px; background: var(--blue-soft); color: var(--blue); border-radius: 50%; display: grid; place-items: center; font-weight: 700; }
.operator small { display: block; color: var(--muted); }
.environment-indicator { display:inline-flex; align-items:center; gap:7px; min-height:30px; padding:4px 9px; border:1px solid transparent; border-radius:5px; white-space:nowrap; font-size:11px; line-height:1; }
.environment-indicator b { font-size:11px; letter-spacing:0; }
.environment-indicator small { font-size:10px; opacity:.82; }
.environment-indicator.local { color:#245a78; border-color:#bad9e9; background:#eaf5fb; }
.environment-indicator.development { color:#87520b; border-color:#edcf9b; background:#fff4dc; }
.environment-indicator.internal { color:#246545; border-color:#b9ddca; background:#eaf7f0; }

.content { padding: 28px; max-width: 1500px; margin: 0 auto; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.page-head h1 { margin: 0 0 6px; font-size: 24px; line-height: 1.25; }
.page-head p, .breadcrumbs { margin: 0; color: var(--muted); }
.breadcrumbs { font-size: 12px; margin-bottom: 9px; }
.breadcrumbs button { border: 0; padding: 0; color: var(--blue); background: transparent; }
.primary, .secondary { min-height: 38px; padding: 8px 15px; border-radius: 5px; font-weight: 700; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,color .16s ease; }
.primary { border: 1px solid var(--blue); background: var(--blue); color: #fff; }
.primary:hover { border-color: var(--brand-hover); background: var(--brand-hover); }
.secondary { border: 1px solid #bdc9d1; background: #fff; color: var(--text); }
.primary:hover,.primary:focus,.secondary:hover,.secondary:focus { transform:translateY(-1px); box-shadow:0 3px 8px rgba(31,67,91,.16); }
.primary:active,.secondary:active { transform:translateY(0); box-shadow:0 1px 3px rgba(31,67,91,.12); }
.secondary:hover,.secondary:focus { border-color:#9ebdce; background:#f2f8fb; }
.primary:disabled,.secondary:disabled { cursor:not-allowed; transform:none; box-shadow:none; opacity:.5; }

.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: 7px; box-shadow: var(--shadow); padding: 18px 20px; }
.stat-label { color: var(--muted); font-weight: 600; display: flex; align-items: center; justify-content: space-between; }
.stat-value { font-size: 28px; font-weight: 750; margin: 11px 0 7px; color: #1d3447; }
.stat-note { font-size: 12px; color: var(--muted); }
.stat-note strong { color: var(--green); }
.stat-icon { background: var(--blue-soft); color: var(--blue); width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr); gap: 20px; }
.card { background: #fff; border: 1px solid var(--border); border-radius: 7px; box-shadow: var(--shadow); margin-bottom: 20px; }
.card-head { padding: 16px 19px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card-head h2 { margin: 0; font-size: 16px; }
.card-head button { border: 0; background: transparent; color: var(--blue); font-weight: 600; }
.card-head .head-actions .secondary { border:1px solid #bdc9d1; border-radius:5px; background:#fff; color:var(--blue); }
.card-head .head-actions .secondary:hover,.card-head .head-actions .secondary:focus { border-color:#9ebdce; background:#f2f8fb; color:var(--blue); transform:translateY(-1px); box-shadow:0 3px 8px rgba(31,67,91,.16); }
.card-body { padding: 18px 19px; }
.progress-row { display: grid; grid-template-columns: 105px 1fr 42px; gap: 12px; align-items: center; margin: 14px 0; }
.progress { height: 9px; background: #edf1f4; border-radius: 9px; overflow: hidden; }
.progress span { display: block; height: 100%; background: var(--blue); border-radius: inherit; }
.progress-row:nth-child(2) .progress span { background: #5c94bf; }
.progress-row:nth-child(3) .progress span { background: #77a99b; }
.progress-row:nth-child(4) .progress span { background: #d19b58; }
.progress-wheel-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }.progress-wheel-card { display: grid; justify-items: center; padding: 7px 8px 12px; border-right: 1px solid var(--border); }.progress-wheel-card:last-child { border-right: 0; }.progress-wheel { position: relative; display: grid; place-items: center; width: 92px; height: 92px; border-radius: 50%; background: conic-gradient(var(--blue) var(--progress),#e6edf1 0); }.progress-wheel::before { content: ''; position: absolute; width: 72px; height: 72px; border-radius: 50%; background: #fff; }.progress-wheel > div { position: relative; z-index: 1; display: grid; justify-items: center; }.progress-wheel strong { font-size: 18px; color: #204052; }.progress-wheel small { color: var(--muted); font-size: 10px; }.progress-wheel-card h3 { margin: 9px 0 2px; font-size: 13px; }.progress-wheel-card > span { color: var(--muted); font-size: 11px; }
.activity { display: flex; gap: 12px; padding: 13px 0; border-bottom: 1px solid #edf0f2; }
.activity:last-child { border: 0; }
.activity-time { width: 42px; color: var(--muted); font-size: 12px; }
.activity strong { display: block; font-size: 13px; margin-bottom: 3px; }
.activity span { color: var(--muted); font-size: 12px; }
.alert-list { padding: 4px 19px 13px; }
.alert-row { display: grid; grid-template-columns: 7px 1fr auto; gap: 11px; align-items: center; padding: 13px 0; border-bottom: 1px solid #edf0f2; }
.alert-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--orange); }
.alert-dot.red { background: var(--red); }
.alert-row strong { display: block; font-size: 13px; }
.alert-row small { color: var(--muted); }
.badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 700; white-space: nowrap; background: #edf1f4; color: #5a6872; }
.badge.green { color: #126c4a; background: var(--success-soft); }
.badge.blue { color: #175b8b; background: #e5f1f8; }
.badge.orange { color: #955010; background: var(--warning-soft); }

.filter-card { padding: 16px; display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(135px, .6fr)) auto; gap: 12px; align-items: end; }
.property-list-filter { grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(150px, .75fr)) auto; align-items: start; }
.property-list-filter > .field:first-child { grid-column: span 2; }
.property-list-filter .latest-state-field { grid-column: 1 / -2; }
.property-list-filter .latest-state-field { min-width: 0; }
.property-list-filter .latest-state-options { align-content: start; flex-wrap: nowrap; overflow-x: auto; }
.property-list-filter > button { align-self: end; min-height: var(--control-height); }
.container-filter-card { grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(135px, .7fr)) auto auto; }
.container-off-premises-check { display: inline-flex; align-items: center; gap: 7px; min-height: var(--control-height); padding: 0 10px; border: 1px solid var(--control-border); border-radius: var(--control-radius); color: #405462; background: #fff; font-size: 12px; font-weight: 800; white-space: nowrap; }
.container-off-premises-check input { width: auto; height: auto; accent-color: var(--blue); }
.container-search-controls { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 12px; align-items: end; }
.container-search-conflict { background: #fff8f0; }
.container-search-conflict td { color: #7a5a3a; }
#container-search-count { margin-right: auto; color: var(--muted); font-weight: 700; }
.delivery-dashboard-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.forecast-monitor-strip { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; border:1px solid #c9dce8; border-radius:12px; background:#f5fafd; }
.forecast-monitor-status { display:flex; align-items:center; gap:12px; min-width:0; }
.forecast-monitor-status div { display:grid; gap:3px; }
.forecast-monitor-status strong { color:#244257; }
.forecast-monitor-status small { color:#698092; }
.monitor-pulse { width:12px; height:12px; flex:0 0 12px; border-radius:50%; background:#13875d; box-shadow:0 0 0 5px #dff3eb; }
.forecast-monitor-actions { display:flex; gap:8px; }
.extra-wide-modal { width:min(1180px,calc(100vw - 48px)); max-height:calc(100vh - 36px); overflow:auto; }
.monitor-center-kpis { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #d5e2ea; border-radius:10px; background:#f8fbfd; }
.monitor-center-kpis div { display:grid; gap:5px; padding:16px 18px; border-right:1px solid #d5e2ea; }
.monitor-center-kpis div:last-child { border-right:0; }
.monitor-center-kpis span,.monitor-center-kpis small { color:#6a7f8f; }
.monitor-center-kpis strong { color:#173b53; font-size:22px; }
.monitor-center-kpis strong.danger { color:#b33d3d; }
.monitor-settings-panel,.monitor-history-section { margin-top:18px; padding:18px; border:1px solid #d5e2ea; border-radius:10px; }
.monitor-settings-panel .form-grid { padding:0; }
.monitor-notify-options { display:flex; align-items:center; gap:14px; min-width:0; padding:9px 12px 10px; border:1px solid #cbd8e0; border-radius:6px; }
.monitor-notify-options legend { padding:0 5px; color:#5f7484; font-size:12px; font-weight:700; }
.monitor-notify-options label { display:flex; align-items:center; gap:5px; color:#29465a; }
.monitor-notify-options input { width:auto; min-height:auto; }
.modal-actions.compact { padding:14px 0 0; border:0; }
.monitor-history-section h3 { margin:0 0 12px; }
.notice-unread { background:#fffaf0; }
.task-overdue { background:#fff7f7; }
.resolution-incident-history { margin-top:18px; }
.resolution-incident-history h3 { margin:0 0 10px; color:#29465a; }
.delivery-kpi-card { position:relative; min-height:142px; padding:20px; border:1px solid #d7e2ea; border-radius:14px; background:#fff; text-align:left; color:#203448; box-shadow:0 2px 8px rgba(22,54,77,.06); }
.delivery-kpi-card:hover,.delivery-kpi-card.active { border-color:var(--blue); box-shadow:0 5px 18px rgba(0,114,188,.15); transform:translateY(-1px); }
.delivery-kpi-card span,.delivery-kpi-card small { display:block; }
.delivery-kpi-card span { font-weight:700; color:#597083; }
.delivery-kpi-card strong { display:block; margin:9px 0 5px; font-size:28px; }
.delivery-kpi-card small { color:#718596; line-height:1.45; }
.delivery-kpi-card.orange { border-top:4px solid #ef9b32; }
.delivery-kpi-card.red { border-top:4px solid #d84a4a; background:#fffafa; }
.delivery-kpi-card.red strong { color:#c93c3c; }
.delivery-kpi-card:has(.progress-wheel) { padding-right:86px; }
.delivery-kpi-card .progress-wheel { --progress:61; position:absolute; right:18px; top:50%; bottom:auto; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--blue) calc(var(--progress)*1%),#dcecf5 0); transform:translateY(-50%); }
.delivery-kpi-card .progress-wheel::before { content:""; position:absolute; inset:7px; width:auto; height:auto; border-radius:50%; background:#fff; }
.delivery-kpi-card .progress-wheel b { position:relative; font-size:12px; color:var(--blue); }
.prediction-review-row { background:#fffdf8; }
.prediction-review-reason { display:grid; grid-template-columns:auto 1fr; align-items:start; gap:5px 8px; margin-top:8px; padding:8px 10px; border-left:3px solid #d69a43; border-radius:5px; background:#fff4df; color:#765521; font-size:12px; line-height:1.45; }
.prediction-review-reason b { color:#a86712; }
.review-progress-badge { margin-top:7px; width:max-content; }
.forecast-review-button { padding:9px 13px; border:1px solid #d69a43; border-radius:7px; background:#fff4df; color:#8b5b15; font-weight:700; white-space:nowrap; }
.forecast-review-button:hover { border-color:#ba7c21; background:#ffe9c3; transform:translateY(-1px); }
.forecast-review-alert { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 18px; padding:16px 18px; border:1px solid #e5bf87; border-radius:10px; background:#fff9ef; }
.forecast-review-alert span,.forecast-review-alert strong { display:block; }
.forecast-review-alert span { color:var(--muted); font-size:13px; }
.forecast-review-alert strong { margin-top:4px; color:#74531f; }
.forecast-review-context { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.forecast-review-context article { padding:16px; border:1px solid #d9e5ed; border-radius:10px; background:#f8fbfd; }
.forecast-review-context span,.forecast-review-context small { display:block; color:var(--muted); }
.forecast-review-context strong { display:block; margin:7px 0 4px; font-size:20px; color:#173a54; }
.forecast-review-form { display:grid; grid-template-columns:1fr 2fr; gap:14px; padding:18px; border:1px solid #b9ddf2; border-radius:12px; background:#f4faff; }
.forecast-review-form .full { grid-column:1/-1; }
.task-creation-note { padding:11px 13px; border-radius:7px; background:#eaf5fb; color:#35627e; font-size:13px; }
.forecast-review-history { margin-top:20px; }
.forecast-review-history h3 { margin:0 0 10px; }
.forecast-review-actions { flex-wrap:wrap; }
.forecast-action-tasks { margin-bottom:18px; }
.forecast-action-tasks .card-head h2 { display:flex; align-items:center; gap:10px; }
.task-type-chip { display:inline-block; padding:5px 9px; border-radius:999px; background:#eaf5fb; color:#176894; font-size:12px; font-weight:700; }
.task-type-chip.field { background:#edf5f0; color:#397258; }
.task-type-chip.data { background:#f3f0fa; color:#68568e; }
.task-completed { background:#f8fafb; color:#71808b; }
.task-result-text,.task-adopted-date { display:block; margin-top:7px; font-size:12px; line-height:1.5; }
.task-result-text { color:#365a70; }
.task-adopted-date { width:max-content; padding:4px 8px; border-radius:999px; background:#e5f5eb; color:#28704c; font-weight:700; }
.task-result-summary { display:grid; grid-template-columns:2fr 1fr; gap:12px; margin-bottom:16px; }
.task-result-summary>div { padding:15px; border:1px solid #d9e5ed; border-radius:10px; background:#f8fbfd; }
.task-result-summary span,.task-result-summary small { display:block; color:var(--muted); }
.task-result-summary strong { display:block; margin:5px 0; color:#173a54; }
.task-result-form { grid-template-columns:1fr 1fr; }
.task-recalculation-choice { display:flex; align-items:flex-start; gap:11px; padding:14px; border:1px solid #b9ddf2; border-radius:9px; background:#fff; cursor:pointer; }
.task-recalculation-choice input { width:18px; height:18px; margin:2px 0 0; }
.task-recalculation-choice strong,.task-recalculation-choice small { display:block; }
.task-recalculation-choice small { margin-top:4px; color:var(--muted); line-height:1.5; }
.delivery-main-actions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.delivery-main-actions.primary-two { box-sizing:border-box; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(36px,8%,112px); margin-bottom:18px; padding:12px clamp(40px,9%,120px); border:1px solid #c9dce8; border-radius:12px; background:#f5fafd; }
.delivery-main-actions.primary-two button { width:100%; min-height:86px; }
.delivery-main-actions button { display:grid; grid-template-columns:var(--pictogram-col-lg) 1fr; grid-template-rows:auto auto; column-gap:18px; align-items:center; min-height:84px; padding:16px 20px; border:0; border-radius:13px; color:#fff; text-align:left; box-shadow:0 3px 10px rgba(28,57,78,.11); cursor:pointer; transition:filter .16s ease,transform .16s ease,box-shadow .16s ease; }
.delivery-main-actions button:hover { filter:brightness(.96); transform:translateY(-1px); box-shadow:0 5px 13px rgba(28,57,78,.14); }
.delivery-main-actions span { grid-row:1/3; display:grid; place-items:center; width:100%; font-weight:800; }
.delivery-main-actions strong { font-size:15px; }.delivery-main-actions small { opacity:.86; font-size:11px; line-height:1.4; }
.delivery-main-actions .action-issue { background:var(--action-blue); }.delivery-main-actions .action-mobile { background:var(--action-teal); }.delivery-main-actions .action-result { background:var(--action-green); }.delivery-main-actions .action-correct { background:var(--action-slate); }
.delivery-mobile-shortcut { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:18px; min-width:0; padding-top:10px; border-top:1px solid #d8e6ee; }
.delivery-mobile-shortcut > div { display:grid; gap:2px; margin-right:auto; color:#405c6e; }
.delivery-mobile-shortcut > div strong { font-size:13px; }
.delivery-mobile-shortcut > div small { color:#6d8391; font-size:11px; }
.delivery-main-actions .delivery-mobile-shortcut button { display:inline-flex; align-items:center; justify-content:center; width:auto; min-height:36px; padding:8px 14px; border:1px solid #b9cfdd; border-radius:7px; color:#176b9d; background:#fff; box-shadow:none; font-size:12px; font-weight:700; white-space:nowrap; }
.delivery-main-actions .delivery-mobile-shortcut button:hover { color:#075d91; background:#eaf5fb; border-color:#8ebbd3; box-shadow:none; }
.delivery-result-tabs { display:flex; align-items:center; gap:8px; margin:0 0 18px; padding:5px; width:max-content; max-width:100%; border:1px solid #d5e2ea; border-radius:10px; background:#f7fafc; }
.delivery-result-tabs button { min-height:38px; padding:8px 16px; border:1px solid transparent; border-radius:7px; background:transparent; color:#4f6879; font-weight:700; cursor:pointer; }
.delivery-result-tabs button.active { background:var(--blue); color:#fff; box-shadow:0 2px 6px rgba(0,114,188,.18); }
.delivery-result-tabs button:not(.active):hover { border-color:#b8cedc; background:#fff; color:#17435f; }
.delivery-history-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.delivery-history-kpis article{display:grid;gap:5px;padding:17px 19px;border:1px solid #d7e3e9;border-radius:10px;background:#fff;box-shadow:0 2px 7px rgba(31,58,77,.04)}
.delivery-history-kpis article.needs-review{border-top:3px solid #d99a42;background:#fffaf3}
.delivery-history-kpis span,.delivery-history-kpis small{color:#6d8290;font-size:12px}.delivery-history-kpis strong{color:#21445a;font-size:22px}
.delivery-history-card{margin-bottom:24px}.delivery-history-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(5,minmax(120px,.72fr)) auto;align-items:end;gap:12px;margin:0 24px 20px;padding:17px;border:1px solid #d8e7ee;border-radius:10px;background:#f7fbfd}
.delivery-history-filters label{display:grid;gap:7px;min-width:0;color:#597083;font-size:12px;font-weight:700}.delivery-history-filters input,.delivery-history-filters select{width:100%;min-width:0}
.delivery-history-card tr[hidden]{display:none}
.delivery-workflow-reflection{margin-bottom:18px}.delivery-workflow-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0 24px;border:1px solid #d5e3ea;border-radius:10px;background:#f9fcfd;overflow:hidden}
.delivery-workflow-grid article{display:grid;align-content:start;gap:6px;min-height:112px;padding:17px;border-right:1px solid #dce7ec}.delivery-workflow-grid article:last-child{border-right:0}.delivery-workflow-grid span,.delivery-workflow-grid small{color:#708590;font-size:11px;line-height:1.45}.delivery-workflow-grid strong{color:#245069;font-size:14px}.delivery-workflow-grid strong.orange{color:#9a621f}.delivery-workflow-grid strong.blue{color:var(--blue)}.delivery-workflow-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:16px 24px 24px;padding-top:16px;border-top:1px solid #e0e9ed}
.delivery-correction-chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-8px 24px 24px;padding:13px 15px;border:1px solid #d7e4eb;border-radius:8px;background:#f7fafc}.delivery-correction-chain>strong{margin-right:auto;color:#35596e}.delivery-correction-chain button{display:flex;gap:8px;align-items:center}.delivery-correction-chain button span{color:#6a7f8c;font-size:11px}
.cancellation-impact-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;margin:0 0 20px;border:1px solid #d6e3e9;border-radius:10px;background:#f8fbfc}.cancellation-impact-summary article{display:grid;gap:6px;padding:17px;border-right:1px solid #dfe8ed}.cancellation-impact-summary article:last-child{border-right:0}.cancellation-impact-summary span,.cancellation-impact-summary small{color:#6e8390;font-size:11px;line-height:1.5}.cancellation-impact-summary strong{color:#234a61;font-size:17px}.cancellation-form{display:grid;grid-template-columns:minmax(180px,.6fr) minmax(300px,1.4fr);gap:16px;margin-bottom:20px}.cancellation-form textarea{width:100%;resize:vertical}.danger-action{background:#9e4c45!important;border-color:#9e4c45!important}.danger-action:hover{background:#873f39!important}
@media(max-width:1200px){.delivery-history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.delivery-workflow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.delivery-workflow-grid article{border-bottom:1px solid #dce7ec}.delivery-workflow-grid article:nth-child(2n){border-right:0}}
@media(max-width:760px){.delivery-history-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.delivery-history-filters{grid-template-columns:1fr;margin:0 14px 16px}.delivery-workflow-grid{grid-template-columns:1fr;margin:0 14px}.delivery-workflow-grid article{border-right:0}.delivery-workflow-actions,.delivery-correction-chain{margin-left:14px;margin-right:14px}.cancellation-impact-summary,.cancellation-form{grid-template-columns:1fr}.cancellation-impact-summary article{border-right:0;border-bottom:1px solid #dfe8ed}.cancellation-impact-summary article:last-child{border-bottom:0}}
.delivery-result-small { padding:8px 11px; border:1px solid #168052; border-radius:6px; color:#fff; background:#168052; font-weight:700; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }
.delivery-result-small:hover,.delivery-result-small:focus { transform:translateY(-1px); box-shadow:0 3px 8px rgba(22,128,82,.24); }
.delivery-result-small:active { transform:translateY(0); box-shadow:0 1px 3px rgba(22,128,82,.18); }
.risk-rule-note { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:-5px 0 18px; padding:12px 16px; border:1px solid #efcfac; border-radius:10px; background:#fff9f1; }
.risk-rule-note div { display:flex; gap:15px; align-items:center; flex-wrap:wrap; }.risk-rule-note strong { color:#9b5e20; }.risk-rule-note span { color:#725f49; font-size:12px; }
.delivery-list-title { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.delivery-list-title .active-property-button { margin-left:2px; }
.card-head .active-property-button { min-height:24px; padding:2px 9px; border:1px solid var(--blue); border-radius:12px; background:var(--blue); color:#fff; font-size:11px; font-weight:700; line-height:1; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }
.card-head .active-property-button:hover,.card-head .active-property-button:focus { border-color:var(--blue); background:var(--blue); color:#fff; transform:translateY(-1px); box-shadow:0 3px 8px rgba(0,114,188,.24); }
.card-head .active-property-button:active { transform:translateY(0); box-shadow:0 1px 3px rgba(0,114,188,.18); }
.card-head .active-property-button.selected { box-shadow:none; }
.delivery-list-head .head-actions { align-items:center; }
.manual-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:22px; margin-bottom:24px; padding:28px; border:1px solid #b8dced; border-radius:12px; background:linear-gradient(135deg,#f3faff,#fff); box-shadow:var(--shadow); }
.manual-hero h2 { margin:12px 0; font-size:26px; }.manual-hero label { display:flex; align-items:center; gap:10px; max-width:760px; padding:0 15px; border:1px solid var(--control-border); border-radius:7px; background:#fff; }.manual-hero label input { width:100%; height:48px; border:0; outline:0; font:inherit; }.manual-quick { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }.manual-quick button { padding:7px 12px; border:1px solid #c9dae4; border-radius:18px; background:#fff; color:var(--text); }.manual-hero aside { display:flex; flex-direction:column; justify-content:center; gap:10px; padding:20px; border-left:1px solid #c9dfeb; }.manual-hero aside span { color:var(--muted); }
.manual-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:24px; }.manual-topic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.manual-topic-grid article { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:14px; min-height:112px; padding:17px; border:1px solid var(--border); border-radius:9px; background:#fff; box-shadow:0 2px 8px rgba(31,58,77,.05); }.manual-topic-grid article > span { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#e9f5fb; color:var(--blue); font-weight:800; }.manual-topic-grid h3,.manual-topic-grid p { margin:0 0 5px; }.manual-topic-grid p,.manual-topic-grid small { color:var(--muted); }.manual-side { display:flex; flex-direction:column; gap:16px; }.manual-side .card { padding:18px; }.manual-side h2 { margin-top:0; }.manual-side .card > button { display:flex; justify-content:space-between; width:100%; padding:12px 4px; border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text); text-align:left; }.manual-notice { display:flex; gap:12px; background:#f4faff; }.manual-notice > span { display:grid; place-items:center; flex:0 0 32px; height:32px; border-radius:50%; background:#dff1fa; color:var(--blue); font-weight:800; }.manual-notice h3,.manual-notice p { margin:0 0 8px; }
@media (max-width:1100px) { .manual-hero,.manual-layout { grid-template-columns:1fr; }.manual-hero aside { border-left:0; border-top:1px solid #c9dfeb; }.manual-topic-grid { grid-template-columns:1fr; } }
.delivery-list-filters { display:grid; grid-template-columns:.7fr .8fr .8fr .8fr 1.4fr auto; gap:10px; align-items:end; padding:16px 18px; border-top:1px solid #e2e9ed; background:#f8fbfc; }
.delivery-list-filters label { display:grid; gap:6px; color:#5d7284; font-size:12px; font-weight:700; }.delivery-list-filters input,.delivery-list-filters select { width:100%; }
.delivery-period-filter { display:none; grid-template-columns:minmax(220px,1fr) repeat(4,minmax(130px,.42fr)) auto; gap:14px; align-items:end; padding:18px; margin-bottom:18px; }
.delivery-period-filter.show { display:grid; }
.delivery-period-filter label { display:grid; gap:6px; color:#5d7284; font-weight:700; }
.delivery-period-filter > div:first-child small { display:block; margin-top:5px; color:var(--muted); }
.delivery-period-actions { display:flex; gap:8px; align-items:center; }
.delivery-period-actions button { white-space:nowrap; }
.unpredictable-meta { display:flex; align-items:center; gap:7px; margin-top:7px; color:#718596; font-size:11px; }
.unpredictable-meta i { font-style:normal; }
.forecast-resolve-button { padding:9px 13px; border:1px solid #80b6d3; border-radius:7px; background:#e6f3fa; color:#075f94; font-weight:700; white-space:nowrap; transition:background .16s ease,border-color .16s ease,transform .16s ease,box-shadow .16s ease; }
.forecast-resolve-button:hover,.forecast-resolve-button:focus { border-color:#4f9cc5; background:#d4ebf7; transform:translateY(-1px); box-shadow:0 2px 7px rgba(0,114,188,.14); }
.row-actions { display:flex; gap:7px; flex-wrap:wrap; }
.delivery-history-actions { column-gap: 16px; row-gap: 8px; }
.delivery-history-actions .link-button { white-space: nowrap; }
.row-actions .secondary { border-color:#b8d8ea; background:#eaf5fb; color:#176a9e; }
.row-actions .secondary:hover,.row-actions .secondary:focus { border-color:#8fc3df; background:#dceef8; color:#0c5f93; box-shadow:0 2px 6px rgba(0,114,188,.12); }
.badge.red { background:var(--danger-soft); color:#b82f2f; }
.delivery-entry-header { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-bottom:18px; overflow:hidden; border:1px solid #cfe0ea; border-radius:14px; background:#d8e5ec; }
.delivery-entry-header>div { min-height:76px; padding:13px 16px; background:#fff; }
.delivery-entry-header .wide { grid-column:span 2; }
.delivery-entry-header .full { grid-column:1/-1; }
.delivery-entry-header span,.delivery-entry-header small { display:block; color:#718596; font-size:12px; }
.delivery-entry-header strong { display:block; margin:5px 0 2px; font-size:15px; }
.delivery-entry-workspace { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:18px; align-items:start; }
.delivery-entry-workspace>div { min-width:0; }
.supply-switch { display:flex; padding:4px; border-radius:10px; background:#eaf2f7; }
.supply-switch button { padding:9px 16px; border:0; border-radius:8px; background:transparent; font-weight:700; }
.supply-switch button.active { color:#fff; background:var(--blue); }
.supply-switch.locked { display:grid; grid-template-columns:auto auto; gap:2px; }.supply-switch.locked small { grid-column:1/-1; padding:3px 7px; color:#60798c; font-size:10px; }.supply-switch.locked button:disabled { opacity:.48; cursor:not-allowed; }.supply-switch.locked button.active:disabled { opacity:1; }
.meter-entry-line { display:grid; grid-template-columns:1fr .55fr 1fr 1.35fr; gap:12px; align-items:end; margin-top:16px; padding-top:16px; border-top:1px solid #dbe5eb; }
.meter-entry-line label { display:grid; gap:6px; color:#5d7284; font-weight:700; }
.meter-entry-line>div { padding:10px 14px; border-radius:10px; background:#edf7fc; }
.meter-entry-line span,.meter-entry-line small { display:block; color:#60798c; font-size:12px; }
.meter-entry-line strong { display:block; margin:3px 0; color:var(--blue); font-size:20px; }
.important-entry-line { margin:18px 19px 0; padding:16px; border:1px solid var(--input-group-border); border-radius:var(--input-group-radius); background:var(--input-group-background); }
.important-entry-line input { height:var(--control-height); min-height:var(--control-height); border-color:var(--control-border); border-radius:var(--control-radius); background:#fff; font-size:14px; font-weight:700; }
.emphasized-total input { color:var(--blue); background:#edf7fc !important; font-weight:800; }
.registration-grid.delivery-entry-sections { grid-template-columns:1fr; }
.delivery-inspection-panel { padding:0; overflow-x:auto; overflow-y:hidden; scrollbar-gutter:stable; }.delivery-inspection-panel .card-head { padding:18px 20px; }.delivery-inspection-panel .meter-warning-row,.delivery-inspection-panel .delivery-check-grid { margin-left:20px; margin-right:20px; }.delivery-inspection-panel .meter-warning-row { margin-top:18px; margin-bottom:18px; }.delivery-inspection-panel .delivery-check-grid { margin-bottom:20px; }
.delivery-slip-status { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:16px; padding:15px 18px; border:1px solid; border-radius:12px; }
.delivery-slip-status div { display:flex; align-items:center; gap:14px; }.delivery-slip-status span { padding:6px 9px; border-radius:6px; font-size:12px; font-weight:800; }.delivery-slip-status strong { font-size:20px; letter-spacing:.02em; }.delivery-slip-status small { color:#607587; }
.delivery-slip-status.issued { border-color:#9fd4b5; background:#f1faf5; }.delivery-slip-status.issued span { color:#fff; background:#168052; }.delivery-slip-status.issued strong { color:#126a43; }
.delivery-slip-status.direct { border-color:#efc38f; background:#fff8ee; }.delivery-slip-status.direct span { color:#fff; background:#c87927; }.delivery-slip-status.direct strong { color:#945718; }
.system-recommendation { padding:12px 14px; border:1px solid #9fd4ef; border-radius:10px; background:#eff9fe; }
.system-recommendation span,.system-recommendation small { display:block; color:#5e7889; font-size:12px; }
.system-recommendation strong { display:block; margin:4px 0; color:#006ba8; }
.change-flags { display:flex; gap:18px; align-items:center; flex-wrap:wrap; margin-top:14px; padding:12px 14px; border-radius:10px; background:#fff7e9; }
.change-flags label { font-weight:700; }
.change-flags span { color:#7b684d; font-size:12px; }
.meter-warning-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.meter-warning { cursor:pointer; }
.meter-warning input { position:absolute; opacity:0; }
.meter-warning span { display:grid; place-items:center; width:42px; height:42px; border:1px solid #bdccd6; border-radius:10px; font-weight:800; }
.meter-warning input:checked+span { color:#fff; border-color:#d34848; background:#d34848; }
.delivery-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; min-width:0; }
.delivery-check-item { display:grid; grid-template-columns:minmax(130px,1fr) minmax(96px,110px) minmax(130px,1fr); gap:8px; align-items:center; min-width:0; }
.delivery-check-item span { color:#40596c; font-size:13px; }
.delivery-check-item input,.delivery-check-item select { width:100%; min-width:0; }
.delivery-check-item input:disabled { opacity:.45; }
.delivery-past-results { position:sticky; top:18px; padding:0; overflow:hidden; }
.delivery-past-results .card-head { padding:16px; }
.delivery-past-results table { font-size:12px; }
.reading-baselines { display:grid; gap:8px; padding:16px; background:#f4f8fb; }
.reading-baselines span { display:flex; justify-content:space-between; }
.reading-baselines small { color:#b13b3b; line-height:1.5; }
.input-error { border-color:#d64242 !important; background:#fff1f1 !important; box-shadow:0 0 0 3px rgba(214,66,66,.12); }
.issued-slip-filters { display:grid; grid-template-columns:1.5fr .6fr .6fr auto; gap:12px; align-items:end; margin:16px var(--content-gutter); }
.issued-slip-filters label { display:grid; gap:6px; color:#5d7284; font-weight:700; }
@media(max-width:1200px){.delivery-dashboard-kpis{grid-template-columns:repeat(3,1fr)}.delivery-main-actions{grid-template-columns:repeat(2,1fr)}.delivery-list-filters{grid-template-columns:repeat(3,1fr)}.delivery-entry-workspace{grid-template-columns:1fr}.delivery-past-results{position:static}.delivery-check-grid{grid-template-columns:1fr}.reading-history-filter{grid-template-columns:repeat(3,minmax(150px,1fr))}.ai-dispatch-hero,.ai-dispatch-layout{grid-template-columns:1fr}.ai-dispatch-side{position:static}.ai-review-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.delivery-dashboard-kpis,.delivery-entry-header,.delivery-main-actions,.delivery-list-filters,.monitor-center-kpis{grid-template-columns:1fr}.delivery-main-actions.primary-two{grid-template-columns:1fr;gap:12px;padding:14px}.delivery-mobile-shortcut{align-items:stretch;flex-direction:column;gap:8px}.delivery-main-actions .delivery-mobile-shortcut button{width:100%}.forecast-monitor-strip{align-items:flex-start;flex-direction:column}.forecast-monitor-actions{width:100%;flex-direction:column}.forecast-monitor-strip button{width:100%}.monitor-center-kpis div{border-right:0;border-bottom:1px solid #d5e2ea}.monitor-center-kpis div:last-child{border-bottom:0}.delivery-entry-header .wide,.delivery-entry-header .full{grid-column:auto}.delivery-period-filter,.delivery-period-filter.show,.issued-slip-filters,.meter-entry-line,.reading-history-filter{grid-template-columns:1fr}.delivery-check-item{grid-template-columns:1fr}.delivery-check-item input{width:100%}.delivery-slip-status,.delivery-slip-status div{align-items:flex-start;flex-direction:column}.ai-dispatch-kpis,.ai-review-grid,.ai-trip-assignment{grid-template-columns:1fr}.ai-dispatch-actions{align-items:stretch;flex-direction:column}.ai-dispatch-actions button{width:100%}}
@media(max-width:760px){.forecast-review-context,.forecast-review-form{grid-template-columns:1fr}.forecast-review-form .full{grid-column:auto}}
.field label { display: block; font-size: 12px; color: var(--muted); font-weight: 700; margin-bottom: 6px; }
.field input, .field select { width: 100%; height: var(--control-height); border: 1px solid var(--control-border); border-radius: var(--control-radius); background: #fff; padding: 0 var(--control-padding-x); color: var(--text); outline: none; }
.field input:focus, .field select:focus { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(23,105,170,.12); }
.latest-state-field { min-width: 290px; }.latest-state-options { display: flex; flex-wrap: wrap; gap: 7px; min-height: var(--control-height); padding: 5px; border: 1px solid var(--control-border); border-radius: var(--control-radius); background: #fff; }.latest-state-options label { display: inline-flex; align-items: center; gap: 5px; padding: 4px 7px; border-radius: 4px; background: #f4f8fb; color: #405462; font-size: 12px; font-weight: 700; }.latest-state-options input { width: auto; height: auto; accent-color: var(--blue); }
.map-filter .form-grid { padding: 18px 19px 0; }.map-filter-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 19px 18px; color: var(--muted); font-size: 12px; }.map-canvas { position: relative; height: 430px; overflow: hidden; margin-bottom: 20px; border: 1px solid #b8d8ea; border-radius: 8px; background: linear-gradient(135deg,#edf6f0 0%,#f7faf4 43%,#edf6f0 100%); box-shadow: var(--shadow); }.map-toolbar { position: relative; z-index: 3; display: flex; align-items: center; gap: 16px; padding: 13px 17px; border-bottom: 1px solid #cadde6; background: rgba(255,255,255,.94); }.map-toolbar span { margin-left: auto; color: var(--muted); font-size: 12px; }.map-toolbar button { margin-left: 4px; }.map-grid-lines { position: absolute; inset: 54px 0 0; opacity: .55; background-image: linear-gradient(28deg,transparent 48%,#c4d6c8 49%,#c4d6c8 51%,transparent 52%),linear-gradient(110deg,transparent 48%,#d6e1d2 49%,#d6e1d2 51%,transparent 52%); background-size: 120px 92px,170px 130px; }.map-road { position: absolute; z-index: 1; height: 19px; border: 4px solid #fff; border-radius: 18px; background: #cbd6dc; box-shadow: 0 0 0 1px #b4c1c9; }.road-a { width: 104%; top: 53%; left: -4%; transform: rotate(-11deg); }.road-b { width: 88%; top: 42%; left: 8%; transform: rotate(38deg); }.map-water { position: absolute; z-index: 1; right: -6%; bottom: 11%; width: 55%; height: 70px; border-radius: 60% 0 0 0; color: #6193ae; background: #cee8f4; transform: rotate(-9deg); padding: 17px 20px; font-size: 12px; }.map-pin { position: absolute; z-index: 2; display: flex; align-items: center; gap: 7px; padding: 5px 9px 5px 5px; border: 1px solid rgba(16,76,119,.25); border-radius: 18px; color: var(--navy); background: rgba(255,255,255,.96); box-shadow: 0 3px 9px rgba(20,62,86,.18); transform: translate(-50%,-50%); }.map-pin:hover { transform: translate(-50%,-50%) scale(1.04); }.map-pin b,.map-list-dot { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: var(--blue); font-size: 12px; }.map-pin span { font-size: 12px; font-weight: 700; white-space: nowrap; }.map-pin.green b,.map-list-dot.green { background: var(--green); }.map-pin.orange b,.map-list-dot.orange { background: var(--orange); }.map-legend { display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 50%; background: var(--blue); }.map-legend.green { background: var(--green); }.map-legend.orange { background: var(--orange); }.map-scale { position: absolute; z-index: 2; left: 18px; bottom: 44px; width: 82px; padding-top: 5px; border-top: 3px solid #405462; color: #405462; font-size: 10px; text-align: center; }.map-note { position: absolute; z-index: 2; right: 14px; bottom: 12px; max-width: 520px; padding: 7px 10px; border-radius: 4px; color: #58707e; background: rgba(255,255,255,.82); font-size: 11px; }.map-list-dot { margin-right: 8px; vertical-align: middle; }
.integration-summary { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 20px; overflow: hidden; border: 1px solid var(--border); border-radius: 7px; background: #fff; box-shadow: var(--shadow); }.integration-summary > div { padding: 16px 18px; border-right: 1px solid var(--border); }.integration-summary > div:last-child { border: 0; }.integration-summary span,.integration-summary small { display: block; color: var(--muted); font-size: 12px; }.integration-summary strong { display: block; margin: 7px 0 4px; font-size: 20px; }.integration-summary .warning { color: var(--orange); }.integration-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; margin-bottom: 20px; }.integration-card { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: start; padding: 18px; border: 1px solid var(--border); border-radius: 7px; background: #fff; box-shadow: var(--shadow); }.integration-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 7px; color: var(--blue); background: var(--blue-soft); font-weight: 800; }.integration-title { display: flex; align-items: center; gap: 8px; }.integration-title h3 { margin: 0; font-size: 16px; }.integration-card p { margin: 8px 0 12px; color: var(--muted); font-size: 12px; }.integration-card dl { display: grid; grid-template-columns: 88px 1fr; gap: 6px; margin: 0; font-size: 12px; }.integration-card dt { color: var(--muted); }.integration-card dd { margin: 0; font-weight: 600; }.integration-card button { white-space: nowrap; }
.map-api-settings-card .card-head { flex-wrap: wrap; row-gap: 8px; }
.map-api-settings-body { padding: 18px; }
.map-api-settings-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.map-api-settings-actions button { white-space: nowrap; }
.map-api-key-mode { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 4px 0 14px; padding: 10px 12px; border-radius: 6px; background: var(--blue-soft); font-size: 12px; }
.map-api-key-mode > span { font-weight: 700; color: var(--blue); flex: 0 0 auto; }
.map-api-key-mode label { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; }
.map-api-readiness { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.route-real-map { position: relative; z-index: 0; height: 460px; margin-bottom: 20px; border: 1px solid #b8d8ea; border-radius: 8px; overflow: hidden; box-shadow: var(--shadow); background: #eef3f6; }
.route-real-map .leaflet-popup-content { font-size: 12px; line-height: 1.6; }
.route-map-load-note { margin: 0 0 14px; padding: 9px 13px; border: 1px solid #e3c46b; border-radius: 6px; color: #7a5b12; background: #fdf6e3; font-size: 12px; }
.route-map-coord-note { margin: 0 0 20px; padding: 9px 13px; border: 1px solid #cbe0ea; border-radius: 6px; color: #536b78; background: #f5fafc; font-size: 12px; }
.route-map-api-summary { display: flex; flex-direction: column; gap: 6px; }
.route-map-api-summary:empty { display: none; }
.route-map-api-summary-row { padding: 8px 12px; border: 1px solid var(--border); border-radius: 6px; background: #f5fafc; font-size: 12px; color: #536b78; }
.route-map-api-summary-row.ok { border-color: #9bd3b2; background: #f0faf4; color: #1a7047; }
.route-map-api-summary-row.warn { border-color: #e3c46b; background: #fdf6e3; color: #7a5b12; }
.route-map-preview { position: relative; height: 460px; overflow: hidden; margin-bottom: 20px; border: 1px solid #b8d8ea; border-radius: 8px; background: linear-gradient(135deg,#eef8f0,#f6fbfd 45%,#e9f4fb); box-shadow: var(--shadow); }.route-map-line { position: absolute; top: 32px; left: 17%; width: 64%; height: 150px; border: 4px dashed var(--blue); border-color: var(--blue) transparent transparent var(--blue); border-radius: 55% 0 0 0; transform: rotate(8deg); }.route-stop { position: absolute; z-index: 1; display: grid; place-items: center; width: 47px; height: 47px; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--blue); box-shadow: 0 2px 7px rgba(19,67,93,.25); font-weight: 800; text-align: center; }.route-stop small { font-size: 8px; }.route-stop span { position: absolute; top: 52px; color: #21445a; font-size: 11px; white-space: nowrap; }.start { left: 11%; top: 54%; background: #4c7188; font-size: 10px; }.stop-one { left: 41%; top: 25%; }.stop-two { left: 67%; top: 58%; }.end { right: 9%; top: 31%; background: var(--green); font-size: 11px; }.route-summary { position: absolute; right: 16px; bottom: 14px; display: grid; gap: 4px; max-width: 530px; padding: 9px 12px; border-radius: 5px; background: rgba(255,255,255,.87); }.route-summary small { color: var(--muted); font-size: 11px; }.route-order { display: inline-grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #fff; background: var(--blue); }
.route-strategy-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 18px var(--content-gutter) 0; padding: 14px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }.route-strategy-bar > strong { color: #405462; font-size: 13px; }.route-strategy-bar > div { display: flex; gap: 6px; flex: 1; flex-wrap: wrap; }.route-strategy-button { padding: 7px 10px; border: 1px solid #c5d2da; border-radius: 5px; color: #405462; background: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }.route-strategy-button:hover, .route-strategy-button.active { border-color: var(--blue); color: #fff; background: var(--blue); }.secondary.selected { border-color: #4e8e60; color: #1e6c38; background: #edf8ef; }.route-capacity-grid { display: grid; grid-template-columns: repeat(4,1fr); margin: 16px var(--content-gutter) 0; overflow: hidden; border: 1px solid var(--border); border-radius: 6px; background: #fff; }.route-capacity-grid > div { padding: 13px 15px; border-right: 1px solid var(--border); }.route-capacity-grid > div:last-child { border-right: 0; }.route-capacity-grid span, .route-capacity-grid small { display: block; color: var(--muted); font-size: 11px; }.route-capacity-grid strong { display: block; margin: 5px 0 3px; color: #23475d; font-size: 18px; }.route-api-note { display: grid; grid-template-columns: 110px 1fr; gap: 12px; align-items: start; margin: 12px var(--content-gutter) 0; padding: 11px 13px; border-radius: 6px; color: #536b78; background: #f1f7fa; font-size: 12px; }.route-api-note span { color: #1a6395; font-weight: 800; }.route-api-note p { margin: 0; line-height: 1.55; }
.route-output-actions { display: flex; gap: 8px; flex-wrap: wrap; }.route-trip { margin: 16px 18px; overflow: hidden; border: 1px solid #cbd8de; border-radius: 6px; }.route-trip-head { display: flex; align-items: center; gap: 18px; min-height: 44px; padding: 0 12px; color: #425968; background: #edf5f7; font-size: 12px; }.route-trip-head > strong { color: #fff; background: var(--action-blue); margin-left: -12px; padding: 14px 13px; }.route-trip-head b { color: #173f59; }.route-trip-head > div { display: flex; gap: 6px; margin-left: auto; }.route-trip-head button { padding: 5px 8px; font-size: 11px; }.route-detail-table { min-width: 1410px; }.route-detail-table th { padding: 9px 10px; color: #eff7fc; background: #193040; font-size: 11px; }.route-detail-table td { padding: 9px 10px; font-size: 12px; }.route-detail-table input { accent-color: var(--blue); }.route-mark { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; color: #28638d; background: #e6f1f8; font-size: 11px; font-weight: 800; }.route-cutoff { color: #60717e; font-weight: 700; }.route-cutoff.warning { color: #b06018; background: #fff0e8; }
.ai-dispatch-hero { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr); gap:18px; margin-bottom:18px; padding:20px; border:1px solid #c9dce8; border-radius:8px; background:#f5fafd; }
.ai-dispatch-hero h2 { margin:8px 0 6px; font-size:24px; color:#18364b; }
.ai-dispatch-hero p { margin:0; color:#5c7180; line-height:1.6; }
.ai-dispatch-kpis,.ai-review-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ai-dispatch-kpis article,.ai-review-card { padding:14px; border:1px solid #d7e2ea; border-radius:8px; background:#fff; }
.ai-dispatch-kpis span,.ai-review-card span,.ai-review-card small { display:block; color:#64798a; }
.ai-dispatch-kpis strong,.ai-review-card strong { display:block; margin:6px 0; font-size:24px; color:#18364b; }
.ai-review-grid { grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:16px; }
.ai-review-card { border-top:4px solid #68a6ca; }
.ai-review-card.green { border-top-color:#44a16f; }
.ai-review-card.orange { border-top-color:#ef9b32; }
.ai-review-card.red { border-top-color:#d84a4a; }
.ai-dispatch-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; padding:14px 16px; border:1px solid #d7e2ea; border-radius:8px; background:#fff; }
.ai-dispatch-actions div { min-width:0; }
.ai-dispatch-actions span { display:block; color:#64798a; }
.ai-dispatch-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:18px; align-items:start; }
.ai-dispatch-trip { margin-bottom:18px; }
.ai-trip-assignment { display:grid; grid-template-columns:110px 220px 90px; gap:8px; align-items:end; }
.ai-trip-assignment label { display:grid; gap:4px; color:#64798a; font-size:12px; }
.ai-trip-assignment select,.ai-trip-assignment input { min-height:34px; border:1px solid #c9d8e2; border-radius:6px; padding:6px 8px; background:#fff; }
.ai-dispatch-side { position:sticky; top:84px; }
.ai-check-list { display:grid; gap:8px; padding:14px; }
.ai-check-list button { display:grid; grid-template-columns:1fr auto; gap:4px 8px; width:100%; padding:12px; border:1px solid #d7e2ea; border-radius:8px; background:#fff; text-align:left; }
.ai-check-list span { color:#64798a; font-size:12px; }
.ai-check-list b { grid-row:1 / span 2; align-self:center; color:#18364b; font-size:20px; }
.route-toolbox { display: flex; align-items: stretch; flex-wrap: wrap; gap: 0; margin: 18px 0; overflow: hidden; border: 1px solid #cbd8e1; border-radius: 7px; background: #fff; box-shadow: var(--shadow); }.route-toolbox-group { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 11px 13px; border-right: 1px solid #dbe4e8; }.route-toolbox-group:last-child { border-right: 0; }.route-toolbox-group > span { color: #1f638f; font-size: 11px; font-weight: 800; }.route-toolbox-group button { padding: 6px 8px; font-size: 11px; }.route-toolbox-group small { color: #6d7e88; font-size: 11px; }
.route-assignment { display: flex; gap: 10px; padding: 10px 12px; border-bottom: 1px solid #dbe4e8; background: #fbfdfe; }.route-assignment label { display: grid; grid-template-columns: auto minmax(120px, 1fr); gap: 7px; align-items: center; color: #60727e; font-size: 11px; font-weight: 700; }.route-assignment select, .route-assignment input { height: var(--control-height); min-width: 150px; border: 1px solid var(--control-border); border-radius: var(--control-radius); background: #fff; padding: 0 var(--control-padding-x); color: #284455; font-size: 12px; }
.route-editor-note { display: flex; align-items: center; gap: 12px; margin: 14px 18px 0; padding: 11px 13px; border: 1px solid #cbe0ea; border-radius: 6px; color: #526a78; background: #f5fafc; font-size: 12px; }.route-editor-note strong { color: #1e6494; }.route-editor-note button { margin-left: auto; white-space: nowrap; }
.route-master-management { margin:18px 0; border:1px solid var(--border); border-radius:8px; background:var(--surface); box-shadow:var(--shadow); }
.route-master-management > summary { display:flex; align-items:center; gap:12px; padding:15px 18px; cursor:pointer; list-style-position:inside; }
.route-master-management > summary strong { color:var(--ink); font-size:14px; }
.route-master-management > summary span { color:var(--muted); font-size:11px; }
.route-master-body { display:grid; gap:20px; padding:0 18px 18px; border-top:1px solid var(--border); }
.route-master-body > section { padding-top:18px; }
.route-master-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.route-master-head h3,.route-master-head p { margin:0; }.route-master-head h3 { font-size:14px; }.route-master-head p { margin-top:4px; color:var(--muted); font-size:11px; }
.route-master-table input,.route-master-table select,.route-assignment-table select,.route-dispatch-fields input,.route-dispatch-fields select { min-height:34px; border:1px solid var(--control-border); border-radius:5px; padding:6px 8px; color:var(--ink); background:var(--surface); font:inherit; }
.route-master-table input { width:120px; }.route-master-table .wide-input { width:260px; }.route-master-active { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.route-master-actions { display:flex; justify-content:flex-end; }.route-stage-card { margin-top:18px; }
.route-assignment-table td strong,.route-assignment-table td small { display:block; }.route-assignment-table td small { margin-top:4px; color:var(--muted); font-size:10px; }
.route-assignment-table select { min-width:150px; }
.route-dispatch-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:16px 18px 18px; }
.route-dispatch-card { min-width:0; padding:14px; border:1px solid var(--border); border-radius:7px; background:var(--surface-soft); }
.route-dispatch-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }.route-dispatch-title > div { display:flex; align-items:center; gap:8px; }.route-dispatch-title small { color:var(--muted); }
.route-dispatch-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.route-dispatch-fields label { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.route-dispatch-warning,.route-generate-warning { margin:10px 0 0; padding:9px 11px; border-left:3px solid #d78a2f; color:#7b501d; background:#fff6e8; font-size:11px; }
.route-load-previews { display:grid; gap:7px; margin-top:12px; }.route-load-preview { display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:8px; padding:8px 10px; border:1px solid #d7e5ec; border-radius:5px; background:var(--surface); font-size:11px; }.route-load-preview b { justify-self:end; }.route-load-preview small { min-width:34px; text-align:right; }.route-load-preview.over { border-color:#d58a48; background:#fff7ee; }
.route-driver-tabs { display:flex; gap:8px; overflow-x:auto; margin:18px 0 0; padding-bottom:2px; }.route-driver-tab { display:grid; flex:0 0 auto; gap:3px; min-width:150px; padding:10px 14px; border:1px solid var(--control-border); border-radius:6px; color:var(--muted); background:var(--surface); text-align:left; }.route-driver-tab small { font-size:10px; }.route-driver-tab.active { border-color:var(--action-blue); color:#fff; background:var(--action-blue); }
.route-generate-control { margin-top:18px; }
.mobile-shell { width: min(100%, 480px); min-height: 100vh; margin: 0 auto; color: #1f3442; background: #f2f6f8; }.mobile-header { display: flex; align-items: center; gap: 12px; padding: 16px; color: #fff; background: #164a6d; }.mobile-header > div { display: grid; gap: 3px; }.mobile-header strong { font-size: 17px; }.mobile-header span { font-size: 11px; opacity: .82; }.mobile-status { margin-left: auto; padding: 6px 8px; border-radius: 5px; color: #e4f0f7; background: rgba(255,255,255,.13); font-weight: 700; text-align: right; }.mobile-status.done { color: #1a7047; background: #e0f3e9; }.mobile-status.hold { color: #9b571b; background: #fff0df; }.mobile-back { border: 0; color: #fff; background: transparent; cursor: pointer; font-weight: 700; }.mobile-overview { display: grid; grid-template-columns: repeat(3,1fr); padding: 12px; gap: 1px; background: #d5e4ec; }.mobile-overview div { padding: 10px 8px; background: #fff; }.mobile-overview span { display: block; color: #6a7c87; font-size: 10px; }.mobile-overview strong { display: block; margin-top: 4px; color: #23475e; font-size: 12px; }.mobile-trip-tabs { display: flex; padding: 12px 12px 0; gap: 7px; }.mobile-trip-tab { flex: 1; padding: 10px; border: 1px solid #c9d8df; border-radius: 6px; color: #5c717e; background: #fff; font-weight: 800; }.mobile-trip-tab.active { border-color: var(--action-blue); color: #fff; background: var(--action-blue); }.mobile-trip-tab small { margin-left: 4px; font-size: 10px; }.mobile-list { padding: 12px; }.mobile-list-head { display: flex; align-items: end; justify-content: space-between; margin: 4px 0 9px; }.mobile-list-head h1 { margin: 0; font-size: 17px; }.mobile-list-head span { color: #70818b; font-size: 10px; }.mobile-stop-card { display: grid; grid-template-columns: 36px 1fr auto; width: 100%; margin-bottom: 8px; padding: 12px; border: 1px solid #d1dde3; border-radius: 7px; color: #223e50; background: #fff; text-align: left; cursor: pointer; }.mobile-stop-card.done { border-color: #9bd3b2; background: #f0faf4; }.mobile-stop-card.hold { border-color: #eac294; background: #fff9f3; }.mobile-stop-number { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 50%; color: #fff; background: var(--action-blue); font-weight: 800; }.mobile-stop-card > div { display: grid; gap: 4px; }.mobile-stop-card small { color: #687b87; font-size: 10px; }.mobile-stop-card > b { align-self: center; color: var(--action-blue); font-size: 11px; }.mobile-stop-card.done > b { color: #168053; }.mobile-stop-card.hold > b { color: #bd6b26; }.mobile-direct-entry { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin: 0 12px 18px; padding: 13px; border: 1px dashed #abc4d2; border-radius: 7px; background: #fff; }.mobile-direct-entry strong { color: #30566c; font-size: 13px; }.mobile-direct-entry span { color: #697d89; font-size: 11px; line-height: 1.5; }.mobile-direct-entry button { flex: none; align-self: stretch; min-width: 132px; padding: 9px 14px; border: 1px solid #8eb7ce; border-radius: 5px; color: var(--action-blue); background: #edf7fc; font-weight: 700; white-space: nowrap; }.mobile-stop-detail { padding: 14px; }.mobile-stop-title { display: flex; gap: 10px; align-items: center; }.mobile-stop-title > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; background: var(--action-blue); font-weight: 800; }.mobile-stop-title h1 { margin: 0; font-size: 19px; }.mobile-stop-title p { margin: 3px 0 0; color: #687c88; font-size: 11px; }.mobile-address { display: grid; gap: 4px; margin: 14px 0 9px; padding: 12px; border-radius: 6px; background: #fff; }.mobile-address strong { font-size: 12px; }.mobile-address small { color: #66808e; font-size: 10px; }.mobile-nav-actions { display: flex; gap: 7px; }.mobile-nav-actions a { flex: 1; padding: 9px; border: 1px solid #b2c9d6; border-radius: 5px; color: var(--action-blue); background: #f6fbfd; font-size: 12px; font-weight: 700; text-align: center; text-decoration: none; }.mobile-summary-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; margin: 12px 0; }.mobile-summary-grid div { padding: 10px; border-radius: 6px; background: #fff; }.mobile-summary-grid span { display: block; color: #6b7d87; font-size: 10px; }.mobile-summary-grid strong { display: block; margin-top: 4px; font-size: 12px; }.mobile-entry-card { padding: 14px; border-radius: 8px; background: #fff; }.mobile-entry-card h2 { margin: 0; font-size: 17px; }.mobile-entry-card p { margin: 6px 0 12px; color: #687d89; font-size: 11px; line-height: 1.55; }.mobile-form-grid { display: grid; gap: 9px; }.mobile-form-grid label { display: grid; gap: 5px; color: #536b78; font-size: 11px; font-weight: 700; }.mobile-form-grid input, .mobile-form-grid textarea { width: 100%; min-height: 36px; border: 1px solid #bdcdd5; border-radius: 5px; padding: 8px; color: #263f4d; font: inherit; }.mobile-form-grid textarea { min-height: 64px; resize: vertical; }.mobile-entry-actions { display: flex; gap: 9px; margin-top: 14px; }.mobile-entry-actions button { flex: 1; min-height: 43px; border: 0; border-radius: 6px; font-weight: 800; }.mobile-hold { color: #975719; background: #fff0df; }.mobile-complete { color: #fff; background: #168052; }
.mobile-filter-row { display: flex; gap: 6px; overflow-x: auto; padding: 12px 12px 0; }.mobile-filter-chip { flex: 0 0 auto; padding: 7px 9px; border: 1px solid #c6d5dc; border-radius: 15px; color: #566e7c; background: #fff; font-size: 11px; font-weight: 700; }.mobile-filter-chip.active { border-color: var(--action-blue); color: #fff; background: var(--action-blue); }.mobile-reading-note { display: grid; gap: 4px; margin: 10px 0; padding: 10px 12px; border-left: 3px solid #e6a753; border-radius: 4px; background: #fff7e9; font-size: 11px; }.mobile-reading-note strong { color: #935515; }.mobile-reading-note span { color: #735f48; }.mobile-empty { padding: 24px; border-radius: 7px; color: #6d7e89; background: #fff; font-size: 12px; text-align: center; }
.mobile-stop-title.blocked > span { background:#c67929; }
.mobile-lifecycle-block { display:grid; gap:12px; margin-top:16px; padding:18px; border:1px solid #e4c391; border-radius:8px; background:#fffaf2; }
.mobile-lifecycle-block .badge { justify-self:start; }
.mobile-lifecycle-block h2 { margin:0; color:#704619; font-size:17px; }
.mobile-lifecycle-block p { margin:0; color:#6f5a42; font-size:12px; line-height:1.65; }
.mobile-lifecycle-block > div { display:grid; gap:4px; padding:11px; border-radius:6px; background:#fff; }
.mobile-lifecycle-block > div strong { color:#405968; font-size:12px; }
.mobile-lifecycle-block > div small { color:#687c87; font-size:10px; line-height:1.55; }
.mobile-lifecycle-block > button { min-height:40px; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; white-space: nowrap; }
th { text-align: left; color: #62727e; background: #f7f9fa; font-size: 12px; padding: 11px 15px; border-bottom: 1px solid var(--border); }
td { padding: 14px 15px; border-bottom: 1px solid #e9edef; vertical-align: middle; }
tbody tr { cursor: pointer; }
tbody tr:hover { background: #f5f9fc; }
tbody tr:last-child td { border-bottom: 0; }
.property-name { font-weight: 700; color: #184e77; white-space: normal; overflow-wrap: anywhere; }
.customer-email { color: var(--blue); text-decoration: none; }.customer-email:hover { text-decoration: underline; }
.subtext { display: block; font-size: 11px; color: var(--muted); margin-top: 4px; white-space: normal; overflow-wrap: anywhere; }
.table-footer { border-top: 1px solid var(--border); padding: 12px 16px; display: flex; justify-content: space-between; color: var(--muted); font-size: 12px; }
.empty { padding: 48px; text-align: center; color: var(--muted); }

.detail-summary { padding: 18px 20px; display: grid; grid-template-columns: 1.25fr .48fr .5fr .48fr .7fr .68fr; gap: 14px; }
.lpwa-summary strong { color:#157a58; }
.reading-history-filter { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:12px; align-items:end; margin:0 var(--content-gutter) 18px; padding:16px; border:1px solid #b9ddec; border-radius:10px; background:#f4fbfe; }
.reading-history-filter label { display:grid; gap:6px; color:#526a7b; font-size:12px; font-weight:700; }
.reading-history-filter input,.reading-history-filter select { width:100%; height:var(--control-height); border:1px solid var(--control-border); border-radius:var(--control-radius); background:#fff; padding:0 var(--control-padding-x); }
.reading-history-filter button { width:100%; height:var(--control-height); }
.summary-primary h2 { margin: 4px 0 8px; font-size: 20px; }
.summary-primary p { margin: 0; color: var(--muted); }
.latest-label { margin-left: 8px; color: var(--muted); font-size: 11px; font-weight: 700; }
.header-contact { display: flex; gap: 13px; margin-top: 9px; flex-wrap: wrap; }
.header-contact a { color: var(--blue); text-decoration: none; font-size: 12px; font-weight: 600; }
.header-contact a:hover { text-decoration: underline; }
.header-contact span { color: var(--muted); font-size: 12px; }

.reading-entry-customer-context { display: grid; grid-template-columns: .8fr 1fr 1.6fr; margin: 0 0 18px; border: 1px solid #b9dceb; border-radius: 8px; overflow: hidden; background: #f5fbfe; }
.reading-entry-customer-context > div { min-width: 0; padding: 14px 18px; border-right: 1px solid #d8e8ef; }
.reading-entry-customer-context > div:last-child { border-right: 0; }
.reading-entry-customer-context span, .reading-entry-customer-context small { display: block; color: var(--muted); font-size: 11px; }
.reading-entry-customer-context strong { display: block; margin: 5px 0; overflow-wrap: anywhere; }
.contact-owner { padding: 2px 7px; border-radius: 10px; color: #175b8b; background: #e5f1f8; font-size: 10px; font-weight: 800; }
.contact-source { margin-top: 9px !important; color: var(--blue) !important; font-size: 12px; font-weight: 600; }
.summary-item { border-left: 1px solid var(--border); padding-left: 20px; }
.summary-item span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 7px; }
.summary-item strong { font-size: 15px; }
.summary-item small { display: block; color: var(--muted); margin-top: 6px; }
.compact-summary strong { font-size: 13px; }
.forecast-summary { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:0; margin: -7px 0; padding: 12px 15px; border: 0; border-radius: 7px; background: linear-gradient(125deg,var(--blue),#168bd0); color: #fff; box-shadow: 0 4px 12px rgba(0,114,188,.2); }
.forecast-summary { font: inherit; text-align: left; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.forecast-summary:hover { transform: translateY(-2px); box-shadow: 0 7px 17px rgba(0,114,188,.3); }
.forecast-summary span, .forecast-summary small { width:100%; color: #d9f0fc; }
.forecast-summary strong { display:block; width:100%; margin-top:2px; color: #fff; font-size: 19px; }
.forecast-summary.parent-managed { display:grid !important; grid-template-columns:minmax(0,1fr) !important; grid-template-rows:auto auto auto; gap:0 !important; align-content:center; align-items:start; justify-items:start; align-self:start; width:100%; min-height:118px; height:auto; border:1px solid #bfd3df; background:linear-gradient(125deg,#eef5f8,#e3eef3); color:#294b60; box-shadow:0 3px 10px rgba(50,83,103,.1); }
.forecast-summary.parent-managed span,.forecast-summary.parent-managed small { color:#627d8d; }
.forecast-summary.parent-managed span,.forecast-summary.parent-managed strong,.forecast-summary.parent-managed small { display:block !important; width:100%; margin-left:0; }
.forecast-summary.parent-managed strong { margin:4px 0 0; color:#294b60; }
.forecast-summary.parent-managed small { margin-top:8px; }
.forecast-summary.parent-managed:hover { border-color:#9ebdcd; background:linear-gradient(125deg,#e7f1f5,#d9e8ef); box-shadow:0 6px 14px rgba(50,83,103,.16); }
.forecast-summary.suspended{border:1px solid #d6e1e7;background:linear-gradient(125deg,#f3f7f9,#e9f0f4);color:#36586b;box-shadow:0 3px 10px rgba(50,83,103,.09)}.forecast-summary.suspended span,.forecast-summary.suspended small{color:#718895}.forecast-summary.suspended strong{color:#36586b}.forecast-summary.suspended:hover{border-color:#bfcfd7;background:linear-gradient(125deg,#edf3f6,#e2ebef);box-shadow:0 6px 14px rgba(50,83,103,.14)}
.forecast-summary strong,.forecast-summary span,.forecast-summary small { white-space:nowrap; word-break:keep-all; }
.structure-summary small { line-height: 1.35; }
.parent-code { display: block; border: 0; padding: 0; background: transparent; color: var(--blue); font-size: 11px; margin-top: 4px; font-weight: 700; text-align: left; }
.parent-code:hover { text-decoration: underline; }
.mini-label { margin-top: 10px; }
.compact-summary b, .structure-summary b { display: block; font-size: 11px; font-weight: 600; }
.tabs { display: flex; overflow-x: auto; background: #fff; border: 1px solid var(--border); border-radius: 7px 7px 0 0; }
.tab { border: 0; background: transparent; color: var(--muted); font-weight: 700; padding: 15px 19px 13px; border-bottom: 3px solid transparent; white-space: nowrap; }
.tab:hover { color: var(--blue); }
.tab.active { color: var(--blue); border-bottom-color: var(--blue); }
.detail-panel { background: #fff; border: 1px solid var(--border); border-top: 0; border-radius: 0 0 7px 7px; min-height: 330px; padding: 22px; }
.section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 17px; }
.section-title h2 { margin: 0; font-size: 17px; }
.info-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.info { padding: 13px 15px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); min-height: 72px; }
.info label { display: block; font-size: 11px; font-weight: 700; color: var(--muted); margin-bottom: 8px; }
.info strong { font-weight: 600; }
.contractor-card { border: 1px solid var(--border); border-radius: 6px; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 18px; }
.contractor-card h3 { margin: 0 0 6px; font-size: 17px; }
.contractor-card p { margin: 5px 0; color: var(--muted); }
.history-note { margin-top: 18px; padding: 12px 14px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #3d5b70; }
.equipment-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }
.equipment { border: 1px solid var(--border); border-radius: 6px; padding: 17px; }
.equipment h3 { font-size: 15px; margin: 0 0 12px; display: flex; align-items: center; justify-content: space-between; }
.equipment dl { display: grid; grid-template-columns: 110px 1fr; gap: 8px 12px; margin: 0; font-size: 13px; }
.equipment dt { color: var(--muted); }
.equipment dd { margin: 0; font-weight: 600; }
.notice { position: fixed; right: 24px; bottom: 24px; padding: 12px 17px; background: #20384b; color: #fff; border-radius: 6px; box-shadow: 0 5px 20px rgba(0,0,0,.2); animation: fade 2.8s forwards; z-index: 10; }
.head-actions { display: flex; justify-content: flex-end; gap: var(--action-gap); flex-wrap: wrap; }
.register-step { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border: 1px solid var(--border); border-radius: 7px; margin-bottom: 20px; overflow: hidden; }
.step { padding: 13px 18px; color: var(--muted); border-right: 1px solid var(--border); font-weight: 700; }
.step:last-child { border: 0; }
.step.active { color: var(--blue); background: var(--blue-soft); box-shadow: inset 0 -3px var(--blue); }
.step.done { color: var(--green); background: #f1faf6; }
.required-note { font-size: 12px; color: var(--muted); }
.choice-grid { padding: 17px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.choice-card { display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--border); border-radius: 7px; padding: 16px; cursor: pointer; }
.choice-card:has(input:checked) { border-color: var(--blue); background: var(--blue-soft); box-shadow: 0 0 0 1px var(--blue); }
.choice-card input { accent-color: var(--blue); margin-top: 3px; }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { color: var(--muted); margin-top: 7px; line-height: 1.5; }
.choice-card em { font-style: normal; color: #fff; background: var(--blue); border-radius: 10px; padding: 2px 7px; font-size: 10px; }
.registration-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.register-section { padding-bottom: 18px; }
.section-no { background: var(--blue); color: white; border-radius: 50%; width: 25px; height: 25px; display: inline-grid; place-items: center; margin-right: 8px; font-size: 12px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 18px 19px 4px; }
.card > .form-grid:last-child { padding-bottom: var(--form-card-bottom-space); }
.card-body > .form-grid:last-child { padding-bottom: 4px; }
.form-grid.four { grid-template-columns: repeat(4, 1fr); }
.form-grid.five { grid-template-columns: repeat(5, 1fr); }
.form-span-3 { grid-column: 1 / -1; }
.form-item > span { display: block; color: var(--muted); font-size: 12px; font-weight: 700; margin-bottom: 6px; }
.form-item input, .form-item select { border: 1px solid var(--control-border); border-radius: var(--control-radius); height: var(--control-height); padding: 0 var(--control-padding-x); width: 100%; background: #fff; color: var(--text); }
.form-item input:focus, .form-item select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 2px rgba(0,114,188,.12); }
.form-item input:disabled { color: #8b979f; background: #edf1f3; border-color: #d6dde1; cursor: not-allowed; }
.form-item small { display: block; color: var(--muted); font-size: 10px; margin-top: 5px; }
.input-row { display: flex; gap: 7px; }
.map-button { border: 1px solid var(--blue); background: var(--blue-soft); color: var(--blue); border-radius: 5px; white-space: nowrap; padding: 0 12px; }
.inline-setting { margin: 14px 19px 0; padding: 12px; background: #f7f9fa; border-radius: 5px; }
.inline-setting input { accent-color: var(--blue); }
.link-button { border: 0; background: transparent; color: var(--blue); font-weight: 700; }
.map-service-links { display: flex; gap: 8px; margin: 10px 0; flex-wrap: wrap; }
.map-service-links a { text-decoration: none; text-align: center; }
.map-service-links a.is-disabled { opacity: .45; pointer-events: none; }
.property-coordinate-row { display: flex; align-items: center; gap: 12px; margin-top: 12px; flex-wrap: wrap; }
.property-coordinate-row .map-service-links { margin: 0; }
.management-contact-field { margin: 0 0 12px; padding: 12px; border: 1px solid var(--border); border-radius: 7px; background: var(--surface); }
.management-contact-field:last-of-type { margin-bottom: 0; }
.management-contact-field .form-grid { margin-top: 6px; }
.relationship-bar { margin: 14px 19px 0; padding: 12px 14px; border: 1px solid #b9dfd0; background: #f1faf6; border-radius: 6px; display: flex; justify-content: space-between; align-items: center; }
.relationship-bar small { display: block; color: var(--muted); margin-top: 3px; }
.model-note { margin: 15px 19px 0; padding: 14px; background: var(--blue-soft); border-left: 3px solid var(--blue); display: flex; gap: 20px; flex-wrap: wrap; }
.model-note strong { color: var(--blue); }
.master-hint { margin: 12px 19px 0; color: var(--muted); font-size: 12px; }
.section-disabled { opacity: .42; filter: grayscale(.4); pointer-events: none; }
.split-detail { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.split-detail > div { min-width: 0; }
.split-detail h3 { margin: 0 0 12px; font-size: 14px; }
.info-grid.two { grid-template-columns: repeat(2,1fr); }
.map-link { margin-top: 12px; border: 0; background: transparent; color: var(--blue); font-weight: 700; }
.property-map-address {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  max-width: 100%;
  padding: 3px 6px 3px 2px;
  border-radius: 7px;
  color: #176f9f;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  transition: background-color .16s ease, color .16s ease, transform .16s ease;
}
.property-map-address:hover {
  background: #edf7fc;
  color: #005f9e;
  transform: translateY(-1px);
}
.property-map-address:focus-visible { outline: 3px solid rgba(0,114,188,.2); outline-offset: 2px; }
.property-map-icon {
  display: grid !important;
  place-items: center;
  flex: 0 0 23px;
  width: 23px;
  height: 23px;
  border-radius: 50%;
  background: #e4f3fa;
  color: var(--blue) !important;
}
.property-map-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.property-map-address small { display: inline !important; color: currentColor; font-size: 12px; }
.summary-map-address { margin: 8px 0 10px; }
.entry-map-address { margin-top: 5px; }
.delivery-entry-header .entry-map-address > span:not(.property-map-icon) { display: inline; color: inherit; font-size: 14px; }
.empty.compact { padding: 30px; border: 1px dashed var(--border); border-radius: 6px; }
.relation-actions { display: flex; gap: 9px; margin-top: 12px; }
.relation-hero { display: flex; align-items: center; gap: 24px; margin-bottom: 22px; }
.relation-hero > div { flex: 1; padding: 17px; border: 1px solid var(--border); border-radius: 6px; }
.relation-hero span, .relation-hero small { display: block; color: var(--muted); }
.relation-hero strong { display: block; font-size: 18px; margin: 7px 0; color: var(--blue); }
.relation-parent-link { display: block; margin-top: 10px; }
.child-property-link { border: 0; padding: 0; background: transparent; color: var(--blue); font-weight: 700; }
.child-property-link:hover { text-decoration: underline; }
.children-table tbody tr { cursor: pointer; }
.subtabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 15px; }
.subtabs button { border: 0; background: transparent; padding: 9px 14px; color: var(--muted); }
.subtabs button.active { color: var(--blue); border-bottom: 2px solid var(--blue); font-weight: 700; }
.room-builder { padding-bottom: 18px; }
.room-preview { margin: 14px 19px 0; padding: 15px; border: 1px dashed #aac7da; border-radius: 7px; background: #f8fbfd; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; }
.room-preview small { display: block; color: var(--muted); margin-top: 4px; }
.room-chips { display: flex; gap: 7px; flex-wrap: wrap; }
.room-chips span { background: #fff; color: var(--blue); border: 1px solid #b8d7ea; border-radius: 5px; padding: 7px 12px; font-weight: 700; }
.empty-guide { min-height: 150px; border: 1px dashed #bfcbd3; border-radius: 7px; display: grid; place-items: center; align-content: center; gap: 8px; color: var(--muted); background: rgba(255,255,255,.45); }
.empty-guide strong { color: var(--text); }
.list-legend { color: var(--muted); font-size: 12px; }
.legend-meter, .legend-delivery { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin: 0 4px 0 10px; background: var(--blue); }
.legend-delivery { background: var(--orange); }
.occupancy-summary { display: flex; align-items: center; gap: 18px; padding: 17px 20px; margin-bottom: 20px; background: #fff; border: 1px solid var(--border); border-radius: 7px; box-shadow: var(--shadow); }
.occupancy-summary > div { flex: 1; }
.occupancy-summary span, .occupancy-summary small { display: block; color: var(--muted); }
.occupancy-summary strong { display: block; margin: 6px 0; font-size: 16px; }
.occupancy-summary .vacant { color: var(--orange); }
.occupancy-choices { grid-template-columns: 1fr 1fr; padding-bottom: 0; }
.operation-flow { padding: 20px; display: flex; align-items: center; gap: 18px; }
.operation-flow > div { flex: 1; padding: 16px; background: #f7f9fa; border-radius: 6px; }
.operation-flow span { color: var(--blue); font-weight: 800; }
.operation-flow strong, .operation-flow small { display: block; }
.operation-flow strong { margin: 7px 0; }
.operation-flow small { color: var(--muted); }
.property-export-flow {
  margin: 0 0 var(--section-gap);
  padding: 14px var(--content-gutter);
  gap: var(--action-gap);
}
.property-export-flow span {
  margin-right: auto;
  color: #567180;
  font-weight: 400;
}
.property-export-flow button {
  margin-left: 0;
}
.lifecycle-current { display: flex; justify-content: space-between; align-items: center; padding: 16px 18px; background: var(--blue-soft); border-radius: 7px; margin-bottom: 20px; }
.lifecycle-current span { display: block; color: var(--muted); font-size: 12px; }
.lifecycle-current strong { display: block; color: var(--blue); font-size: 20px; margin-top: 4px; }
.timeline { border-left: 2px solid #c7dce9; margin: 8px 0 18px 14px; padding-left: 25px; }
.timeline article { position: relative; padding: 0 0 22px; }
.timeline article:last-child { padding-bottom: 4px; }
.timeline i { position: absolute; width: 12px; height: 12px; background: var(--blue); border: 3px solid #fff; box-shadow: 0 0 0 2px var(--blue); border-radius: 50%; left: -32px; top: 4px; }
.timeline span { color: var(--muted); font-size: 12px; }
.timeline h3 { margin: 4px 0; }
.timeline p { margin: 0; color: var(--muted); }
.lifecycle-status-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 18px;border:1px solid #cfe1eb;border-top:4px solid #6d8797;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(25,58,77,.06)}
.lifecycle-status-card>div{display:grid;gap:5px;padding:18px 20px;border-right:1px solid #dde8ee}.lifecycle-status-card>div:last-child{border-right:0}.lifecycle-status-card span{color:#6d8290;font-size:12px;font-weight:700}.lifecycle-status-card strong{color:#17384f;font-size:20px}.lifecycle-status-card small{color:#738896}.lifecycle-status-card.active{border-top-color:#27865f}.lifecycle-status-card.alert{border-top-color:#d08a2e}.lifecycle-status-card.abolished{border-top-color:#7a8790;background:#fafbfc}
.lifecycle-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:10px;margin:0 0 20px;padding:16px 18px;border:1px solid #cfe6f2;border-radius:10px;background:#f5fbfe}.lifecycle-flow>div{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;padding:12px;border:1px solid #d8e4ea;border-radius:8px;background:#fff}.lifecycle-flow b{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#607986;background:#edf3f6}.lifecycle-flow strong{color:#2c4c5f}.lifecycle-flow small{color:#788b96}.lifecycle-flow>span{align-self:center;color:#8da3af}.lifecycle-flow .done b{color:#fff;background:#6a92aa}.lifecycle-flow .current{border-color:#58a9d2;box-shadow:0 0 0 2px rgba(0,114,188,.1)}.lifecycle-flow .current b{color:#fff;background:var(--blue)}
.lifecycle-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.lifecycle-policy-grid article{display:flex;align-items:flex-start;gap:12px;padding:15px 16px;border:1px solid #dce7ed;border-radius:9px;background:#fff}.lifecycle-policy-grid strong,.lifecycle-policy-grid small{display:block}.lifecycle-policy-grid small{margin-top:4px;color:#718592;line-height:1.55}.policy-symbol{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;color:#376c89;background:#e8f3f8;font-weight:800}.policy-symbol.safety{color:#317961;background:#e5f3ed}.policy-symbol.billing{color:#986d2c;background:#f8efdf}.policy-symbol.abolish{color:#697780;background:#eef1f3}
.lifecycle-reflection{margin:0 0 20px;padding:18px;border:1px solid #cfe6f2;border-radius:10px;background:#f5fbfe}.lifecycle-reflection-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.lifecycle-reflection-head h2{margin:7px 0 3px;color:#17384f;font-size:18px}.lifecycle-reflection-head small{color:#718592}.lifecycle-reflection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lifecycle-reflection-list article{display:grid;grid-template-columns:minmax(130px,.55fr) minmax(0,1.6fr) auto;align-items:center;gap:14px;padding:13px 14px;border:1px solid #dce8ee;border-radius:8px;background:#fff}.lifecycle-reflection-list article>div{display:grid;gap:3px}.lifecycle-reflection-list article span:first-child{color:#6f8491;font-size:12px;font-weight:700}.lifecycle-reflection-list article strong{color:#24495f}.lifecycle-reflection-list article p{margin:0;color:#5e7583;line-height:1.55}.lifecycle-reflection-note{margin:14px 2px 0;color:#617986;font-size:12px;line-height:1.6}
.lifecycle-timeline{margin-top:14px}.lifecycle-event h3{display:flex;align-items:center;gap:12px}.lifecycle-event h3 small{font-weight:500;color:#78909e}.lifecycle-event.restored i{background:#26865f;box-shadow:0 0 0 2px #26865f}
.lifecycle-operation-summary{display:grid;grid-template-columns:1fr auto 1fr 1.3fr;gap:12px;align-items:center;margin:18px 0;padding:15px 18px;border:1px solid #cfe6f2;border-radius:10px;background:#f4fafd}.lifecycle-operation-summary>div{display:grid;gap:5px}.lifecycle-operation-summary span{color:#6b8290;font-size:12px;font-weight:700}.lifecycle-operation-summary strong{color:#17384f}.lifecycle-operation-summary select{min-height:var(--control-height);border-radius:var(--control-radius)}.lifecycle-operation-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 18px}.lifecycle-operation-fields .lifecycle-note{grid-column:1/-1}.lifecycle-operation-fields textarea{min-height:80px}.lifecycle-checks{display:grid;gap:10px;margin:0 0 14px;padding:15px 18px;border:1px solid #d9e7ee;border-radius:9px;background:#fbfdfe}.lifecycle-checks:empty{display:none}.lifecycle-checks label{display:flex;align-items:center;gap:10px;color:#36586b;font-weight:700}.lifecycle-checks input{width:18px;height:18px}.lifecycle-impact-preview{display:grid;gap:6px;margin:0 0 20px;padding:15px 18px;border-left:4px solid var(--blue);background:#edf7fc;color:#466679}.lifecycle-impact-preview strong{color:#0b659d}.lifecycle-impact-preview em{color:#9a5b1d;font-style:normal;font-weight:700}.lifecycle-inline-checks{display:flex;flex-wrap:wrap;gap:16px;margin:14px 0 2px;padding:12px 14px;border:1px solid #d8e7ee;border-radius:8px;background:#f7fbfd}.lifecycle-inline-checks label{display:flex;align-items:center;gap:8px;color:#456577;font-weight:700}
.contract-link-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:18px 0;padding:0 18px;border:1px solid #cfe6f2;border-radius:9px;background:#f5fbfe}.contract-link-context>div{display:grid;gap:5px;padding:15px 16px;border-right:1px solid #dce9ef}.contract-link-context>div:last-child{border-right:0}.contract-link-context span{color:#6b8290;font-size:12px;font-weight:700}.contract-link-context strong{color:#173f58;overflow-wrap:anywhere}
@media(max-width:900px){.lifecycle-status-card{grid-template-columns:1fr}.lifecycle-status-card>div{border-right:0;border-bottom:1px solid #dde8ee}.lifecycle-flow{grid-template-columns:1fr}.lifecycle-flow>span{display:none}.lifecycle-policy-grid,.lifecycle-reflection-list{grid-template-columns:1fr}.lifecycle-reflection-list article{grid-template-columns:1fr auto}.lifecycle-reflection-list article p{grid-column:1/-1}.lifecycle-operation-summary,.lifecycle-operation-fields,.contract-link-context{grid-template-columns:1fr}.lifecycle-operation-summary>b{display:none}.contract-link-context>div{border-right:0;border-bottom:1px solid #dce9ef}.contract-link-context>div:last-child{border-bottom:0}}
.meter-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 15px 17px; border: 1px solid var(--border); border-radius: 6px; }
.meter-toolbar strong { display: block; margin: 7px 0 3px; font-size: 18px; }
.meter-toolbar small { color: var(--muted); }
.meter-toolbar > div:last-child { display: flex; gap: 8px; }
.meter-form { padding-left: 0; padding-right: 0; }
.business-settings { overflow: hidden; }
.business-block { margin: 18px 19px 0; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; background: #fff; }
.business-block-head { min-height: 52px; padding: 10px 14px; background: #f7f9fa; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.business-block-head > div { display: flex; align-items: center; gap: 9px; }
.business-block-head h3 { margin: 0; font-size: 15px; }
.block-icon { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 5px; background: var(--blue); color: #fff; font-weight: 800; font-size: 12px; }
.skip-check { color: var(--muted); font-size: 12px; }
.skip-check input { accent-color: var(--blue); }
.business-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0 19px; }
.business-pair .business-block { margin-left: 0; margin-right: 0; }
.schedule-strip { display: flex; align-items: center; gap: 9px; margin: 11px 19px 16px; padding: 10px 12px; background: var(--blue-soft); border-radius: 5px; }
.schedule-strip span { background: #fff; border: 1px solid #bad9eb; color: var(--blue); border-radius: 4px; padding: 5px 9px; font-weight: 700; }
.schedule-strip button { margin-left: auto; border: 0; background: transparent; color: var(--blue); font-weight: 700; }
.business-block.skipped > :not(.business-block-head) { opacity: .35; pointer-events: none; }
.parent-managed { min-height: 180px; display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; border: 1px solid #b9d9eb; background: var(--blue-soft); border-radius: 7px; padding: 22px; }
.parent-managed-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; }
.parent-managed h3 { margin: 0 0 7px; }
.parent-managed p { margin: 0 0 14px; color: var(--muted); }
.parent-managed dl { display: flex; gap: 8px 20px; margin: 0; flex-wrap: wrap; }
.parent-managed dt { color: var(--muted); }
.parent-managed dd { margin: 0; font-weight: 700; }
.supply-overview { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--border); border-radius: 7px; margin-bottom: 18px; overflow: hidden; }
.supply-overview > div { padding: 15px 17px; border-right: 1px solid var(--border); }
.supply-overview > div:last-child { border: 0; }
.supply-overview span, .side-stats span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 7px; }
.supply-overview strong { font-size: 16px; }
.supply-overview .level-value { color: var(--green); font-size: 22px; }
.secondary-title { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--border); }
.cylinder-sides { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cylinder-sides article { border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.cylinder-sides article.active-side { border-color: #98d0ba; box-shadow: inset 0 3px var(--green); }
.side-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: #f7f9fa; border-bottom: 1px solid var(--border); }
.side-head > div { display: flex; align-items: center; gap: 10px; }
.side-head h3 { margin: 0; font-size: 15px; }
.side-no { display: grid; place-items: center; min-width: 36px; height: 26px; padding: 0 7px; color: var(--blue); background: var(--blue-soft); border-radius: 4px; font-weight: 800; }
.side-stats { display: grid; grid-template-columns: repeat(3,1fr); }
.side-stats > div { padding: 14px 16px; border-right: 1px solid var(--border); }
.side-stats > div:last-child { border: 0; }
.side-stats strong { font-size: 16px; }
.reading-subtabs { margin-bottom: 18px; }
.reading-kpis, .schedule-summary { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.reading-kpis > div, .schedule-summary > div { padding: 15px 17px; border-right: 1px solid var(--border); }
.reading-kpis > div:last-child, .schedule-summary > div:last-child { border: 0; }
.reading-kpis span, .schedule-summary span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 7px; }
.reading-kpis strong, .schedule-summary strong { display: block; font-size: 18px; }
.reading-kpis small { display: block; color: var(--muted); margin-top: 5px; }
.reading-kpis .good { color: var(--green); }
.daily-layout { display: grid; grid-template-columns: 1.5fr .7fr; gap: 16px; margin-top: 18px; }
.mini-chart, .anomaly-card { border: 1px solid var(--border); border-radius: 7px; padding: 17px; }
.chart-head { display: flex; justify-content: space-between; align-items: center; }
.chart-head h3, .anomaly-card h3 { margin: 0 0 4px; }
.chart-head span { color: var(--muted); font-size: 12px; }
.chart-head select { height: var(--control-height); border: 1px solid var(--control-border); border-radius: var(--control-radius); padding: 0 var(--control-padding-x); }
.bars { height: 155px; display: flex; gap: 7px; align-items: end; border-bottom: 1px solid var(--border); margin-top: 18px; padding: 0 5px; }
.bars i { flex: 1; position: relative; min-width: 8px; background: linear-gradient(#56a7d9, var(--blue)); border-radius: 3px 3px 0 0; }
.bars i span { position: absolute; left: 50%; bottom: -19px; transform: translateX(-50%); color: var(--muted); font-size: 9px; font-style: normal; }
.check-row { display: flex; gap: 10px; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid #edf0f2; }
.check-row:last-child { border: 0; }
.check-row > span { width: 23px; height: 23px; display: grid; place-items: center; color: white; border-radius: 50%; font-weight: 800; }
.check-good { background: var(--green); }
.check-warn { background: var(--orange); }
.check-row strong, .check-row small { display: block; }
.check-row small { color: var(--muted); margin-top: 3px; }
.delivery-subtabs { margin-bottom: 18px; }
.delivery-kpis { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.delivery-kpis > div { padding: 15px 17px; border-right: 1px solid var(--border); }
.delivery-kpis > div:last-child { border: 0; }
.delivery-kpis span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 7px; }
.delivery-kpis strong { display: block; font-size: 18px; }
.delivery-kpis small { display: block; color: var(--muted); margin-top: 5px; }
.delivery-kpis .good { color: var(--blue); }
.delivery-detail-note { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 14px; background: #f7f9fa; border-radius: 6px; }
.delivery-detail-note span { color: var(--muted); }
.delivery-detail-note button { margin-left: auto; }
.forecast-hero { display: grid; grid-template-columns: auto 1fr auto auto; gap: 18px; align-items: center; padding: 18px 20px; background: linear-gradient(110deg,#e8f4fb,#f7fbfd); border: 1px solid #b8d8ea; border-radius: 7px; }
.forecast-hero span, .forecast-hero small { display: block; color: var(--muted); }
.forecast-hero strong { display: block; margin: 5px 0; font-size: 22px; color: var(--blue); }
.forecast-gauge { height: 12px; border-radius: 9px; background: #dce7ed; overflow: hidden; }
.forecast-gauge span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--orange),var(--green)); }
.forecast-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; margin-top: 18px; }
.card-inner { border: 1px solid var(--border); border-radius: 7px; padding: 17px; }
.card-inner h2 { font-size: 16px; margin: 0; }
.parameter-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.parameter-grid > div { background: #fff; padding: 13px; }
.parameter-grid span, .parameter-grid small { display: block; color: var(--muted); font-size: 11px; }
.parameter-grid strong { display: block; margin: 6px 0; }
.formula-flow { display: flex; align-items: center; gap: 8px; margin-top: 17px; }
.formula-flow > div { flex: 1; padding: 10px; text-align: center; background: #f7f9fa; border-radius: 5px; }
.formula-flow span { display: block; color: var(--muted); font-size: 10px; }
.formula-flow strong { display: block; margin-top: 5px; }
.forecast-notes { margin-top: 15px; }
.forecast-notes p { display: flex; align-items: center; gap: 9px; margin: 8px 0; color: var(--muted); }
.forecast-notes i { width: 20px; height: 20px; display: grid; place-items: center; color: #fff; border-radius: 50%; font-style: normal; }
.safety-kpis { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.safety-kpis > div { padding: 15px 17px; border-right: 1px solid var(--border); }
.safety-kpis > div:last-child { border: 0; }
.safety-kpis span, .safety-kpis small { display: block; color: var(--muted); }
.safety-kpis span { font-size: 12px; margin-bottom: 7px; }
.safety-kpis strong { display: block; font-size: 18px; }
.safety-kpis small { margin-top: 5px; }
.safety-kpis .safe { color: var(--green); }.safety-kpis .warning { color: var(--orange); }
.scope-note { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; margin-top: 15px; padding: 13px 15px; border: 1px solid #b8d8ea; border-radius: 6px; background: var(--blue-soft); }
.scope-note strong, .scope-note small { display: block; }.scope-note small { color: var(--muted); margin-top: 4px; }
.scope-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; }
.safety-equipment-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.safety-equipment-grid article { border: 1px solid var(--border); border-radius: 7px; padding: 16px; }
.safety-equipment-grid article.due-soon { border-color: #e5bd8e; box-shadow: inset 0 3px var(--orange); }
.equipment-status { display: flex; align-items: center; justify-content: space-between; }
.equipment-symbol { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; background: var(--blue-soft); color: var(--blue); font-weight: 800; }
.safety-equipment-grid h3 { margin: 12px 0; }
.safety-equipment-grid dl { display: grid; grid-template-columns: 90px 1fr; gap: 8px; margin: 0 0 14px; }
.safety-equipment-grid dt { color: var(--muted); }.safety-equipment-grid dd { margin: 0; font-weight: 600; }
.warning-text { color: var(--orange); }
.safety-log { border-top: 1px solid var(--border); }
.safety-log > div { display: grid; grid-template-columns: 95px 14px 1fr auto; gap: 12px; align-items: start; padding: 13px 5px; border-bottom: 1px solid #edf0f2; }
.safety-log time, .safety-log p, .safety-log > div > span:last-child { color: var(--muted); }
.safety-log p { margin: 4px 0 0; }
.log-dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 4px; }.log-dot.done { background: var(--green); }
.compliance-subtabs { margin-bottom: 18px; }
.compliance-kpis, .document-summary, .notice-status-grid { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.compliance-kpis > div, .document-summary > div, .notice-status-grid > div { padding: 15px 17px; border-right: 1px solid var(--border); }
.compliance-kpis > div:last-child, .document-summary > div:last-child, .notice-status-grid > div:last-child { border-right: 0; }
.compliance-kpis span, .document-summary span, .notice-status-grid span, .compliance-kpis small, .document-summary small, .notice-status-grid small { display: block; color: var(--muted); }
.compliance-kpis span, .document-summary span, .notice-status-grid span { margin-bottom: 7px; font-size: 12px; }
.compliance-kpis strong, .document-summary strong, .notice-status-grid strong { display: block; font-size: 17px; }
.compliance-kpis small, .document-summary small, .notice-status-grid small { margin-top: 5px; }
.compliance-kpis .safe, .document-summary .safe { color: var(--green); }
.compliance-kpis .warning, .compliance-kpis .due, .notice-status-grid .due, .compliance-flow .due { color: var(--orange); }
.management-kpis { margin-bottom: 20px; box-shadow: var(--shadow); background: #fff; }
.compliance-management-card .card-head > div:first-child { display: flex; align-items: baseline; gap: 10px; }
.compliance-management-card .card-head small { color: var(--muted); font-size: 12px; }
.compliance-filter { display: flex; gap: 6px; flex-wrap: wrap; }
.compliance-filter button { min-height: 29px; padding: 4px 10px; border: 1px solid #c8d4db; border-radius: 14px; color: var(--muted); background: #fff; font-size: 11px; }
.compliance-filter button.active { border-color: var(--blue); color: #fff; background: var(--blue); }
.compliance-date { color: var(--text); }.compliance-date.soon, .compliance-date.overdue, .subtext.soon, .subtext.overdue { color: var(--orange); }
.compliance-date.inactive, .subtext.inactive { color: var(--muted); }
.notice-scope { margin: 14px 19px 0; padding: 13px 14px; border-radius: 6px; background: #f7f9fa; }
.notice-scope strong { margin-right: 13px; }
.notice-scope .badge { margin: 3px 5px 3px 0; }
.reading-guidance { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid #b8d8ea; border-radius: 7px; background: var(--blue-soft); }
.reading-guidance > div { display: flex; align-items: center; gap: 13px; }
.reading-guidance strong, .reading-guidance small { display: block; }
.reading-guidance small { margin-top: 4px; color: var(--muted); }
.lifecycle-reading-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:18px; border:1px solid #b8d8ea; border-radius:12px; background:var(--blue-soft); }
.lifecycle-reading-summary article { min-width:0; padding:18px 20px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.lifecycle-reading-summary span, .lifecycle-reading-summary strong, .lifecycle-reading-summary small { display:block; }
.lifecycle-reading-summary span { color:#5f7485; font-size:13px; font-weight:700; }
.lifecycle-reading-summary strong { margin-top:7px; color:#173b55; font-size:18px; }
.lifecycle-reading-summary small { margin-top:7px; color:var(--muted); line-height:1.6; }
.lifecycle-reading-card .property-name { color:#173b55; }
.lifecycle-reading-card td:last-child { width:180px; text-align:right; }
@media (max-width: 900px) {
  .lifecycle-reading-summary { grid-template-columns:1fr; }
}
.reading-guide-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 7px; background: var(--blue); color: #fff; font-weight: 800; font-size: 11px; }
.reading-flow { margin: 0 0 20px; }
.delivery-guidance { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid #c8d9cb; border-radius: 7px; background: #f2faf5; }
.delivery-guidance > div { display: flex; align-items: center; gap: 13px; }
.delivery-guidance strong, .delivery-guidance small { display: block; }
.delivery-guidance small { margin-top: 4px; color: var(--muted); }
.delivery-guide-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 7px; background: var(--green); color: #fff; font-weight: 800; font-size: 14px; }
.route-pending-note { display: flex; align-items: center; gap: 13px; margin: 14px 19px 0; padding: 13px 14px; border-radius: 6px; background: #f7f9fa; }
.route-pending-note > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; }
.route-pending-note strong, .route-pending-note small { display: block; }.route-pending-note small { margin-top: 3px; color: var(--muted); }
.reading-work-note { display: flex; align-items: center; gap: 13px; margin: 14px 19px 0; padding: 13px 14px; border-radius: 6px; background: #f7f9fa; }
.reading-work-note > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; }
.reading-work-note strong, .reading-work-note small { display: block; }.reading-work-note small { margin-top: 3px; color: var(--muted); }
.safety-work-note { display: flex; align-items: center; gap: 13px; margin: 14px 19px 0; padding: 13px 14px; border-radius: 6px; background: #f1faf6; }
.safety-work-note > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--green); color: #fff; font-weight: 800; }
.safety-work-note strong, .safety-work-note small { display: block; }.safety-work-note small { margin-top: 3px; color: var(--muted); }
.reading-entry-summary, .delivery-entry-summary { display: grid; grid-template-columns: repeat(3,1fr); margin: 18px 19px 0; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.reading-entry-summary > div, .delivery-entry-summary > div { padding: 14px; border-right: 1px solid var(--border); }
.reading-entry-summary > div:last-child, .delivery-entry-summary > div:last-child { border-right: 0; }
.reading-entry-summary span, .delivery-entry-summary span, .delivery-entry-summary small { display: block; color: var(--muted); font-size: 11px; }
.reading-entry-summary strong, .delivery-entry-summary strong { display: block; margin: 6px 0; font-size: 18px; color: var(--blue); }
.reading-validation-message { display: flex; align-items: center; gap: 12px; margin: 14px 19px 0; padding: 12px 14px; border: 1px solid var(--border); border-radius: 7px; background: #f7fafc; color: var(--muted); }
.reading-validation-message strong { flex: 0 0 auto; color: var(--ink); }
.reading-validation-message.valid { border-color: #b9ddce; background: #f2faf6; }
.reading-validation-message.valid strong { color: #167557; }
.reading-validation-message.invalid { border-color: #efc2bc; background: #fff6f4; }
.reading-validation-message.invalid strong { color: #b74235; }
.reading-forecast-preview { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:12px; margin:14px 19px 0; padding:14px; border:1px solid #b9dceb; border-radius:8px; background:#f4fafd; }
.reading-forecast-preview > div { display:grid; align-content:center; gap:4px; min-width:0; padding:11px 13px; border:1px solid #dbe7ed; border-radius:7px; background:#fff; }
.reading-forecast-preview > b { align-self:center; color:#1681bc; font-size:1.15rem; }
.reading-forecast-preview span,.reading-forecast-preview small { color:#70838f; font-size:11px; }
.reading-forecast-preview strong { color:#26495e; font-size:17px; }
.reading-forecast-preview .next { background:#eef8fc; }
.reading-forecast-preview .next strong { color:var(--blue); }
.reading-correction-banner { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 20px; padding:18px 22px; border:1px solid #9bcbe7; border-left:5px solid var(--blue); border-radius:12px; background:#edf7fc; }
.reading-correction-banner div { display:flex; flex-direction:column; gap:4px; }
.reading-correction-banner span { color:#587184; font-size:12px; font-weight:700; }
.reading-correction-banner strong { color:#173b55; }
.reading-correction-banner small { color:#647b8c; }
.reading-audit-modal .reading-confirm-summary { margin-top:18px; }
.reading-audit-forecast { display:flex; flex-direction:column; gap:5px; margin:18px 0; padding:18px 20px; border:1px solid #b9dced; border-radius:10px; background:#f1f9fd; }
.reading-audit-forecast span,.reading-audit-forecast small { color:#61788a; }
.reading-audit-forecast strong { color:#006ba9; font-size:20px; }
.reading-warning-audit { display:grid; gap:10px; margin:18px 0; padding:16px 18px; border:1px solid #ead2ad; border-radius:10px; background:#fffaf2; }
.reading-warning-audit > div { display:flex; align-items:center; gap:10px; }
.reading-warning-audit ul { margin:0; padding-left:20px; color:#704f29; }
.reading-warning-audit small { color:#7c6c5b; }
.reading-warning-badge { display:inline-flex !important; margin-top:6px; }
.reading-cancel-reason { margin:18px 0 0; }
.reading-cancel-reason textarea { width:100%; min-height:82px; resize:vertical; }
.reading-cancelled-note { display:flex; flex-direction:column; gap:5px; margin-top:18px; padding:18px 20px; border:1px solid #ebcda8; border-radius:10px; background:#fff8ef; }
.reading-cancelled-note strong { color:#9a5b18; }
.danger-outline { color:#b43b35; border:1px solid #dfa8a4; background:#fff; }
.danger-outline:hover { color:#fff; background:#b43b35; border-color:#b43b35; }
.reading-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; white-space: nowrap; }
.reading-row-actions .secondary { min-height: 34px; padding: 7px 11px; }
.reading-result-card .table-wrap { overflow-x: auto; }
.reading-result-card table { min-width: 1180px; }
.reading-result-card th:last-child,
.reading-result-card td:last-child { width: 148px; }
.reading-result-card .card-head { flex-wrap: wrap; row-gap: 10px; }
.reading-result-card .card-head > div:first-child { flex: 1 1 260px; min-width: 260px; }
.reading-result-card-actions { display: flex; flex-wrap: wrap; gap: 8px; flex: 0 0 auto; }
.reading-result-card-actions button { white-space: nowrap; }
.reading-result-card .table-footer { flex-wrap: wrap; gap: 6px 16px; }
.reading-result-actions { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.reading-result-actions .secondary { min-height: 34px; padding: 7px 11px; }
.delivery-entry-summary { grid-template-columns: repeat(5,minmax(0,1fr)); }
.provisional-forecast-panel .card-head .secondary { border:1px solid var(--control-border); border-radius:6px; background:#fff; padding:8px 13px; color:var(--blue); }
.forecast-panel-actions { display:flex; align-items:center; gap:10px; }
.forecast-calculation-basis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:14px 19px 0; padding:1px; border:1px solid #c9e2f1; border-radius:7px; background:#dcecf5; overflow:hidden; }
.forecast-calculation-basis > div { min-width:0; padding:12px 14px; background:#f5fafe; }
.forecast-calculation-basis span { display:block; color:var(--muted); font-size:11px; }
.forecast-calculation-basis strong { display:block; margin-top:5px; color:var(--ink); font-size:13px; line-height:1.45; }
@media (max-width:1200px) { .delivery-entry-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1200px) { .forecast-calculation-basis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.safety-guidance { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 18px; border: 1px solid #c8d9cb; border-radius: 7px; background: #f2faf5; }
.safety-guidance > div { display: flex; align-items: center; gap: 13px; }
.safety-guidance strong, .safety-guidance small { display: block; }
.safety-guidance small { margin-top: 4px; color: var(--muted); }
.safety-guide-icon { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 7px; background: var(--green); color: #fff; font-weight: 800; font-size: 14px; }
.delivery-mode-info { display: flex; align-items: center; gap: 18px; padding: 12px 15px; margin-bottom: 16px; border: 1px solid #b8d8ea; border-radius: 7px; background: #f5fafd; }
.delivery-mode-info > div { min-width: 155px; padding-right: 18px; border-right: 1px solid #cfe1eb; }
.delivery-mode-info span, .delivery-mode-info small { display: block; color: var(--muted); font-size: 11px; }
.delivery-mode-info strong { display: block; margin: 3px 0; color: var(--blue); font-size: 16px; }
.delivery-mode-info p { margin: 0; color: var(--muted); }
.delivery-no-forecast { display: flex; align-items: center; gap: 16px; padding: 22px; border: 1px dashed #c8d3d9; border-radius: 7px; background: #fafbfc; }
.delivery-no-forecast strong { font-size: 16px; }.delivery-no-forecast span { flex: 1; color: var(--muted); }
.delivery-settings-hero { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; margin-bottom: 17px; padding: 18px 20px; border: 1px solid #b8d8ea; border-radius: 7px; background: linear-gradient(110deg,#e8f4fb,#f8fbfd); }
.delivery-settings-hero h3 { margin: 8px 0 5px; font-size: 20px; color: var(--blue); }.delivery-settings-hero p { margin: 0; color: var(--muted); }
.delivery-settings-hero > div:last-child { min-width: 150px; padding-left: 20px; border-left: 1px solid #c4dce9; }
.delivery-settings-hero > div:last-child span, .delivery-settings-hero > div:last-child small { display: block; color: var(--muted); font-size: 11px; }
.delivery-settings-hero > div:last-child strong { display: block; margin: 5px 0; font-size: 20px; }
.basic-supply-section { margin-top: 21px; }
.basic-supply-section > h3 { margin: 0 0 12px; font-size: 15px; }
.basic-supply-card { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: end; padding: 17px; border: 1px solid var(--border); border-radius: 7px; background: #fafcfd; }
.basic-supply-card h3 { margin: 10px 0; font-size: 16px; }
.basic-supply-card p { margin: 6px 0 12px; color: var(--muted); }
.basic-supply-card dl { display: grid; grid-template-columns: 110px 1fr; gap: 7px 14px; margin: 0; }
.basic-supply-card dt { color: var(--muted); }.basic-supply-card dd { margin: 0; font-weight: 600; }
.basic-supply-actions { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.parent-supply { border-color: #b8d8ea; background: var(--blue-soft); }
.property-management-contact { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-top: 17px; padding: 17px; border: 1px solid #d6dee3; border-radius: 7px; background: #fafbfc; }
.property-management-contact h3 { margin: 9px 0 12px; font-size: 16px; }
.property-management-contact p { margin: 0; color: var(--muted); }
.property-management-contact dl { display: grid; grid-template-columns: 100px 1fr; gap: 7px 14px; margin: 0; }
.property-management-contact dt { color: var(--muted); }.property-management-contact dd { margin: 0; font-weight: 600; }
.property-management-contact a { color: var(--blue); text-decoration: none; }.property-management-contact a:hover { text-decoration: underline; }
.property-management-contact small { display: block; margin-top: 10px; color: var(--muted); }
.provider-settings { display: grid; grid-template-columns: minmax(190px,.7fr) 1.3fr; gap: 18px; align-items: start; margin-top: 17px; padding: 17px; border: 1px solid #d6dee3; border-radius: 7px; background: #fafbfc; }
.provider-settings h3 { margin: 9px 0 5px; font-size: 16px; }.provider-settings > div:first-child > small { color: var(--muted); }
.provider-setting-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.provider-setting-grid article { padding: 12px; border: 1px solid var(--border); border-radius: 6px; background: #fff; }
.provider-setting-grid span, .provider-setting-grid strong { display: block; }.provider-setting-grid span { color: var(--muted); font-size: 11px; }.provider-setting-grid strong { min-height: 36px; margin: 5px 0 8px; font-size: 13px; }
.delivery-provider-summary { display: flex; align-items: center; gap: 12px; margin: -6px 0 17px; padding: 11px 15px; border: 1px solid #c9ddea; border-radius: 6px; background: #f7fbfe; }
.delivery-provider-summary span, .delivery-provider-summary small { color: var(--muted); font-size: 12px; }.delivery-provider-summary strong { color: var(--ink); }.delivery-provider-summary small { margin-left: auto; }
.compliance-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px; margin-bottom: 16px; border: 1px solid #b8d8ea; border-radius: 7px; background: linear-gradient(110deg, #e8f4fb, #f8fbfd); }
.compliance-banner.safety-notice { border-color: #b8d9c4; background: linear-gradient(110deg, #eef8f1, #f9fcfa); }
.compliance-banner h2 { margin: 9px 0 5px; font-size: 18px; }
.compliance-banner p { margin: 0; color: var(--muted); }
.law-chip { display: inline-block; padding: 3px 8px; border-radius: 12px; color: var(--blue); background: #dceefa; font-size: 11px; font-weight: 800; }
.safety-notice .law-chip { color: #237849; background: #daf1e1; }
.compliance-flow { display: grid; grid-template-columns: 1fr auto 1fr; gap: 18px; align-items: stretch; margin-top: 18px; }
.compliance-flow article { display: flex; flex-direction: column; align-items: flex-start; padding: 19px; border: 1px solid var(--border); border-radius: 7px; }
.compliance-flow h3 { margin: 12px 0 7px; font-size: 17px; }
.compliance-flow p { min-height: 40px; margin: 0 0 14px; color: var(--muted); }
.compliance-flow article > strong { margin-bottom: 15px; }
.compliance-flow button { margin-top: auto; }
.compliance-flow > i { align-self: center; color: var(--blue); font-size: 28px; font-style: normal; }
.compliance-note { display: flex; gap: 14px; margin-top: 16px; padding: 13px 15px; border-radius: 6px; color: #315160; background: #f3f8fa; }
.compliance-note strong { flex: 0 0 auto; color: var(--blue); }
.notice-content { margin-top: 16px; padding: 16px; border: 1px solid var(--border); border-radius: 7px; }
.notice-content h3 { margin: 0 0 12px; font-size: 15px; }
.notice-content .badge { margin: 0 7px 7px 0; }
.forecast-sources { margin-top: 18px; border: 1px solid var(--border); border-radius: 7px; padding: 17px; }
.forecast-model-comparison { margin-top:18px; padding:18px; border:1px solid #c9e2f1; border-radius:7px; background:#f7fbfe; }
.seasonal-master-card { margin-top:18px; }
.seasonal-priority-note { display:flex; align-items:center; gap:10px; margin:16px 19px; padding:12px 14px; border:1px solid #c9e2f1; border-radius:7px; background:#f5fafe; color:var(--ink); }
.seasonal-priority-note strong { color:var(--blue); margin-right:5px; }
.seasonal-priority-note span { padding:5px 9px; border-radius:999px; background:#fff; border:1px solid var(--border); font-size:12px; }
.seasonal-table { margin:0 19px 18px; }
.seasonal-table table { min-width:1450px; }
.seasonal-table th,.seasonal-table td { white-space:nowrap; text-align:center; }
.seasonal-table th:nth-child(3),.seasonal-table td:nth-child(3) { min-width:190px; text-align:left; }
.seasonal-cell { width:64px; min-height:36px; padding:6px 7px; border:1px solid var(--control-border); border-radius:var(--control-radius); background:#fff; text-align:right; font:inherit; }
.seasonal-cell:focus { outline:2px solid rgba(0,114,188,.16); border-color:var(--blue); }
.seasonal-pattern-months { margin:20px 0; padding:17px 18px 19px; border:1px solid var(--input-group-border); border-radius:var(--input-group-radius); background:var(--input-group-background); }
.seasonal-pattern-months .section-label { display:flex; align-items:baseline; gap:12px; margin-bottom:14px; }
.seasonal-pattern-months .section-label span { color:var(--muted); font-size:12px; }
.seasonal-pattern-months .modal-form { margin-top:0; }
.seasonal-pattern-reason { margin-top:18px; }
.concept-validation-note { display:flex; align-items:center; gap:14px; margin-bottom:18px; padding:14px 18px; border:1px solid #b9dbea; border-radius:7px; background:#f3f9fc; }
.concept-validation-note strong { color:var(--blue); white-space:nowrap; }
.concept-validation-note span { color:var(--muted); font-size:12px; }
.organization-filters { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)) 2fr; gap:12px; padding:16px 19px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:#f8fafb; }
.organization-filters label { display:grid; gap:6px; color:var(--muted); font-size:11px; font-weight:700; }
.organization-filters input,.organization-filters select { min-height:var(--control-height); padding:0 var(--control-padding-x); border:1px solid var(--control-border); border-radius:var(--control-radius); background:#fff; color:var(--ink); font:inherit; }
.role-tags { display:flex; flex-wrap:wrap; gap:5px; }
.role-tags span,.relationship-chip { display:inline-flex; padding:4px 8px; border-radius:999px; background:#edf6fb; color:#17658f; font-size:11px; font-weight:700; }
.relationship-chip { background:#f2f4f6; color:#526779; }
.business-role-matrix { margin:18px 19px; border:1px solid var(--border); border-radius:7px; overflow:hidden; }
.business-role-matrix .matrix-head,.business-role-matrix label { display:grid; grid-template-columns:1fr 80px minmax(180px,1fr); align-items:center; gap:12px; padding:10px 14px; border-bottom:1px solid var(--border); }
.business-role-matrix .matrix-head { background:#f4f7f9; color:var(--muted); font-size:11px; }
.business-role-matrix label:last-child { border-bottom:0; }
.business-role-matrix select { min-height:36px; border:1px solid var(--control-border); border-radius:var(--control-radius); background:#fff; padding:6px 9px; }
.property-organization-assignments { margin-top:18px; padding:18px; border:1px solid #c9e2f1; border-radius:7px; background:#f7fbfe; }
.property-organization-assignments .section-title { margin:0 0 14px; }
.assignment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.assignment-grid article { padding:13px 14px; border:1px solid var(--border); border-radius:7px; background:#fff; }
.assignment-grid span,.assignment-grid small { display:block; color:var(--muted); font-size:11px; }
.assignment-grid strong { display:block; margin:6px 0; color:var(--ink); font-size:13px; }
@media (max-width:1100px) { .organization-filters,.assignment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.model-comparison-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:14px; border:1px solid var(--border); border-radius:7px; overflow:hidden; background:#fff; }
.model-comparison-grid > div { padding:14px; border-right:1px solid var(--border); }
.model-comparison-grid > div:last-child { border-right:0; }
.model-comparison-grid span,.model-comparison-grid small { display:block; color:var(--muted); font-size:11px; }
.model-comparison-grid strong { display:block; margin:6px 0; font-size:17px; color:var(--ink); }
.model-comparison-grid strong.good { color:#157653; }
@media (max-width:1100px) { .model-comparison-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.forecast-conditions { margin: 18px 0; padding: 17px; border: 1px solid #b8d8ea; border-radius: 7px; background: #f8fbfd; }
.forecast-conditions .parameter-grid > div { background: #fff; }
.forecast-section-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.forecast-section-head h2 { margin: 0 0 4px; font-size: 16px; }
.forecast-section-head p { margin: 0; color: var(--muted); font-size: 12px; }
.confidence { display: flex; align-items: center; gap: 5px; }
.confidence span { color: var(--muted); margin-right: 4px; }
.confidence i { width: 10px; height: 10px; background: #71b53b; border-radius: 50%; }
.confidence i.off { background: #d7dfe4; }
.confidence strong { color: var(--green); margin-left: 3px; }
.source-priority { display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; }
.source-priority article { position: relative; min-width: 0; padding: 12px 11px; border: 1px solid var(--border); border-radius: 6px; background: #fafbfc; }
.source-priority article.high { border-color: var(--blue); background: var(--blue-soft); box-shadow: inset 0 3px var(--blue); }
.source-rank { position: absolute; right: 8px; top: 8px; width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: var(--blue); background: #fff; border: 1px solid #bcd9e9; font-weight: 800; font-size: 11px; }
.source-priority h3 { margin: 0 24px 4px 0; font-size: 13px; }
.source-priority small { display: block; color: var(--muted); min-height: 28px; }
.source-priority strong { display: block; margin: 9px 0 6px; color: var(--text); }
.source-status { display: inline-block; padding: 2px 7px; border-radius: 10px; background: #edf1f4; color: var(--muted); font-size: 10px; }
.source-priority .high .source-status { color: #fff; background: var(--blue); }
.forecast-visual { display: grid; grid-template-columns: .75fr 1.25fr; gap: 14px; margin-top: 14px; }
.visual-summary { display: grid; grid-template-columns: 1fr; border: 1px solid var(--border); border-radius: 7px; overflow: hidden; }
.visual-summary > div { padding: 12px 14px; border-bottom: 1px solid var(--border); }
.visual-summary > div:last-child { border: 0; }
.visual-summary span, .visual-summary small { display: block; color: var(--muted); font-size: 11px; }
.visual-summary strong { display: block; margin: 5px 0; font-size: 18px; color: var(--blue); }
.cylinder-forecast { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cylinder-forecast article { border: 1px solid var(--border); border-radius: 7px; padding: 13px; text-align: center; }
.cylinder-forecast h3 { margin: 0 0 10px; font-size: 14px; text-align: left; }
.cylinder-forecast h3 span { color: var(--muted); font-size: 11px; font-weight: 500; margin-left: 5px; }
.cylinder-pair { display: flex; justify-content: center; gap: 22px; }
.cylinder { width: 72px; height: 108px; position: relative; display: flex; align-items: end; justify-content: center; overflow: hidden; border: 2px solid #9eabb4; border-radius: 14px 14px 9px 9px; background: #f7f9fa; }
.cylinder:before { content: ''; position: absolute; top: -2px; width: 28px; height: 7px; background: #9eabb4; border-radius: 2px; z-index: 2; }
.cylinder > span { position: absolute; inset: auto 0 0; background: linear-gradient(#a8d877,#62a934); }
.cylinder-pair.blue .cylinder > span { background: linear-gradient(#70b8e4,#0877bc); }
.cylinder b { position: relative; z-index: 1; color: #fff; font-size: 11px; margin-bottom: 12px; text-shadow: 0 1px 2px rgba(0,0,0,.3); }
.cylinder b small { display: block; color: inherit; }
.cylinder-forecast p { margin: 10px 0 0; color: var(--muted); font-size: 12px; }
.side-system { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: center; }
.side-system.single { grid-template-columns: minmax(260px,460px); justify-content: center; }
.side-system article { border: 1px solid var(--border); border-radius: 7px; padding: 13px 16px; text-align: center; }
.side-system article.using { border-color: #8fcdb4; box-shadow: inset 0 3px var(--green); }
.system-head { display: flex; align-items: center; justify-content: space-between; }
.system-head h3 { margin: 0; font-size: 14px; }
.system-head h3 span { color: var(--muted); font-size: 11px; font-weight: 500; margin-left: 5px; }
.side-tank { width: 150px; height: 94px; position: relative; display: flex; align-items: end; justify-content: center; overflow: hidden; margin: 15px auto 10px; border: 2px solid #8e9ba5; border-radius: 22px; background: #f6f8f9; }
.side-tank:before { content: '系統全体'; position: absolute; top: 8px; z-index: 2; color: var(--muted); font-size: 10px; }
.side-tank > span { position: absolute; inset: auto 0 0; background: linear-gradient(#74bbe6,var(--blue)); }
.side-tank.reserve > span { background: linear-gradient(#abd97b,#65ad39); }
.side-tank b { position: relative; z-index: 2; color: #fff; font-size: 20px; margin-bottom: 13px; text-shadow: 0 1px 2px rgba(0,0,0,.3); }
.side-system p { margin: 0 0 4px; font-weight: 700; }
.side-system article > small { color: var(--muted); }
.switch-arrow { color: var(--blue); font-size: 25px; font-weight: 800; text-align: center; }
.switch-arrow small { display: block; color: var(--muted); font-size: 10px; font-weight: 500; }
.bulk-forecast { display: grid; grid-template-columns: auto minmax(150px,auto); justify-content: center; gap: 28px; align-items: center; border: 1px solid var(--border); border-radius: 7px; padding: 20px 28px; }
.bulk-vessel { width: 430px; height: 180px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 8px solid #9ba7ae; border-radius: 64px; background: #f5f7f8; box-shadow: inset 0 0 0 3px #dbe1e4; }
.bulk-vessel:before, .bulk-vessel:after { content: ''; position: absolute; bottom: -18px; width: 35px; height: 25px; background: #8f9ba2; }
.bulk-vessel:before { left: 60px; }.bulk-vessel:after { right: 60px; }
.bulk-vessel > span { position: absolute; inset: auto 0 0; width: 100%; background: linear-gradient(#72bae4,#0875b8); }
.bulk-vessel b { position: relative; z-index: 2; color: #fff; font-size: 23px; text-shadow: 0 1px 3px rgba(0,0,0,.35); }
.bulk-vessel b small { display: block; color: inherit; font-size: 12px; text-align: center; margin-top: 4px; }
.bulk-meta strong, .bulk-meta small { display: block; }
.bulk-meta strong { margin: 10px 0 5px; }.bulk-meta small { color: var(--muted); }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 32px 18px; background: linear-gradient(135deg, #edf6fb, #f7fafc 56%, #e7f1f8); }
.login-card { width: min(660px, 100%); padding: 34px; background: #fff; border: 1px solid #cfe0ea; box-shadow: 0 18px 48px rgba(16,64,94,.15); border-radius: 14px; }
.login-card h1 { margin: 11px 0 8px; font-size: 27px; color: #183b56; }.login-card > div > p, .login-card > p { color: var(--muted); line-height: 1.7; }
.login-brand { display: flex; gap: 12px; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--border); }.login-brand strong, .login-brand small { display: block; }.login-brand strong { font-size: 22px; color: #183b56; }.login-brand small { margin-top: 2px; font-size: 10px; letter-spacing: .12em; color: var(--muted); }
.login-brand .environment-indicator { margin-left:auto; }
.login-brand .environment-indicator small { margin:0; color:inherit; letter-spacing:0; }
.login-users { display: grid; gap: 10px; margin: 24px 0; }.login-users button { display: flex; align-items: center; gap: 13px; padding: 15px; border: 1px solid #d3e1e9; border-radius: 9px; background: #fff; text-align: left; color: var(--text); cursor: pointer; }.login-users button:hover { border-color: var(--blue); background: #f2f9fd; }.login-users button strong, .login-users button small { display: block; }.login-users button small { margin-top: 3px; color: var(--muted); }.login-users button b { margin-left: auto; color: var(--blue); font-size: 13px; }.login-note, .data-foundation-note { display: flex; gap: 10px; padding: 13px 15px; border-radius: 7px; background: #f0f8fc; color: #3f5d70; font-size: 13px; line-height: 1.55; }.login-note strong, .data-foundation-note strong { white-space: nowrap; color: #1e608b; }.access-denied { width: min(550px, 100%); }.operator { border: 0; background: transparent; text-align: left; cursor: pointer; }
.container-entry-panel { grid-column: 1 / -1; border: 1px solid #d7e4eb; border-radius: 10px; padding: 16px; background: #fbfdff; }.container-entry-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }.container-entry-head h3 { margin: 0 0 4px; font-size: 15px; }.container-entry-head small { color: var(--muted); }.container-add-row { display: flex; gap: 8px; margin-bottom: 12px; }.container-add-row input { min-width: 0; flex: 1; }.compact-table { margin: 0; max-height: 240px; overflow: auto; }.compact-table table { margin: 0; font-size: 13px; }.compact-table th, .compact-table td { padding: 8px 10px; }.compact-table .empty td { color: var(--muted); text-align: center; padding: 16px; }
.container-direct-input { --container-control-height: var(--control-height); display: grid; grid-template-columns: minmax(0,1fr) 42px minmax(0,1.3fr) 54px; width: 100%; max-width: 100%; box-sizing: border-box; align-items: end; gap: 8px; padding: 12px; overflow: hidden; border: 1px solid var(--input-group-border); border-radius: var(--input-group-radius); background: var(--input-group-background); }.container-direct-input input { width: 100%; height: var(--container-control-height); min-width: 0 !important; max-width: 100%; box-sizing: border-box; border-color: var(--control-border); border-radius: var(--control-radius); }.container-direct-input .primary { grid-column: 4; height: var(--container-control-height); min-width: 54px; min-height: 0; padding: 0 8px; white-space: nowrap; }.container-input-alternative { grid-column: 2; align-self: end; display: grid; place-items: center; height: var(--container-control-height); color: #587283; font-size: 11px; font-weight: 800; text-align: center; }.container-code-pair { grid-column: 1; display: grid; grid-template-columns: minmax(0,1fr) 16px minmax(0,1fr); min-width: 0; align-items: end; gap: 4px; }.container-code-delimiter { align-self: end; display: grid; place-items: center; height: var(--container-control-height); padding: 0; color: #547081; font-size: 18px; font-weight: 800; text-align: center; }.container-input-field { display: grid; gap: 5px; min-width: 0; }.container-input-field > span { color: #587283; font-size: 11px; font-weight: 800; }.container-direct-input > .container-input-field { grid-column: 3; min-width: 0; margin-left: 4px; }.container-direct-input > .container-input-field input { min-width: 0; }
.operation-flow button[data-route="delivery-entry-select"] { min-height: 42px; padding: 0 18px; border: 0; border-radius: 6px; color: #fff; background: var(--blue); box-shadow: 0 4px 9px rgba(0,114,188,.25); font-size: 14px; font-weight: 800; }
@media (max-width: 760px) { .container-direct-input { grid-template-columns: 1fr; }.container-direct-input .primary { grid-column: 1; width: 100%; }.container-input-alternative { grid-column: 1; height: 24px; }.container-code-pair { grid-column: 1; }.container-direct-input > .container-input-field { grid-column: 1; margin-left: 0; }.container-direct-input > .container-input-field input { min-width: 0; } }
.mobile-container-candidates { grid-column: 1 / -1; display: grid; gap: 8px; padding: 12px; border: 1px solid #d7e4eb; border-radius: 8px; background: #f7fbfd; }.mobile-container-candidates strong { font-size: 13px; color: var(--blue); }.mobile-container-candidates label { display: block; font-size: 14px; }

/* Form design standard: issued delivery slip controls are the canonical style. */
.mobile-form-grid input,
.mobile-form-grid textarea {
  width: 100%;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  color: #263f4d;
  font: inherit;
}
.mobile-form-grid input {
  height: var(--control-height);
  min-height: var(--control-height);
  padding: 0 var(--control-padding-x);
}
.mobile-form-grid textarea {
  min-height: 76px;
  padding: 9px var(--control-padding-x);
}
@keyframes fade { 0%,75% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(6px); } }

@media (max-width: 1450px) {
  .detail-summary { grid-template-columns: 1.25fr 1fr 1fr; }
  .detail-summary .summary-primary { grid-column: span 2; }
  .detail-summary > :nth-child(4) { border-left: 0; }
  .forecast-summary { min-height: 104px; margin: 0; }
  .forecast-summary.parent-managed { min-height:118px; }
}

@media (max-width: 1450px) {
  .property-list-filter { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
  .property-list-filter .latest-state-field { grid-column: 1 / -1; }
  .property-list-filter .latest-state-options { flex-wrap: wrap; overflow-x: visible; }
  .container-filter-card { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
}

@media (max-width: 1050px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .filter-card { grid-template-columns: 1fr 1fr; }
  .property-list-filter .latest-state-field { grid-column: 1 / -1; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .settings-hub, .integration-grid { grid-template-columns: 1fr; }
  .detail-summary { grid-template-columns: 1fr 1fr; }
  .detail-summary .summary-primary { grid-column: span 2; }
  .detail-summary > :nth-child(4) { border-left: 1px solid var(--border); }
  .registration-grid { grid-template-columns: 1fr; }
  .form-grid.four { grid-template-columns: repeat(2, 1fr); }
  .form-grid.five { grid-template-columns: repeat(3, 1fr); }
  .business-pair { grid-template-columns: 1fr; gap: 0; }
  .room-preview { grid-template-columns: 1fr; }
  .supply-overview { grid-template-columns: repeat(2,1fr); }
  .daily-layout { grid-template-columns: 1fr; }
  .forecast-layout { grid-template-columns: 1fr; }
  .forecast-hero { grid-template-columns: 1fr 1fr; }
  .source-priority { grid-template-columns: repeat(3,1fr); }
  .compliance-kpis, .document-summary, .notice-status-grid, .integration-summary { grid-template-columns: repeat(2,1fr); }
  .compliance-kpis > div:nth-child(2), .document-summary > div:nth-child(2), .notice-status-grid > div:nth-child(2), .integration-summary > div:nth-child(2) { border-right: 0; }
  .summary-item:nth-child(3) { border-left: 0; }
}
@media (max-width: 760px) {
  .reading-entry-customer-context { grid-template-columns: 1fr; }
  .reading-entry-customer-context > div { border-right: 0; border-bottom: 1px solid #d8e8ef; }
  .reading-entry-customer-context > div:last-child { border-bottom: 0; }
  .app-shell { display: block; }
  .sidebar { display: none; }
  .main { width: 100%; }
  .topbar { padding: 0 15px; }
  .operator > div:last-child { display: none; }
  .content { padding: 18px 14px; }
  .stats-grid, .filter-card, .equipment-grid, .info-grid, .form-grid, .form-grid.four, .form-grid.five, .choice-grid, .split-detail, .container-search-controls { grid-template-columns: 1fr; }
  .property-list-filter > .field:first-child,
  .property-list-filter .latest-state-field { grid-column: 1; }
  .route-real-map, .route-map-preview { height: 340px; }
  .register-step { grid-template-columns: 1fr 1fr; }
  .occupancy-summary, .operation-flow { align-items: stretch; flex-direction: column; }
  .parent-managed { grid-template-columns: 1fr; }
  .supply-overview, .cylinder-sides { grid-template-columns: 1fr; }
  .reading-kpis, .schedule-summary, .progress-wheel-grid { grid-template-columns: repeat(2,1fr); }
  .delivery-kpis, .parameter-grid { grid-template-columns: repeat(2,1fr); }
  .safety-kpis { grid-template-columns: repeat(2,1fr); }
  .compliance-kpis, .document-summary, .notice-status-grid, .compliance-flow, .integration-summary { grid-template-columns: 1fr; }
  .compliance-kpis > div, .document-summary > div, .notice-status-grid > div, .integration-summary > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .compliance-kpis > div:last-child, .document-summary > div:last-child, .notice-status-grid > div:last-child, .integration-summary > div:last-child { border-bottom: 0; }
  .compliance-flow > i { justify-self: center; transform: rotate(90deg); }
  .compliance-banner, .compliance-note, .map-toolbar, .map-filter-actions { align-items: flex-start; flex-direction: column; }
  .reading-guidance, .reading-guidance > div, .delivery-guidance, .delivery-guidance > div, .safety-guidance, .safety-guidance > div { align-items: flex-start; flex-direction: column; }
  .delivery-mode-info, .delivery-no-forecast, .delivery-settings-hero { align-items: flex-start; grid-template-columns: 1fr; flex-direction: column; }
  .delivery-mode-info > div, .delivery-settings-hero > div:last-child { padding: 0; border: 0; }
  .basic-supply-card { grid-template-columns: 1fr; }.basic-supply-actions { align-items: flex-start; }
  .property-management-contact { align-items: flex-start; flex-direction: column; }
  .provider-settings, .provider-setting-grid { grid-template-columns: 1fr; }
  .delivery-provider-summary { align-items: flex-start; flex-direction: column; gap: 4px; }.delivery-provider-summary small { margin-left: 0; }
  .modal-backdrop { padding: 12px; }.modal-card { max-height: calc(100vh - 24px); padding: 18px; }.modal-note { flex-direction: column; gap: 5px; }.container-detail-summary { grid-template-columns: repeat(2,1fr); }.container-identity-panel { margin: 14px 0 0; padding: 13px; }.container-identity-fields,.container-identity-meta { grid-template-columns: 1fr; }.container-identity-panel .section-label { display: grid; gap: 4px; }
  .operation-flow { align-items: flex-start; flex-wrap: wrap; margin: 0 16px 16px; }.operation-flow button { margin-left: 0; }
  .issue-document, .portal-grid, .settings-hub, .master-links { grid-template-columns: 1fr; }.workflow-steps { grid-template-columns: 1fr; }.workflow-steps > div { min-height: 62px; border-right: 0; border-bottom: 1px solid var(--border); }.workflow-steps > div:last-child { border-bottom: 0; }.issue-actions { flex-wrap: wrap; justify-content: flex-start; }.portal-topbar { gap: 14px; padding: 0 16px; }.portal-topbar nav { display: none; }.portal-user { margin-left: auto; }.portal-main { padding: 24px 16px; }.portal-heading, .portal-bill, .portal-check { align-items: flex-start; flex-direction: column; }.portal-status { margin-left: 0; padding-left: 0; border-left: 0; }.portal-notice { grid-template-columns: 1fr; }
  .issued-slip-list button { grid-template-columns: 1fr; }
  .reading-entry-summary, .delivery-entry-summary { grid-template-columns: 1fr; }.reading-entry-summary > div, .delivery-entry-summary > div { border-right: 0; border-bottom: 1px solid var(--border); }.reading-entry-summary > div:last-child, .delivery-entry-summary > div:last-child { border-bottom: 0; }
  .reading-forecast-preview { grid-template-columns:1fr; }
  .reading-forecast-preview > b { justify-self:center; transform:rotate(90deg); }
  .compliance-management-card .card-head > div:first-child { align-items: flex-start; flex-direction: column; gap: 5px; }
  .safety-equipment-grid { grid-template-columns: 1fr; }
  .scope-note { grid-template-columns: 1fr; }
  .formula-flow { align-items: stretch; flex-direction: column; }
  .source-priority, .forecast-visual, .cylinder-forecast { grid-template-columns: 1fr; }
  .side-system { grid-template-columns: 1fr; }
  .switch-arrow { transform: rotate(90deg); }
  .bulk-forecast { grid-template-columns: 1fr; }
  .bulk-vessel { min-width: 0; width: 100%; }
  .route-strategy-bar { align-items: flex-start; flex-direction: column; }.route-strategy-bar > div { flex: auto; }.route-capacity-grid { grid-template-columns: repeat(2,1fr); }.route-capacity-grid > div:nth-child(2) { border-right: 0; }.route-capacity-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }.route-api-note { grid-template-columns: 1fr; gap: 4px; }
  .route-trip-head, .route-editor-note { align-items: flex-start; flex-direction: column; gap: 8px; padding: 12px; }.route-trip-head > strong { margin: -12px -12px 0; }.route-trip-head > div, .route-editor-note button { margin-left: 0; }
  .route-assignment { align-items: stretch; flex-direction: column; }.route-assignment label { grid-template-columns: 88px 1fr; }.route-assignment select, .route-assignment input { min-width: 0; width: 100%; }
  .route-dispatch-grid { grid-template-columns:1fr; }.route-dispatch-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }.route-master-head { align-items:stretch; flex-direction:column; }.route-master-head button { align-self:flex-start; }
  .route-toolbox { flex-direction: column; }.route-toolbox-group { border-right: 0; border-bottom: 1px solid #dbe4e8; }.route-toolbox-group:last-child { border-bottom: 0; }
  .map-canvas { height: 390px; }.map-toolbar span, .map-toolbar button { margin-left: 0; }.map-pin span { display: none; }.map-note { left: 12px; right: 12px; max-width: none; }
  .detail-summary { grid-template-columns: 1fr; }
  .detail-summary .summary-primary { grid-column: auto; }
  .summary-item { border-left: 0; border-top: 1px solid var(--border); padding: 12px 0 0; }
}

/* 配送予測：計算時点の条件と計算版を固定して確認 */
.forecast-audit { margin: 24px 0; }
.forecast-audit .section-title { margin-bottom: 18px; }
.forecast-audit-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:20px; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.forecast-audit-grid > div { min-width:0; padding:16px; border-right:1px solid var(--border); background:#f8fbfd; }
.forecast-audit-grid > div:last-child { border-right:0; }
.forecast-audit-grid span,.forecast-audit-grid small { display:block; color:var(--muted); }
.forecast-audit-grid strong { display:block; margin:6px 0; color:var(--ink); overflow-wrap:anywhere; }
.forecast-audit .table-wrap { margin:0; }
.forecast-audit .subtext { display:block; margin-top:4px; color:var(--muted); font-size:12px; }
.forecast-recalculation-compare { display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:center; margin:24px 0; }
.forecast-recalculation-compare article { display:grid; gap:7px; padding:22px; border:1px solid var(--border); border-radius:12px; background:#f8fbfd; }
.forecast-recalculation-compare article.proposed { border-color:#8ecaea; background:#eef8fd; }
.forecast-recalculation-compare span,.forecast-recalculation-compare small { color:var(--muted); }
.forecast-recalculation-compare strong { color:var(--ink); font-size:28px; }
.forecast-recalculation-compare article.proposed strong { color:var(--blue); }
.forecast-recalculation-compare > b { color:#6c91a8; font-size:24px; }
.forecast-preview-grid { margin-top:0; }
.ai-forecast-review { margin:20px 0; padding:20px; border:1px solid #b9ddf2; border-radius:12px; background:#f4faff; }
.ai-forecast-review.needs-review { border-color:#e5bf87; background:#fff9ef; }
.ai-forecast-review .section-title { margin:0 0 16px; }
.ai-forecast-review p { margin:14px 0; color:var(--muted); }
.ai-review-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--border); border-radius:10px; overflow:hidden; background:#fff; }
.ai-review-values > div { padding:16px; border-right:1px solid var(--border); }
.ai-review-values > div:last-child { border-right:0; }
.ai-review-values span,.ai-review-values small { display:block; color:var(--muted); }
.ai-review-values strong { display:block; margin:6px 0; color:var(--ink); font-size:20px; }
.readiness-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:18px; padding:18px 20px; border:1px solid #b9ddf2; border-radius:12px; background:#f3faff; }
.readiness-summary > div { display:grid; gap:4px; }
.readiness-summary strong { color:#17364c; font-size:18px; }
.readiness-summary span { color:#63798b; }
.readiness-summary > b { min-width:72px; color:#147aaf; font-size:23px; text-align:right; }
.readiness-summary.missing { border-color:#e2c791; background:#fff9ef; }
.readiness-summary.missing > b { color:#a86b1e; }
.forecast-readiness-list { display:grid; gap:10px; }
.forecast-readiness-item { display:grid; grid-template-columns:auto minmax(0,1fr) minmax(110px,auto) auto; align-items:center; gap:14px; padding:14px 16px; border:1px solid #d9e5ec; border-radius:10px; background:#fff; }
.forecast-readiness-item > div { display:grid; gap:3px; }
.forecast-readiness-item strong { color:#20384b; }
.forecast-readiness-item small { color:#6d8191; }
.forecast-readiness-item > b { color:#39566a; font-size:14px; text-align:right; }
.readiness-status { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fff; background:#36966f; font-weight:800; }
.forecast-readiness-item.missing { border-color:#e3c68d; background:#fffaf2; }
.forecast-readiness-item.missing .readiness-status { background:#c9822f; }
.forecast-readiness-item.missing > b { color:#a7651e; }
.readiness-mode-editor { display:grid; grid-template-columns:minmax(240px,1.25fr) minmax(170px,.7fr) minmax(170px,.7fr) auto; align-items:end; gap:14px; margin-top:18px; padding:18px; border:1px solid #b9ddf2; border-radius:12px; background:#f3faff; }
.readiness-mode-editor > div { display:grid; gap:5px; align-self:center; }
.readiness-mode-editor > div strong { color:#17364c; }
.readiness-mode-editor > div small { color:#667c8d; }
@media (max-width:900px) {
  .forecast-readiness-item { grid-template-columns:auto minmax(0,1fr); }
  .forecast-readiness-item > b { text-align:left; }
  .forecast-readiness-item button { justify-self:start; }
  .readiness-mode-editor { grid-template-columns:1fr 1fr; }
  .readiness-mode-editor > div { grid-column:1 / -1; }
}
@media (max-width:600px) {
  .readiness-mode-editor { grid-template-columns:1fr; }
  .readiness-mode-editor > div { grid-column:auto; }
}
@media (max-width:1100px) {
  .forecast-audit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .forecast-audit-grid > div { border-bottom:1px solid var(--border); }
}
@media (max-width:760px) {
  .forecast-recalculation-compare { grid-template-columns:1fr; }
  .forecast-recalculation-compare > b { justify-self:center; transform:rotate(90deg); }
  .ai-review-values { grid-template-columns:1fr; }
  .ai-review-values > div { border-right:0; border-bottom:1px solid var(--border); }
}
.business-assignee-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 0 0 20px;
  padding: 18px;
  border: 1px solid #b9ddf2;
  border-radius: 12px;
  background: #f3faff;
}
.business-assignee-panel > div { display: grid; gap: 5px; }
.business-assignee-panel span,
.business-assignee-panel small { color: #64788a; }
.business-assignee-panel strong { color: #1d3346; font-size: 16px; }
@media (max-width: 900px) {
  .reading-confirm-summary,.reading-confirm-grid { grid-template-columns:1fr 1fr; }
  .business-assignee-panel { grid-template-columns: 1fr; }
  .business-assignee-panel button { justify-self: start; }
}

/* 容器・バルク設備：移動容器と据付設備を別台帳で管理 */
.asset-ledger-tabs { display:flex; gap:8px; margin:0 0 18px; padding:5px; border:1px solid #d4e1e9; border-radius:12px; background:#edf3f7; }
.asset-ledger-tabs button { flex:1; min-height:44px; border:0; border-radius:8px; color:#526a7c; background:transparent; font-weight:800; cursor:pointer; transition:background .18s ease,color .18s ease,box-shadow .18s ease; }
.asset-ledger-tabs button:hover { color:#173f59; background:#fff; }
.asset-ledger-tabs button.active { color:#fff; background:#197cb9; box-shadow:0 4px 12px rgba(0,114,188,.16); }
.asset-ledger-note { display:flex; align-items:center; gap:18px; margin:0 0 20px; padding:16px 20px; border:1px solid #b9ddf2; border-radius:12px; background:#f3faff; }
.asset-ledger-note strong { flex:0 0 auto; color:#126d9f; }
.asset-ledger-note span { color:#607789; }
.selected-row { background:#f1f9fd; }
.bulk-ledger-detail { --bulk-ledger-inset:20px; margin-top:22px; }
.bulk-ledger-detail .card-head h2 { margin:7px 0 4px; }
.bulk-ledger-detail > .bulk-identity-grid,
.bulk-ledger-detail > .section-title,
.bulk-ledger-detail > .bulk-inspection-grid,
.bulk-ledger-detail > .bulk-ledger-columns,
.bulk-ledger-detail > .bulk-history-strip { margin-left:var(--bulk-ledger-inset); margin-right:var(--bulk-ledger-inset); }
.bulk-ledger-detail > .bulk-identity-grid { margin-top:20px; }
.bulk-ledger-detail > .bulk-history-strip { margin-bottom:20px; }
.bulk-identity-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:0 0 24px; border:1px solid #d6e3eb; border-radius:12px; overflow:hidden; background:#f8fbfd; }
.bulk-identity-grid > div { display:grid; gap:5px; min-width:0; padding:16px 18px; border-right:1px solid #d6e3eb; border-bottom:1px solid #d6e3eb; }
.bulk-identity-grid > div:nth-child(4n) { border-right:0; }
.bulk-identity-grid > div:nth-last-child(-n+4) { border-bottom:0; }
.bulk-identity-grid span,.bulk-identity-grid small { color:#697e8f; }
.bulk-identity-grid strong { color:#19384d; overflow-wrap:anywhere; }
.bulk-inspection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 26px; }
.bulk-inspection-grid article { display:grid; gap:6px; padding:18px; border:1px solid #d7e4eb; border-radius:10px; background:#f8fbfd; }
.bulk-inspection-grid span,.bulk-inspection-grid small { color:#667c8d; }
.bulk-inspection-grid strong { color:#173c54; font-size:22px; }
.bulk-ledger-columns { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:0 0 22px; }
.bulk-ledger-columns > section { min-width:0; padding:20px; border:1px solid #d8e4eb; border-radius:12px; background:#fff; }
.bulk-ledger-columns .section-title { margin-top:0; }
.bulk-ledger-columns table { width:100%; }
.bulk-history-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #d5e3eb; border-radius:12px; overflow:hidden; background:#f3f9fc; }
.bulk-history-strip > div { display:grid; gap:5px; min-width:0; padding:18px 20px; border-right:1px solid #d5e3eb; }
.bulk-history-strip > div:last-child { border-right:0; }
.bulk-history-strip span,.bulk-history-strip small { color:#667d8e; }
.bulk-history-strip strong { color:#173b52; }
.property-bulk-ledger-link { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 20px; padding:18px 20px; border:1px solid #b9ddf2; border-radius:12px; background:#f3faff; }
.property-bulk-ledger-link > div { display:grid; gap:5px; }
.property-bulk-ledger-link .badge { justify-self:start; }
.property-bulk-ledger-link strong { color:#183d55; font-size:18px; }
.property-bulk-ledger-link small { color:#667d8e; }
@media (max-width:1100px) {
  .bulk-identity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bulk-identity-grid > div:nth-child(2n) { border-right:0; }
  .bulk-identity-grid > div:nth-last-child(-n+4) { border-bottom:1px solid #d6e3eb; }
  .bulk-identity-grid > div:nth-last-child(-n+2) { border-bottom:0; }
  .bulk-ledger-columns { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .bulk-ledger-detail { --bulk-ledger-inset:14px; }
  .asset-ledger-note,.property-bulk-ledger-link { align-items:flex-start; flex-direction:column; }
  .bulk-identity-grid,.bulk-inspection-grid,.bulk-history-strip { grid-template-columns:1fr; }
  .bulk-identity-grid > div,.bulk-history-strip > div { border-right:0; border-bottom:1px solid #d6e3eb; }
  .bulk-identity-grid > div:nth-last-child(-n+2) { border-bottom:1px solid #d6e3eb; }
  .bulk-identity-grid > div:last-child,.bulk-history-strip > div:last-child { border-bottom:0; }
}

/* 集合親：集合子指針と配送間使用量 */
.collective-reading-tabs { margin-bottom: 20px; }
.collective-reading-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:0 0 18px; padding:22px 24px; border:1px solid #b9ddf2; border-radius:12px; background:#f3faff; }
.collective-reading-hero h2 { margin:8px 0 5px; color:#17364c; }
.collective-reading-hero p { margin:0; color:#617589; }
.collective-reading-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:18px; border:1px solid var(--border); border-radius:12px; background:#fff; overflow:hidden; }
.collective-reading-kpis > div { display:grid; gap:5px; min-width:0; padding:18px 20px; border-right:1px solid var(--border); }
.collective-reading-kpis > div:last-child { border-right:0; }
.collective-reading-kpis span,.collective-reading-kpis small { color:#677b8d; }
.collective-reading-kpis strong { color:#17364c; font-size:24px; }
.collective-quality-note { display:flex; align-items:center; gap:20px; margin-bottom:20px; padding:14px 18px; border:1px solid #d8e5ed; border-radius:10px; background:#f8fbfd; }
.collective-quality-note > div { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.collective-quality-note p { margin:0 0 0 auto; color:#667b8d; }
.quality-dot { width:10px; height:10px; border-radius:50%; background:#98a9b5; }
.quality-dot.actual { background:#37a775; }.quality-dot.estimated { background:#579ed2; }.quality-dot.closed { background:#aab6bf; }.quality-dot.missing { background:#d59745; }
.collective-child-table td:first-child { display:grid; gap:4px; }.collective-child-table td:first-child small,.collective-child-table tfoot small,.muted { color:#748798; }
.collective-child-table tr.clickable-row { cursor:pointer; }.collective-child-table tr.clickable-row:hover { background:#f2f9fd; }
.collective-child-table tfoot td { padding-top:14px; padding-bottom:14px; background:#f5f9fb; }
.collective-history-filter { grid-template-columns:1.1fr 1fr 1fr 1fr auto auto; }
.collective-calculation { padding:22px; border:1px solid #d8e4eb; border-radius:12px; background:#fff; }
.collective-calculation .section-title { margin-top:0; }
.calculation-flow { display:grid; grid-template-columns:repeat(7,auto); align-items:stretch; gap:12px; margin:18px 0; }
.calculation-flow > div { display:grid; gap:5px; min-width:0; padding:18px; border:1px solid #d8e5ed; border-radius:10px; background:#f8fbfd; }
.calculation-flow > div span,.calculation-flow > div small { color:#6b7f90; }.calculation-flow > div strong { color:#17364c; font-size:20px; }.calculation-flow > b { align-self:center; color:#6e91a9; }
.collective-basis { display:grid; grid-template-columns:repeat(3,1fr); margin:18px 0; border:1px solid #d8e5ed; border-radius:10px; overflow:hidden; }
.collective-basis article { display:grid; gap:5px; padding:18px; border-right:1px solid #d8e5ed; }.collective-basis article:last-child { border-right:0; }.collective-basis span,.collective-basis small { color:#6b7f90; }.collective-basis strong { font-size:20px; }
@media (max-width: 1100px) {
  .collective-reading-kpis { grid-template-columns:repeat(2,1fr); }.collective-reading-kpis > div:nth-child(2) { border-right:0; }.collective-reading-kpis > div:nth-child(-n+2) { border-bottom:1px solid var(--border); }
  .collective-quality-note { align-items:flex-start; flex-wrap:wrap; }.collective-quality-note p { width:100%; margin-left:0; }
  .collective-history-filter { grid-template-columns:1fr 1fr; }
  .calculation-flow { grid-template-columns:1fr; }.calculation-flow > b { justify-self:center; transform:rotate(90deg); }
}
@media (max-width: 760px) {
  .collective-reading-hero { align-items:flex-start; flex-direction:column; }
  .collective-reading-kpis,.collective-basis { grid-template-columns:1fr; }.collective-reading-kpis > div,.collective-basis article { border-right:0; border-bottom:1px solid var(--border); }.collective-reading-kpis > div:last-child,.collective-basis article:last-child { border-bottom:0; }
}
.delivery-current-state {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 20px 0 28px;
  border: 1px solid #d5e1e8;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.delivery-current-state > div { padding: 20px 22px; border-right: 1px solid #e3ebf0; }
.delivery-current-state > div:last-child { border-right: 0; }
.delivery-current-state span, .delivery-current-state small { display: block; color: #657b89; }
.delivery-current-state strong { display: block; margin: 7px 0 5px; color: #17384d; font-size: 1.18rem; }
.delivery-current-state .next { background: #eef8fc; }
.delivery-current-state .next strong { color: var(--blue); }
.cancelled-row { color: #7f909b; background: #f7f9fa; }
.cancelled-row td { text-decoration-color: #aebbc3; }
.cancelled-row strong { color: inherit; }
.calculation-status-line { display: flex; align-items: center; gap: 14px; margin: 0 0 20px; color: #657b89; font-size: .88rem; }
.calculation-formula { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 22px 0; padding: 22px; border: 1px solid #cce3ef; border-radius: 12px; background: #f2f9fc; }
.calculation-formula strong { color: #17384d; }
.calculation-formula b { color: var(--blue); font-size: 1.3rem; }
.delivery-current-state + .secondary-title { margin-top: 0; }

/* 配送実績：確定前の統合チェック */
.delivery-confirm-modal { padding-bottom: 28px; }
.delivery-confirm-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:20px 0; border:1px solid #d7e3ea; border-radius:10px; background:#f8fbfd; overflow:hidden; }
.delivery-confirm-summary > div { display:grid; gap:5px; min-width:0; padding:16px 18px; border-right:1px solid #e1e9ee; border-bottom:1px solid #e1e9ee; }
.delivery-confirm-summary > div:nth-child(3n) { border-right:0; }
.delivery-confirm-summary > div:nth-last-child(-n+3) { border-bottom:0; }
.delivery-confirm-summary span { color:#6c7f8d; font-size:.78rem; }
.delivery-confirm-summary strong { color:#17384d; }
.delivery-validation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.delivery-validation-card { min-width:0; padding:17px 18px 19px; border:1px solid #d9e4ea; border-radius:10px; background:#fff; }
.delivery-validation-card h3 { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 12px; color:#29485c; font-size:.95rem; }
.delivery-validation-card h3 span { display:inline-grid; place-items:center; min-width:28px; height:24px; padding:0 7px; border-radius:12px; background:#edf3f6; font-size:.75rem; }
.delivery-validation-card.error { border-color:#edc5c5; background:#fffafa; }
.delivery-validation-card.error h3 { color:#a33c3c; }
.delivery-validation-card.error h3 span { color:#9b3434; background:#f9e5e5; }
.delivery-validation-card.warning { border-color:#ead5b6; background:#fffcf7; }
.delivery-validation-card.warning h3 { color:#95611e; }
.delivery-validation-card.warning h3 span { color:#865719; background:#f8ead4; }
.delivery-validation-card.notice { border-color:#cbe4d9; background:#f8fcfa; }
.delivery-validation-card.notice h3 { color:#277254; }
.delivery-validation-card.notice h3 span { color:#216949; background:#e1f2e9; }
.delivery-check-list { display:grid; gap:9px; margin:0; padding-left:18px; color:#4d6372; font-size:.82rem; line-height:1.55; }
.delivery-check-list.error { color:#844343; }.delivery-check-list.warning { color:#765a32; }.delivery-check-list.notice { color:#3d6757; }
.delivery-check-empty { margin:0; color:#82919b; font-size:.82rem; }
.delivery-reflection-preview { margin-top:16px; padding:18px; border:1px solid #b9dced; border-radius:10px; background:#f2f9fc; }
.delivery-reflection-preview h3 { margin:0 0 13px; color:#194963; font-size:.95rem; }
.delivery-reflection-preview > div { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.delivery-reflection-preview article { display:flex; gap:9px; min-width:0; padding:12px; border:1px solid #d3e6ef; border-radius:8px; background:#fff; }
.delivery-reflection-preview article > span { display:grid; place-items:center; flex:0 0 21px; width:21px; height:21px; border-radius:50%; color:#fff; background:#278c6a; font-size:.72rem; }
.delivery-reflection-preview article div { display:grid; gap:4px; min-width:0; }
.delivery-reflection-preview article strong { color:#27465a; font-size:.78rem; }
.delivery-reflection-preview article small { color:#6f8290; font-size:.7rem; line-height:1.45; }
.delivery-warning-consent { display:flex; align-items:flex-start; gap:11px; margin-top:16px; padding:14px 16px; border:1px solid #e4c997; border-radius:9px; background:#fff9ef; cursor:pointer; }
.delivery-warning-consent input { margin-top:4px; accent-color:var(--blue); }
.delivery-warning-consent span { display:grid; gap:4px; }.delivery-warning-consent strong { color:#6f4d1c; }.delivery-warning-consent small { color:#806f56; }
.reading-confirm-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:18px; overflow:hidden; border:1px solid var(--border); border-radius:8px; background:var(--border); }
.reading-confirm-summary > div { display:grid; gap:5px; min-width:0; padding:14px 15px; background:#fff; }
.reading-confirm-summary span,.reading-confirm-summary small { color:var(--muted); font-size:11px; }.reading-confirm-summary strong { color:var(--ink); font-size:15px; }
.reading-confirm-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.reading-confirm-card { padding:14px 16px; border:1px solid var(--border); border-radius:8px; background:#f8fafb; }
.reading-confirm-card h3 { display:flex; justify-content:space-between; margin:0 0 9px; font-size:14px; }.reading-confirm-card p,.reading-confirm-card ul { margin:0; color:var(--muted); font-size:12px; line-height:1.65; }.reading-confirm-card ul { padding-left:18px; }
.reading-confirm-card.error { border-color:#ebc1c1; background:#fff8f8; }.reading-confirm-card.error h3 { color:#a33b3b; }
.reading-confirm-card.warning { border-color:#ead2a7; background:#fffbf3; }.reading-confirm-card.warning h3 { color:#8a5b1d; }
.reading-reflection-preview { margin-top:14px; padding:14px 16px; border:1px solid #b8d8ea; border-radius:8px; background:#f4fafe; }
.reading-reflection-preview h3 { margin:0 0 10px; font-size:14px; }.reading-reflection-preview > div { display:flex; flex-wrap:wrap; gap:8px; }.reading-reflection-preview article { display:flex; align-items:center; gap:7px; padding:8px 10px; border-radius:6px; color:#22536f; background:#fff; font-size:12px; }.reading-reflection-preview article span { color:var(--green); font-weight:900; }
.reading-forecast-impact-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin:0 0 18px; padding:22px 24px; border:1px solid #b9dceb; border-radius:10px; background:#f3f9fc; }
.reading-forecast-impact-hero h2 { margin:10px 0 6px; color:#17384d; font-size:1.2rem; }
.reading-forecast-impact-hero p { max-width:760px; margin:0; color:#667d8b; font-size:.84rem; line-height:1.7; }
.reading-forecast-impact-hero .primary { flex:0 0 auto; }
.reading-forecast-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0 0 18px; border:1px solid #d4e2e9; border-radius:10px; background:#fff; overflow:hidden; }
.reading-forecast-kpis > div { display:grid; align-content:start; gap:5px; min-width:0; padding:18px 20px 20px; border-right:1px solid #e1e9ed; }
.reading-forecast-kpis > div:last-child { border-right:0; }
.reading-forecast-kpis span,.reading-forecast-kpis small { color:#6a7f8c; font-size:.73rem; }
.reading-forecast-kpis strong { overflow:hidden; color:#1c4056; font-size:1.08rem; text-overflow:ellipsis; white-space:nowrap; }
.reading-forecast-kpis .next { background:#eef8fc; }
.reading-forecast-kpis .next strong { color:var(--blue); }
.reading-calculation-flow { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:stretch; gap:10px; margin:0 0 24px; padding:18px; border:1px solid #c4dfeb; border-radius:10px; background:#f7fbfd; }
.reading-calculation-flow > div { display:grid; align-content:start; gap:5px; min-width:0; padding:14px 15px 16px; border:1px solid #dce8ed; border-radius:8px; background:#fff; }
.reading-calculation-flow span,.reading-calculation-flow small { color:#718591; font-size:.7rem; line-height:1.45; }
.reading-calculation-flow strong { color:#21465b; font-size:.94rem; }
.reading-calculation-flow > b { align-self:center; color:#1681bc; font-size:1.15rem; }
.reading-forecast-empty { display:grid; justify-items:start; gap:8px; margin:0 0 24px; padding:24px; border:1px solid #b9dceb; border-radius:10px; background:#f4fafd; }
.reading-forecast-empty strong { color:#21465b; }
.reading-forecast-empty p { margin:0 0 8px; color:#6b7f8b; font-size:.82rem; line-height:1.65; }
.delivery-state-transition { margin:0 0 16px; padding:18px; border:1px solid #b9dced; border-radius:10px; background:#f3f9fc; }
.delivery-state-transition-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.delivery-state-transition-head h3 { margin:0 0 4px; color:#194963; font-size:1rem; }
.delivery-state-transition-head p { margin:0; color:#718591; font-size:.78rem; }
.delivery-state-transition-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,.58fr) minmax(0,1fr); align-items:stretch; gap:12px; }
.delivery-container-state,.delivery-container-movement { min-width:0; border:1px solid #d3e3eb; border-radius:9px; background:#fff; overflow:hidden; }
.delivery-container-state header,.delivery-container-movement header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 13px; border-bottom:1px solid #e1e9ed; }
.delivery-container-state header span,.delivery-container-movement header span { color:#69808d; font-size:.72rem; font-weight:700; }
.delivery-container-state header strong,.delivery-container-movement header strong { color:#20465d; font-size:.78rem; }
.delivery-container-state>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.delivery-container-state section { display:grid; align-content:start; gap:6px; min-width:0; min-height:108px; padding:11px; border-right:1px solid #e4ebef; }
.delivery-container-state section:nth-child(2) { border-right:0; }
.delivery-container-state section.is-use-side { background:#f1faf6; box-shadow:inset 0 3px #268b68; }
.delivery-container-state section.is-unset { grid-column:1/-1; min-height:auto; border-top:1px solid #e7d7b8; border-right:0; background:#fff9ef; }
.delivery-container-state section>b { color:#335a70; font-size:.75rem; }
.delivery-state-container { display:grid; gap:2px; padding:6px 7px; border-radius:5px; background:#f4f7f9; }
.delivery-state-container strong { overflow:hidden; color:#284a5e; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.delivery-state-container small,.delivery-state-empty { color:#788b96; font-size:.64rem; }
.delivery-container-movement>div { display:grid; align-content:center; gap:6px; height:calc(100% - 44px); padding:11px; text-align:center; }
.delivery-container-movement section { display:grid; gap:4px; padding:8px; border-radius:6px; background:#f7fafb; }
.delivery-container-movement section b { color:#31566c; font-size:.74rem; }.delivery-container-movement section small { color:#71858f; font-size:.64rem; line-height:1.45; }
.delivery-container-movement i { color:var(--blue); font-size:1rem; font-style:normal; }
.mobile-container-added-controls { display:flex; align-items:center; gap:5px; }
.mobile-container-added-controls select { min-height:30px; padding:4px 22px 4px 7px; border:1px solid #b9ccd6; border-radius:5px; color:#285168; background:#fff; font-size:9px; }

@media (max-width: 1180px) {
  .delivery-current-state { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-current-state > div { border-bottom: 1px solid #e3ebf0; }
  .delivery-current-state .next { grid-column: 1 / -1; }
  .delivery-reflection-preview > div { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .delivery-state-transition-grid { grid-template-columns:1fr; }
  .delivery-container-movement>div { height:auto; }
  .reading-forecast-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reading-forecast-kpis > div { border-bottom:1px solid #e1e9ed; }
  .reading-forecast-kpis .next { grid-column:1 / -1; border-bottom:0; }
  .reading-calculation-flow { grid-template-columns:1fr; }
  .reading-calculation-flow > b { justify-self:center; transform:rotate(90deg); }
}
@media (max-width: 760px) {
  .delivery-current-state { grid-template-columns: 1fr; }
  .delivery-current-state .next { grid-column: auto; }
  .calculation-formula { align-items: flex-start; flex-direction: column; }
  .delivery-confirm-summary,.delivery-validation-grid,.delivery-reflection-preview > div { grid-template-columns:1fr; }
  .delivery-confirm-summary > div { border-right:0; border-bottom:1px solid #e1e9ee; }
  .delivery-confirm-summary > div:nth-last-child(-n+3) { border-bottom:1px solid #e1e9ee; }
  .delivery-confirm-summary > div:last-child { border-bottom:0; }
  .reading-forecast-impact-hero { align-items:stretch; flex-direction:column; padding:18px; }
  .reading-forecast-impact-hero .primary { width:100%; }
  .reading-forecast-kpis { grid-template-columns:1fr; }
  .reading-forecast-kpis .next { grid-column:auto; }
  .reading-forecast-kpis > div { border-right:0; }
}

/* 配送モバイル：通信状態・オフライン同期 */
.mobile-status.queued { color:#17648f; background:#dff1f9; }
.mobile-stop-card.queued { border-color:#9ccfe3; background:#f3fbfe; }
.mobile-stop-card.queued > b { color:#176f99; }
.mobile-form-grid select { width:100%; min-height:36px; padding:8px; border:1px solid #bdcdd5; border-radius:5px; color:#263f4d; background:#fff; font:inherit; }
.mobile-connectivity { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px 12px; margin:12px 12px 0; padding:12px; border:1px solid #b9d6e4; border-radius:8px; background:#f7fbfd; box-shadow:0 2px 7px rgba(30,67,88,.05); }
.mobile-connectivity.offline { border-color:#e5c591; background:#fffaf1; }
.mobile-connectivity-state { display:flex; align-items:center; gap:9px; min-width:0; }
.mobile-connectivity-state i { flex:0 0 10px; width:10px; height:10px; border-radius:50%; background:#2b9a69; box-shadow:0 0 0 4px #dff3ea; }
.mobile-connectivity.offline .mobile-connectivity-state i { background:#c98328; box-shadow:0 0 0 4px #faecd5; }
.mobile-connectivity-state div { display:grid; gap:2px; min-width:0; }
.mobile-connectivity-state strong { color:#25495f; font-size:12px; }
.mobile-connectivity-state small { overflow:hidden; color:#6b7f8b; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.mobile-connectivity-counts { display:flex; grid-column:1 / -1; gap:6px; }
.mobile-connectivity-counts span { flex:1; padding:7px; border-radius:5px; color:#667b87; background:#fff; font-size:9px; text-align:center; }
.mobile-connectivity-counts b { display:block; margin-top:2px; color:#24485c; font-size:13px; }
.mobile-connectivity-actions { display:flex; align-items:center; gap:6px; }
.mobile-connectivity-actions button { min-height:32px; padding:6px 9px; border-radius:5px; font-size:10px; font-weight:800; }
.mobile-sync-latest { grid-column:1 / -1; color:#748691; font-size:9px; }
.mobile-sync-issues { display:grid; grid-column:1 / -1; gap:6px; }
.mobile-sync-issue { display:grid; grid-template-columns:auto 1fr; gap:2px 7px; width:100%; padding:8px; border:1px solid #e4c9a0; border-radius:5px; color:#5f4b32; background:#fff; text-align:left; }
.mobile-sync-issue span { grid-row:span 2; align-self:center; padding:4px 6px; border-radius:10px; color:#925a19; background:#f8ead5; font-size:9px; font-weight:800; }
.mobile-sync-issue strong { font-size:10px; }.mobile-sync-issue small { color:#876f51; font-size:9px; }
.mobile-package-state { display:grid; grid-column:1 / -1; gap:6px; padding:9px 10px; border-radius:6px; background:#fff; }
.mobile-package-state strong { color:#25495f; font-size:11px; }
.mobile-package-state small { display:block; color:#6b7f8b; font-size:9px; line-height:1.5; }
.mobile-package-state.stale { border:1px solid #e5c591; background:#fffaf1; }
.mobile-package-stale { color:#9b571b !important; font-weight:700; }
.mobile-offline-prep { margin:12px 12px 0; padding:0; border:1px solid #b9d6e4; border-radius:8px; background:#fff; overflow:hidden; }
.mobile-offline-prep .card-head { padding:12px; border-bottom:1px solid #e1ecf1; }
.mobile-offline-prep .card-head h2 { font-size:14px; }
.mobile-offline-prep .card-head small { color:#6b7f8b; font-size:10px; }
.mobile-offline-prep .mobile-summary-grid { margin:12px; }
.mobile-offline-prep .mobile-address { margin:0 12px; background:#f7fbfd; }
.mobile-offline-prep .mobile-connectivity-actions { margin:0 12px 12px; }
.mobile-storage-warnings { display:grid; gap:6px; margin:0 12px 12px; }
.mobile-storage-warning { padding:8px 10px; border:1px solid #e5c591; border-radius:5px; color:#8a5a1c; background:#fff8ec; font-size:10px; }
.mobile-sync-lists { margin:12px 12px 0; }
.mobile-sync-lists details { margin-bottom:8px; padding:10px; border:1px solid #d1dde3; border-radius:7px; background:#fff; }
.mobile-sync-lists summary { color:#25495f; font-size:11px; font-weight:800; cursor:pointer; }
.mobile-sync-row { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; margin-top:8px; padding:8px; border:1px solid #e1ecf1; border-radius:6px; background:#f8fbfc; text-align:left; }
.mobile-sync-row strong { display:block; color:#233e50; font-size:11px; }
.mobile-sync-row small { color:#6b7f8b; font-size:9px; }
.offline-search-note { margin:12px; }
.mobile-status.error { color:#9b3a2c; background:rgba(224,120,100,.22); }
.mobile-stop-card.error { border-color:#e0a48f; background:#fff3ef; }
.mobile-stop-card.error > b { color:#a5432b; }
button.mobile-connectivity-counts { border:0; cursor:pointer; font:inherit; text-align:left; }
.mobile-sync-row-reason { color:#a5432b; }
.mobile-sync-edit-banner { display:grid; gap:4px; grid-column:1/-1; margin:0 12px 12px; padding:10px 12px; border:1px solid #cfa74a; border-radius:6px; color:#6b4e14; background:#fff6e2; font-size:11px; }
.mobile-sync-edit-banner strong { font-size:12px; }
.mobile-sync-edit-banner button { justify-self:start; padding:0; }
.mobile-sync-screen-summary { grid-template-columns:repeat(2,1fr); }
.mobile-sync-screen-filters { margin:0 12px 12px; padding:12px; border:1px solid #d1dde3; border-radius:7px; background:#fff; }
.mobile-sync-screen-filters summary { color:#25495f; font-size:11px; font-weight:800; cursor:pointer; }
.mobile-sync-screen-filters .mobile-form-grid { margin-top:10px; }
.mobile-sync-screen-filters label { margin-top:9px; }
.mobile-sync-filter-discard { display:flex; align-items:center; gap:6px; margin-top:9px; font-weight:700; }
.mobile-sync-filter-discard input { width:auto; min-height:0; }
.mobile-sync-screen-filters > button { margin-top:10px; }
.mobile-sync-screen-list { padding:12px; }
.mobile-sync-detail-modal .mobile-sync-detail-reasons { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.mobile-sync-detail-id { margin-top:4px; color:#7c8e98; font-size:10px; }
.mobile-sync-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:14px 0; }
.mobile-sync-compare article { display:grid; gap:6px; padding:12px; border:1px solid #d3e1e9; border-radius:8px; background:#fafcfd; }
.mobile-sync-compare article:last-child { border-color:#b7d9e8; background:#f3fafd; }
.mobile-sync-compare article > span { color:#6f8490; font-size:11px; font-weight:700; }
.mobile-sync-compare article > strong { color:#1d4055; font-size:13px; }
.mobile-sync-compare article > small { color:#5c7280; font-size:10px; line-height:1.5; }
.mobile-sync-history-table { margin-top:12px; }
.mobile-sync-history-table table { font-size:11px; }
.mobile-sync-detail-actions { flex-wrap:wrap; }
.secondary.danger { border-color:#d99b9b; color:#a5432b; }
.primary.danger { border-color:#b23a3a; background:#b23a3a; }
.primary.danger:hover { background:#9c3131; }
.lifecycle-event-meta { display:block; margin-top:4px; color:#8b99a1; font-size:9px; }
@media (max-width:600px) { .mobile-sync-compare { grid-template-columns:1fr; } }
:root[data-theme="dark"] .mobile-sync-lists summary,
:root[data-theme="dark"] .mobile-sync-screen-filters summary { color:var(--text); }
.mobile-stop-card.draft { border-color:#c9c2e8; background:#f8f6ff; }
.mobile-stop-card.draft > b { color:#5d4fa8; }
.mobile-nav-actions { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.mobile-nav-actions a { min-width:0; padding:9px 6px !important; font-size:11px !important; }
.mobile-nav-actions a:hover { border-color:#71a9c8; background:#e8f4fa; }
.mobile-route-shared { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:12px 12px 0; padding:9px 11px; border:1px solid #a8d1e3; border-radius:7px; color:#28586f; background:#eaf6fb; }
.mobile-route-shared strong { font-size:11px; }
.mobile-route-shared span { color:#6b818d; font-size:9px; text-align:right; }
.mobile-open-entry { width:100%; min-height:50px; margin:2px 0 10px; border:0; border-radius:7px; color:#fff; background:#168052; box-shadow:0 5px 13px rgba(22,128,82,.18); font-size:16px; font-weight:800; cursor:pointer; transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease; }
.mobile-open-entry:hover { transform:translateY(-1px); background:#116c45; box-shadow:0 7px 16px rgba(22,128,82,.22); }
.mobile-open-entry.is-open { color:#356074; background:#e7f2f7; box-shadow:none; }
.mobile-stop-detail > .mobile-nav-actions { margin-bottom:12px; }
.mobile-entry-card.is-collapsed { display:none; }
.mobile-entry-card.is-open { margin-top:2px; border:1px solid #d2e1e8; box-shadow:0 3px 10px rgba(30,67,88,.05); }
.mobile-reflection { display:grid; gap:10px; margin:12px 0; padding:13px; border:1px solid #b8d7c9; border-radius:8px; background:#f3faf6; }
.mobile-reflection.queued { border-color:#b8d8e8; background:#f2f9fc; }
.mobile-reflection.review { border-color:#e5c695; background:#fff9f0; }
.mobile-reflection-head { display:flex; align-items:center; gap:9px; }
.mobile-reflection-head > span { display:grid; place-items:center; flex:0 0 27px; width:27px; height:27px; border-radius:50%; color:#fff; background:#23845b; font-weight:900; }
.mobile-reflection.queued .mobile-reflection-head > span { background:#247fb2; }
.mobile-reflection.review .mobile-reflection-head > span { background:#bf7b27; }
.mobile-reflection-head div { display:grid; gap:2px; }
.mobile-reflection-head strong { color:#244a5f; font-size:13px; }
.mobile-reflection-head small { color:#68808d; font-size:9px; line-height:1.45; }
.mobile-reflection-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.mobile-reflection-grid > div { min-width:0; padding:9px; border:1px solid rgba(126,165,149,.28); border-radius:6px; background:#fff; }
.mobile-reflection-grid span,.mobile-reflection-grid small { display:block; color:#71838d; font-size:8px; }
.mobile-reflection-grid strong { display:block; overflow-wrap:anywhere; margin:3px 0; color:#25475a; font-size:10px; }
.mobile-reflection-actions { display:flex; flex-wrap:wrap; gap:6px; }
.mobile-reflection-actions button { flex:1 1 30%; min-height:32px; padding:6px; border-radius:5px; font-size:9px; font-weight:800; }
.mobile-entry-group { display:grid; gap:9px; margin-bottom:11px; padding:11px; border:1px solid #d5e3e9; border-radius:7px; background:#fbfdfe; }
.mobile-entry-group.important { border-color:#a9d4e7; background:#f2f9fc; }
.mobile-entry-group h3 { margin:0; color:#31566b; font-size:12px; }
.mobile-form-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mobile-form-grid select { width:100%; min-height:36px; padding:7px 8px; border:1px solid #bdcdd5; border-radius:5px; color:#263f4d; background:#fff; font:inherit; }
.mobile-form-grid label small { color:#7a8c96; font-size:8px; font-weight:500; line-height:1.4; }
.mobile-container-entry { display:grid; gap:9px; padding:11px; border:1px solid #b7dceb; border-radius:8px; background:#f4fbfe; }
.mobile-container-entry-head { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; }
.mobile-container-entry-head strong { color:#185f88; font-size:13px; }
.mobile-container-entry-head small { color:#718791; font-size:8px; text-align:right; }
.mobile-container-code-row { display:grid; grid-template-columns:minmax(0,.72fr) auto minmax(0,.82fr) auto minmax(0,1.35fr) auto; align-items:end; gap:6px; }
.mobile-container-code-row label { min-width:0; }
.mobile-container-code-row label span { color:#5c7380; font-size:9px; }
.mobile-container-code-row input { min-width:0; }
.mobile-container-code-row > i,
.mobile-container-code-row > b { align-self:end; display:grid; place-items:center; min-height:36px; color:#617985; font-size:10px; font-style:normal; white-space:nowrap; }
.mobile-container-code-row > button { min-height:36px; padding:6px 10px; border:0; border-radius:5px; color:#fff; background:#087abd; font-size:11px; font-weight:800; }
.mobile-container-tools { display:flex; flex-wrap:wrap; gap:6px; }
.mobile-container-tools button { min-height:32px; padding:5px 9px; border:1px solid #aec8d6; border-radius:5px; color:#245d7c; background:#fff; font-size:10px; font-weight:700; }
.mobile-container-added { display:grid; gap:5px; min-height:38px; padding:7px; border-radius:5px; background:#fff; color:#71828c; font-size:10px; }
.mobile-container-added > span { align-self:center; text-align:center; }
.mobile-container-added-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 8px; border:1px solid #d6e3e9; border-radius:5px; }
.mobile-container-added-row span { display:grid; gap:2px; }
.mobile-container-added-row strong { color:#29495b; font-size:11px; }
.mobile-container-added-row small { color:#738691; font-size:8px; }
.mobile-container-added-row button { border:0; color:#9b4c42; background:transparent; font-size:9px; font-weight:700; }
.mobile-container-candidates small { color:#758892; font-size:9px; }
.mobile-container-candidates label { display:flex; align-items:center; gap:7px; padding:7px; border:1px solid #dae6eb; border-radius:5px; background:#fff; }
.mobile-container-candidates input { width:auto; min-height:auto; }
.mobile-remaining-fields { margin-top:2px; }
.mobile-container-modal { width:min(92vw,520px); }
.mobile-container-search-input { width:100%; min-height:42px; margin:4px 0 10px; padding:9px 11px; border:1px solid #b7cbd5; border-radius:6px; font:inherit; }
.mobile-container-search-results { display:grid; gap:7px; max-height:55vh; overflow:auto; }
.mobile-container-search-result { display:grid; gap:3px; padding:10px; border:1px solid #d3e0e6; border-radius:6px; color:#274757; background:#fff; text-align:left; }
.mobile-container-search-result strong { font-size:13px; }
.mobile-container-search-result span,
.mobile-container-search-result small { color:#6f838e; font-size:10px; }
.mobile-container-search-result:disabled { opacity:.55; background:#f1f4f5; }
@media (max-width:430px) {
  .mobile-container-code-row { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  .mobile-container-code-row > b { grid-column:1 / -1; min-height:auto; }
  .mobile-container-barcode { grid-column:1 / 3; }
  .mobile-container-code-row > button { grid-column:3; }
}
.mobile-inspection { margin-top:4px; border:1px solid #d2e1e8; border-radius:7px; background:#fff; }
.mobile-inspection summary { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:11px; color:#31556a; font-size:12px; font-weight:800; cursor:pointer; }
.mobile-inspection summary small { color:#7a8b94; font-size:8px; font-weight:500; }
.mobile-meter-warning-row { display:flex; align-items:center; flex-wrap:wrap; gap:7px; padding:11px; border-top:1px solid #e0e9ed; }
.mobile-meter-warning-row > strong { width:100%; color:#466371; font-size:10px; }
.mobile-meter-warning-row > small { color:#7c8e98; font-size:8px; }
.mobile-meter-warning { position:relative; cursor:pointer; }
.mobile-meter-warning input { position:absolute; opacity:0; }
.mobile-meter-warning span { display:grid; place-items:center; width:34px; height:34px; border:1px solid #bfd0d9; border-radius:7px; color:#38576a; background:#fff; font-size:11px; font-weight:900; }
.mobile-meter-warning input:checked + span { color:#fff; border-color:#ca5353; background:#ca5353; }
.mobile-inspection-list { display:grid; gap:7px; padding:0 11px 12px; }
.mobile-inspection-item { display:grid; grid-template-columns:minmax(0,1fr) 78px; gap:6px; align-items:center; }
.mobile-inspection-item > span { color:#526b79; font-size:9px; line-height:1.35; }
.mobile-inspection-item select,.mobile-inspection-item input { min-width:0; min-height:34px; padding:6px 7px; border:1px solid #c4d3da; border-radius:5px; color:#324e5d; background:#fff; font-size:9px; }
.mobile-inspection-item input { grid-column:1 / -1; }
.mobile-inspection-item input:disabled { color:#aebbc1; background:#f2f5f6; }
.mobile-map-toggle { display:block; margin:10px 12px 0 auto; padding:6px 9px; border:1px solid #a9c8d7; border-radius:5px; color:#176c9e; background:#f7fbfd; font-size:10px; font-weight:800; cursor:pointer; }
.mobile-map-toggle:hover { border-color:#6fa9c6; background:#eaf5fa; }
.mobile-map-card { margin:10px 12px 0; overflow:hidden; border:1px solid #b9d6e4; border-radius:8px; background:#fff; box-shadow:0 2px 8px rgba(31,73,95,.06); }
.mobile-stop-detail .mobile-map-card { margin:10px 0 12px; }
.mobile-map-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border-bottom:1px solid #d8e5eb; background:#f7fbfd; }
.mobile-map-head > div:first-child { display:grid; gap:2px; }
.mobile-map-head strong { color:#294d61; font-size:11px; }
.mobile-map-head small { color:#71838d; font-size:8px; }
.mobile-map-providers { display:flex; gap:4px; }
.mobile-map-providers button { padding:4px 6px; border:1px solid #bfd1da; border-radius:4px; color:#657b87; background:#fff; font-size:8px; font-weight:800; cursor:pointer; }
.mobile-map-providers button.active { border-color:#2584b8; color:#fff; background:#2584b8; }
.mobile-map-surface { position:relative; height:190px; overflow:hidden; background:linear-gradient(145deg,#eff6f1,#f8faf6 43%,#e9f3f7); }
.mobile-map-grid { position:absolute; inset:0; opacity:.48; background-image:linear-gradient(31deg,transparent 48%,#c7d7cb 49%,#c7d7cb 51%,transparent 52%),linear-gradient(108deg,transparent 48%,#d6e0d5 49%,#d6e0d5 51%,transparent 52%); background-size:86px 65px,120px 92px; }
.mobile-map-road { position:absolute; height:13px; border:3px solid #fff; border-radius:12px; background:#ccd7dc; box-shadow:0 0 0 1px #bdc9ce; }
.mobile-map-road.road-one { top:47%; left:-9%; width:116%; transform:rotate(-12deg); }
.mobile-map-road.road-two { top:42%; left:11%; width:91%; transform:rotate(37deg); }
.mobile-map-segment { position:absolute; z-index:2; height:3px; border-radius:3px; background:#1780bd; box-shadow:0 0 0 1px rgba(255,255,255,.72); transform-origin:0 50%; }
.mobile-map-marker { position:absolute; z-index:3; display:grid; place-items:center; width:27px; height:27px; padding:0; border:2px solid #fff; border-radius:50%; color:#fff; background:#1778ae; box-shadow:0 2px 6px rgba(22,70,95,.28); transform:translate(-50%,-50%); cursor:pointer; }
.mobile-map-marker b { font-size:9px; }
.mobile-map-marker span { position:absolute; top:29px; left:50%; max-width:92px; overflow:hidden; padding:2px 4px; border-radius:3px; color:#294b5e; background:rgba(255,255,255,.88); font-size:7px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; transform:translateX(-50%); }
.mobile-map-marker.active { background:#188458; box-shadow:0 0 0 4px rgba(24,132,88,.16),0 2px 6px rgba(22,70,95,.28); }
.mobile-map-marker.current { background:#536f7f; cursor:default; }
.mobile-map-attribution { position:absolute; right:6px; bottom:5px; z-index:4; padding:3px 5px; border-radius:3px; color:#71838c; background:rgba(255,255,255,.86); font-size:7px; }
.equipment-transition-panel{margin:22px 24px 24px;padding:20px;border:1px solid #b9dceb;border-radius:12px;background:#f5fbfe}
.equipment-transition-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;margin-bottom:18px}
.equipment-transition-head>div{display:flex;align-items:center;gap:12px;min-width:0}
.equipment-transition-head strong{font-size:14px;line-height:1.6;color:#173850}
.transition-arrow{font-size:24px;color:var(--blue)}
.post-equipment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.post-equipment-grid article{padding:18px;border:1px solid #d3e2ea;border-radius:10px;background:#fff;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.post-equipment-grid article>div{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid #e4edf2}
.post-equipment-grid article>div span{color:#557184;font-size:13px;font-weight:700}
.post-equipment-grid label{display:grid;gap:7px;color:#607786;font-size:12px;font-weight:700}
.post-equipment-grid input{width:100%;min-height:var(--control-height);border:1px solid var(--control-border);border-radius:var(--control-radius);background:#fff;color:#1d3546;font:inherit;padding:0 var(--control-padding-x)}
.compact-select{width:100%;min-height:36px;border:1px solid #c7d5df;border-radius:var(--control-radius);background:#fff;color:#1d3546;font:inherit;padding:6px 8px}
.equipment-change-result{display:grid;gap:4px;margin-top:16px;padding:13px 16px;border-left:4px solid #8eb9ce;background:#fff;color:#466475}
.equipment-change-result.changed{border-left-color:#d98a2b;background:#fffaf3;color:#74480f}
.equipment-change-result.error{border-left-color:#d84f4f;background:#fff6f6;color:#8c2929}
.equipment-change-result span{font-weight:800}.equipment-change-result small{line-height:1.55}
.container-search-conflict{background:#fff8ee}
.container-search-conflict td{border-color:#efd8b5}
.container-transfer-button{border-color:#d8a35c!important;color:#8a5714!important;background:#fff8ed!important}
.container-transfer-button:hover{border-color:#bd7c29!important;background:#ffefd8!important;transform:translateY(-1px)}
.container-transfer-row{background:#fffaf2!important}
.container-transfer-row td{border-color:#ead9bd!important}
.transfer-note{color:#9a5d16!important;font-weight:700}
.equipment-history-note{color:#9a5d16!important}
.mobile-container-search-result.container-search-conflict{border-color:#dfa85f;background:#fff7eb}
.mobile-container-search-result.container-search-conflict small{color:#925812;font-weight:800}
.delivery-result-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:24px}
.delivery-result-hero>div:first-child{display:grid;gap:7px;min-width:0}
.delivery-result-hero h2,.delivery-result-hero p{margin:0}
.delivery-result-hero h2{color:#18374c;font-size:24px}
.delivery-result-hero p{color:#667d8a}
.delivery-result-id{display:grid;gap:4px;min-width:270px;padding:16px 18px;border:1px solid #d2e1e9;border-radius:8px;background:#f8fbfd}
.delivery-result-id span,.delivery-result-id small{color:#738793;font-size:12px}
.delivery-result-id strong{overflow-wrap:anywhere;color:#23475c;font-size:14px}
.delivery-result-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;margin-bottom:18px;border:1px solid #d1dfe7;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(30,66,86,.06)}
.delivery-result-summary article{display:grid;gap:5px;min-width:0;padding:20px;border-right:1px solid #e0e9ee}
.delivery-result-summary article:last-child{border-right:0}
.delivery-result-summary span,.delivery-result-summary small{color:#728692;font-size:12px}
.delivery-result-summary strong{overflow-wrap:anywhere;color:#203e51;font-size:19px}
.delivery-result-summary .next{background:#eef8fc}
.delivery-result-summary .next strong{color:var(--blue)}
.delivery-equipment-comparison,.delivery-result-calculation{margin-bottom:18px}
.delivery-container-reconciliation{margin-bottom:18px}
.delivery-container-reconciliation.is-ok{border-color:#bfe1d2}
.delivery-container-reconciliation.needs-review{border-color:#ead2ad}
.container-reconciliation-body{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:20px;padding:0 24px 24px}
.container-reconciliation-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;border:1px solid #d7e4ea;border-radius:9px;background:#f9fbfc}
.container-reconciliation-counts article{display:grid;gap:5px;padding:16px;border-right:1px solid #dfe8ed}
.container-reconciliation-counts article:last-child{border-right:0}
.container-reconciliation-counts span{color:#718691;font-size:12px}
.container-reconciliation-counts strong{color:#24475a;font-size:18px}
.container-reconciliation-message{display:grid;align-content:start;gap:8px;padding:16px 18px;border-radius:9px;background:#f2f8fb;color:#315467}
.needs-review .container-reconciliation-message{background:#fff8ec;color:#76501f}
.container-reconciliation-message p,.container-reconciliation-message ul{margin:0;line-height:1.65}
.container-reconciliation-message ul{padding-left:20px}
.container-reconciliation-message small{color:#718691}
.container-reconciliation-history{margin:0 24px 24px;border-top:1px solid #dce7ec}
.container-reconciliation-history summary{padding:15px 0;color:#356178;font-weight:700;cursor:pointer}
.container-reconciliation-history .table-wrap{border:1px solid #dce7ec;border-radius:8px}
.equipment-before-after{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:18px;padding:0 24px 24px}
.equipment-before-after article{display:grid;gap:10px;padding:18px;border:1px solid #d3e1e9;border-radius:9px;background:#fafcfd}
.equipment-before-after article:last-child{border-color:#b7d9e8;background:#f3fafd}
.equipment-before-after article>span{color:#6f8490;font-size:12px;font-weight:700}
.equipment-before-after article>strong{color:#1d4055;font-size:17px}
.equipment-before-after article>small{color:#667e8b;line-height:1.55}
.equipment-before-after>b{align-self:center;color:var(--blue);font-size:25px}
.delivery-result-calculation .forecast-audit-grid{margin:0 24px 24px}
.delivery-audit-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;margin-bottom:24px;border:1px solid #d3e1e8;border-radius:9px;background:#f8fbfc}
.delivery-audit-strip>div{display:grid;gap:5px;padding:17px 20px;border-right:1px solid #dfe8ed}
.delivery-audit-strip>div:last-child{border-right:0}
.delivery-audit-strip span,.delivery-audit-strip small{color:#728691;font-size:11px}
.delivery-audit-strip strong{overflow-wrap:anywhere;color:#28485a;font-size:13px}
@media(max-width:1050px){.post-equipment-grid{grid-template-columns:1fr}.equipment-transition-head{grid-template-columns:1fr}.transition-arrow{transform:rotate(90deg);justify-self:center}}
@media(max-width:1000px){.delivery-result-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.delivery-result-summary article:nth-child(2){border-right:0}.delivery-result-summary article:nth-child(-n+2){border-bottom:1px solid #e0e9ee}.equipment-before-after{grid-template-columns:1fr}.equipment-before-after>b{justify-self:center;transform:rotate(90deg)}.delivery-audit-strip{grid-template-columns:1fr}.delivery-audit-strip>div{border-right:0;border-bottom:1px solid #dfe8ed}.delivery-audit-strip>div:last-child{border-bottom:0}.container-reconciliation-body{grid-template-columns:1fr}}
@media(max-width:720px){.equipment-transition-panel{margin:16px 12px;padding:14px}.post-equipment-grid article{grid-template-columns:1fr}.equipment-transition-head>div{align-items:flex-start;flex-direction:column}}
@media(max-width:720px){.delivery-result-hero{align-items:stretch;flex-direction:column;padding:18px}.delivery-result-id{min-width:0}.delivery-result-summary{grid-template-columns:1fr}.delivery-result-summary article{border-right:0;border-bottom:1px solid #e0e9ee}.delivery-result-summary article:last-child{border-bottom:0}.equipment-before-after{padding:0 16px 18px}.delivery-result-calculation .forecast-audit-grid{margin:0 16px 18px}.container-reconciliation-body{padding:0 16px 18px}.container-reconciliation-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.container-reconciliation-counts article:nth-child(2){border-right:0}.container-reconciliation-counts article:nth-child(-n+2){border-bottom:1px solid #dfe8ed}.container-reconciliation-history{margin:0 16px 18px}}
.delivery-container-review-card {
  margin-bottom: 24px;
  border-color: #d5e5ee;
}
.delivery-container-review-card.has-items {
  border-top: 4px solid #d99a42;
}
.delivery-container-review-card .card-head {
  padding-bottom: 18px;
}
.delivery-container-review-tools {
  display: grid;
  grid-template-columns: minmax(260px, 1.6fr) repeat(3, minmax(150px, .7fr)) auto;
  align-items: end;
  gap: 14px;
  margin: 0 24px 20px;
  padding: 18px;
  border: 1px solid #d7e7ef;
  border-radius: 10px;
  background: #f7fbfd;
}
.delivery-container-review-tools label {
  display: grid;
  gap: 7px;
  color: #597083;
  font-size: 12px;
  font-weight: 700;
}
.delivery-container-review-tools input,
.delivery-container-review-tools select {
  width: 100%;
  min-width: 0;
}
.container-review-batch-bar{display:flex;align-items:center;gap:14px;margin:0 24px 14px;padding:12px 14px;border:1px solid #cfe3ed;border-radius:9px;background:#f2f9fc}
.container-review-batch-bar label{display:flex;align-items:center;gap:8px;color:#365d70;font-weight:700}
.container-review-batch-bar label input{width:17px;height:17px}
.container-review-batch-bar span{margin-right:auto;color:#6c818d;font-size:12px}
.container-review-batch-bar button:disabled{opacity:.48;cursor:not-allowed}
.container-review-resolved {
  margin: 18px 24px 24px;
  border: 1px solid #dce7ed;
  border-radius: 10px;
  background: #fbfdfd;
}
.container-review-resolved summary {
  padding: 15px 18px;
  color: #426276;
  font-weight: 700;
  cursor: pointer;
}
.container-review-resolved[open] summary {
  border-bottom: 1px solid #e0e9ee;
}
.delivery-container-review-card h2 {
  display: flex;
  align-items: center;
  gap: 10px;
}
.delivery-container-review-card td:last-child {
  text-align: right;
  white-space: nowrap;
}
.container-followup-button {
  color: #8b5b16;
  border-color: #e1bd82;
  background: #fffaf2;
}
.container-followup-button:hover {
  color: #71450c;
  border-color: #d6a758;
  background: #fff3de;
  transform: translateY(-1px);
}
.delivery-container-review-empty {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 24px 24px;
  padding: 18px 20px;
  border: 1px solid #dcebe4;
  border-radius: 10px;
  background: #f7fbf9;
}
.delivery-container-review-empty > span {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #fff;
  background: #2f8c68;
}
.delivery-container-review-empty div {
  display: grid;
  gap: 3px;
}
.delivery-container-review-empty small {
  color: #6e8291;
}
@media (max-width: 760px) {
  .delivery-container-review-tools { grid-template-columns: 1fr; margin-inline: 16px; }
  .container-review-batch-bar{align-items:stretch;flex-direction:column;margin-inline:16px}.container-review-batch-bar span{margin-right:0}
  .delivery-container-review-card .table-wrap { overflow-x: auto; }
  .delivery-container-review-card table { min-width: 760px; }
}
@media (min-width: 761px) and (max-width: 1200px) {
  .delivery-container-review-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-container-review-tools .wide { grid-column: 1 / -1; }
}

.lifecycle-excluded-row {
  background: #fafcfd;
  color: #617789;
}
.lifecycle-excluded-row .property-name { color: #36576b; }
.lifecycle-excluded-row button:disabled { opacity: .55; }
.lifecycle-work-block {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 28px;
  border-color: #d7e7ef;
  background: #f8fbfd;
}
.lifecycle-work-block .badge { justify-self: start; }
.lifecycle-work-block h2,
.lifecycle-work-block p { margin: 0; }
.lifecycle-work-block p { max-width: 760px; color: #597184; line-height: 1.75; }
.lifecycle-exclusion-note {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 18px 0;
  padding: 15px 18px;
  border: 1px solid #cfe4ef;
  border-radius: 10px;
  background: #f2f9fc;
}
.lifecycle-exclusion-note > span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  background: #2383bb;
  font-weight: 800;
}
.lifecycle-exclusion-note div { display: grid; gap: 3px; }
.lifecycle-exclusion-note small { color: #627d8e; line-height: 1.55; }

.lifecycle-task-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}
.lifecycle-task-summary button {
  display: grid;
  gap: 7px;
  min-height: 118px;
  padding: 20px 22px;
  text-align: left;
  border: 1px solid #d8e5ec;
  border-top: 4px solid #7392a4;
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(25,58,77,.06);
}
.lifecycle-task-summary button:hover { transform: translateY(-2px); border-color: #8fbbd2; box-shadow: 0 8px 22px rgba(25,58,77,.1); }
.lifecycle-task-summary button.active { border-top-color: var(--blue); background: #f5fbfe; }
.lifecycle-task-summary button.risk { border-top-color: #d68a2e; background: #fffbf5; }
.lifecycle-task-summary button span { color: #617b8a; font-size: 12px; font-weight: 800; }
.lifecycle-task-summary button strong { color: #183c53; font-size: 27px; }
.lifecycle-task-summary button small { color: #758a97; line-height: 1.45; }
.lifecycle-task-card .card-head { align-items: center; }
.lifecycle-task-filters {
  display: grid;
  grid-template-columns: minmax(150px,.7fr) minmax(180px,.8fr) minmax(320px,2fr) auto;
  gap: 14px;
  align-items: end;
  margin: 0 24px 22px;
  padding: 20px;
  border: 1px solid #cfe6f2;
  border-radius: 10px;
  background: #f5fbfe;
}
.lifecycle-task-filters label { display: grid; gap: 7px; color: #607887; font-size: 12px; font-weight: 800; }
.lifecycle-task-filters input,.lifecycle-task-filters select { width: 100%; min-height: var(--control-height); }
.lifecycle-task-table tr.completed { background: #f8fbf9; color: #627b70; }
.lifecycle-task-table .task-detail { display: block; max-width: 440px; margin-top: 6px; color: #6d8290; line-height: 1.55; }
.task-row-actions { display: flex; gap: 8px; justify-content: flex-end; }
.task-row-actions button { white-space: nowrap; }
.lifecycle-task-modal { width: min(680px, 100%); }
.lifecycle-task-modal-body { display: grid; gap: 18px; margin: 18px 0 22px; padding: 20px; border: 1px solid #cfe6f2; border-radius: 10px; background: #f5fbfe; }
.lifecycle-task-modal-body > p { margin: 0; color: #536f7f; line-height: 1.7; }
.lifecycle-task-confirm { display: flex; align-items: center; gap: 10px; color: #36586b; font-weight: 800; }
.lifecycle-task-confirm input { width: 18px; height: 18px; }
.lifecycle-task-assets {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
  border: 1px solid #d6e6ed;
  border-radius: 8px;
  background: #fff;
}
.lifecycle-task-assets span { color: #617a89; line-height: 1.6; }
.lifecycle-task-outcome { color: #276b54 !important; font-weight: 800; }
.lifecycle-result-history { margin-bottom: 18px; }
.lifecycle-result-history .card-head { align-items: center; }
.lifecycle-result-history td { vertical-align: top; }
.contract-task-results {
  display: grid;
  gap: 10px;
  margin: 0 24px 24px;
  padding: 18px;
  border: 1px solid #cfe6f2;
  border-radius: 10px;
  background: #f5fbfe;
}
.contract-task-results > strong { color: #183c53; }
.contract-task-results > div {
  display: grid;
  grid-template-columns: max-content minmax(190px, auto) 1fr;
  gap: 12px;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid #dceaf0;
}
.contract-task-results small { color: #657e8d; }
.dashboard-lifecycle-alert { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; width:100%; padding:14px 18px; border:0; border-bottom:1px solid var(--line); background:#fff; color:var(--text); text-align:left; }
.dashboard-lifecycle-alert:hover { background:#f4fafe; }
.dashboard-lifecycle-alert span,.dashboard-lifecycle-alert strong,.dashboard-lifecycle-alert small { display:block; }
.dashboard-lifecycle-alert small { margin-top:3px; color:var(--muted); }
.dashboard-lifecycle-alert b { color:var(--blue); font-size:13px; }
@media(max-width:1000px){.lifecycle-task-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.lifecycle-task-filters{grid-template-columns:1fr 1fr}.lifecycle-task-filters .wide{grid-column:1/-1}}
@media(max-width:640px){.lifecycle-task-summary,.lifecycle-task-filters{grid-template-columns:1fr}.lifecycle-task-filters{margin-inline:16px}.lifecycle-task-filters .wide{grid-column:auto}.task-row-actions{flex-direction:column}}
@media(max-width:640px){.contract-task-results>div{grid-template-columns:1fr}.lifecycle-result-history{overflow:auto}}
.customer-row-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 150px; }
.customer-row-actions .link-button { white-space: nowrap; }
.contract-editor-card { width: min(1040px, calc(100vw - 40px)); }
.contract-editor-history,
.customer-change-history { margin: 18px 24px 0; padding: 18px; border: 1px solid #cfe4ef; border-radius: 12px; background: #f7fbfd; }
.contract-editor-history > div:first-child,
.customer-change-history > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.contract-editor-history small,
.customer-change-history small { color: #718596; font-weight: 500; }
.customer-change-history article { display: grid; gap: 5px; padding: 11px 0; border-top: 1px solid #dce9f0; }
.customer-change-history article:first-of-type { border-top: 0; }
.customer-change-history article > span { color: #536b7d; font-size: 13px; }
.customer-change-history article small { display: block; }
@media(max-width:760px){.contract-editor-history,.customer-change-history{margin:14px 16px 0;padding:14px}.contract-editor-history .table-wrap{overflow-x:auto}}
.customer-list-search {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) auto auto;
  gap: 12px;
  align-items: end;
  margin: 0 24px 20px;
  padding: 18px 20px;
  border: 1px solid #cfe6f2;
  border-radius: 10px;
  background: #f5fbfe;
}
.customer-list-search .form-item { margin: 0; }
.customer-list-search input { width: 100%; min-height: var(--control-height); }
.customer-list-search button { min-height: var(--control-height); white-space: nowrap; }
@media(max-width:760px){
  .customer-list-search { grid-template-columns: 1fr 1fr; margin-inline: 16px; }
  .customer-list-search .form-item { grid-column: 1 / -1; }
}
.route-empty-state {
  margin: 20px;
  padding: 38px 28px;
  border: 1px solid #b8d9ed;
  border-radius: 12px;
  background: #f4faff;
  display: grid;
  justify-items: center;
  gap: 10px;
  color: #5f7484;
  text-align: center;
}
.route-empty-state strong { color: #18384f; font-size: 1.08rem; }
.route-empty-state .primary { margin-top: 8px; }
.table-empty { padding: 30px 18px; color: #708492; text-align: center; }

/* Interface theme ------------------------------------------------------- */
.topbar-actions { display:flex; align-items:center; gap:14px; }
.operator { border:0; padding:0; color:var(--text); background:transparent; text-align:left; }
.theme-toggle { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:6px 11px; border:1px solid var(--border); border-radius:18px; color:var(--muted); background:var(--surface); font-size:12px; font-weight:700; transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease; }
.theme-toggle span { display:grid; place-items:center; width:20px; height:20px; border-radius:50%; color:var(--blue); background:var(--blue-soft); font-size:13px; }
.theme-toggle:hover,.theme-toggle:focus-visible { border-color:var(--blue); color:var(--text); transform:translateY(-1px); }

:root[data-theme="dark"] {
  --brand-primary:#62aee0;
  --brand-hover:#78bae4;
  --brand-deep:#1d2932;
  --brand-deep-2:#2d3d48;
  --info-soft:#344955;
  --info-border:#526c7b;
  --success:#63c49b;
  --success-soft:#29493f;
  --warning:#e6aa69;
  --warning-soft:#594630;
  --danger:#ef8585;
  --danger-soft:#593a3d;
  --action-blue:#5fa7d4;
  --action-teal:#68adb3;
  --action-green:#6faf99;
  --action-slate:#8ea3b1;
  --neutral-bg:#26323a;
  --neutral-surface:#303d46;
  --neutral-border:#485862;
  --neutral-text:#edf3f5;
  --neutral-muted:#a9bac4;
  --navy:#1d2932;
  --navy-2:#2d3d48;
  --blue:#62aee0;
  --blue-soft:#344955;
  --bg:#26323a;
  --surface:#303d46;
  --surface-raised:#36444e;
  --surface-soft:#2b3841;
  --border:#485862;
  --text:#edf3f5;
  --muted:#a9bac4;
  --green:#63c49b;
  --orange:#e6aa69;
  --red:#ef8585;
  --shadow:0 2px 7px rgba(5,12,17,.22);
  --control-border:#61727d;
  --control-focus-ring:0 0 0 2px rgba(98,174,224,.22);
  --input-group-border:#526c7b;
  --input-group-background:#2b3d47;
  --placeholder:#80919b;
  --ink:#edf3f5;
  --line:#485862;
}

:root[data-theme="dark"] body { background:var(--bg); color:var(--text); }
:root[data-theme="dark"] .sidebar { background:#1d2932; }
:root[data-theme="dark"] .nav-item { color:#d1dde3; }
:root[data-theme="dark"] .nav-item:hover { background:rgba(255,255,255,.09); }
:root[data-theme="dark"] .nav-item:focus-visible { outline-color:var(--blue); background:rgba(255,255,255,.09); }
:root[data-theme="dark"] .nav-item.active { background:#356f96; }
:root[data-theme="dark"] .nav-icon { color:#8ea5b3; }
:root[data-theme="dark"] .nav-item:hover .nav-icon { color:#c6d6de; }
:root[data-theme="dark"] .nav-item.active .nav-icon { color:#fff; }
:root[data-theme="dark"] .topbar,
:root[data-theme="dark"] .portal-topbar { background:#303d46; }
:root[data-theme="dark"] .global-search { background:#26323a; border-color:#3d4d57; }
:root[data-theme="dark"] .global-search:focus-within { background:#2b3841; }
:root[data-theme="dark"] .operator-avatar { background:#3b5260; }

:root[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] .field input,
:root[data-theme="dark"] .field select,
:root[data-theme="dark"] .form-item input,
:root[data-theme="dark"] .form-item select,
:root[data-theme="dark"] .reading-history-filter input,
:root[data-theme="dark"] .reading-history-filter select,
:root[data-theme="dark"] .route-assignment select,
:root[data-theme="dark"] .route-assignment input,
:root[data-theme="dark"] .seasonal-cell,
:root[data-theme="dark"] .organization-filters input,
:root[data-theme="dark"] .organization-filters select,
:root[data-theme="dark"] .business-role-matrix select { color:var(--text); border-color:var(--control-border); background:var(--surface-raised); }
:root[data-theme="dark"] input:disabled,
:root[data-theme="dark"] input[readonly],
:root[data-theme="dark"] select:disabled,
:root[data-theme="dark"] textarea:disabled,
:root[data-theme="dark"] textarea[readonly] { color:#92a2ab !important; border-color:#4d5c65 !important; background:#29353d !important; }
:root[data-theme="dark"] select { color-scheme:dark; }

:root[data-theme="dark"] :where(.card,.stat-card,.tabs,.detail-panel,.workflow-steps,.register-step,.settings-hub button,.integration-summary,.integration-card,.route-capacity-grid,.route-toolbox,.business-block,.management-kpis,.lifecycle-status-card,.lifecycle-policy-grid article,.lifecycle-reflection-list article,.lifecycle-reading-summary article,.provider-setting-grid article,.assignment-grid article,.model-comparison-grid,.portal-card,.issued-slip-list button,.modal-card,.contractor-card,.occupancy-summary,.equipment,.choice-card) { color:var(--text); border-color:var(--border); background:var(--surface) !important; box-shadow:var(--shadow); }
:root[data-theme="dark"] :where(.container-detail-summary > div,.parameter-grid > div,.reading-forecast-preview > div,.task-recalculation-choice,.seasonal-priority-note span) { color:var(--text); border-color:var(--border); background:var(--surface-raised) !important; }
:root[data-theme="dark"] :where(.operation-flow,.forecast-monitor-strip,.route-import,.container-identity-panel,.customer-list-search,.contract-task-results,.lifecycle-flow,.lifecycle-reflection,.input-group,.container-direct-input,.route-empty-state) { color:var(--text); border-color:var(--info-border); background:var(--surface-soft) !important; }
:root[data-theme="dark"] .seasonal-pattern-months { color:var(--text); border-color:var(--input-group-border); background:var(--input-group-background); }

:root[data-theme="dark"] .secondary,
:root[data-theme="dark"] .card-head .head-actions .secondary,
:root[data-theme="dark"] .manual-quick button,
:root[data-theme="dark"] .route-strategy-button,
:root[data-theme="dark"] .mobile-filter-chip { color:var(--text); border-color:#61727d; background:var(--surface-raised); }
:root[data-theme="dark"] .secondary:hover,
:root[data-theme="dark"] .secondary:focus,
:root[data-theme="dark"] .card-head .head-actions .secondary:hover,
:root[data-theme="dark"] .card-head .head-actions .secondary:focus { color:#fff; border-color:#70aaca; background:#3c5361; }
:root[data-theme="dark"] .primary { color:#fff; border-color:#4a91bf; background:#397da9; }
:root[data-theme="dark"] .primary:hover { border-color:#62aee0; background:#458bb7; }
:root[data-theme="dark"] .theme-toggle { background:#36444e; }

:root[data-theme="dark"] table { color:var(--text); background:var(--surface); }
:root[data-theme="dark"] th { color:#c5d2d9; border-color:var(--border); background:#35434d; }
:root[data-theme="dark"] td { border-color:var(--border); background:var(--surface); }
:root[data-theme="dark"] tbody tr:hover td { background:#354650; }
:root[data-theme="dark"] .table-footer,
:root[data-theme="dark"] .route-assignment,
:root[data-theme="dark"] .output-checks { color:var(--muted); border-color:var(--border); background:#2b3841; }
:root[data-theme="dark"] .route-master-management,
:root[data-theme="dark"] .route-dispatch-card,
:root[data-theme="dark"] .route-load-preview,
:root[data-theme="dark"] .route-driver-tab { color:var(--text); border-color:var(--border); background:var(--surface); }
:root[data-theme="dark"] .route-dispatch-warning,
:root[data-theme="dark"] .route-generate-warning { color:#f0c58f; border-color:#bd7c37; background:#493a2c; }
:root[data-theme="dark"] .route-master-table input,
:root[data-theme="dark"] .route-master-table select,
:root[data-theme="dark"] .route-assignment-table select,
:root[data-theme="dark"] .route-dispatch-fields input,
:root[data-theme="dark"] .route-dispatch-fields select { color:var(--text); border-color:var(--control-border); background:var(--surface-raised); }

:root[data-theme="dark"] .progress-wheel { background:conic-gradient(var(--blue) var(--progress),#46545d 0); }
:root[data-theme="dark"] .progress-wheel::before,
:root[data-theme="dark"] .delivery-kpi-card .progress-wheel::before { background:var(--surface); }
:root[data-theme="dark"] .delivery-kpi-card {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .delivery-kpi-card:hover,
:root[data-theme="dark"] .delivery-kpi-card.active {
  border-color:var(--blue);
  background:var(--surface-raised) !important;
  box-shadow:0 7px 22px rgba(5,15,22,.28);
}
:root[data-theme="dark"] .delivery-kpi-card span,
:root[data-theme="dark"] .delivery-kpi-card small { color:var(--muted); }
:root[data-theme="dark"] .delivery-kpi-card strong { color:var(--text); }
:root[data-theme="dark"] .delivery-kpi-card.orange { border-top-color:#d9a55e; }
:root[data-theme="dark"] .delivery-kpi-card.red {
  border-top-color:#d88383;
  background:#47393c !important;
}
:root[data-theme="dark"] .delivery-kpi-card.red:hover,
:root[data-theme="dark"] .delivery-kpi-card.red.active { background:#534044 !important; }
:root[data-theme="dark"] .delivery-kpi-card.red strong { color:#f0b0b0; }
:root[data-theme="dark"] .delivery-kpi-card .progress-wheel {
  background:conic-gradient(var(--blue) calc(var(--progress)*1%),#465661 0);
}
:root[data-theme="dark"] .delivery-entry-header {
  border-color:var(--border);
  background:var(--border);
}
:root[data-theme="dark"] .delivery-entry-header > div { background:var(--surface); }
:root[data-theme="dark"] .delivery-entry-header span,
:root[data-theme="dark"] .delivery-entry-header small { color:var(--muted); }
:root[data-theme="dark"] .delivery-entry-header strong { color:var(--text); }
:root[data-theme="dark"] .property-name,
:root[data-theme="dark"] .lifecycle-reading-card .property-name,
:root[data-theme="dark"] .lifecycle-excluded-row .property-name,
:root[data-theme="dark"] a:not(.primary):not(.secondary) { color:#86c8f2; }

/* Online manual: keep every content surface inside the dark palette. */
:root[data-theme="dark"] .manual-hero {
  color:var(--text);
  border-color:#506573;
  background:linear-gradient(135deg,#30414c,#2b3841);
}
:root[data-theme="dark"] .manual-hero h2,
:root[data-theme="dark"] .manual-topic-grid h3,
:root[data-theme="dark"] .manual-side h2,
:root[data-theme="dark"] .manual-notice h3 { color:var(--text); }
:root[data-theme="dark"] .manual-hero label {
  border-color:var(--control-border);
  background:var(--surface-raised);
}
:root[data-theme="dark"] .manual-hero label input { color:var(--text); background:transparent; }
:root[data-theme="dark"] .manual-hero aside { border-color:#526774; }
:root[data-theme="dark"] .manual-topic-grid article {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface);
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .manual-topic-grid article:hover {
  border-color:#6ca8ce;
  background:var(--surface-raised);
}
:root[data-theme="dark"] .manual-topic-grid article > span {
  color:#8dcbf1;
  background:#314f61;
}
:root[data-theme="dark"] .manual-topic-grid p,
:root[data-theme="dark"] .manual-topic-grid small,
:root[data-theme="dark"] .manual-hero aside span { color:#b8c7cf; }
:root[data-theme="dark"] .manual-topic-grid .link-button { color:#8dcbf1; }
:root[data-theme="dark"] .manual-notice { color:var(--text); border-color:var(--border); background:#2b414e !important; }
:root[data-theme="dark"] .manual-notice > span { color:#9bd2f3; background:#31566c; }
:root[data-theme="dark"] .progress-wheel strong,
:root[data-theme="dark"] .stat-value { color:var(--text); }
:root[data-theme="dark"] .progress { background:#45535c; }
:root[data-theme="dark"] .activity,
:root[data-theme="dark"] .alert-row { border-color:var(--border); }

:root[data-theme="dark"] .badge { color:#d6e0e5; background:#43515a; }
:root[data-theme="dark"] .badge.blue { color:#b9ddf3; background:#314f61; }
:root[data-theme="dark"] .badge.green { color:#b9ead5; background:#2d5043; }
:root[data-theme="dark"] .badge.orange { color:#f2d1aa; background:#594630; }
:root[data-theme="dark"] .badge.red { color:#f3c1c1; background:#5a3131; }
:root[data-theme="dark"] :where(.new-entry td,.mobile-stop-card.done) { background:#29493f !important; }
:root[data-theme="dark"] :where(.notice-unread,.prediction-review-row,.risk-rule-note,.reading-warning-audit,.reading-cancelled-note,.change-flags) { color:#f1d2aa; border-color:#806542; background:#4b3e2f !important; }
:root[data-theme="dark"] :where(.task-overdue,.input-error,.delivery-kpi-card.red) { color:#f2c2c2; border-color:#8a5558; background:#513638 !important; }

:root[data-theme="dark"] .modal-backdrop { background:rgba(8,14,18,.62); }
:root[data-theme="dark"] .modal-close { background:#26323a; }
:root[data-theme="dark"] .modal-close:hover { background:#3d4c56; }
:root[data-theme="dark"] .notice { color:#fff; background:#18242c; }
:root[data-theme="dark"] .barcode { color:#c8d8df; }
:root[data-theme="dark"] .document-mini { border-color:#61727d; background:#f4f6f7 !important; color:#243746; }

:root[data-theme="dark"] .portal-shell { color:var(--text); background:var(--bg); }
:root[data-theme="dark"] .portal-logo { color:var(--text); }
:root[data-theme="dark"] .portal-check { border-color:#45695b; background:#29443a !important; }

/* Dark theme surfaces: remove light-mode paper panels while preserving hierarchy. */
:root[data-theme="dark"] :where(
  .delivery-main-actions.primary-two,
  .delivery-list-filters,
  .asset-ledger-tabs,
  .asset-ledger-note,
  .safety-guidance,
  .basic-supply-card,
  .property-management-contact,
  .provider-settings,
  .property-organization-assignments,
  .delivery-mode-info,
  .delivery-settings-hero,
  .forecast-hero,
  .forecast-sources,
  .forecast-model-comparison,
  .forecast-conditions,
  .forecast-layout .card-inner,
  .forecast-visual,
  .visual-summary,
  .cylinder-forecast article,
  .side-system article,
  .bulk-forecast
) {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}

:root[data-theme="dark"] .delivery-main-actions.primary-two {
  background:var(--surface-soft) !important;
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .delivery-mobile-shortcut { border-color:var(--border); }
:root[data-theme="dark"] .delivery-mobile-shortcut > div,
:root[data-theme="dark"] .delivery-mobile-shortcut > div small { color:var(--muted); }
:root[data-theme="dark"] .delivery-main-actions .delivery-mobile-shortcut button {
  color:var(--text);
  border-color:#61727d;
  background:var(--surface-raised);
}
:root[data-theme="dark"] .delivery-main-actions .delivery-mobile-shortcut button:hover {
  color:#fff;
  border-color:#70aaca;
  background:#3c5361;
}
:root[data-theme="dark"] .delivery-list-filters {
  border-color:var(--border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .delivery-list-filters label { color:#c3d0d7; }

:root[data-theme="dark"] .asset-ledger-tabs { background:var(--surface-soft) !important; }
:root[data-theme="dark"] .asset-ledger-tabs button { color:#bdcad1; background:transparent; }
:root[data-theme="dark"] .asset-ledger-tabs button:hover { color:#fff; background:#3b4d58; }
:root[data-theme="dark"] .asset-ledger-tabs button.active { color:#fff; background:#397da9; }
:root[data-theme="dark"] .asset-ledger-note { background:#2e414c !important; }
:root[data-theme="dark"] .asset-ledger-note strong { color:#8dcbf1; }
:root[data-theme="dark"] .asset-ledger-note span { color:#bccbd3; }

:root[data-theme="dark"] .safety-guidance { background:#2c433b !important; }
:root[data-theme="dark"] .safety-guidance strong { color:var(--text); }
:root[data-theme="dark"] .safety-guidance small { color:#b8cbc4; }

:root[data-theme="dark"] :where(
  .basic-supply-card,
  .property-management-contact,
  .provider-settings,
  .property-organization-assignments
) { box-shadow:var(--shadow); }
:root[data-theme="dark"] .basic-supply-card.parent-supply { background:#304550 !important; }
:root[data-theme="dark"] :where(.basic-supply-card,.property-management-contact) dt,
:root[data-theme="dark"] :where(.basic-supply-card,.property-management-contact) p,
:root[data-theme="dark"] :where(.basic-supply-card,.property-management-contact) small,
:root[data-theme="dark"] .provider-settings > div:first-child > small,
:root[data-theme="dark"] .property-organization-assignments small { color:var(--muted); }
:root[data-theme="dark"] :where(.basic-supply-card,.property-management-contact) dd,
:root[data-theme="dark"] :where(.provider-settings,.property-organization-assignments) h3 { color:var(--text); }

:root[data-theme="dark"] .delivery-mode-info { background:#2e414c !important; }
:root[data-theme="dark"] .delivery-mode-info > div { border-color:#50616c; }
:root[data-theme="dark"] .delivery-mode-info p { color:#b8c7cf; }
:root[data-theme="dark"] .delivery-settings-hero,
:root[data-theme="dark"] .forecast-hero { background:linear-gradient(110deg,#304651,#2d3b44) !important; }
:root[data-theme="dark"] .forecast-gauge { background:#46545d; }

:root[data-theme="dark"] .forecast-sources { background:var(--surface-soft) !important; }
:root[data-theme="dark"] .source-priority article {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-raised);
}
:root[data-theme="dark"] .source-priority article.high {
  border-color:var(--blue);
  background:#344d5b;
}
:root[data-theme="dark"] .source-priority h3,
:root[data-theme="dark"] .source-priority strong { color:var(--text); }
:root[data-theme="dark"] .source-rank { color:#a8d7f3; border-color:#5d8297; background:#2d4655; }
:root[data-theme="dark"] .source-status { color:#bdcad1; background:#43515a; }
:root[data-theme="dark"] .confidence i.off { background:#66747d; }

:root[data-theme="dark"] .forecast-model-comparison,
:root[data-theme="dark"] .forecast-conditions { background:var(--surface-soft) !important; }
:root[data-theme="dark"] .forecast-model-comparison h2,
:root[data-theme="dark"] .forecast-model-comparison strong,
:root[data-theme="dark"] .forecast-conditions h2 { color:var(--text); }
:root[data-theme="dark"] .model-comparison-grid > div { background:var(--surface-raised); }
:root[data-theme="dark"] .model-note { color:var(--text); border-color:#5c7888; background:#344c59 !important; }
:root[data-theme="dark"] .forecast-layout .card-inner { box-shadow:var(--shadow); }
:root[data-theme="dark"] .formula-flow > div { color:var(--text); background:var(--surface-raised); }
:root[data-theme="dark"] .formula-flow > b { color:#d7e2e7; }

:root[data-theme="dark"] .forecast-audit-grid { border-color:var(--border); background:var(--border); }
:root[data-theme="dark"] .forecast-audit-grid > div { color:var(--text); border-color:var(--border); background:var(--surface-raised); }
:root[data-theme="dark"] .forecast-audit-grid strong { color:var(--text); }

:root[data-theme="dark"] .visual-summary > div { background:var(--surface-raised); }
:root[data-theme="dark"] .cylinder-forecast article,
:root[data-theme="dark"] .side-system article,
:root[data-theme="dark"] .bulk-forecast { background:var(--surface-soft) !important; }
:root[data-theme="dark"] .side-tank,
:root[data-theme="dark"] .cylinder,
:root[data-theme="dark"] .bulk-vessel {
  border-color:#72838d;
  background:#46545d;
  box-shadow:inset 0 0 0 2px #566670;
}
:root[data-theme="dark"] .side-tank:before { color:#b4c3cb; }
:root[data-theme="dark"] .side-tank b,
:root[data-theme="dark"] .cylinder b,
:root[data-theme="dark"] .bulk-vessel b { color:#fff; }

/* Dark theme completion: operational status, lifecycle and detail summaries. */
:root[data-theme="dark"] .forecast-monitor-strip {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .forecast-monitor-status strong { color:var(--text); }
:root[data-theme="dark"] .forecast-monitor-status small { color:#b8c7cf; }

:root[data-theme="dark"] .latest-state-options {
  border-color:var(--control-border);
  background:var(--surface-raised);
}
:root[data-theme="dark"] .latest-state-options label {
  color:#dce6ea;
  background:#3d4c56;
}
:root[data-theme="dark"] .latest-state-options label:hover { background:#465a66; }
:root[data-theme="dark"] .latest-state-options input { accent-color:#62aee0; }
:root[data-theme="dark"] .container-off-premises-check {
  color:#dce6ea;
  border-color:var(--control-border);
  background:var(--surface-raised);
}

:root[data-theme="dark"] :where(.history-note,.issue-hint,.delivery-provider-summary,.delivery-detail-note,.compliance-note) {
  color:#c4d1d7;
  border-color:#526c7b;
  background:#344c59 !important;
}
:root[data-theme="dark"] :where(.history-note,.issue-hint,.delivery-provider-summary,.delivery-detail-note,.compliance-note) strong { color:var(--text); }
:root[data-theme="dark"] :where(.history-note,.issue-hint,.delivery-provider-summary,.delivery-detail-note,.compliance-note) span,
:root[data-theme="dark"] .delivery-provider-summary small { color:#c4d1d7; }
:root[data-theme="dark"] .compliance-note strong { color:#8dcbf1; }

:root[data-theme="dark"] .lifecycle-status-card {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}
:root[data-theme="dark"] .lifecycle-status-card > div { border-color:var(--border); }
:root[data-theme="dark"] .lifecycle-status-card span,
:root[data-theme="dark"] .lifecycle-status-card small { color:#afc0c9; }
:root[data-theme="dark"] .lifecycle-status-card strong { color:var(--text); }
:root[data-theme="dark"] .lifecycle-status-card.abolished { background:#303b43 !important; }

:root[data-theme="dark"] .lifecycle-flow { border-color:var(--border); background:var(--surface-soft) !important; }
:root[data-theme="dark"] .lifecycle-flow > div {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-raised);
}
:root[data-theme="dark"] .lifecycle-flow strong { color:var(--text); }
:root[data-theme="dark"] .lifecycle-flow small { color:#afc0c9; }
:root[data-theme="dark"] .lifecycle-flow b { color:#d9e4e9; background:#465660; }
:root[data-theme="dark"] .lifecycle-flow > span { color:#91a6b1; }
:root[data-theme="dark"] .lifecycle-flow .done b { background:#527b92; }
:root[data-theme="dark"] .lifecycle-flow .current { border-color:#62aee0; box-shadow:0 0 0 2px rgba(98,174,224,.16); }
:root[data-theme="dark"] .lifecycle-flow .current b { background:#397da9; }

:root[data-theme="dark"] .lifecycle-reflection {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .lifecycle-reflection-head h2,
:root[data-theme="dark"] .lifecycle-reflection-list article strong { color:var(--text); }
:root[data-theme="dark"] .lifecycle-reflection-head small,
:root[data-theme="dark"] .lifecycle-reflection-list article span:first-child,
:root[data-theme="dark"] .lifecycle-reflection-list article p,
:root[data-theme="dark"] .lifecycle-reflection-note { color:#afc0c9; }
:root[data-theme="dark"] .lifecycle-reflection-list article {
  border-color:var(--border);
  background:var(--surface-raised) !important;
}

:root[data-theme="dark"] .business-assignee-panel {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft) !important;
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .business-assignee-panel span,
:root[data-theme="dark"] .business-assignee-panel small { color:#afc0c9; }
:root[data-theme="dark"] .business-assignee-panel strong { color:var(--text); }

:root[data-theme="dark"] .delivery-provider-summary { border-color:var(--border); }
:root[data-theme="dark"] .delivery-provider-summary strong { color:var(--text); }
:root[data-theme="dark"] .reading-history-filter {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .reading-history-filter label { color:#c3d0d7; }

:root[data-theme="dark"] .supply-overview,
:root[data-theme="dark"] .cylinder-sides article,
:root[data-theme="dark"] .delivery-current-state {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}
:root[data-theme="dark"] .supply-overview > div,
:root[data-theme="dark"] .side-stats > div,
:root[data-theme="dark"] .delivery-current-state > div { border-color:var(--border); }
:root[data-theme="dark"] .side-head {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-raised) !important;
}
:root[data-theme="dark"] .side-head h3,
:root[data-theme="dark"] .side-stats strong,
:root[data-theme="dark"] .supply-overview strong,
:root[data-theme="dark"] .delivery-current-state strong { color:var(--text); }
:root[data-theme="dark"] .delivery-current-state span,
:root[data-theme="dark"] .delivery-current-state small { color:#afc0c9; }
:root[data-theme="dark"] .delivery-current-state .next { background:#344c59 !important; }
:root[data-theme="dark"] .delivery-current-state .next strong { color:#8dcbf1; }

:root[data-theme="dark"] .scope-note {
  color:var(--text);
  border-color:#526c7b;
  background:#344955 !important;
}
:root[data-theme="dark"] .scope-note small { color:#b8c7cf; }

:root[data-theme="dark"] .compliance-note {
  color:#c4d1d7;
  border:1px solid #526c7b;
}

/* Neutralize light paper panels that are used as structural bands. */
:root[data-theme="dark"] :where(
  .reading-kpis,
  .schedule-summary,
  .collective-reading-kpis,
  .document-summary,
  .notice-status-grid,
  .delivery-entry-summary,
  .forecast-calculation-basis
) {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}
:root[data-theme="dark"] :where(
  .reading-kpis,
  .schedule-summary,
  .collective-reading-kpis,
  .document-summary,
  .notice-status-grid,
  .delivery-entry-summary,
  .forecast-calculation-basis
) > div { border-color:var(--border); background:transparent; }
:root[data-theme="dark"] :where(
  .reading-kpis,
  .schedule-summary,
  .collective-reading-kpis,
  .document-summary,
  .notice-status-grid,
  .delivery-entry-summary,
  .forecast-calculation-basis
) :where(span,small) { color:#afc0c9; }
:root[data-theme="dark"] :where(
  .reading-kpis,
  .schedule-summary,
  .collective-reading-kpis,
  .document-summary,
  .notice-status-grid,
  .delivery-entry-summary,
  .forecast-calculation-basis
) strong { color:var(--text); }

/* Dark theme completion: route planning and organization master. */
:root[data-theme="dark"] .route-api-note,
:root[data-theme="dark"] .concept-validation-note {
  color:#c3d0d7;
  border:1px solid var(--info-border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .route-api-note span,
:root[data-theme="dark"] .concept-validation-note strong { color:#7fc1e9; }
:root[data-theme="dark"] .concept-validation-note span { color:#b6c6ce; }

:root[data-theme="dark"] .route-trip {
  border-color:var(--border);
  background:var(--surface);
}
:root[data-theme="dark"] .route-trip-head {
  color:#c8d5db;
  border-bottom:1px solid var(--border);
  background:var(--surface-soft);
}
:root[data-theme="dark"] .route-trip-head > strong {
  color:#f4f8fa;
  background:#356f96;
}
:root[data-theme="dark"] .route-trip-head b { color:#eef4f6; }
:root[data-theme="dark"] .route-strategy-bar > strong,
:root[data-theme="dark"] .route-capacity-grid strong { color:var(--text); }
:root[data-theme="dark"] .route-capacity-grid span,
:root[data-theme="dark"] .route-capacity-grid small { color:#b2c2ca; }

:root[data-theme="dark"] .ai-dispatch-hero,
:root[data-theme="dark"] .ai-dispatch-actions {
  color:var(--text);
  border-color:var(--info-border);
  background:var(--surface-soft) !important;
}
:root[data-theme="dark"] .ai-dispatch-hero h2,
:root[data-theme="dark"] .ai-dispatch-kpis strong,
:root[data-theme="dark"] .ai-review-card strong,
:root[data-theme="dark"] .ai-check-list b { color:var(--text); }
:root[data-theme="dark"] .ai-dispatch-hero p,
:root[data-theme="dark"] .ai-dispatch-kpis span,
:root[data-theme="dark"] .ai-review-card span,
:root[data-theme="dark"] .ai-review-card small,
:root[data-theme="dark"] .ai-dispatch-actions span,
:root[data-theme="dark"] .ai-trip-assignment label,
:root[data-theme="dark"] .ai-check-list span { color:#b2c2ca; }
:root[data-theme="dark"] .ai-dispatch-kpis article,
:root[data-theme="dark"] .ai-review-card,
:root[data-theme="dark"] .ai-check-list button {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}
:root[data-theme="dark"] .ai-check-list button:hover,
:root[data-theme="dark"] .ai-check-list button:focus-visible {
  border-color:#5d8297;
  background:var(--surface-raised) !important;
}

:root[data-theme="dark"] .route-map-preview {
  border-color:var(--info-border);
  background:
    radial-gradient(circle at 18% 70%,rgba(72,128,113,.18),transparent 26%),
    radial-gradient(circle at 76% 22%,rgba(72,120,153,.18),transparent 31%),
    linear-gradient(135deg,#2a3941,#303f48 48%,#293941);
}
:root[data-theme="dark"] .route-map-line {
  border-color:#69b5e5 transparent transparent #69b5e5;
  opacity:.9;
}
:root[data-theme="dark"] .route-stop {
  border-color:#d6e2e7;
  box-shadow:0 3px 10px rgba(4,12,17,.34);
}
:root[data-theme="dark"] .route-stop span { color:#e6eef1; }
:root[data-theme="dark"] .route-summary {
  color:var(--text);
  border:1px solid var(--border);
  background:rgba(43,56,65,.94);
}
:root[data-theme="dark"] .route-summary small { color:#b4c3cb; }
:root[data-theme="dark"] .route-real-map { border-color:var(--info-border); background:#212b31; }
:root[data-theme="dark"] .route-map-load-note { border-color:#8a6a1e; color:#f0d488; background:#3a2f10; }
:root[data-theme="dark"] .route-map-coord-note { border-color:var(--border); color:#b4c3cb; background:var(--surface-soft); }
:root[data-theme="dark"] .route-map-api-summary-row { border-color:var(--border); color:#b4c3cb; background:var(--surface-soft); }
:root[data-theme="dark"] .route-map-api-summary-row.ok { border-color:#3f7a56; color:#8fd6ab; background:#173226; }
:root[data-theme="dark"] .route-map-api-summary-row.warn { border-color:#8a6a1e; color:#f0d488; background:#3a2f10; }

:root[data-theme="dark"] .organization-filters {
  border-color:var(--border);
  background:var(--surface-soft);
}
:root[data-theme="dark"] .organization-filters label { color:#b8c7cf; }
:root[data-theme="dark"] .business-role-matrix {
  border-color:var(--border);
  background:var(--surface);
}
:root[data-theme="dark"] .business-role-matrix .matrix-head {
  color:#b8c7cf;
  background:var(--surface-soft);
}
:root[data-theme="dark"] .business-role-matrix .matrix-head,
:root[data-theme="dark"] .business-role-matrix label { border-color:var(--border); }
:root[data-theme="dark"] .business-role-matrix label:hover { background:#354650; }
:root[data-theme="dark"] .role-tags span {
  color:#bfe4f5;
  background:#36505e;
}
:root[data-theme="dark"] .relationship-chip {
  color:#d3dde2;
  background:#414f58;
}

/* Dark theme completion: lifecycle alerts and route utility bands. */
:root[data-theme="dark"] .dashboard-lifecycle-alert {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface-soft);
}
:root[data-theme="dark"] .dashboard-lifecycle-alert:hover,
:root[data-theme="dark"] .dashboard-lifecycle-alert:focus-visible {
  background:#354650;
}
:root[data-theme="dark"] .dashboard-lifecycle-alert strong { color:var(--text); }
:root[data-theme="dark"] .dashboard-lifecycle-alert small { color:#b5c5cd; }
:root[data-theme="dark"] .dashboard-lifecycle-alert b { color:#79bee8; }

:root[data-theme="dark"] .route-toolbox-group { border-color:var(--border); }
:root[data-theme="dark"] .route-toolbox-group > span { color:#79bee8; }
:root[data-theme="dark"] .route-toolbox-group small { color:#b4c3cb; }

:root[data-theme="dark"] .delivery-no-forecast {
  color:var(--text);
  border-color:#60717b;
  background:var(--surface-soft);
}
:root[data-theme="dark"] .delivery-no-forecast strong { color:#e8f1f4; }
:root[data-theme="dark"] .delivery-no-forecast span { color:#b9c8d0; }

@media(max-width:680px) {
  .environment-indicator { padding:4px 7px; }
  .environment-indicator small { display:none; }
  .theme-toggle b { display:none; }
  .theme-toggle { width:36px; justify-content:center; padding:6px; }
  .topbar-actions { gap:8px; }
}

:root[data-theme="dark"] .environment-indicator.local { color:#b9e2f6; border-color:#486b7d; background:#294653; }
:root[data-theme="dark"] .environment-indicator.development { color:#f4d69f; border-color:#765e35; background:#54472f; }
:root[data-theme="dark"] .environment-indicator.internal { color:#bce8d0; border-color:#486d5a; background:#2e4d3f; }

@media print {
  :root[data-theme="dark"] { color-scheme:light; --bg:#fff; --surface:#fff; --border:#dce3e8; --text:#263746; --muted:#687986; }
  :root[data-theme="dark"] body { color:#263746; background:#fff; }
}

/* ===================================================================
   Dark mode parity pass (2026-08): additive-only overrides that bring
   remaining light-mode-only panels in line with the dark palette.
   Does not modify any existing light-mode rule above.
   =================================================================== */

/* auto dark-parity: surface panels (82) */
:root[data-theme="dark"] :where(
  .monitor-center-kpis,
  .forecast-review-context article,
  .task-completed,
  .task-result-summary>div,
  .delivery-result-tabs,
  .delivery-history-kpis article,
  .delivery-workflow-grid,
  .delivery-correction-chain,
  .cancellation-impact-summary,
  .mobile-overview div,
  .mobile-trip-tab,
  .mobile-direct-entry,
  .mobile-address,
  .mobile-summary-grid div,
  .mobile-entry-card,
  .mobile-empty,
  .mobile-lifecycle-block > div,
  .inline-setting,
  .room-preview,
  .room-chips span,
  .lifecycle-checks,
  .business-block-head,
  .schedule-strip span,
  .compliance-filter button,
  .notice-scope,
  .route-pending-note,
  .reading-work-note,
  .reading-validation-message,
  .danger-outline,
  .login-card,
  .login-users button,
  .container-entry-panel,
  .forecast-recalculation-compare article,
  .ai-review-values,
  .forecast-readiness-item,
  .bulk-identity-grid,
  .bulk-inspection-grid article,
  .bulk-ledger-columns > section,
  .collective-quality-note,
  .collective-calculation,
  .calculation-flow > div,
  .cancelled-row,
  .delivery-confirm-summary,
  .delivery-validation-card,
  .delivery-validation-card.error,
  .delivery-reflection-preview article,
  .reading-confirm-summary > div,
  .reading-confirm-card,
  .reading-reflection-preview article,
  .reading-forecast-kpis,
  .reading-calculation-flow > div,
  .delivery-container-state,
  .delivery-container-movement,
  .delivery-state-container,
  .delivery-container-movement section,
  .mobile-connectivity-counts span,
  .mobile-sync-issue,
  .mobile-reflection-grid > div,
  .mobile-entry-group,
  .mobile-container-tools button,
  .mobile-container-added,
  .mobile-container-candidates label,
  .mobile-container-search-result,
  .mobile-container-search-result:disabled,
  .mobile-inspection,
  .mobile-meter-warning span,
  .mobile-inspection-item input:disabled,
  .mobile-map-card,
  .mobile-map-providers button,
  .post-equipment-grid article,
  .equipment-change-result,
  .delivery-result-id,
  .delivery-result-summary,
  .container-reconciliation-counts,
  .equipment-before-after article,
  .mobile-sync-screen-filters,
  .mobile-sync-compare article,
  .mobile-sync-history-table table,
  .delivery-audit-strip,
  .container-review-resolved,
  .delivery-container-review-empty,
  .lifecycle-work-block,
  .lifecycle-task-summary button,
  .lifecycle-task-table tr.completed,
  .lifecycle-task-assets
) {
  color:var(--text);
  border-color:var(--border);
  background:var(--surface) !important;
}

/* auto dark-parity: info panels (71) */
:root[data-theme="dark"] :where(
  .issue-document,
  .forecast-review-form,
  .task-creation-note,
  .task-type-chip,
  .task-type-chip.data,
  .delivery-history-filters,
  .forecast-resolve-button,
  .supply-switch,
  .meter-entry-line>div,
  .system-recommendation,
  .reading-baselines,
  .route-mark,
  .route-editor-note,
  .mobile-shell,
  .mobile-direct-entry button,
  .mobile-nav-actions a,
  .reading-entry-customer-context,
  .contact-owner,
  .property-map-address:hover,
  .property-map-icon,
  .policy-symbol,
  .lifecycle-operation-summary,
  .lifecycle-impact-preview,
  .lifecycle-inline-checks,
  .contract-link-context,
  .reading-correction-banner,
  .reading-audit-forecast,
  .law-chip,
  .login-users button:hover,
  .login-note,
  .data-foundation-note,
  .mobile-container-candidates,
  .forecast-recalculation-compare article.proposed,
  .ai-forecast-review,
  .readiness-summary,
  .readiness-mode-editor,
  .selected-row,
  .bulk-history-strip,
  .property-bulk-ledger-link,
  .collective-reading-hero,
  .collective-child-table tr.clickable-row:hover,
  .collective-child-table tfoot td,
  .calculation-formula,
  .delivery-validation-card h3 span,
  .delivery-reflection-preview,
  .reading-reflection-preview,
  .reading-forecast-impact-hero,
  .reading-calculation-flow,
  .reading-forecast-empty,
  .delivery-state-transition,
  .mobile-status.queued,
  .mobile-connectivity,
  .mobile-package-state,
  .mobile-offline-prep,
  .mobile-sync-lists details,
  .mobile-sync-row,
  .mobile-stop-card.draft,
  .mobile-nav-actions a:hover,
  .mobile-route-shared,
  .mobile-open-entry.is-open,
  .mobile-reflection.queued,
  .mobile-entry-group.important,
  .mobile-container-entry,
  .mobile-map-toggle,
  .mobile-map-toggle:hover,
  .mobile-map-head,
  .equipment-transition-panel,
  .container-reconciliation-message,
  .equipment-before-after article:last-child,
  .delivery-container-review-tools,
  .container-review-batch-bar,
  .lifecycle-exclusion-note,
  .lifecycle-task-filters,
  .lifecycle-task-modal-body,
  .contract-editor-history,
  .customer-change-history
) {
  color:var(--text);
  border-color:var(--info-border);
  background:var(--surface-soft) !important;
}

/* auto dark-parity: warning panels (32) */
:root[data-theme="dark"] :where(
  .container-search-conflict,
  .prediction-review-reason,
  .forecast-review-button,
  .forecast-review-button:hover,
  .forecast-review-alert,
  .delivery-history-kpis article.needs-review,
  .delivery-slip-status.direct,
  .route-cutoff.warning,
  .mobile-status.hold,
  .mobile-hold,
  .mobile-reading-note,
  .mobile-lifecycle-block,
  .policy-symbol.billing,
  .ai-forecast-review.needs-review,
  .readiness-summary.missing,
  .forecast-readiness-item.missing,
  .delivery-validation-card.warning,
  .delivery-validation-card.warning h3 span,
  .delivery-warning-consent,
  .reading-confirm-card.warning,
  .delivery-container-state section.is-unset,
  .mobile-connectivity.offline,
  .mobile-package-state.stale,
  .mobile-storage-warning,
  .mobile-sync-edit-banner,
  .mobile-status.error,
  .mobile-stop-card.error,
  .mobile-sync-issue span,
  .mobile-reflection.review,
  .equipment-change-result.changed,
  .container-transfer-button,
  .container-transfer-button:hover,
  .container-transfer-row,
  .mobile-container-search-result.container-search-conflict,
  .needs-review .container-reconciliation-message,
  .container-followup-button,
  .container-followup-button:hover
) {
  color:var(--text);
  border-color:#806542;
  background:var(--warning-soft) !important;
}

/* auto dark-parity: success panels (8) */
:root[data-theme="dark"] :where(
  .task-adopted-date,
  .relationship-bar,
  .delivery-guidance,
  .safety-work-note,
  .reading-validation-message.valid,
  .safety-notice .law-chip,
  .delivery-container-state section.is-use-side,
  .mobile-reflection
) {
  color:var(--text);
  border-color:#3f6f57;
  background:var(--success-soft) !important;
}

/* auto dark-parity: danger panels (4) */
:root[data-theme="dark"] :where(
  .reading-validation-message.invalid,
  .delivery-validation-card.error h3 span,
  .reading-confirm-card.error,
  .equipment-change-result.error
) {
  color:var(--text);
  border-color:#8a5558;
  background:var(--danger-soft) !important;
}

/* auto dark-parity: normalize inner text of the panels above */
:root[data-theme="dark"] :where(
  .monitor-center-kpis,
  .forecast-review-context article,
  .task-completed,
  .task-result-summary>div,
  .delivery-result-tabs,
  .delivery-history-kpis article,
  .delivery-workflow-grid,
  .delivery-correction-chain,
  .cancellation-impact-summary,
  .mobile-overview div,
  .mobile-trip-tab,
  .mobile-direct-entry,
  .mobile-address,
  .mobile-summary-grid div,
  .mobile-entry-card,
  .mobile-empty,
  .mobile-lifecycle-block > div,
  .inline-setting,
  .room-preview,
  .room-chips span,
  .lifecycle-checks,
  .business-block-head,
  .schedule-strip span,
  .compliance-filter button,
  .notice-scope,
  .route-pending-note,
  .reading-work-note,
  .reading-validation-message,
  .danger-outline,
  .login-card,
  .login-users button,
  .container-entry-panel,
  .forecast-recalculation-compare article,
  .ai-review-values,
  .forecast-readiness-item,
  .bulk-identity-grid,
  .bulk-inspection-grid article,
  .bulk-ledger-columns > section,
  .collective-quality-note,
  .collective-calculation,
  .calculation-flow > div,
  .cancelled-row,
  .delivery-confirm-summary,
  .delivery-validation-card,
  .delivery-validation-card.error,
  .delivery-reflection-preview article,
  .reading-confirm-summary > div,
  .reading-confirm-card,
  .reading-reflection-preview article,
  .reading-forecast-kpis,
  .reading-calculation-flow > div,
  .delivery-container-state,
  .delivery-container-movement,
  .delivery-state-container,
  .delivery-container-movement section,
  .mobile-connectivity-counts span,
  .mobile-sync-issue,
  .mobile-reflection-grid > div,
  .mobile-entry-group,
  .mobile-container-tools button,
  .mobile-container-added,
  .mobile-container-candidates label,
  .mobile-container-search-result,
  .mobile-container-search-result:disabled,
  .mobile-inspection,
  .mobile-meter-warning span,
  .mobile-inspection-item input:disabled,
  .mobile-map-card,
  .mobile-map-providers button,
  .post-equipment-grid article,
  .equipment-change-result,
  .delivery-result-id,
  .delivery-result-summary,
  .container-reconciliation-counts,
  .equipment-before-after article,
  .mobile-sync-screen-filters,
  .mobile-sync-compare article,
  .mobile-sync-history-table table,
  .delivery-audit-strip,
  .container-review-resolved,
  .delivery-container-review-empty,
  .lifecycle-work-block,
  .lifecycle-task-summary button,
  .lifecycle-task-table tr.completed,
  .lifecycle-task-assets,
  .issue-document,
  .forecast-review-form,
  .task-creation-note,
  .task-type-chip,
  .task-type-chip.data,
  .delivery-history-filters,
  .forecast-resolve-button,
  .supply-switch,
  .meter-entry-line>div,
  .system-recommendation,
  .reading-baselines,
  .route-mark,
  .route-editor-note,
  .mobile-shell,
  .mobile-direct-entry button,
  .mobile-nav-actions a,
  .reading-entry-customer-context,
  .contact-owner,
  .property-map-address:hover,
  .property-map-icon,
  .policy-symbol,
  .lifecycle-operation-summary,
  .lifecycle-impact-preview,
  .lifecycle-inline-checks,
  .contract-link-context,
  .reading-correction-banner,
  .reading-audit-forecast,
  .law-chip,
  .login-users button:hover,
  .login-note,
  .data-foundation-note,
  .mobile-container-candidates,
  .forecast-recalculation-compare article.proposed,
  .ai-forecast-review,
  .readiness-summary,
  .readiness-mode-editor,
  .selected-row,
  .bulk-history-strip,
  .property-bulk-ledger-link,
  .collective-reading-hero,
  .collective-child-table tr.clickable-row:hover,
  .collective-child-table tfoot td,
  .calculation-formula,
  .delivery-validation-card h3 span,
  .delivery-reflection-preview,
  .reading-reflection-preview,
  .reading-forecast-impact-hero,
  .reading-calculation-flow,
  .reading-forecast-empty,
  .delivery-state-transition,
  .mobile-status.queued,
  .mobile-connectivity,
  .mobile-package-state,
  .mobile-offline-prep,
  .mobile-sync-lists details,
  .mobile-sync-row,
  .mobile-stop-card.draft,
  .mobile-nav-actions a:hover,
  .mobile-route-shared,
  .mobile-open-entry.is-open,
  .mobile-reflection.queued,
  .mobile-entry-group.important,
  .mobile-container-entry,
  .mobile-map-toggle,
  .mobile-map-toggle:hover,
  .mobile-map-head,
  .equipment-transition-panel,
  .container-reconciliation-message,
  .equipment-before-after article:last-child,
  .delivery-container-review-tools,
  .container-review-batch-bar,
  .lifecycle-exclusion-note,
  .lifecycle-task-filters,
  .lifecycle-task-modal-body,
  .contract-editor-history,
  .customer-change-history,
  .container-search-conflict,
  .prediction-review-reason,
  .forecast-review-button,
  .forecast-review-button:hover,
  .forecast-review-alert,
  .delivery-history-kpis article.needs-review,
  .delivery-slip-status.direct,
  .route-cutoff.warning,
  .mobile-status.hold,
  .mobile-hold,
  .mobile-reading-note,
  .mobile-lifecycle-block,
  .policy-symbol.billing,
  .ai-forecast-review.needs-review,
  .readiness-summary.missing,
  .forecast-readiness-item.missing,
  .delivery-validation-card.warning,
  .delivery-validation-card.warning h3 span,
  .delivery-warning-consent,
  .reading-confirm-card.warning,
  .delivery-container-state section.is-unset,
  .mobile-connectivity.offline,
  .mobile-package-state.stale,
  .mobile-storage-warning,
  .mobile-sync-edit-banner,
  .mobile-status.error,
  .mobile-stop-card.error,
  .mobile-sync-issue span,
  .mobile-reflection.review,
  .equipment-change-result.changed,
  .container-transfer-button,
  .container-transfer-button:hover,
  .container-transfer-row,
  .mobile-container-search-result.container-search-conflict,
  .needs-review .container-reconciliation-message,
  .container-followup-button,
  .container-followup-button:hover,
  .task-adopted-date,
  .relationship-bar,
  .delivery-guidance,
  .safety-work-note,
  .reading-validation-message.valid,
  .safety-notice .law-chip,
  .delivery-container-state section.is-use-side,
  .mobile-reflection,
  .reading-validation-message.invalid,
  .delivery-validation-card.error h3 span,
  .reading-confirm-card.error,
  .equipment-change-result.error
) :where(strong,b,h1,h2,h3,h4,dd) { color:var(--text); }
:root[data-theme="dark"] :where(
  .monitor-center-kpis,
  .forecast-review-context article,
  .task-completed,
  .task-result-summary>div,
  .delivery-result-tabs,
  .delivery-history-kpis article,
  .delivery-workflow-grid,
  .delivery-correction-chain,
  .cancellation-impact-summary,
  .mobile-overview div,
  .mobile-trip-tab,
  .mobile-direct-entry,
  .mobile-address,
  .mobile-summary-grid div,
  .mobile-entry-card,
  .mobile-empty,
  .mobile-lifecycle-block > div,
  .inline-setting,
  .room-preview,
  .room-chips span,
  .lifecycle-checks,
  .business-block-head,
  .schedule-strip span,
  .compliance-filter button,
  .notice-scope,
  .route-pending-note,
  .reading-work-note,
  .reading-validation-message,
  .danger-outline,
  .login-card,
  .login-users button,
  .container-entry-panel,
  .forecast-recalculation-compare article,
  .ai-review-values,
  .forecast-readiness-item,
  .bulk-identity-grid,
  .bulk-inspection-grid article,
  .bulk-ledger-columns > section,
  .collective-quality-note,
  .collective-calculation,
  .calculation-flow > div,
  .cancelled-row,
  .delivery-confirm-summary,
  .delivery-validation-card,
  .delivery-validation-card.error,
  .delivery-reflection-preview article,
  .reading-confirm-summary > div,
  .reading-confirm-card,
  .reading-reflection-preview article,
  .reading-forecast-kpis,
  .reading-calculation-flow > div,
  .delivery-container-state,
  .delivery-container-movement,
  .delivery-state-container,
  .delivery-container-movement section,
  .mobile-connectivity-counts span,
  .mobile-sync-issue,
  .mobile-reflection-grid > div,
  .mobile-entry-group,
  .mobile-container-tools button,
  .mobile-container-added,
  .mobile-container-candidates label,
  .mobile-container-search-result,
  .mobile-container-search-result:disabled,
  .mobile-inspection,
  .mobile-meter-warning span,
  .mobile-inspection-item input:disabled,
  .mobile-map-card,
  .mobile-map-providers button,
  .post-equipment-grid article,
  .equipment-change-result,
  .delivery-result-id,
  .delivery-result-summary,
  .container-reconciliation-counts,
  .equipment-before-after article,
  .mobile-sync-screen-filters,
  .mobile-sync-compare article,
  .mobile-sync-history-table table,
  .delivery-audit-strip,
  .container-review-resolved,
  .delivery-container-review-empty,
  .lifecycle-work-block,
  .lifecycle-task-summary button,
  .lifecycle-task-table tr.completed,
  .lifecycle-task-assets,
  .issue-document,
  .forecast-review-form,
  .task-creation-note,
  .task-type-chip,
  .task-type-chip.data,
  .delivery-history-filters,
  .forecast-resolve-button,
  .supply-switch,
  .meter-entry-line>div,
  .system-recommendation,
  .reading-baselines,
  .route-mark,
  .route-editor-note,
  .mobile-shell,
  .mobile-direct-entry button,
  .mobile-nav-actions a,
  .reading-entry-customer-context,
  .contact-owner,
  .property-map-address:hover,
  .property-map-icon,
  .policy-symbol,
  .lifecycle-operation-summary,
  .lifecycle-impact-preview,
  .lifecycle-inline-checks,
  .contract-link-context,
  .reading-correction-banner,
  .reading-audit-forecast,
  .law-chip,
  .login-users button:hover,
  .login-note,
  .data-foundation-note,
  .mobile-container-candidates,
  .forecast-recalculation-compare article.proposed,
  .ai-forecast-review,
  .readiness-summary,
  .readiness-mode-editor,
  .selected-row,
  .bulk-history-strip,
  .property-bulk-ledger-link,
  .collective-reading-hero,
  .collective-child-table tr.clickable-row:hover,
  .collective-child-table tfoot td,
  .calculation-formula,
  .delivery-validation-card h3 span,
  .delivery-reflection-preview,
  .reading-reflection-preview,
  .reading-forecast-impact-hero,
  .reading-calculation-flow,
  .reading-forecast-empty,
  .delivery-state-transition,
  .mobile-status.queued,
  .mobile-connectivity,
  .mobile-package-state,
  .mobile-offline-prep,
  .mobile-sync-lists details,
  .mobile-sync-row,
  .mobile-stop-card.draft,
  .mobile-nav-actions a:hover,
  .mobile-route-shared,
  .mobile-open-entry.is-open,
  .mobile-reflection.queued,
  .mobile-entry-group.important,
  .mobile-container-entry,
  .mobile-map-toggle,
  .mobile-map-toggle:hover,
  .mobile-map-head,
  .equipment-transition-panel,
  .container-reconciliation-message,
  .equipment-before-after article:last-child,
  .delivery-container-review-tools,
  .container-review-batch-bar,
  .lifecycle-exclusion-note,
  .lifecycle-task-filters,
  .lifecycle-task-modal-body,
  .contract-editor-history,
  .customer-change-history,
  .container-search-conflict,
  .prediction-review-reason,
  .forecast-review-button,
  .forecast-review-button:hover,
  .forecast-review-alert,
  .delivery-history-kpis article.needs-review,
  .delivery-slip-status.direct,
  .route-cutoff.warning,
  .mobile-status.hold,
  .mobile-hold,
  .mobile-reading-note,
  .mobile-lifecycle-block,
  .policy-symbol.billing,
  .ai-forecast-review.needs-review,
  .readiness-summary.missing,
  .forecast-readiness-item.missing,
  .delivery-validation-card.warning,
  .delivery-validation-card.warning h3 span,
  .delivery-warning-consent,
  .reading-confirm-card.warning,
  .delivery-container-state section.is-unset,
  .mobile-connectivity.offline,
  .mobile-package-state.stale,
  .mobile-storage-warning,
  .mobile-sync-edit-banner,
  .mobile-status.error,
  .mobile-stop-card.error,
  .mobile-sync-issue span,
  .mobile-reflection.review,
  .equipment-change-result.changed,
  .container-transfer-button,
  .container-transfer-button:hover,
  .container-transfer-row,
  .mobile-container-search-result.container-search-conflict,
  .needs-review .container-reconciliation-message,
  .container-followup-button,
  .container-followup-button:hover,
  .task-adopted-date,
  .relationship-bar,
  .delivery-guidance,
  .safety-work-note,
  .reading-validation-message.valid,
  .safety-notice .law-chip,
  .delivery-container-state section.is-use-side,
  .mobile-reflection,
  .reading-validation-message.invalid,
  .delivery-validation-card.error h3 span,
  .reading-confirm-card.error,
  .equipment-change-result.error
) :where(span,small,p,dt,i) { color:var(--muted); }

/* auto dark-parity: second pass — small residual hardcoded slate-blue text
   (secondary/caption text) left unreadable on dark surfaces. Purely additive. */
:root[data-theme="dark"] :where(
  .delivery-check-empty,
  .lifecycle-event h3 small,
  .lifecycle-event-meta,
  .mobile-meter-warning-row > small,
  .mobile-form-grid label small,
  .unpredictable-meta,
  .mobile-sync-latest,
  .mobile-container-entry-head small,
  .mobile-container-added-row small,
  .delivery-state-transition-head p,
  .mobile-map-attribution,
  .table-empty,
  .mobile-list-head span,
  .collective-basis span,
  .collective-basis small,
  .mobile-connectivity-state small,
  .mobile-reflection-head small,
  .mobile-stop-title p,
  .delivery-result-hero p,
  .calculation-status-line,
  .mobile-container-code-row > i,
  .mobile-container-code-row > b,
  .monitor-notify-options legend,
  .delivery-period-filter label,
  .issued-slip-filters label,
  .mobile-container-code-row label span,
  .property-export-flow span,
  .container-input-alternative,
  .container-input-field > span,
  .container-code-delimiter,
  .mobile-form-grid label,
  .delivery-check-list,
  .mobile-meter-warning-row > strong,
  .delivery-check-item span
) { color:var(--muted) !important; }

/* auto dark-parity: prominent labels/headings using hardcoded dark navy */
:root[data-theme="dark"] :where(
  .mobile-container-entry-head strong,
  .mobile-reflection-head strong,
  .mobile-container-added-row strong,
  .mobile-connectivity-state strong,
  .delivery-state-transition-head h3,
  .resolution-incident-history h3,
  .modal-note,
  .task-result-text,
  .container-reconciliation-history summary
) { color:var(--text) !important; }

/* auto dark-parity: business-critical warning notes must stay legible, not dim */
:root[data-theme="dark"] :where(.transfer-note, .equipment-history-note) { color:#e2c48f !important; }
:root[data-theme="dark"] .mobile-container-added-row button { color:#e39a9a; }

/* auto dark-parity: semantic-green labels keep the success tone, just lighter */
:root[data-theme="dark"] :where(.lpwa-summary strong, .lifecycle-task-outcome) { color:var(--success) !important; }

/* auto dark-parity: "次回配送予測日" summary card (parent-managed / suspended variants) —
   business-critical field, must stay clearly legible in dark mode. */
:root[data-theme="dark"] .forecast-summary.parent-managed,
:root[data-theme="dark"] .forecast-summary.suspended {
  border-color:var(--info-border);
  background:linear-gradient(125deg, var(--surface-raised), var(--surface-soft));
  color:var(--text);
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .forecast-summary.parent-managed:hover,
:root[data-theme="dark"] .forecast-summary.suspended:hover {
  border-color:var(--blue);
  background:linear-gradient(125deg, var(--surface-raised), var(--surface));
}
:root[data-theme="dark"] .forecast-summary.parent-managed strong,
:root[data-theme="dark"] .forecast-summary.suspended strong { color:var(--text); }
:root[data-theme="dark"] .forecast-summary.parent-managed span,
:root[data-theme="dark"] .forecast-summary.parent-managed small,
:root[data-theme="dark"] .forecast-summary.suspended span,
:root[data-theme="dark"] .forecast-summary.suspended small { color:var(--muted); }
