/* Pianificazione lane: section-specific styles (shared components live in private.css). */
/* Pianificazione lane: route editor, revision, resources, planning proposals. */
.plan-page { max-width:1180px; }
.plan-page .route-panel,.plan-page .plan-candidate { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:var(--s5); margin:0 0 var(--s4); }
.plan-page .route-panel > h2,.plan-page .plan-candidate > h2,.plan-page .plan-section > h2 { font-size:17px; margin:0 0 var(--s3); }
.plan-page .plan-section { margin:0 0 var(--s4); }
.plan-page .plan-section > h2 { margin-bottom:var(--s3); }
.plan-page .plan-narrow { max-width:640px; }
.plan-page .plan-published ol,.plan-page .plan-proposal ol { margin:0; padding-left:1.4rem; display:grid; gap:var(--s2); }
.plan-page .plan-proposal li p { margin:2px 0 0; color:var(--muted); }
.plan-page .plan-candidate h3,.plan-page .plan-candidate h4 { margin:var(--s4) 0 var(--s2); font-size:15px; }
.plan-page .plan-candidate ol,.plan-page .plan-candidate ul { padding-left:1.4rem; }
.plan-page .plan-candidate form { margin-top:var(--s4); padding-top:var(--s4); border-top:1px solid var(--border); }
.plan-page .plan-candidate fieldset { border:1px solid #ecd391; background:var(--warning-bg); border-radius:var(--radius); margin:var(--s3) 0; }
.plan-page .plan-candidate form button[type=submit] { margin-top:var(--s3); }
.plan-page .alert[role=status] { margin-top:0; }
.plan-page .alert-error ul,.plan-page .field-errors { margin:0; }

/* Revision comparison */
.plan-diff h3 { margin:var(--s4) 0 var(--s2); }
.plan-diff .data-table td { height:auto; vertical-align:top; }
.plan-diff .data-table.is-wide { min-width:860px; }
.plan-change { margin:0 0 var(--s4); }
.plan-change-title { margin:0 0 var(--s2); }
.plan-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3); }
.plan-compare > div { padding:var(--s3); border:1px solid var(--border); border-radius:var(--radius); overflow-wrap:anywhere; }
.plan-compare p { margin:0; }
.plan-before { background:var(--error-bg); border-left:4px solid var(--error) !important; }
.plan-after { background:var(--success-bg); border-left:4px solid var(--success) !important; }
.plan-reject { margin-top:var(--s5); padding-top:var(--s4); border-top:1px solid var(--border); }
.plan-reject textarea { max-width:none; }

/* Resources: one inline row per record, add forms set apart */
.plan-resource > form { display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--s2) var(--s3); padding:var(--s3) 0; margin:0; border-bottom:1px solid var(--border); }
.plan-resource > form label { display:grid; gap:4px; margin:0; font-size:13px; font-weight:650; color:var(--muted); flex:1 1 150px; min-width:0; }
.plan-resource > form label input,.plan-resource > form label select { max-width:none; width:100%; font-weight:400; color:var(--ink); }
.plan-resource > form > button { flex:none; }
.plan-resource > form:has(input[name=kind]) { background:var(--surface-2); border:1px dashed var(--field-border); border-radius:var(--radius); padding:var(--s3) var(--s4); margin-top:var(--s4); }
.plan-resource > p { color:var(--muted); }

/* Suggestions form */
.plan-suggest { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:var(--s5); box-shadow:var(--shadow); margin-bottom:var(--s4); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3) var(--s5); }
.plan-suggest > fieldset,.plan-suggest > label:has(textarea),.plan-suggest > button { grid-column:1 / -1; }
.plan-suggest fieldset { border:1px solid var(--border); border-radius:var(--radius); max-height:260px; overflow:auto; margin:0; }
.plan-suggest fieldset label { display:flex; align-items:flex-start; gap:var(--s2); min-height:var(--row-h); padding:var(--s2) 0; margin:0; }
.plan-suggest fieldset br { display:none; }
.plan-suggest > label { display:grid; gap:4px; margin:0; font-weight:650; }
.plan-suggest textarea,.plan-suggest input:not([type=checkbox]) { max-width:none; width:100%; }
.plan-suggest > button { justify-self:start; }

/* Route editor */
form[data-route-editor] .editor-intro { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:var(--s5); box-shadow:var(--shadow); margin-bottom:var(--s4); }
form[data-route-editor] .editor-intro label { font-weight:650; }
form[data-route-editor] .editor-intro > p { color:var(--muted); margin:0; }
form[data-route-editor] .activity-reference { padding:0 var(--s5); }
form[data-route-editor] .activity-reference ul { padding-left:1.2rem; display:grid; gap:var(--s2); }
form[data-route-editor] #route-stop-list { list-style:none; padding:0; margin:0 0 var(--s4); gap:var(--s4); counter-reset:none; }
form[data-route-editor] #route-stop-list > li { padding:0; border:0; background:none; }
form[data-route-editor] #route-stop-list > li::marker { content:""; }
form[data-route-editor] .stop-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:var(--s4) var(--s5) var(--s5); margin:0; }
form[data-route-editor] .stop-card > legend { background:var(--ink); color:#fff; border-radius:999px; padding:2px 14px; font-size:14px; font-weight:650; }
form[data-route-editor] .stop-card label { font-weight:600; font-size:14px; display:grid; gap:4px; }
form[data-route-editor] .stop-card small { font-weight:400; color:var(--muted); }
form[data-route-editor] .stop-top-fields { grid-template-columns:minmax(0,1fr) minmax(0,2fr); }
form[data-route-editor] .stop-common-fields { grid-template-columns:repeat(2,minmax(0,200px)); }
form[data-route-editor] .customer-stop-fields { background:var(--surface-2); }
form[data-route-editor] .customer-stop-fields h3 { margin:0 0 var(--s2); font-size:15px; }
form[data-route-editor] .stop-leg-fields { border:0; border-top:1px dashed var(--field-border); border-radius:0; padding:var(--s3) 0 0; margin:0; }
form[data-route-editor] .stop-leg-fields > legend { padding:0 var(--s2) 0 0; font-weight:650; color:var(--muted); font-size:14px; }
form[data-route-editor] .stop-card .stop-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--s2); padding-top:var(--s3); border-top:1px solid var(--border); }
form[data-route-editor] .stop-card .stop-actions button[data-remove-stop] { order:2; justify-self:auto; color:var(--error); }
form[data-route-editor] .stop-card .stop-actions .stop-move-controls { order:1; }
form[data-route-editor] .stop-card .stop-actions:has(.stop-move-controls:only-child) { justify-content:flex-start; }
form[data-route-editor] [data-add-stop] { margin:0 0 var(--s4); }
@media (max-width:1100px) { .plan-compare { grid-template-columns:minmax(0,1fr); } }
@media (max-width:760px) {
  .plan-suggest,form[data-route-editor] .stop-top-fields,form[data-route-editor] .stop-common-fields { grid-template-columns:minmax(0,1fr); }
  .plan-page .route-panel,.plan-page .plan-candidate { padding:var(--s4); }
  form[data-route-editor] .stop-card { padding:var(--s3) var(--s3) var(--s4); }
  .plan-resource > form label { flex-basis:100%; }
  .plan-resource > form > button { width:100%; }
}
