.dispatch-plan-page { gap: 18px; }
.dispatch-plan-intro { align-items: flex-start; }
.dispatch-plan-mode { border: 1px solid #9bc9bc; border-radius: 999px; background: #eaf7f2; color: #17634f; padding: 8px 12px; font-size: 12px; font-weight: 800; letter-spacing: .05em; }
.dispatch-plan-workspace { padding: 0; overflow: hidden; }
.dispatch-plan-toolbar { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; padding: 16px 18px; border-bottom: 1px solid #dfe8e4; background: #fbfdfc; }
.dispatch-plan-toolbar label { display: grid; gap: 5px; color: #53635e; font-size: 12px; font-weight: 700; }
.dispatch-plan-toolbar input,.dispatch-plan-toolbar select { min-height: 38px; border: 1px solid #cbd8d3; border-radius: 8px; background: white; padding: 7px 10px; }
.dispatch-plan-date-nav { display: flex; align-items: end; gap: 8px; }
.dispatch-plan-source { padding: 10px 18px; background: #f1f7f5; color: #36544b; font-size: 13px; border-bottom: 1px solid #dfe8e4; }
.dispatch-plan-source.is-warning { background: #fff4d9; color: #78571b; }
.dispatch-plan-scroll { overflow-x: auto; overscroll-behavior-inline: contain; background: #f6f9f8; }
.dispatch-plan-board { min-width: 1120px; --label-width: 220px; --hour-width: 56px; }
.dispatch-plan-hours,.dispatch-plan-row { display: grid; grid-template-columns: var(--label-width) repeat(16,var(--hour-width)); min-height: 58px; }
.dispatch-plan-hours { position: sticky; top: 0; z-index: 4; min-height: 38px; background: #edf4f1; color: #557068; font-size: 11px; }
.dispatch-plan-hours > span { padding: 12px 5px; border-left: 1px solid #d9e3df; }
.dispatch-plan-hours > strong { position: sticky; left: 0; z-index: 5; padding: 11px 14px; background: #e4efeb; color: #29483f; }
.dispatch-plan-row { position: relative; border-top: 1px solid #dde6e2; background: #fff; }
.dispatch-plan-resource { position: sticky; left: 0; z-index: 3; display: grid; align-content: center; gap: 2px; padding: 10px 14px; background: #fff; border-right: 1px solid #cedbd6; }
.dispatch-plan-resource strong { color: #183e33; font-size: 13px; }
.dispatch-plan-resource span { color: #687a74; font-size: 11px; }
.dispatch-plan-grid-cell { grid-row: 1; border-left: 1px solid #edf1ef; }
.dispatch-plan-bar { grid-row: 1; z-index: 2; align-self: center; min-width: 28px; margin: 7px 3px; padding: 7px 9px; border: 0; border-radius: 8px; box-shadow: 0 2px 5px rgba(19,58,47,.14); color: #103b30; text-align: left; overflow: hidden; cursor: pointer; }
.dispatch-plan-bar.held { background: #f7d987; border-left: 4px solid #c28710; }
.dispatch-plan-bar.confirmed { background: #83d8bd; border-left: 4px solid #16795d; }
.dispatch-plan-bar.cancelled { background: #dce3e0; border-left: 4px solid #7d8d87; color: #53635e; }
.dispatch-plan-bar strong,.dispatch-plan-bar span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dispatch-plan-bar strong { font-size: 12px; }.dispatch-plan-bar span { margin-top: 2px; font-size: 10px; opacity: .8; }
.dispatch-plan-empty { padding: 36px 18px; color: #667a74; text-align: center; }
.dispatch-plan-legend { display: flex; gap: 8px; align-items: center; padding: 12px 18px; margin: 0; border-top: 1px solid #dfe8e4; color: #53635e; font-size: 12px; }
.dispatch-plan-legend > span { width: 13px; height: 13px; border-radius: 4px; }.dispatch-plan-legend .held { background:#f7d987; }.dispatch-plan-legend .confirmed { background:#83d8bd; }.dispatch-plan-legend small { margin-left:auto; }
.dispatch-plan-inspector { position: fixed; right: 18px; top: 90px; z-index: 30; width: min(420px,calc(100vw - 32px)); max-height: calc(100vh - 112px); overflow: auto; padding: 20px; border: 1px solid #cad8d3; border-radius: 16px; background: white; box-shadow: 0 18px 48px rgba(20,50,42,.24); }
.dispatch-plan-inspector header { display:flex; justify-content:space-between; gap:12px; align-items:start; border-bottom:1px solid #e2e9e6; padding-bottom:12px; }
.dispatch-plan-inspector h3 { margin: 3px 0; color:#183e33; }.dispatch-plan-inspector dl { display:grid; grid-template-columns:110px 1fr; gap:9px 12px; font-size:13px; }.dispatch-plan-inspector dt { color:#6a7b76; }.dispatch-plan-inspector dd { margin:0; color:#243d36; font-weight:650; word-break:break-word; }
.dispatch-plan-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; padding-top:14px; border-top:1px solid #e2e9e6; }
.dispatch-plan-warning { margin-top:12px; padding:10px; background:#fff4d9; color:#755517; border-radius:8px; font-size:12px; }
.dispatch-plan-dialog { width:min(560px,calc(100vw - 28px)); border:0; border-radius:16px; padding:0; box-shadow:0 20px 60px rgba(16,44,36,.3); }.dispatch-plan-dialog::backdrop { background:rgba(18,34,29,.46); }.dispatch-plan-dialog form { padding:20px; }.dispatch-plan-dialog h3 { margin:0 0 6px; }.dispatch-plan-dialog p { color:#60716c; font-size:13px; }.dispatch-plan-dialog label { display:grid; gap:5px; margin-top:12px; font-size:12px; font-weight:700; color:#4c625b; }.dispatch-plan-dialog input,.dispatch-plan-dialog select,.dispatch-plan-dialog textarea { width:100%; box-sizing:border-box; border:1px solid #cbd8d3; border-radius:8px; padding:9px; font:inherit; }.dispatch-plan-dialog menu { display:flex; justify-content:flex-end; gap:8px; padding:15px 0 0; margin:0; }
@media (max-width: 700px) { .dispatch-plan-toolbar { align-items:stretch; }.dispatch-plan-date-nav { width:100%; }.dispatch-plan-date-nav label { flex:1; }.dispatch-plan-date-nav input { width:100%; box-sizing:border-box; }.dispatch-plan-board { --label-width:150px; --hour-width:50px; }.dispatch-plan-resource { padding:8px; }.dispatch-plan-inspector { top:72px; right:10px; max-height:calc(100vh - 86px); }.dispatch-plan-legend small { display:none; } }
