.rp-dialog{margin:auto;width:min(1180px,calc(100vw - 48px));max-height:calc(100vh - 48px);padding:0;border:1px solid var(--border);border-radius:14px;background:var(--card,var(--bg));color:var(--text);box-shadow:0 20px 70px #0004;font:14px/1.5 var(--f1,system-ui)}
.rp-dialog::backdrop{background:#07122288}.rp-header,.rp-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;background:var(--card,var(--bg));border-bottom:1px solid var(--border)}.rp-header h2{font:600 20px/1.3 var(--f1,system-ui);margin:0}.rp-main{padding:24px;display:grid;gap:24px}.rp-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}.rp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:end}.rp-dialog label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--text-2,var(--text))}.rp-dialog input,.rp-dialog select{width:100%;min-height:44px;border:1px solid var(--border);border-radius:7px;padding:10px 12px;background:var(--bg);color:var(--text);font:inherit;box-sizing:border-box}.rp-dialog input[type=checkbox]{min-height:18px;width:18px;flex:0 0 18px;accent-color:var(--primary,#1765c1)}.rp-dialog .rp-check{flex-direction:row;align-items:flex-start;gap:9px;color:var(--text)}.rp-dialog button{min-height:40px;white-space:normal}.rp-dialog .btn.primary{background:var(--primary,#1765c1);color:#fff;border-color:transparent}.rp-dialog .btn:focus-visible,.rp-dialog summary:focus-visible{outline:2px solid var(--primary,#1765c1);outline-offset:3px}.rp-route{border-top:1px solid var(--border);padding-top:18px;display:grid;gap:14px}.rp-route h3,.rp-dialog h3{margin:0;font-size:16px}.rp-note{font-size:13px;color:var(--text-2,var(--text));margin:0}.rp-status{min-height:46px;white-space:pre-wrap;overflow-wrap:anywhere}.rp-status[role=alert]{color:var(--red,#b42318)}.rp-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rp-map{min-height:340px;height:340px;background:var(--bg);border:1px solid var(--border);border-radius:10px;overflow:hidden}.rp-map svg{width:100%;height:100%}.rp-preview{min-height:160px;overflow:auto}.rp-dialog table{border-collapse:collapse;width:100%;font-size:13px}.rp-dialog th,.rp-dialog td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:top}.rp-dialog th{font-weight:600;color:var(--text-2,var(--text))}.rp-leg{padding:12px 0}.rp-leg ol{margin:8px 0;padding-left:22px}.rp-leg details{margin-top:10px}.rp-leg input{min-height:38px}.rp-aside{position:sticky;top:0;display:grid;gap:14px}.rp-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-start;position:sticky;bottom:0;z-index:1}.rp-dialog .rp-footer p{margin:0}.rp-calendar-note{padding:12px 0}.rp-dialog details>summary{cursor:pointer;min-height:32px;display:list-item}.rp-skeleton{background:var(--border);opacity:.45;border-radius:6px;height:44px;margin:14px 0}.rp-dialog [hidden]{display:none!important}@media(max-width:900px){.rp-layout{grid-template-columns:1fr}.rp-aside{position:static}.rp-dialog{width:calc(100vw - 24px)}}

.rp-dialog form{display:grid;gap:20px}.rp-footer{flex-wrap:wrap}.rp-dialog [data-rp-candidates]{display:grid;gap:12px}.rp-dialog .rp-check input{margin-top:3px}.rp-dialog details .rp-grid{margin-top:12px}

.rp-header{position:sticky;top:0;z-index:3}.rp-aside{top:84px}.rp-footer .rp-status{flex-basis:100%;min-height:32px;max-height:88px;overflow:auto;margin:0;font-weight:500}.rp-dialog [data-rp-form]{padding-bottom:8px}

.rp-dialog [data-candidate-result]{display:grid;gap:16px;min-height:48px}.rp-candidate{display:grid;gap:6px}.rp-dialog [data-rp-candidates] ul{margin:8px 0 0;padding-inline-start:20px}.rp-dialog [data-rp-candidates] li+li{margin-top:8px}

/* The common period and per-trip times remain distinct, stable surfaces. */
.rp-phase-row>td{padding-top:0}.rp-phase-list{display:grid;gap:12px;padding-inline-start:20px;margin:10px 0}.rp-phase-list ul{margin:6px 0;padding-inline-start:20px}.rp-calendar-warning{border-inline-start:1px solid var(--amber,#b7791f);padding:10px 12px;background:var(--bg);margin:12px 0;overflow-wrap:anywhere}.rp-dialog [data-rp-transition]{display:grid;gap:12px}.rp-dialog [data-rp-transition] p{margin:0}.rp-dialog details>summary{padding-block:4px}.rp-dialog input:focus-visible,.rp-dialog select:focus-visible{outline:2px solid var(--primary,#1765c1);outline-offset:2px}
.rp-dialog[open]{display:flex;flex-direction:column;height:calc(100dvh - 48px);overflow:hidden}.rp-dialog .rp-header,.rp-dialog .rp-footer{position:relative;flex-shrink:0}.rp-dialog .rp-main{display:block;min-height:0;flex:1;overflow:hidden}.rp-dialog .rp-layout{height:100%;min-height:0;align-items:stretch;grid-template-rows:minmax(0,1fr)}.rp-dialog [data-rp-form],.rp-dialog .rp-aside{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-inline-end:6px}.rp-dialog .rp-aside{position:static;display:block}.rp-dialog .rp-aside>*+*{margin-top:14px}.rp-dialog [data-rp-form]{align-content:start}.rp-dialog .rp-preview th:first-child,.rp-dialog .rp-preview td:first-child{white-space:nowrap}.rp-dialog .rp-footer button{flex:0 1 auto}
@media(max-width:900px){.rp-dialog .rp-main{overflow:auto}.rp-dialog .rp-layout{height:auto}.rp-dialog [data-rp-form],.rp-dialog .rp-aside{overflow:visible}}

/* Saving conditions is separate from authorizing the next sender. */
.rp-plan-state{margin:0;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);overflow-wrap:anywhere}
.rp-quota-summary{min-height:3em;max-width:72ch}
.rp-dialog .rp-footer [data-rp-save-draft]{font-weight:600}
.rp-dialog button:disabled{cursor:default;opacity:.6}
.rp-ordinary-review{display:grid;gap:14px;padding-block-start:18px;border-block-start:1px solid var(--border);overflow-wrap:anywhere}
.rp-ordinary-review p,.rp-ordinary-review ul{margin:0;max-width:72ch}.rp-ordinary-review ul,.rp-ordinary-blockers{padding-inline-start:22px}
.rp-ordinary-review li+li,.rp-ordinary-blockers li+li{margin-block-start:8px}.rp-ordinary-blockers{margin:0}
.rp-ordinary-state{max-width:72ch;font-weight:500}

/* Errors stay next to the affected input and remain readable in every theme. */
.rp-errors{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--red,#b42318);border-radius:8px;background:var(--card,var(--bg));color:var(--text);overflow-wrap:anywhere}
.rp-errors ul{display:grid;gap:8px;margin:0;padding-inline-start:20px}.rp-dialog .rp-error-link{display:inline;text-align:start;padding:0;min-height:0;border:0;border-radius:0;background:transparent;color:var(--text);font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.rp-dialog [aria-invalid=true]{border-color:var(--red,#b42318);outline:1px solid var(--red,#b42318);outline-offset:1px}.rp-field-error{display:block;font-size:13px;line-height:1.45;color:var(--text);margin-top:6px;max-width:65ch}.rp-dialog input[aria-invalid=true]:focus-visible,.rp-dialog select[aria-invalid=true]:focus-visible{outline:2px solid var(--primary,#1765c1);outline-offset:3px}

/* Movement choices follow the same form rhythm; technical links stay distinct. */
.rp-movement{display:grid;gap:16px;padding-block-start:24px;border-block-start:1px solid var(--border);min-width:0}
.rp-movement>h3:not(:first-child){margin-block-start:12px}
.rp-movement>.rp-note,.rp-movement details>.rp-note{max-width:72ch;overflow-wrap:anywhere}
.rp-movement select{max-width:100%;text-overflow:ellipsis}
.rp-connector{display:grid;gap:14px;padding-block:18px;border-block-start:1px solid var(--border);min-width:0}
.rp-connector h4{margin:0;font:600 15px/1.4 var(--f1,system-ui)}
.rp-sequence{display:grid;gap:12px;margin:0;padding-inline-start:24px;min-width:0}
.rp-sequence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;min-width:0}
.rp-sequence-row .rp-actions{gap:8px}.rp-sequence-row .rp-actions button{min-height:44px}
.rp-dialog .rp-movement button:focus-visible{outline:2px solid var(--primary,#1765c1);outline-offset:3px}
@media(max-width:640px){.rp-dialog .rp-grid{grid-template-columns:minmax(0,1fr)}.rp-sequence-row{grid-template-columns:minmax(0,1fr)}.rp-sequence-row .rp-actions{justify-content:flex-start}.rp-dialog .rp-movement select,.rp-dialog .rp-movement input{font-size:16px}.rp-dialog .rp-footer button{min-height:44px}.rp-dialog .rp-leg table{display:block;overflow-x:auto}.rp-movement{gap:16px}}

@media(max-width:640px){.rp-dialog .rp-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 18px}.rp-dialog .rp-footer .rp-status{grid-column:1/-1;min-height:0;max-height:72px}.rp-dialog .rp-footer button{width:100%;padding:9px 10px;min-height:44px}.rp-dialog .rp-footer [data-rp-reload]{grid-column:1/-1}}

/* Shared operation entry and recovery stay in the current form rhythm. */
.rp-operations,.rp-road-recovery{display:grid;gap:12px;min-width:0}
.rp-operations{padding-block:18px;border-top:1px solid var(--border)}
.rp-operation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rp-operations>.btn,.rp-road-recovery>.btn{justify-self:start}
.rp-operation-message,.rp-road-recovery>p{margin:0;overflow-wrap:anywhere;line-height:1.5}
.rp-operation-message:empty{display:none}
.rp-operation-message[role=alert]{color:var(--red,#b42318)}
.rp-operations input[aria-invalid=true]{border-color:var(--red,#b42318);outline:1px solid var(--red,#b42318)}
@media(max-width:640px){.rp-operation-grid{grid-template-columns:minmax(0,1fr)}.rp-operations input{font-size:16px}.rp-operations>.btn,.rp-road-recovery>.btn{width:100%}}

/* Keep the scrollable form inside its grid column, including long road labels. */
.rp-dialog [data-rp-form]{min-width:0;box-sizing:border-box}
.rp-dialog [data-rp-form]>*{min-width:0}
@media(max-width:640px){.rp-dialog input,.rp-dialog select{font-size:16px}}

/* Required connections are a working list, with the road editor one action away. */
.rp-required-links{display:grid;gap:12px;min-width:0}
.rp-required-links h4{margin:0;font-size:15px;font-weight:600}
.rp-required-links ol{display:grid;gap:0;padding-inline-start:24px;margin:0}
.rp-required-links li{padding-block:16px;border-block-end:1px solid var(--border);min-width:0}
.rp-required-links li:first-child{padding-block-start:0}
.rp-required-links li:last-child{border-block-end:0}
.rp-required-links li p{margin:0 0 8px;overflow-wrap:anywhere}
.rp-required-links .rp-link-purpose{font-weight:600}
.rp-required-links button{max-width:100%}

/* One monthly occurrence keeps its road and after-unload choice together. */
.rp-trip-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.rp-trip-fields>label:last-child{grid-column:1/-1}
.rp-sequence-row{grid-template-columns:minmax(0,1fr);padding-block:16px;border-block-end:1px solid var(--border)}
.rp-sequence-row:last-child{border-block-end:0}
@media(max-width:900px){.rp-sequence-row{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.rp-trip-fields{grid-template-columns:minmax(0,1fr)}}

/* Common-period membership stays visible before execution details. */
.rp-plan-routes { margin-block: 0 24px; }
.rp-plan-routes h3 { margin: 0 0 12px; }
.rp-plan-routes ol { margin: 0; padding-inline-start: 24px; }
.rp-plan-routes li + li { margin-block-start: 12px; }
.rp-plan-routes li { overflow-wrap: anywhere; }

/* Local completion guidance does not certify the calendar or start a job. */
.rp-readiness{padding:16px;border:1px solid var(--border);border-radius:12px;color:var(--text);min-width:0}
.rp-readiness p{margin:0;line-height:1.5}
.rp-readiness-missing{border-color:var(--red,#b42318)}
.rp-readiness summary{padding-block:6px;min-height:32px;font-weight:600;cursor:pointer;line-height:1.5}
.rp-readiness summary:focus-visible,.rp-readiness-link:focus-visible{outline:2px solid var(--primary,#1765c1);outline-offset:3px}
.rp-readiness ul{margin:12px 0 0;padding-inline-start:20px;display:grid;gap:8px}
.rp-dialog .rp-readiness-link{display:block;min-height:44px;width:100%;padding:8px 0;text-align:start;border:0;border-radius:0;background:transparent;color:var(--text);font:inherit;line-height:1.5;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;cursor:pointer}
.rp-dialog .rp-readiness-link:disabled{cursor:default;opacity:.65}
.rp-readiness details{min-width:0}
