:root,[data-waypoint-theme="dark"]{
 --bg:#101011;--sidebar:#141416;--surface:#19191b;--card:#222225;--card2:#2a292c;
 --stroke:#3e3b40;--muted:#b5acb0;--text:#f9f5f5;--accent:#e45067;--accentDark:#4b1722;
 --blood:#9b1026;--shadow:0 18px 45px rgba(0,0,0,.25)
}
[data-waypoint-theme="light"]{
 --bg:#f5f4f4;--sidebar:#fff;--surface:#fafafa;--card:#fff;--card2:#f0edef;
 --stroke:#d9d5d7;--muted:#5c555a;--text:#171416;--accent:#941129;--accentDark:#f9e8ec;
 --blood:#941129;--shadow:0 15px 38px rgba(39,20,24,.10)
}
body{background:var(--bg);color:var(--text)}
body .sidebar,body .crew-sidebar{background:var(--sidebar);border-color:var(--stroke)}
body .topbar,body .crew-topbar{background:var(--surface);border-color:var(--stroke)}
body .sidebar-project,body .demo-label,body .notice,body .selected-project,body .modal,body .panel,body .card,body .stat-card,body .project-card,body .data-card,body .data-table,body .cloud-project-row{background:var(--card);border-color:var(--stroke);color:var(--text)}
body .brand-mark{color:var(--text)}body .brand small,body .eyebrow,body .sidebar-label{color:var(--muted)}
body .project-avatar{background:var(--blood);color:#fff}body .brand small b,body .mark-dot{color:var(--accent)}
body .workspace-button,body .section-button,body .sidebar-reset,body .ghost-button{color:var(--text)}
body .workspace-button.active,body .section-button.active{background:var(--accentDark);border-color:var(--blood);color:var(--text)}
body .workspace-button:hover,body .section-button:hover{background:var(--card2)}
body .breadcrumb,body .breadcrumb strong,body .sync-label,body .selected-project small,body .demo-label small{color:var(--muted)}
body input,body select,body textarea{background:var(--surface);color:var(--text);border-color:var(--stroke)}
body option{background:var(--surface);color:var(--text)}
body input:focus,body select:focus,body textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
body .button.primary,body .primary-button,body .btn-primary{background:var(--blood);border-color:var(--blood);color:#fff}
body .button,body .ghost-button,body .secondary-button{border-color:var(--stroke)}
body .pulse,body .status-dot{background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}
body a{color:var(--accent)}
body .waypoint-theme-toggle{border:1px solid var(--stroke);padding:7px 11px;border-radius:8px;white-space:nowrap;background:var(--card)}
body .waypoint-theme-toggle:hover{border-color:var(--blood)}
[data-waypoint-theme="dark"] .metric,[data-waypoint-theme="dark"] .empty-state,[data-waypoint-theme="dark"] .info-tile{background:var(--card);border-color:var(--stroke)}
body .waypoint-cloud-modal,body .waypoint-cloud-modal .cloud-project-row,body .waypoint-cloud-modal .cloud-status{background:var(--card);border-color:var(--stroke);color:var(--text)}
body .waypoint-cloud-modal .cloud-project-row small,body .waypoint-cloud-modal .cloud-invite p{color:var(--muted)}
body .waypoint-cloud-modal input,body .waypoint-cloud-modal textarea,body .waypoint-cloud-modal select{background:var(--surface);color:var(--text);border-color:var(--stroke)}
body .modal-head,body .modal-footer,body .cloud-invite{border-color:var(--stroke)}
body .crew-portal-active .app-shell{display:none}
[data-waypoint-theme="light"] .sidebar,[data-waypoint-theme="light"] .topbar,[data-waypoint-theme="light"] .page,[data-waypoint-theme="light"] .crew-shell,[data-waypoint-theme="light"] .modal{color:var(--text)}
[data-waypoint-theme="light"] .metric{background:var(--card);border-color:var(--stroke);color:var(--text)}
[data-waypoint-theme="light"] .metric label,[data-waypoint-theme="light"] .metric .hint,[data-waypoint-theme="light"] .pending-row small,[data-waypoint-theme="light"] .subtitle,[data-waypoint-theme="light"] .panel-sub{color:var(--muted)}
[data-waypoint-theme="light"] .empty-state,[data-waypoint-theme="light"] .info-tile,[data-waypoint-theme="light"] .info-box{background:var(--card2);border-color:var(--stroke);color:var(--muted)}
[data-waypoint-theme="light"] .empty-state strong,[data-waypoint-theme="light"] .info-box strong{color:var(--text)}
[data-waypoint-theme="light"] .button:not(.primary),[data-waypoint-theme="light"] .button:not(.primary):hover{background:var(--card);border-color:var(--stroke);color:var(--text)}
[data-waypoint-theme="light"] .data-table th,[data-waypoint-theme="light"] .crew-table th,[data-waypoint-theme="light"] .table-wrap thead{background:var(--card2);color:var(--muted)}
[data-waypoint-theme="light"] .pending-row{border-color:var(--stroke)}
[data-waypoint-theme="light"] .section-button.active,[data-waypoint-theme="light"] .workspace-button.active{color:#651021}
[data-waypoint-theme="light"] .project-meta b,[data-waypoint-theme="light"] .profile-avatar,[data-waypoint-theme="light"] .demo-label b{color:var(--text)}
@media(max-width:580px){body .waypoint-theme-toggle{padding:7px 8px;font-size:11px}}

/* Shared high-contrast surfaces for scheduling, production maps and data cards.
   These older modules previously hard-coded dark blue backgrounds even in light mode. */
[data-waypoint-theme="dark"]{
 --schedule-canvas:#171618;--schedule-alt:#201e21;--schedule-head:#2b2629;
 --schedule-event:#45252e;--schedule-event-stroke:#a44459;--schedule-muted:#c8bac0
}
[data-waypoint-theme="light"]{
 --schedule-canvas:#fff;--schedule-alt:#f6f2f3;--schedule-head:#ebe5e7;
 --schedule-event:#fae4e9;--schedule-event-stroke:#97132a;--schedule-muted:#51484d
}
body .module-tabs,body .filter-toolbar,body .map-controls,body .request-filterbar,
body .map-panel,body .map-labor-zone,body .map-recent-panel,body .map-import-guide,
body .map-import-match,body .map-import-year,body .artist-card,body .template-card,
body .staff-booking-panel,body .mini-advance div{
 background:var(--card);border-color:var(--stroke);color:var(--text)
}
body .module-tab,body .segmented button{color:var(--text)}
body .module-tab:hover,body .segmented button:hover{background:var(--card2);color:var(--text)}
body .module-tab.active,body .segmented button.active{background:var(--blood);border-color:var(--blood);color:#fff}
body .segmented{background:var(--surface);border-color:var(--stroke)}
body .daypicker{color-scheme:normal}
body .date-heading,body .map-range,body .map-control-group label,body .map-header p,
body .map-panel p,body .artist-meta,body .template-card p,body .mini-advance label,
body .map-task-toolbar p,body .map-recent-top p,body .map-recent-field span,
body .map-import-guide p,body .map-import-match small{color:var(--muted)}
body .template-card h3,body .staff-booking-panel h2,body .map-crew-editor h3,
body .map-crew-person strong,body .map-recent-top h2{color:var(--text)}
body .data-table th,body .report-table th,body .map-panel table thead th,
body .map-week-table thead th:first-child,body .map-edit-table thead th:first-child{
 background:var(--schedule-head);color:var(--text);border-color:var(--stroke)
}
body .data-table td,body .report-table td,body .map-panel table td,
body .map-panel table th{background:var(--card);color:var(--text);border-color:var(--stroke)}
body .data-table tr:hover td,body .map-labor-table tbody tr:nth-child(even),
body .report-table .total-row td{background:var(--card2);color:var(--text)}
body .data-table .muted-cell,body .map-panel .muted-cell{color:var(--muted)}

/* Master Schedule — proportional timeline */
body .master-duration-scroll,body .day-schedule,body .month-calendar,
body .week-calendar{background:var(--schedule-canvas);border-color:var(--stroke)}
body .master-duration-head,body .master-duration-timehead,
body .master-duration-colhead,body .map-time-head,body .map-time-head .map-time-label{
 background:var(--schedule-head);color:var(--text);border-color:var(--stroke)
}
body .master-duration-ruler{background:var(--schedule-alt);border-color:var(--stroke)}
body .master-duration-tick,body .master-duration-hint{color:var(--schedule-muted)}
body .master-duration-column,body .master-duration-column:nth-child(even){
 border-color:var(--stroke);
 background:repeating-linear-gradient(to bottom,var(--schedule-canvas) 0,var(--schedule-canvas) 59px,var(--stroke) 59px,var(--stroke) 60px)
}
body .master-duration-column:nth-child(even){
 background:repeating-linear-gradient(to bottom,var(--schedule-alt) 0,var(--schedule-alt) 59px,var(--stroke) 59px,var(--stroke) 60px)
}
body .master-duration-event,body .event-block,body .week-event,body .month-event{
 background:var(--schedule-event);color:var(--text);border-color:var(--schedule-event-stroke);
 border-left:4px solid var(--blood)!important
}
body .master-duration-event .master-duration-range,body .event-block .when,
body .event-block .where,body .week-event strong{color:var(--schedule-muted)}
body .master-duration-event:hover,body .master-duration-event:focus-visible{filter:brightness(1.06);outline-color:var(--blood)}
body .master-duration-extent{background:var(--blood)}
body .hour-line,body .hour-label{border-color:var(--stroke)}
body .hour-label,body .day-empty,body .more-events{color:var(--muted)}
body .week-col,body .month-day,body .month-day.faded{background:var(--schedule-canvas);border-color:var(--stroke)}
body .week-col:nth-child(even){background:var(--schedule-alt)}
body .week-heading,body .month-weekday{background:var(--schedule-head);border-color:var(--stroke);color:var(--schedule-muted)}
body .week-heading b,body .month-day .day-number{color:var(--text)}
body .week-heading.today,body .month-day.today,body .month-day .day-number:hover{background:var(--accentDark)}

/* Festival Production Map / gear and staffing tables */
body .map-week-table .map-zone-band th,body .map-time-zone,
body .map-week-table .map-zone-empty td,body .map-time-zone-empty,
body .map-time-label,body .map-edit-table th:first-child,body .map-edit-table td:first-child,
body .map-labor-zone,body .map-crew-line,body .map-recent-crew,
body .map-recent-crew-list .map-crew-line{
 background:var(--schedule-alt);color:var(--text);border-color:var(--stroke)
}
body .map-hour-grid{background:repeating-linear-gradient(to right,transparent 0,transparent calc(4.16667% - 1px),var(--stroke) calc(4.16667% - 1px),var(--stroke) 4.16667%)}
body .map-time-row,body .map-time-label,body .map-week-table tbody th.map-task-label{border-color:var(--stroke)}
body .map-week-table tbody th.map-task-label{background:var(--schedule-alt)}
body .map-task-label button,body .map-time-label button,body .map-labor-zone-title h3{color:var(--text)}
body .map-task-label small,body .map-time-label small,body .map-labor-zone-title span,
body .map-crew-person small,body .map-crew-editor p{color:var(--muted)}
body .map-labor-table .map-numeric,body .map-labor-table .map-total{background:var(--card2);color:var(--text)}
body .map-recent-field input,body .map-recent-field textarea,body .map-recent-field select,
body .map-edit-table input,body .map-edit-table select{background:var(--surface);border-color:var(--stroke);color:var(--text)}

/* Cards in staffing, logistics, advances, warehouse and import screens. */
body .quick-tile,body .warehouse-tile,body .onsite-info .info-tile,
body .pullsheet-results,body .template-items-preview span,body .template-apply-preview,
body .match-summary,body .staff-section-summary,body .logistics-overview-item,
body .logistics-summary,body .hotel-summary,body .hotel-card,body .hotel-card-head,
body .sched-import-guide,body .sched-import-summary{
 background:var(--card);color:var(--text);border-color:var(--stroke)
}
body .logistics-overview-item.active{background:var(--accentDark);border-color:var(--blood);color:var(--text);box-shadow:inset 0 0 0 1px var(--blood)}
body .logistics-overview-item strong,body .logistics-summary strong,body .hotel-summary strong,
body .hotel-card-counts b,body .hotel-collapse,body .hotel-collapse strong{color:var(--text)}
body .logistics-summary,body .hotel-summary span,body .hotel-card-counts,
body .hotel-collapse small,body .hotel-booking-line,body .hotel-room-empty{color:var(--muted)}
body .logistics-summary input,body .hotel-summary input{background:var(--surface);border-color:var(--stroke);color:var(--text)}
body .map-recent-panel{background:var(--card)!important;border-color:var(--stroke)!important}
body .map-import-preview thead{background:var(--schedule-head)}
body .map-import-preview th,body .map-import-preview td{color:var(--text);border-color:var(--stroke)}

/* Remove final legacy blue/mint accents from schedule controls. */
body .chip.blue{background:var(--accentDark);border-color:var(--blood);color:var(--text)}
body .master-duration-colhead button{color:var(--text)}
body .button:not(.primary),body .button:not(.primary):hover{background:var(--card);border-color:var(--stroke);color:var(--text)}
body .master-duration-toolbar .nav-button,body .master-duration-toolbar button:not(.active){color:var(--text)}
body .map-week-table .map-zone-band span{color:var(--muted)}
body .map-day-fill.status-planned,body .map-hour-bar.status-planned{background:var(--blood);border-color:var(--blood);color:#fff}
