/* Source-town palette; scheduling stays quiet beside the celebration visuals. */
/* Pastel identity is shared across projects; explicit risk styling always wins. */
.project-card[data-project-tone],.project-banner[data-project-tone],.task-card[data-project-tone],.task-group[data-project-tone],.delivery-card[data-project-tone],.dispatch-project[data-project-tone]{background:var(--project-bg);border-color:var(--project-line);color:var(--project-ink)}
.project-card[data-project-tone] .project-stamp{background:#fff9;border-color:var(--project-line);color:var(--project-ink)}
.task-group[data-project-tone]>.group-head,.dispatch-project[data-project-tone]>summary{background:var(--project-bg);border-color:var(--project-line);color:var(--project-ink)}
.task-group[data-project-tone]>.group-body{background:#ffffff40}
.dispatch-task[data-project-tone]:not(.schedule-conflict),.dispatch-project-picker .dispatch-pick[data-project-tone]:not(.schedule-conflict){background:var(--project-bg);border-color:var(--project-line)}
.dispatch-project-picker .dispatch-pick[data-project-tone]:not(.schedule-conflict):has(input:checked){background:var(--project-bg);outline:2px solid #64763b;outline-offset:-2px}
.delivery-card[data-project-tone].delivery-danger{border-left-color:#b83e35;border-left-width:5px}.delivery-card[data-project-tone].delivery-danger .delivery-countdown{color:#a32f24;background:#fff0ed}
.dispatch-project[data-project-tone].has-conflicts>summary{border-left:4px solid #bc3e31}.dispatch-project[data-project-tone].has-conflicts>summary .dispatch-conflict-count{color:#a32f24;background:#fff0ed;padding:2px 4px;border-radius:3px}
.schedule-groups{margin:0 0 20px;padding:18px 20px;border:1px solid #cbb57b;border-radius:14px;background:#fff7df;color:#5f4128}
.schedule-group-pair{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 10px}
.schedule-group-pair>div{display:flex;flex-direction:column;align-items:stretch;gap:5px;flex:1;min-width:190px;border-radius:9px;padding:12px 15px;border-left:5px solid #b88638;background:#f5e7bd}
.schedule-group-pair>.schedule-group-b{border-color:#738052;background:#eaf0d9}
.schedule-group-pair>.schedule-group-none{border-color:#9b8064;background:#f3eadc}
.schedule-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.schedule-group-pair b{font-size:18px}.schedule-group-count{font-size:28px;line-height:1;color:#70461f;font-variant-numeric:tabular-nums}.schedule-group-count small{font-size:12px;font-weight:600;margin-left:3px}.schedule-group-pair>div>span{font-size:13px}.schedule-group-members{display:block;min-height:1.5em;font-size:11px;line-height:1.5;color:#806346;overflow-wrap:anywhere}.schedule-members{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;max-height:48vh;overflow:auto;padding:2px}
.schedule-member{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #d8c49d;border-radius:9px;background:#fffaf0;cursor:pointer}
.schedule-member:has(input:checked){border-color:#9b6c2c;background:#f7e5b7}.schedule-member input{width:18px;height:18px;flex:0 0 18px;accent-color:#95662e}.schedule-member span{min-width:0}.schedule-member small{display:block;font-size:11px;line-height:1.7;color:#806346;margin-top:3px;overflow-wrap:anywhere}
.schedule-member:focus-within{outline:2px solid #95662e;outline-offset:1px}.schedule-person-meta{padding:0 0 12px;font-size:12px;color:#806346}.dispatch-task.schedule-waiting{border-left:3px solid #c59442;background:#fff5da}.schedule-delay{font-size:11px;line-height:1.5;color:#99572d;margin-top:5px}
/* Date and project dividers make the production plan readable at a glance. */
.dispatch-selected-date{display:grid;gap:3px;min-width:190px;border-left:5px solid #9b6c2c;padding:5px 18px;color:#5f4128;font-variant-numeric:tabular-nums}.dispatch-selected-date.is-today{border-color:#738052}.dispatch-selected-date>span{font-size:12px;font-weight:700;letter-spacing:.06em}.dispatch-selected-date time{font-size:30px;font-weight:800;line-height:1.35}.dispatch-selected-date time small{font-size:15px;font-weight:600}.dispatch-selected-date>small{font-size:12px;color:#806346}.dispatch-date-controls{flex:1;min-width:0}.dispatch-date-nav input[type=date]{font-size:16px;font-weight:700;min-height:40px;max-width:100%}
.dispatch-role{margin:0 0 25px}.dispatch-role-heading{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid #cbb57b;padding:0 0 9px;margin-bottom:13px;color:#5f4128}.dispatch-role-heading h2{margin:0;font-size:20px}.dispatch-role-heading>span{font-size:12px;color:#806346}.dispatch-grid{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}.dispatch-person,.dispatch-person-head>div,.dispatch-task>div{min-width:0}.dispatch-task{align-items:flex-start}.dispatch-task b,.dispatch-task .sub{overflow-wrap:anywhere}
.dispatch-project{border:1px solid #d8c49d;border-radius:9px;background:#fffaf0;min-width:0}.dispatch-project>summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;padding:11px 12px;color:#5f4128;background:#f5e7bd;border-radius:8px;font-size:13px;line-height:1.5}.dispatch-project>summary::-webkit-details-marker{display:none}.dispatch-project>summary::before{content:'▸';flex:0 0 auto;color:#95662e;font-size:16px}.dispatch-project[open]>summary::before{content:'▾'}.dispatch-project>summary>b{flex:1;min-width:0;overflow-wrap:anywhere}.dispatch-project>summary>span{flex:0 0 auto;font-size:11px;color:#806346}.dispatch-project[open]>summary{border-radius:8px 8px 0 0;border-bottom:1px solid #d8c49d}.dispatch-project-tasks{display:grid;gap:8px;padding:9px}.dispatch-project>summary:focus-visible{outline:3px solid #95662e;outline-offset:2px}.dispatch-picker-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:12px;color:#5f4128}.dispatch-project-picker{gap:9px;padding:3px;scrollbar-gutter:stable}.dispatch-picker-toolbar b,[data-dispatch-project-selected]{font-variant-numeric:tabular-nums}.dispatch-project-picker .dispatch-pick{margin:0;background:#fffaf0;padding:10px;min-width:0}.dispatch-project-picker .dispatch-pick>span{min-width:0;overflow-wrap:anywhere}.dispatch-project-picker .dispatch-pick em{white-space:nowrap;font-size:12px}.dispatch-project-picker .dispatch-pick:has(input:checked){border-color:#738052;background:#eaf0d9}.dispatch-project-picker input[type=checkbox]{width:18px;height:18px;accent-color:#738052}.dispatch-pick:focus-within{outline:2px solid #95662e;outline-offset:1px}
.dispatch-task.schedule-conflict,.dispatch-project-picker .dispatch-pick.schedule-conflict,.dispatch-project-picker .dispatch-pick.schedule-conflict:has(input:checked){border:2px solid #bc3e31;border-left-width:5px;background:#fff0ed}.schedule-conflicts{display:grid;gap:3px;margin-top:6px;color:#9c261d;font-size:12px;line-height:1.5}.schedule-conflicts>b{font-size:12px}.schedule-conflicts>span{display:block}.dispatch-project.has-conflicts>summary{background:#fbe0d9}.dispatch-conflict-count{color:#a32f24}.dispatch-conflict-badge{display:inline-block;border:1px solid #bc3e31;border-radius:6px;padding:4px 8px;color:#9c261d;background:#fff0ed;font-size:12px;font-weight:700}
@media(max-width:620px){.schedule-members{grid-template-columns:1fr}.schedule-groups{padding:14px}.schedule-group-pair{gap:8px}.schedule-group-pair>div{min-width:180px}}
@media(max-width:620px){.dispatch-toolbar{padding:12px;gap:12px;align-items:stretch}.dispatch-selected-date{width:100%;padding-left:12px}.dispatch-selected-date time{font-size:28px}.dispatch-date-controls{width:100%;flex-basis:100%}.dispatch-date-nav{gap:6px}.dispatch-date-nav input[type=date]{flex:1;min-width:140px}.dispatch-role-heading{flex-wrap:wrap;gap:6px 12px}.dispatch-project>summary{flex-wrap:wrap;gap:5px 8px}.dispatch-project>summary>span{padding-left:20px;flex-basis:100%}.dispatch-picker-toolbar>span{line-height:1.7}.dispatch-project-tasks{padding:7px}.dispatch-task .flex{gap:5px}.dispatch-task{flex-wrap:wrap}.dispatch-project-picker .dispatch-pick{gap:8px}}
