/* Production schedule zone matrix and festival map planning grid */
.zone-day-scroll,.map-scroller{width:100%;overflow:auto;border:1px solid var(--stroke);border-radius:12px;scrollbar-color:#3c526b transparent}
.zone-day-scroll{max-height:calc(100vh - 330px);min-height:360px;background:#101929}
.zone-day-grid{width:100%;border-spacing:0;border-collapse:separate;table-layout:fixed;min-width:680px}
.zone-day-grid th,.zone-day-grid td{padding:10px 9px;vertical-align:top;border-right:1px solid #283a50;border-bottom:1px solid #283a50}
.zone-day-grid thead th{position:sticky;top:0;background:#213247;color:#dce6f3;z-index:2;text-align:left;font-size:12px;min-width:180px}
.zone-day-grid thead th.zone-clock{min-width:94px;width:94px;left:0;z-index:4}
.zone-day-grid tbody th{position:sticky;left:0;width:94px;min-width:94px;background:#172437;z-index:1;text-align:left;color:#9fc0ce;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.zone-day-grid tbody tr:nth-child(odd) td{background:#122033}
.zone-day-grid tbody tr:nth-child(even) td{background:#101b2b}
.zone-day-grid .event-block{display:flex;width:100%;margin:0 0 6px;padding:8px 10px;text-align:left;min-height:0}
.zone-day-grid .event-block:last-child{margin-bottom:0}
.zone-day-grid .event-block .when{font-size:11px;white-space:normal}
.zone-day-grid .event-block .where{font-size:10px}
.zone-day-empty{display:block;color:#637a91;font-size:11px;min-height:19px}
.day-layout-tools{display:flex;align-items:center;gap:9px;margin:12px 0 15px;flex-wrap:wrap}
.day-layout-tools small{font-size:12px;color:#9eb0c2}
.map-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.map-header h1{margin-bottom:6px}
.map-header p,.map-panel p{color:#a4b4c5;line-height:1.5;margin:0 0 10px}
.map-header .inline-controls{display:flex;flex-wrap:wrap;gap:8px}
.map-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#131f30;border:1px solid #304255;padding:13px;border-radius:12px;margin-bottom:14px}
.map-controls .segmented{display:flex;flex-wrap:wrap}
.map-control-group{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.map-control-group label{display:flex;align-items:center;gap:6px;color:#a6b5c7;font-size:11px;font-weight:700}
.map-control-group label input{width:145px;min-width:145px}
.map-control-group>select{width:auto;max-width:180px;min-width:130px}
.map-control-group>input{width:230px}
.map-controls input,.map-controls select{padding:8px 10px;font-size:12px}
.map-range{color:#9baec0;white-space:nowrap;font-size:12px;padding:0 5px}
.map-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px}
.map-kpis>div{padding:13px 14px;background:#19283a;border:1px solid #2d4256;border-radius:11px;min-width:0}
.map-kpis small,.map-kpis strong,.map-kpis span{display:block}
.map-kpis small{font-size:10px;color:#a0b3c8;font-weight:800;letter-spacing:.04em}
.map-kpis strong{font-size:26px;color:#e7fff6;margin:4px 0;font-variant-numeric:tabular-nums}
.map-kpis span{font-size:10px;color:#849db4}
.map-panel{margin:0 0 17px;padding:17px;background:#141f2e;border:1px solid #31435a;border-radius:13px}
.map-panel h2{margin-bottom:6px}
.map-panel h3{margin:22px 0 8px;font-size:14px}
.map-panel .map-scroller{margin-top:12px}
.map-panel table{border-collapse:separate;border-spacing:0;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
.map-panel table th,.map-panel table td{padding:10px;border-bottom:1px solid #2d4054;border-right:1px solid #26384d;text-align:left;vertical-align:middle}
.map-panel table th:last-child,.map-panel table td:last-child{border-right:0}
.map-panel table thead th{position:sticky;top:0;background:#223448;color:#d0e1ef;font-size:10px;letter-spacing:.035em;z-index:1;white-space:nowrap}
.map-panel .muted-cell{padding:24px;color:#94a9bd;text-align:center}
.map-week-table{min-width:850px}
.map-week-table thead th:not(:first-child){text-align:center}
.map-week-table thead th strong,.map-week-table thead th small{display:block}
.map-week-table thead th small{font-size:10px;color:#99b2c8;margin-top:3px}
.map-week-table .map-task-label{min-width:220px;max-width:280px;width:270px}
.map-task-label button,.map-time-label button{display:block;text-align:left;width:100%;border:0;background:none;color:#e0f0fe;padding:0}
.map-task-label button:hover,.map-time-label button:hover{color:#78e6c4}
.map-task-label small,.map-time-label small{display:block;color:#8ba2b9;font-weight:400;margin-top:4px}
.map-task-label small.map-crew-summary,.map-time-label small.map-crew-summary{color:#84dcc2;font-size:10px;font-weight:700}
.map-week-table td{padding:5px!important;min-width:85px}
.map-day-fill{height:37px;min-width:70px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#e8fcfb}
.map-day-active{background:#15253a}
.map-day-fill.status-planned,.map-hour-bar.status-planned{background:#31618c}
.map-day-fill.status-requested,.map-hour-bar.status-requested{background:#80632d}
.map-day-fill.status-confirmed,.map-hour-bar.status-confirmed{background:#176f60}
.map-day-fill.status-completed,.map-hour-bar.status-completed{background:#4e6879}
.map-time-board{min-width:1070px}
.map-time-row{display:grid;grid-template-columns:220px minmax(800px,1fr);min-height:53px;border-bottom:1px solid #293d52}
.map-time-head{min-height:40px;background:#223448;position:sticky;top:0;z-index:2}
.map-time-label{padding:9px 12px;border-right:1px solid #30475e;background:#19283a;min-width:0}
.map-time-head .map-time-label{color:#b4c9d8;font-size:11px;font-weight:700;background:#223448}
.map-hour-track{position:relative;min-height:100%;overflow:hidden}
.map-hours span{position:absolute;top:10px;font-size:10px;color:#a8c0d1;transform:translateX(-50%)}
.map-hours span:first-child{transform:none}
.map-hours span:last-child{transform:translateX(-100%)}
.map-hour-grid{position:absolute;inset:0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(4.16667% - 1px),#263c52 calc(4.16667% - 1px),#263c52 4.16667%)}
.map-hour-bar{position:absolute;top:8px;bottom:8px;border:1px solid rgba(255,255,255,.2);border-radius:5px;padding:0 6px;color:#fff;white-space:nowrap;text-align:left;overflow:hidden;font-size:10px;font-weight:700}
.map-hour-bar span{overflow:hidden;text-overflow:ellipsis;display:block}
.map-hour-bar:hover{filter:brightness(1.2)}
.map-empty{padding:24px;color:#9ab0c6}
.map-labor-table{min-width:700px}
.map-labor-table tbody tr:nth-child(even){background:#1b2b3d}
.map-labor-table .map-numeric{text-align:center;color:#c6efdf;font-weight:800;font-size:14px}
.map-labor-table .map-total{background:#204e46;font-size:16px;color:#d1ffeb;font-weight:900;text-align:center}
.map-edit-table{min-width:1630px}
.map-edit-table td{padding:6px!important}
.map-edit-table input,.map-edit-table select{border-radius:6px;padding:7px 8px;font-size:12px;min-width:85px;background:#0e1928}
.map-edit-table input[type=number]{min-width:66px;width:68px;text-align:center;padding:7px 3px}
.map-edit-table input[type=date]{min-width:128px}
.map-edit-table input[type=text]{min-width:90px}
.map-edit-table td:first-child input{min-width:210px}
.map-edit-table .map-row-actions{white-space:nowrap}
.map-row-actions .button{margin-right:4px;font-size:10px;padding:6px 7px}
.map-edit-table .map-crew-cell{min-width:180px;max-width:260px}
.map-crew-cell small{display:block;font-size:10px;line-height:1.3;color:#9dc6bc;white-space:normal;margin-bottom:6px}
.map-crew-editor{border-top:1px solid #32475b;padding-top:14px;margin-top:8px}
.map-crew-editor h3{margin:0 0 5px;font-size:16px;color:#ebf7ff}
.map-crew-editor p{color:#a1b5c9;font-size:12px;line-height:1.5}
.map-crew-line{display:grid;grid-template-columns:minmax(170px,1.15fr) minmax(175px,1fr) minmax(175px,1fr);align-items:center;gap:10px;padding:9px;border:1px solid #314458;border-radius:10px;margin-top:7px;background:#152438}
.map-crew-person{display:flex;align-items:center;gap:10px;font-size:12px;min-width:0}
.map-crew-person input{width:18px;height:18px;flex:0 0 18px;accent-color:#77e6c5}
.map-crew-person strong,.map-crew-person small{display:block}
.map-crew-person strong{color:#e7f6ff}
.map-crew-person small{font-size:10px;color:#a2b3c6;margin-top:3px}
.map-crew-line>input{padding:8px 10px;font-size:12px}
.map-crew-editor-foot{margin-top:12px}
.staff-map-link{display:block;margin-top:5px;padding:0;background:none;border:0;color:#78e6c6;font-size:11px;font-weight:700;text-align:left}
.staff-map-link:hover{text-decoration:underline}
.map-outstanding{color:#ffcba7;font-size:14px;font-weight:900;text-align:center!important;background:#55372544}
.map-satisfied{color:#86e4bd;font-size:14px;font-weight:900;text-align:center!important}
@media(max-width:1200px){.map-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.map-crew-line{grid-template-columns:1fr}.map-crew-person{margin-bottom:3px}}
@media(max-width:700px){.map-controls{align-items:stretch}.map-control-group>input{width:100%}.map-range{display:none}.map-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.map-panel{padding:12px}.zone-day-grid{min-width:650px}}
