.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}.schedule-toolbar label{min-width:180px}.schedule-scroll{max-height:74vh;overflow:auto;border:1px solid #ddd;border-radius:8px;padding-bottom:18px;scrollbar-gutter:stable}.schedule-grid{display:grid;grid-template-columns:68px repeat(var(--tech-count),minmax(230px,1fr));min-width:calc(68px + var(--tech-count)*230px);isolation:isolate}.schedule-corner,.schedule-tech{position:sticky;top:0;z-index:5;background:#f8f8f8;padding:14px 12px;border-right:1px solid #ddd;border-bottom:1px solid #ddd;min-height:54px;display:flex;gap:8px;align-items:center}.schedule-corner{left:0;z-index:6;font-size:12px}.schedule-tech{border-top:4px solid var(--tech-color)}.tech-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--tech-color);flex:none}.schedule-hours{height:1950px;position:sticky;left:0;z-index:4;background:white;border-right:1px solid #ddd;font-size:11px;font-weight:700}.schedule-hours span{position:absolute;left:5px;white-space:nowrap;line-height:18px}.schedule-hours span:last-child{transform:translateY(-100%)}.schedule-lane{position:relative;height:1950px;border-right:1px solid #ddd;background:repeating-linear-gradient(to bottom,#fff 0,#fff 74px,#e8e8e8 74px,#e8e8e8 75px)}.schedule-slot{position:absolute;left:0;width:100%;height:75px;padding:0;border:0;border-radius:0;background:transparent;z-index:1}.schedule-slot:hover,.schedule-slot:focus-visible{background:#c1010710;outline:2px solid #c1010750;outline-offset:-2px}.schedule-job{position:absolute;left:4px;right:4px;z-index:2;display:flex;flex-direction:column;gap:1px;align-items:stretch;text-align:left;padding:5px 8px;overflow:hidden;border:1px solid #d0d0d0;border-left:5px solid var(--tech-color);border-radius:6px;background:#fafafa;box-shadow:0 1px 3px #0001;line-height:1.2;min-height:73px;font-weight:400}.schedule-job:hover{background:#f1f1f1;border-color:var(--tech-color)}.schedule-job strong{font-size:14px;font-weight:800}.schedule-job>span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-job .schedule-job-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.schedule-job .badge{font-size:9px;padding:1px 3px}.schedule-job small{font-size:10px}.schedule-job[draggable=true]{cursor:grab}.schedule-job.is-dragging{opacity:.45}.schedule-lane.drop-active{background:#e6f0ff}.schedule-canceled{opacity:.55}.schedule-tray{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.schedule-waiting{position:relative;inset:auto;height:auto;min-height:90px}.schedule-waiting>span{white-space:normal}@media(max-width:700px){.schedule-toolbar .inline{gap:5px;flex-wrap:wrap}.schedule-toolbar button{font-size:12px;padding:8px}.schedule-scroll{max-height:72vh}.schedule-grid{grid-template-columns:58px repeat(var(--tech-count),minmax(230px,1fr));min-width:calc(58px + var(--tech-count)*230px)}}@media print{.schedule-scroll{max-height:none;overflow:visible}.schedule-slot,.schedule-toolbar{display:none}.schedule-job{display:flex!important}.schedule-tech,.schedule-hours,.schedule-corner{position:relative}}

/* Whole-day layout uses proportional positions; dragging uses the same scale. */
.schedule-panel{--timeline-height:1950px}.schedule-hours,.schedule-lane{height:var(--timeline-height)}.schedule-slot{height:calc(100% / 26)}.schedule-lane{background:repeating-linear-gradient(to bottom,#fff 0,#fff calc(100% / 26 - 1px),#e8e8e8 calc(100% / 26 - 1px),#e8e8e8 calc(100% / 26))}.schedule-status{font-size:10px;font-weight:600}.schedule-panel.compact{--timeline-height:max(390px,calc(100dvh - 350px))}.compact .schedule-scroll{max-height:none;padding-bottom:0;scrollbar-gutter:auto}.compact .schedule-grid{grid-template-columns:58px repeat(var(--tech-count),minmax(150px,1fr));min-width:calc(58px + var(--tech-count)*150px)}.compact .schedule-corner,.compact .schedule-tech{padding:6px;min-height:34px}.compact .schedule-tech strong{font-size:12px}.compact .schedule-job{min-height:0;padding:1px 4px;gap:0;left:2px;right:2px;border-radius:3px}.compact .schedule-job strong{font-size:11px;white-space:nowrap}.compact .schedule-job>span{font-size:10px;flex-shrink:0}.compact .schedule-job .badge{font-size:9px}.compact .schedule-job:hover,.compact .schedule-job:focus-visible{height:auto!important;min-height:88px;z-index:8;overflow:visible;box-shadow:0 3px 12px #0004}.compact .schedule-toolbar{margin-bottom:6px;gap:8px}.compact h2{margin:6px 0;font-size:18px}.compact p.muted{margin:6px 0;font-size:12px}.schedule-job-meta{flex-shrink:0}.schedule-job strong{flex-shrink:0}.designation{border:1px solid;font-weight:800}.designation-row{margin-bottom:8px}.designation-row input[type=color]{width:70px}details.panel>summary{font-weight:700;cursor:pointer}@media(max-width:700px){.schedule-panel.compact{--timeline-height:780px}.compact .schedule-scroll{max-height:70vh}}

@media(min-width:701px){.schedule-workspace{padding:12px 24px}.schedule-workspace .pagehead{margin-bottom:8px}.schedule-workspace .pagehead h1{margin:4px 0;font-size:25px}.schedule-workspace .panel{padding:12px;margin-bottom:8px}.schedule-panel.compact{--timeline-height:max(230px,calc(100dvh - 400px))}.schedule-workspace details.panel{padding:8px 12px}.compact .schedule-toolbar button{padding:8px 10px}.compact .schedule-toolbar label{font-size:11px}.compact .schedule-toolbar input{padding:6px}.compact .schedule-job:hover,.compact .schedule-job:focus-visible{max-width:100%}.compact .schedule-job:hover>span,.compact .schedule-job:focus-visible>span{white-space:normal}.compact .schedule-job strong .badge{padding:0 2px;font-size:9px}.compact .schedule-hours{font-size:10px}}

@media(min-width:701px){.schedule-panel.compact{--timeline-height:max(230px,calc(100dvh - 430px))}.compact .schedule-hours span{line-height:12px}}
.compact .schedule-hours{overflow:hidden}.compact .schedule-scroll{overflow-y:hidden}.compact .schedule-job:focus-visible{outline:2px solid #c10107}
