.historical-optimization-dialog{width:min(1440px,96vw);max-width:96vw;max-height:94vh;border:1px solid #cbd5e1;border-radius:16px;padding:0;color:#14213d;background:#fff;box-shadow:0 22px 60px #0f172a45}
.historical-optimization-dialog::backdrop{background:#0f172a99}
.historical-optimization-header{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid #e2e8f0}
.historical-optimization-header p{margin:.25rem 0 0;color:#475569}
.historical-optimization-body{padding:1rem 1.25rem 1.5rem;overflow:auto;max-height:calc(94vh - 90px)}
.historical-optimization-inputs{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:.75rem;align-items:end}
.historical-optimization-inputs label,.historical-optimization-map-controls label{display:grid;gap:.25rem;font-size:.82rem;font-weight:650;color:#334155}
.historical-optimization-inputs input,.historical-optimization-inputs select,.historical-optimization-map-controls select{box-sizing:border-box;width:100%;min-height:38px;border:1px solid #cbd5e1;border-radius:8px;padding:.4rem;background:#fff;color:#0f172a}
.historical-optimization-status{padding:.7rem .9rem;border-radius:8px;background:#eff6ff;color:#1e40af;margin:1rem 0 .5rem}
.historical-optimization-status[data-state="error"]{background:#fef2f2;color:#991b1b}
.historical-optimization-status[data-state="success"]{background:#ecfdf5;color:#065f46}
.historical-optimization-note,.historical-optimization-map-note{font-size:.82rem;line-height:1.45;color:#475569}
.historical-optimization-rules{font-size:.8rem;color:#475569;margin:.5rem 0}.historical-optimization-rules p{line-height:1.45;margin:.35rem 0}
.historical-optimization-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:.65rem;margin:1rem 0}
.historical-optimization-metrics div{border:1px solid #dbe4ee;border-radius:10px;background:#f8fafc;padding:.7rem}
.historical-optimization-metrics strong{display:block;font-size:1.24rem;color:#0f3e84}
.historical-optimization-metrics span{font-size:.76rem;color:#475569}
.historical-optimization-warnings:empty{display:none}
.historical-optimization-warnings{padding:.65rem .8rem;background:#fffbeb;color:#92400e;border-left:3px solid #f59e0b;margin:.75rem 0}
.historical-optimization-table-wrap{overflow:auto;border:1px solid #dbe4ee;border-radius:10px}
.historical-optimization-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:1040px}
.historical-optimization-table caption{text-align:left;padding:.6rem .75rem;color:#475569;font-size:.78rem}
.historical-optimization-table th{background:#0e376f;color:#fff;text-align:left;padding:.65rem;vertical-align:bottom}
.historical-optimization-table td{padding:.65rem;border-top:1px solid #e2e8f0;white-space:nowrap}
.historical-optimization-table tbody tr:nth-child(even){background:#f8fafc}
.historical-optimization-map-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin:1rem 0 .55rem}
.historical-optimization-map-controls label{min-width:210px}
.historical-optimization-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;align-items:start}
.historical-optimization-map-card{min-width:0;border:1px solid #dbe4ee;border-radius:10px;padding:.6rem;background:#fff}
.historical-optimization-map-card h4{margin:.1rem 0 .55rem;font-size:.92rem;color:#0f3e84}
.historical-optimization-map{height:420px;min-height:300px;border:1px solid #cbd5e1;border-radius:8px}
.historical-stop-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px #0f172a80;color:#fff;font-size:11px;font-weight:800}
.historical-stop-current{background:#2563eb}.historical-stop-proposed{background:#16a34a}
.historical-optimization-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8rem;margin:.5rem 0;color:#475569}
.historical-optimization-legend span::before{content:"";display:inline-block;width:24px;height:3px;margin:0 .35rem .2rem 0;background:currentColor}
.historical-optimization-legend-actual{color:#111827}
.historical-optimization-legend-current{color:#2563eb}
.historical-optimization-legend-proposed{color:#16a34a}
#historical-optimization-details{font-size:.82rem;line-height:1.5;padding:.5rem 0;max-height:220px;overflow:auto}
#historical-optimization-details p{margin:.2rem 0}
#historical-optimization-low-sale{font-size:.82rem;line-height:1.5;padding:.5rem 0;max-height:240px;overflow:auto}
#historical-optimization-low-sale p{margin:.2rem 0}
.historical-optimization-audit,.historical-optimization-editor{border:1px solid #dbe4ee;border-radius:10px;padding:.75rem;margin:.8rem 0;background:#fff}
.historical-optimization-audit summary{font-weight:700;cursor:pointer}
#historical-optimization-universe-list{max-height:230px;overflow:auto;font-size:.78rem;line-height:1.45}
#historical-optimization-universe-list p{margin:.18rem 0;padding:.15rem .35rem}
.historical-universe-exception{background:#fff7ed;color:#9a3412}
.historical-optimization-editor h4{margin:.1rem 0;color:#0f3e84}
.historical-optimization-editor p{font-size:.8rem;color:#475569;line-height:1.4}
.historical-optimization-editor-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end;margin:.6rem 0}
.historical-optimization-editor-toolbar label{display:grid;gap:.2rem;font-size:.8rem;min-width:230px}
.historical-optimization-editor-toolbar input,.historical-editor-row select{min-height:34px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;padding:.3rem}
.historical-optimization-client-list{max-height:280px;overflow:auto;border:1px solid #e2e8f0;border-radius:7px}
.historical-editor-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem .55rem;border-bottom:1px solid #e2e8f0;font-size:.78rem}
.historical-editor-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#historical-optimization-edit-status{font-weight:650;color:#0f3e84}
@media(max-width:900px){.historical-optimization-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1050px){.historical-optimization-map-grid{grid-template-columns:1fr}.historical-optimization-map{height:390px}}
@media(max-width:760px){.historical-optimization-inputs{grid-template-columns:1fr 1fr}.historical-optimization-metrics{grid-template-columns:repeat(2,1fr)}.historical-optimization-map{height:340px}}
@media(max-width:500px){.historical-optimization-inputs{grid-template-columns:1fr}.historical-optimization-body{padding:.7rem}}

/* Full-screen workspace: keep controls readable while allowing the comparison to scroll. */
.historical-optimization-dialog{position:fixed;inset:0;box-sizing:border-box;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border-radius:0}
.historical-optimization-dialog[open]{display:flex;flex-direction:column}
.historical-optimization-header{flex:0 0 auto;padding:.8rem 1.25rem}
.historical-optimization-body{flex:1 1 auto;min-height:0;width:100%;box-sizing:border-box;max-height:none;padding:1rem 1.25rem 2rem;overflow:auto;overscroll-behavior:contain}
.historical-optimization-map{height:clamp(390px,54vh,760px);min-height:390px}
.historical-optimization-weekly-card{margin-top:1rem;border:1px solid #dbe4ee;border-radius:10px;padding:.75rem;background:#fff}
.historical-optimization-weekly-card h4{margin:.1rem 0 .65rem;color:#0f3e84}
.historical-optimization-weekly-map{height:clamp(460px,64vh,900px);min-height:460px;border:1px solid #cbd5e1;border-radius:8px}
.historical-optimization-weekly-legend{display:flex;flex-wrap:wrap;gap:.45rem .9rem;margin:.65rem 0}
.historical-optimization-weekly-legend span{display:inline-flex;align-items:center;gap:.35rem;color:#334155;font-size:.82rem;font-weight:650}
.historical-optimization-weekly-legend i{display:inline-block;width:16px;height:12px;border:1px solid currentColor;border-radius:2px;box-shadow:none}
@media(max-width:1050px){.historical-optimization-map-grid{grid-template-columns:1fr}.historical-optimization-map{height:55vh;min-height:390px}}
@media(max-width:760px){.historical-optimization-header{padding:.65rem .75rem}.historical-optimization-body{padding:.65rem}.historical-optimization-map{height:52vh;min-height:340px}.historical-optimization-weekly-map{height:58vh;min-height:380px}}

/* Align this full-screen workspace with Ruta360's shared design system. */
.historical-optimization-dialog {
  color: var(--r360-color-navy-950, #0b1e42);
  background: var(--r360-color-slate-50, #f8fafc);
  font-family: var(--r360-font-sans, Inter, Arial, sans-serif);
}
.historical-optimization-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem clamp(1rem, 2vw, 2rem);
  border-bottom: 1px solid var(--r360-color-slate-200, #e2e8f0);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .04);
}
.historical-optimization-header h3 {
  margin: 0;
  color: var(--r360-color-navy-950, #0b1e42);
  font-size: clamp(1.1rem, 1.5vw, 1.4rem);
  line-height: 1.25;
}
.historical-optimization-header p {
  margin-top: .35rem;
  color: var(--r360-color-slate-600, #475569);
  line-height: 1.4;
}
.historical-optimization-header .btn-close-modal {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid var(--r360-color-slate-300, #cbd5e1);
  border-radius: var(--r360-radius-control, 9px);
  background: #fff;
  color: var(--r360-color-navy-800, #173f91);
  cursor: pointer;
}
.historical-optimization-header .btn-close-modal:hover { background: var(--r360-color-blue-50, #eff6ff); }
.historical-optimization-header .btn-close-modal:focus-visible,
.historical-optimization-dialog :is(input, select, button, summary):focus-visible {
  outline: none;
  box-shadow: var(--r360-focus-ring, 0 0 0 3px rgba(37,99,235,.24));
}
.historical-optimization-body {
  padding: clamp(1rem, 2vw, 2rem);
  scrollbar-gutter: stable;
}
.historical-optimization-inputs {
  gap: 1rem;
  padding: clamp(1rem, 1.5vw, 1.5rem);
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
}
.historical-optimization-inputs label,
.historical-optimization-map-controls label,
.historical-optimization-editor-toolbar label {
  color: var(--r360-color-slate-700, #334155);
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.35;
}
.historical-optimization-inputs :is(input, select),
.historical-optimization-map-controls select,
.historical-optimization-editor-toolbar input,
.historical-editor-row select {
  min-height: var(--r360-control-height, 42px);
  border: 1px solid var(--r360-color-slate-300, #cbd5e1);
  border-radius: var(--r360-radius-control, 9px);
  padding: .55rem .7rem;
  background: #fff;
  color: var(--r360-color-navy-950, #0b1e42);
  font: inherit;
}
.historical-optimization-inputs input[type="file"] { padding: .35rem .5rem; }
.historical-optimization-inputs input[type="file"]::file-selector-button {
  margin-right: .7rem;
  padding: .3rem .6rem;
  border: 1px solid var(--r360-color-blue-100, #dbeafe);
  border-radius: 6px;
  background: var(--r360-color-blue-50, #eff6ff);
  color: var(--r360-color-navy-800, #173f91);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}
.historical-optimization-inputs .ui-button { min-height: var(--r360-control-height, 42px); }
.historical-optimization-status {
  border: 1px solid var(--r360-color-blue-100, #dbeafe);
  border-radius: var(--r360-radius-control, 9px);
  background: var(--r360-color-blue-50, #eff6ff);
  line-height: 1.45;
}
.historical-optimization-status[data-state="error"] { border-color: #fecaca; }
.historical-optimization-status[data-state="success"] { border-color: #bbf7d0; }
.historical-optimization-note,
.historical-optimization-rules,
.historical-optimization-map-note { color: var(--r360-color-slate-600, #475569); }
.historical-optimization-rules { margin: .8rem 0 1rem; }
.historical-optimization-rules summary { color: var(--r360-color-navy-800, #173f91); font-weight: 650; cursor: pointer; }
.historical-optimization-metrics {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .85rem;
  margin: 1.25rem 0;
}
.historical-optimization-metrics div {
  min-width: 0;
  border-color: var(--r360-color-slate-200, #e2e8f0);
  border-top: 3px solid var(--r360-color-blue-600, #2563eb);
  border-radius: var(--r360-radius-card, 12px);
  padding: .9rem 1rem;
  background: #fff;
  box-shadow: 0 2px 7px rgba(15,23,42,.04);
}
.historical-optimization-metrics strong {
  color: var(--r360-color-navy-800, #173f91);
  font-size: clamp(1.2rem, 1.6vw, 1.5rem);
  line-height: 1.2;
}
.historical-optimization-metrics span { display: block; margin-top: .35rem; line-height: 1.35; }
.historical-optimization-warnings { border-radius: 0 var(--r360-radius-control, 9px) var(--r360-radius-control, 9px) 0; line-height: 1.45; }
.historical-optimization-table-wrap,
.historical-optimization-map-card,
.historical-optimization-weekly-card,
.historical-optimization-audit,
.historical-optimization-editor {
  border-color: var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
  box-shadow: 0 2px 7px rgba(15,23,42,.04);
}
.historical-optimization-table caption { padding: .85rem 1rem; line-height: 1.45; }
.historical-optimization-table th { background: var(--r360-color-navy-800, #173f91); }
.historical-optimization-table td,
.historical-optimization-table th { padding: .75rem .8rem; }
.historical-optimization-table tbody tr:hover { background: var(--r360-color-blue-50, #eff6ff); }
.historical-optimization-map-controls {
  gap: 1rem;
  margin: 1.25rem 0;
  padding: 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
}
.historical-optimization-map-card,
.historical-optimization-weekly-card,
.historical-optimization-editor { padding: 1rem; }
.historical-optimization-map-card h4,
.historical-optimization-weekly-card h4,
.historical-optimization-editor h4 { color: var(--r360-color-navy-800, #173f91); font-size: 1rem; line-height: 1.35; }
.historical-optimization-map,
.historical-optimization-weekly-map { overflow: hidden; border-color: var(--r360-color-slate-200, #e2e8f0); border-radius: var(--r360-radius-control, 9px); }
.historical-optimization-audit summary,
#historical-optimization-results > details > summary { color: var(--r360-color-navy-800, #173f91); cursor: pointer; }
.historical-editor-row:hover { background: var(--r360-color-blue-50, #eff6ff); }
@media (max-width: 900px) {
  .historical-optimization-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-optimization-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .historical-optimization-header { padding: .85rem 1rem; }
  .historical-optimization-body { padding: 1rem; }
  .historical-optimization-inputs,
  .historical-optimization-metrics { grid-template-columns: 1fr; }
  .historical-optimization-map-controls label,
  .historical-optimization-map-controls .ui-button { width: 100%; min-width: 0; }
}

/* Compact, task-oriented navigation inside the historical optimizer. */
.historical-optimization-subnav {
  position: sticky;
  top: 0;
  z-index: 9;
  display: flex;
  gap: .35rem;
  overflow-x: auto;
  margin: -1rem 0 1rem;
  padding: .7rem .15rem;
  border-bottom: 1px solid var(--r360-color-slate-200, #e2e8f0);
  background: var(--r360-color-slate-50, #f8fafc);
  scrollbar-width: thin;
}
.historical-optimization-tab {
  flex: 0 0 auto;
  min-height: 40px;
  padding: .55rem 1rem;
  border: 1px solid transparent;
  border-radius: var(--r360-radius-control, 9px);
  background: transparent;
  color: var(--r360-color-slate-600, #475569);
  font: inherit;
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
}
.historical-optimization-tab:hover:not(:disabled) { background: var(--r360-color-blue-50, #eff6ff); color: var(--r360-color-navy-800, #173f91); }
.historical-optimization-tab[aria-selected="true"] {
  border-color: var(--r360-color-blue-100, #dbeafe);
  background: #fff;
  color: var(--r360-color-navy-800, #173f91);
  box-shadow: 0 2px 7px rgba(15,23,42,.06);
}
.historical-optimization-tab:disabled { opacity: .45; cursor: not-allowed; }
.historical-optimization-panel[hidden] { display: none !important; }
.historical-optimization-panel { min-width: 0; }
.historical-optimization-inputs { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; }
.historical-optimization-advanced { grid-column: 1 / -1; min-width: 0; }
.historical-optimization-advanced summary,
.historical-optimization-methodology summary {
  padding: .7rem .85rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-control, 9px);
  color: var(--r360-color-navy-800, #173f91);
  font-size: .85rem;
  font-weight: 700;
  cursor: pointer;
}
.historical-optimization-advanced[open] summary,
.historical-optimization-methodology[open] summary { background: var(--r360-color-blue-50, #eff6ff); }
.historical-optimization-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .85rem;
  padding: 1rem 0 .35rem;
}
.historical-optimization-inputs > .ui-button { width: min(100%, 260px); }
.historical-optimization-methodology { margin: .75rem 0 0; }
.historical-optimization-methodology > p,
.historical-optimization-methodology > details { margin-left: .85rem; margin-right: .85rem; }
.historical-optimization-status { margin: .85rem 0 1rem; }
.historical-optimization-metrics { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .65rem; margin: 0 0 1rem; }
.historical-optimization-metrics div { padding: .65rem .8rem; }
.historical-optimization-metrics strong { font-size: clamp(1rem, 1.3vw, 1.25rem); overflow-wrap: anywhere; }
.historical-optimization-metrics span { font-size: .73rem; }
.historical-optimization-workspace-grid .historical-optimization-editor { margin: 0; }
.historical-editor-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 200px); gap: 1rem; min-height: 52px; }
.historical-editor-row label { min-width: 0; }
.historical-editor-row select { width: 100%; }
#historical-optimization-panel-audit > details {
  margin: 0 0 .75rem;
  padding: .85rem 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
}
#historical-optimization-panel-audit > details summary { color: var(--r360-color-navy-800, #173f91); font-weight: 700; cursor: pointer; }
@media (max-width: 1150px) {
  .historical-optimization-advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .historical-optimization-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .historical-optimization-subnav { margin-top: -.65rem; }
  .historical-optimization-inputs,
  .historical-optimization-advanced-grid,
  .historical-optimization-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 500px) {
  .historical-optimization-inputs,
  .historical-optimization-advanced-grid,
  .historical-optimization-metrics { grid-template-columns: 1fr; }
  .historical-optimization-inputs > .ui-button { width: 100%; }
  .historical-editor-row { grid-template-columns: 1fr; gap: .35rem; }
}

/* Keep the three-scenario comparison separate from the editable weekly plan. */
.historical-optimization-comparison-details {
  margin-top: 1rem;
  padding: .85rem 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
}
.historical-optimization-comparison-details > summary {
  color: var(--r360-color-navy-800, #173f91);
  font-weight: 700;
  cursor: pointer;
}
.historical-optimization-comparison-details[open] > summary { margin-bottom: 1rem; }
.historical-optimization-weekly-card { margin-top: 0; }
.historical-optimization-weekly-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .7rem;
}
.historical-optimization-weekly-heading h4 { margin: 0; }
.historical-optimization-weekly-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.proposal-itinerary-banner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.5rem; margin:.5rem 0 .85rem; padding:.65rem .75rem; border:1px solid #93c5fd; border-radius:8px; background:#eff6ff; color:#173f91; font-size:.82rem; font-weight:700; }
.proposal-itinerary-banner[hidden] { display:none; }
.proposal-itinerary-banner button { border:1px solid #93c5fd; border-radius:6px; padding:.35rem .55rem; background:#fff; color:#173f91; cursor:pointer; font:inherit; }
.proposal-itinerary-banner button:hover { background:#dbeafe; }
.historical-optimization-weekly-map { height: clamp(420px, 52vh, 720px); min-height: 420px; }
.historical-optimization-workspace-grid {
  display: grid;
  grid-template-columns: minmax(380px, .9fr) minmax(0, 1.1fr);
  align-items: start;
  gap: 1rem;
  margin-top: 1rem;
}
.historical-optimization-proposal-card {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
  box-shadow: 0 2px 7px rgba(15,23,42,.04);
}
.historical-optimization-proposal-card h4 {
  margin: 0 0 .35rem;
  color: var(--r360-color-navy-800, #173f91);
  font-size: 1rem;
}
.historical-optimization-proposal-card p {
  margin: 0 0 .8rem;
  color: var(--r360-color-slate-600, #475569);
  font-size: .8rem;
  line-height: 1.45;
}
.historical-optimization-proposal-table-wrap { overflow-x: auto; }
.historical-optimization-proposal-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.historical-optimization-proposal-table th {
  padding: .7rem .55rem;
  background: var(--r360-color-navy-800, #173f91);
  color: #fff;
  text-align: left;
  white-space: nowrap;
}
.historical-optimization-proposal-table td { padding: .8rem .55rem; border-bottom: 1px solid var(--r360-color-slate-200, #e2e8f0); white-space: nowrap; }
.historical-optimization-proposal-table tbody tr:nth-child(even) { background: var(--r360-color-slate-50, #f8fafc); }
.historical-optimization-proposal-table tbody tr:hover { background: var(--r360-color-blue-50, #eff6ff); }
@media (max-width: 1050px) {
  .historical-optimization-workspace-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .historical-optimization-weekly-heading { align-items: flex-start; flex-direction: column; }
  .historical-optimization-weekly-map { height: 55vh; min-height: 360px; }
}

/* Keep setup beside the weekly map; leave the comparison and audit full width. */
.historical-optimization-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(215px, 1fr);
  align-items: stretch;
  gap: 1rem;
}
.historical-optimization-overview-grid .historical-optimization-weekly-card { min-width: 0; }
.historical-optimization-config {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
  box-shadow: 0 2px 7px rgba(15,23,42,.04);
}
.historical-optimization-config h4 {
  margin: 0;
  color: var(--r360-color-navy-800, #173f91);
  font-size: 1rem;
}
.historical-optimization-config .historical-optimization-inputs,
.historical-optimization-config .historical-optimization-advanced-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: .7rem;
}
.historical-optimization-config .historical-optimization-advanced { grid-column: auto; }
.historical-optimization-config .historical-optimization-inputs label { min-width: 0; }
.historical-optimization-config .historical-optimization-inputs input[type="file"] { font-size: .77rem; }
.historical-optimization-config .historical-optimization-inputs > .ui-button { width: 100%; }
.historical-optimization-config .historical-optimization-methodology { margin: 0; }
.historical-optimization-config .historical-optimization-methodology > p,
.historical-optimization-config .historical-optimization-methodology > details { margin-left: .2rem; margin-right: .2rem; }
.historical-optimization-weekly-placeholder {
  display: grid;
  place-items: center;
  min-height: clamp(420px, 52vh, 720px);
  padding: 1.5rem;
  border: 1px dashed var(--r360-color-slate-300, #cbd5e1);
  border-radius: var(--r360-radius-control, 9px);
  background: var(--r360-color-slate-50, #f8fafc);
  color: var(--r360-color-slate-600, #475569);
  text-align: center;
}
.historical-optimization-weekly-placeholder[hidden],
.historical-optimization-weekly-legend[hidden],
.historical-optimization-workspace-grid[hidden] { display: none !important; }
.historical-optimization-status { margin: 0 0 .8rem; }
@media (max-width: 900px) {
  .historical-optimization-overview-grid { grid-template-columns: 1fr; }
  .historical-optimization-overview-grid .historical-optimization-config { order: -1; }
}

/* Summary: chart-led indicators beside a compact, complete three-scenario table. */
.historical-optimization-compare-grid {
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
  align-items: start;
  gap: 1rem;
}
.historical-optimization-insights-card,
.historical-optimization-compare-table-card {
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--r360-color-slate-200, #e2e8f0);
  border-radius: var(--r360-radius-card, 12px);
  background: #fff;
}
.historical-optimization-insights-card h4,
.historical-optimization-compare-table-card h4 {
  margin: 0 0 .65rem;
  color: var(--r360-color-navy-800, #173f91);
  font-size: 1rem;
}
.historical-comparison-headline { display: flex; align-items: baseline; flex-wrap: wrap; gap: .35rem .75rem; margin-bottom: .75rem; }
.historical-comparison-headline strong { color: var(--r360-color-navy-950, #0b1e42); font-size: clamp(1.15rem, 1.6vw, 1.65rem); font-weight: 700; }
.historical-comparison-headline span { color: var(--r360-color-green-700, #15803d); font-size: .8rem; font-weight: 650; }
.historical-comparison-legend { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-bottom: .7rem; color: var(--r360-color-slate-600, #475569); font-size: .76rem; }
.historical-comparison-legend span { display: inline-flex; align-items: center; gap: .3rem; }
.historical-comparison-key { display: inline-block; width: 10px; height: 10px; border-radius: 3px; background: var(--r360-color-blue-600, #2563eb); }
.historical-comparison-key.proposed { background: var(--r360-color-green-600, #16a34a); }
.historical-comparison-chart { display: grid; gap: .55rem; margin-bottom: 1rem; }
.historical-comparison-chart-row { display: grid; grid-template-columns: 2.2rem minmax(0, 1fr) 5.1rem; align-items: center; gap: .45rem; color: var(--r360-color-slate-700, #334155); font-size: .76rem; }
.historical-comparison-bars { display: grid; gap: 3px; }
.historical-comparison-track,
.historical-comparison-mini-track { height: 8px; overflow: hidden; border-radius: 99px; background: var(--r360-color-slate-200, #e2e8f0); }
.historical-comparison-bar { height: 100%; border-radius: inherit; background: var(--r360-color-blue-600, #2563eb); }
.historical-comparison-bar.proposed,
.historical-comparison-mini-bar { background: var(--r360-color-green-600, #16a34a); }
.historical-comparison-values { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.historical-comparison-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding-top: .85rem; border-top: 1px solid var(--r360-color-slate-200, #e2e8f0); }
.historical-comparison-secondary-item { min-width: 0; }
.historical-comparison-label { display: block; margin-bottom: .25rem; color: var(--r360-color-slate-600, #475569); font-size: .75rem; }
.historical-comparison-secondary-item strong { display: block; color: var(--r360-color-navy-950, #0b1e42); font-size: 1rem; font-variant-numeric: tabular-nums; }
.historical-comparison-mini-track { margin-top: .45rem; }
.historical-comparison-mini-bar { height: 100%; border-radius: inherit; }
.historical-comparison-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .8rem; margin: .9rem 0 0; }
.historical-comparison-stats div { display: flex; justify-content: space-between; gap: .4rem; min-width: 0; padding-top: .4rem; border-top: 1px solid var(--r360-color-slate-200, #e2e8f0); }
.historical-comparison-stats dt { color: var(--r360-color-slate-600, #475569); font-size: .75rem; }
.historical-comparison-stats dd { margin: 0; color: var(--r360-color-navy-950, #0b1e42); font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.historical-optimization-warning-highlight { margin: .9rem 0 0; padding: .65rem .75rem; border-left: 3px solid #f59e0b; background: #fffbeb; color: #92400e; font-size: .78rem; line-height: 1.4; }
.historical-optimization-warning-highlight[hidden],
.historical-optimization-warning-details[hidden] { display: none; }
.historical-optimization-warning-details { margin-top: .75rem; color: #92400e; font-size: .78rem; }
.historical-optimization-warning-details summary { cursor: pointer; font-weight: 650; }
.historical-optimization-warning-details .historical-optimization-warnings { margin: .55rem 0 0; padding: .6rem .6rem .6rem 1.45rem; border-left: 3px solid #f59e0b; border-radius: 0; line-height: 1.45; }
.historical-optimization-warning-details li + li { margin-top: .45rem; }
.historical-optimization-compare-table-head { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; margin-bottom: .65rem; }
.historical-optimization-compare-table-head h4 { margin: 0; }
.historical-optimization-compare-table-head span { color: var(--r360-color-slate-600, #475569); font-size: .76rem; }
.historical-optimization-compare-table-card .historical-optimization-table-wrap { border: 0; border-radius: 0; }
.historical-optimization-compare-table-card .historical-comparison-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.historical-optimization-compare-table-card .historical-optimization-table { min-width: 540px; table-layout: fixed; font-size: .78rem; }
.historical-optimization-compare-table-card .historical-optimization-table th,
.historical-optimization-compare-table-card .historical-optimization-table td { padding: .72rem .55rem; white-space: normal; vertical-align: top; }
.historical-optimization-compare-table-card .historical-optimization-table thead th:first-child { width: 17%; }
.historical-optimization-compare-table-card .historical-optimization-table tbody th { border-top: 1px solid var(--r360-color-slate-200, #e2e8f0); background: transparent; color: var(--r360-color-slate-700, #334155); text-align: left; font-weight: 650; }
.historical-optimization-compare-table-card .historical-optimization-table tbody tr:nth-child(even) th { background: var(--r360-color-slate-50, #f8fafc); }
.historical-optimization-compare-table-card .historical-optimization-table td strong { display: block; margin-bottom: .15rem; color: var(--r360-color-navy-950, #0b1e42); font-variant-numeric: tabular-nums; }
.historical-optimization-compare-table-card .historical-optimization-table td small { display: block; color: var(--r360-color-slate-600, #475569); font-size: .73rem; line-height: 1.4; }
.historical-optimization-compare-table-card .historical-optimization-table .historical-optimization-proposed-cell strong { color: var(--r360-color-green-700, #15803d); }
.historical-optimization-compare-note { margin: .7rem 0 0; color: var(--r360-color-slate-600, #475569); font-size: .75rem; line-height: 1.4; }
@media (max-width: 1050px) {
  .historical-optimization-compare-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .historical-comparison-secondary,
  .historical-comparison-stats { grid-template-columns: 1fr; }
  .historical-optimization-insights-card,
  .historical-optimization-compare-table-card { padding: .75rem; }
}
