.cutover-root { color: #172c3a; max-width: 1320px; margin: 0 auto; padding: 8px 0 32px; }
.cutover-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.cutover-header h2 { margin: 0; font-size: 27px; letter-spacing: -.5px; }
.cutover-eyebrow { color: #4e6c7b; font-size: 12px; font-weight: 700; letter-spacing: 1px; margin: 0 0 6px; }
.cutover-notice { border-left: 4px solid #16697a; background: #edf6f7; padding: 13px 16px; border-radius: 4px; line-height: 1.7; }
.cutover-panel { background: #fff; border: 1px solid #dce4e9; border-radius: 10px; padding: 20px; margin-top: 20px; min-width: 0; }
.cutover-panel h3 { margin: 0 0 8px; font-size: 18px; }
.cutover-panel .cutover-panel { background: #f9fbfc; }
.cutover-muted { color: #576e7c; line-height: 1.65; overflow-wrap: anywhere; }
.cutover-actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 12px 0; }
.cutover-button { border: 1px solid #1c6c7b; background: #176779; color: #fff; padding: 9px 15px; border-radius: 6px; cursor: pointer; font: inherit; line-height: 1.4; }
.cutover-button:hover { background: #115465; }
.cutover-button:disabled { background: #e4e9ec; color: #687c88; border-color: #cad5db; cursor: not-allowed; }
.cutover-button:focus-visible, .cutover-field input:focus-visible, .cutover-json:focus-visible { outline: 3px solid #e3ac46; outline-offset: 2px; }
.cutover-form { margin-top: 14px; }
.cutover-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 12px; min-width: 0; font-size: 13px; font-weight: 600; }
.cutover-field input, .cutover-json { border: 1px solid #b9c9d1; border-radius: 6px; padding: 10px; background: #fff; color: #172c3a; width: 100%; box-sizing: border-box; font: inherit; }
.cutover-json { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 13px; line-height: 1.65; resize: vertical; min-height: 160px; }
.cutover-filter { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr); gap: 14px; margin-top: 16px; }
.cutover-result { margin: 12px 0; min-width: 0; }
.cutover-result pre, .cutover-evidence { background: #f0f4f6; padding: 12px; border-radius: 6px; white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; max-height: 460px; overflow: auto; }
.cutover-error { color: #972d27; background: #fff0ed; border-radius: 6px; padding: 10px 14px; }
.cutover-error pre { background: transparent; margin: 0; padding: 0; }
.cutover-readiness-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.cutover-readiness-item { border: 1px solid #dce4e9; border-radius: 8px; padding: 16px; min-width: 0; }
.cutover-readiness-item p { font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.cutover-readiness-item summary { color: #176779; cursor: pointer; padding: 5px 0; font-weight: 600; }
.cutover-item-heading { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; }
.cutover-item-heading strong { overflow-wrap: anywhere; }
.cutover-badge { display: inline-block; white-space: nowrap; font-size: 11px; font-weight: 700; padding: 4px 8px; border-radius: 20px; }
.cutover-ready { color: #17614a; background: #e0f3ea; }
.cutover-blocked { color: #8b4c14; background: #fff0d9; }
.cutover-phases { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0; }
.cutover-phase { background: #edf1f4; border: 1px solid #d6dfe4; color: #546c7b; border-radius: 4px; padding: 6px 9px; font-size: 10px; overflow-wrap: anywhere; }
.cutover-phase-current { border-color: #16697a; color: #fff; background: #16697a; }
.cutover-phase-complete { color: #17614a; border-color: #9dcbb7; background: #e6f4ec; }
.cutover-freeze-state { border-left: 4px solid #a74630; padding: 10px 12px; background: #fff1ed; color: #7f2d20; }
.cutover-freeze-state:not(.is-frozen) { border-color: #2b8062; background: #eaf6ef; color: #245b46; }
@media (max-width: 900px) { .cutover-readiness-list { grid-template-columns: minmax(0, 1fr); } .cutover-panel { padding: 16px; } }
@media (max-width: 600px) { .cutover-filter { grid-template-columns: minmax(0, 1fr); } .cutover-header { align-items: flex-start; flex-direction: column; } .cutover-header h2 { font-size: 23px; } .cutover-button { width: 100%; } }
.cutover-standard-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.cutover-field select, .cutover-field textarea { border: 1px solid #b9c9d1; border-radius: 6px; padding: 10px; background: #fff; color: #172c3a; width: 100%; box-sizing: border-box; font: inherit; line-height: 1.6; resize: vertical; }
.cutover-field select:focus-visible, .cutover-field textarea:focus-visible { outline: 3px solid #e3ac46; outline-offset: 2px; }
.cutover-advanced { margin: 14px 0; border: 1px dashed #b9c9d1; border-radius: 6px; padding: 10px 12px; }
.cutover-advanced summary { color: #176779; font-weight: 600; cursor: pointer; }
.cutover-differences { margin: 14px 0; }
.cutover-differences h4 { margin-bottom: 8px; }
.cutover-difference-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.cutover-difference-row { border: 1px solid #cad7df; border-radius: 6px; padding: 12px; min-width: 0; }
.cutover-difference-row legend { color: #345b6b; padding: 0 6px; }
@media (max-width: 700px) { .cutover-standard-fields, .cutover-difference-list { grid-template-columns: minmax(0, 1fr); } }
.cutover-data-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 720px; }
.cutover-data-table th, .cutover-data-table td { border: 1px solid #d7e1e6; padding: 8px 10px; text-align: left; vertical-align: top; }
.cutover-data-table th { color: #345b6b; background: #eff5f7; position: sticky; top: 0; }
.cutover-table-wrap { max-width: 100%; overflow: auto; border: 1px solid #d7e1e6; border-radius: 7px; margin: 8px 0 14px; }
.cutover-ledger-section { margin: 18px 0; }
.cutover-ledger-section h4 { margin: 0 0 8px; }
.cutover-unbalanced-row { color: #8e211d; background: #fff0ed; font-weight: 700; }
.cutover-week-calendar { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0; }
.cutover-day-button { border: 1px solid #bed0da; background: #fff; color: #294d60; border-radius: 6px; padding: 9px 11px; cursor: pointer; font: inherit; }
.cutover-day-button.is-selected { background: #176779; border-color: #176779; color: white; }
.cutover-reconciliation-kpis, .cutover-parity-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 10px; margin: 12px 0; }
.cutover-count-card { display: grid; gap: 6px; padding: 12px 14px; border: 1px solid #dce4e9; border-radius: 8px; background: white; }
.cutover-count-card span { color: #5d7480; font-size: 12px; }
.cutover-count-card strong { color: #183c4d; font-size: 20px; overflow-wrap: anywhere; }
.cutover-check-row { display: grid; grid-template-columns: minmax(160px,1fr) auto minmax(160px,1fr); gap: 12px; align-items: center; padding: 10px 12px; border-bottom: 1px solid #e1e8ec; }
.cutover-readiness-group { grid-column: 1 / -1; }
.cutover-readiness-group h4 { color: #345b6b; padding-bottom: 7px; border-bottom: 1px solid #dce4e9; }
.cutover-opening-tools { display: grid; grid-template-columns: minmax(180px,1fr) minmax(230px,1fr) auto auto; align-items: end; gap: 12px; }
.cutover-opening-tools input[type=file] { min-height: 42px; }
.cutover-preview-payload { padding: 14px; margin: 14px 0; border: 1px solid #cbdbe2; border-radius: 8px; background: #f8fbfc; }
.cutover-preview-payload .cutover-form { margin: 0; }
.cutover-total-summary { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: 8px; padding: 12px; background: #f1f6f8; border-radius: 7px; }
.cutover-total-summary div { display: flex; justify-content: space-between; gap: 8px; }
.cutover-total-summary dt { color: #536d7a; }
.cutover-total-summary dd { margin: 0; font-weight: 700; }
@media (max-width: 700px) { .cutover-check-row, .cutover-opening-tools { grid-template-columns: minmax(0,1fr); } }

/* J5018 visual refinements */
.cutover-root { color:#172033; }
.cutover-header h2 { color:#0f172a; letter-spacing:-.035em; }
.cutover-notice { border:1px solid #bfdbfe; border-left:4px solid #2563eb; border-radius:10px; background:#eff6ff; }
.cutover-panel { border-color:#e2e8f0; border-radius:12px; box-shadow:0 4px 16px #0f172a08; }
.cutover-panel .cutover-panel { background:#f8fafc; box-shadow:none; }
.cutover-button { min-height:42px; border-color:#2563eb; border-radius:8px; background:#2563eb; box-shadow:0 3px 8px #2563eb24; font-weight:650; transition:background .16s ease,box-shadow .16s ease,transform .16s ease; }
.cutover-button:hover:not(:disabled) { background:#1d4ed8; box-shadow:0 5px 12px #2563eb30; transform:translateY(-1px); }
.cutover-button:disabled { box-shadow:none; }
.cutover-field input,.cutover-field select,.cutover-field textarea,.cutover-json { min-height:42px; border-color:#cbd5e1; border-radius:8px; }
.cutover-field input:focus-visible,.cutover-field select:focus-visible,.cutover-field textarea:focus-visible,.cutover-json:focus-visible { outline:0; border-color:#3b82f6; box-shadow:0 0 0 3px #3b82f61f; }
.cutover-readiness-item,.cutover-difference-row,.cutover-preview-payload { border-color:#e2e8f0; border-radius:10px; background:#fff; }
.cutover-badge { border:1px solid transparent; border-radius:999px; padding:5px 10px; font-variant-numeric:tabular-nums; }
.cutover-ready { color:#166534; border-color:#bbf7d0; background:#dcfce7; }
.cutover-blocked { color:#92400e; border-color:#fed7aa; background:#ffedd5; }
.cutover-data-table { font-variant-numeric:tabular-nums; }
.cutover-data-table th,.cutover-data-table td { border-color:#e2e8f0; padding:9px 11px; }
.cutover-data-table th { z-index:1; color:#334155; background:#f1f5f9; font-weight:700; }
.cutover-data-table tbody tr:nth-child(even) { background:#f8fafc; }
.cutover-data-table tbody tr:hover { background:#eff6ff; }
.cutover-table-wrap { border-color:#dbe3ec; border-radius:9px; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.cutover-count-card { position:relative; overflow:hidden; border-color:#e2e8f0; border-radius:11px; box-shadow:0 3px 12px #0f172a08; }
.cutover-count-card::before { position:absolute; inset:0 0 auto; height:3px; background:#3b82f6; content:""; }
.cutover-count-card strong,.cutover-total-summary dd { color:#0f172a; font-variant-numeric:tabular-nums; }
.cutover-phase { border-radius:999px; }
.cutover-phase-current { background:#2563eb; border-color:#2563eb; }
.cutover-day-button { min-height:40px; border-color:#cbd5e1; border-radius:8px; }
.cutover-day-button.is-selected { background:#2563eb; border-color:#2563eb; }
.cutover-freeze-state { border-radius:9px; }
.cutover-total-summary { border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; }
@media (max-width:700px) {
  .cutover-root { padding:8px 0 24px; }
  .cutover-actions { align-items:stretch; }
  .cutover-button { min-height:44px; }
  .cutover-table-wrap { max-width:100%; }
  .cutover-data-table { min-width:720px; }
}
.cutover-field input,.cutover-field select,.cutover-field textarea { font-weight:400; }
.cutover-field .cutover-json { font-family:ui-monospace,SFMono-Regular,monospace; }
.cutover-table-wrap { max-height:min(65vh,640px); }
@media (prefers-reduced-motion:reduce) { .cutover-button { transition:none; transform:none; } }
