:root{color-scheme:light;--bg:#f3f5f8;--paper:#fff;--ink:#192b3d;--sub:#52677b;--line:#dce4ec;--blue:#1b63ad;--soft:#e9f2fc;--warn:#8c4e09;--warnbg:#fff3df;--red:#a53235;--green:#25765a;font:14px/1.5 Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--blue)}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:var(--paper);padding:9px 13px;border-radius:8px}button:hover{border-color:var(--blue)}button[aria-selected=true],button.active{background:var(--ink);color:var(--paper)}input,select{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);max-width:100%}.shell{display:grid;grid-template-columns:205px 1fr;min-height:100vh}.sidebar{background:#142a3d;color:#eaf0f6;padding:26px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:25px}.brand{font-size:25px;font-weight:bold;letter-spacing:4px}.brand small{display:block;letter-spacing:1px;font-size:11px;color:#b0c2d3}.sidebar nav{display:grid;gap:8px}.sidebar nav button{text-align:left;background:transparent;color:#eaf0f6;border-color:transparent}.sidebar nav button.active{background:#2d4a63}.sidebar .foot{margin-top:auto;font-size:12px;color:#b0c2d3}.sidebar a{color:#c7e3ff}.main{min-width:0}.top{background:var(--paper);border-bottom:1px solid var(--line);padding:16px 28px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.content{padding:26px 28px;max-width:1500px;margin:auto}h1{font-size:27px;margin:0 0 5px}h2{font-size:18px;margin:0 0 14px}h3{font-size:15px;margin:15px 0 8px}.muted{color:var(--sub);font-size:12px}.heading{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:20px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric,.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:18px}.metric .label{font-size:12px;color:var(--sub)}.metric .value{font-size:23px;font-weight:bold;margin:5px 0}.metric .value.small{font-size:17px}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stack{display:grid;gap:16px}.badge{display:inline-block;padding:4px 9px;border-radius:7px;font-size:12px;background:var(--soft);color:var(--blue)}.warning,.alert{background:var(--warnbg);color:var(--warn);padding:13px 16px;border-left:4px solid var(--warn);border-radius:8px;margin:16px 0}.danger{color:var(--red);font-weight:bold}.success{color:var(--green)}.tabs,.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0}.tabs{border-bottom:1px solid var(--line);padding-bottom:10px}.tabs button{white-space:nowrap}.filters input[type=search]{flex:1;min-width:180px}.filters label{display:flex;gap:7px;align-items:center;font-size:13px}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{background:var(--soft);text-align:left;white-space:nowrap}th,td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}td{overflow-wrap:anywhere}tbody tr:hover{background:#f7faff}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.order-link{font-weight:bold;white-space:nowrap;text-decoration:none}.text{white-space:pre-wrap;overflow-wrap:anywhere}.event{position:relative;border-left:2px solid var(--line);padding:0 0 22px 22px;margin-left:5px}.event:before{content:'';position:absolute;width:10px;height:10px;left:-6px;top:5px;background:var(--blue);border-radius:50%}.event strong{display:block;margin:4px 0}.event-row{padding:9px 0;border-bottom:1px solid var(--line)}.event-row:last-child{border:0}.gantt{min-width:900px;display:grid;font-size:12px}.gantt>div{border-bottom:1px solid var(--line);min-height:42px;padding:10px 4px}.gantt .task{grid-column:1;padding-left:8px}.gantt .track{position:relative;padding:7px 0;display:grid;background:repeating-linear-gradient(to right,transparent 0,transparent calc(100% / var(--days) - 1px),var(--line) calc(100% / var(--days) - 1px),var(--line) calc(100% / var(--days)))}.bar{border-radius:5px;background:repeating-linear-gradient(135deg,#dceafa,#dceafa 5px,#eff5fc 5px,#eff5fc 9px);color:#174d85;padding:3px 6px;min-height:25px;overflow:hidden;white-space:nowrap}.bar.deadline{background:var(--warnbg);color:var(--warn)}.bar.fact{background:#dff1e8;color:#14583c}.gantt .empty{grid-column:1/-1;color:var(--sub);padding-left:8px}.today{color:var(--blue);font-weight:bold}.loading{padding:60px}.empty-state{padding:35px;color:var(--sub);text-align:center}details{border-top:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-weight:bold}.raw td:first-child{width:70px;color:var(--sub)}.source{margin-top:10px;color:var(--sub);font-size:12px}.footer{font-size:12px;color:var(--sub);margin-top:18px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.stat{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:15px}.stat b{display:block;font-size:24px}.supplier{max-width:220px}.count{color:var(--sub);font-size:12px}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden}.estimate{min-width:1050px;table-layout:fixed}.estimate td:nth-child(2){width:32%}.lead{margin:0 0 18px;max-width:850px;color:var(--sub)}
@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:15px 18px;gap:12px}.brand{font-size:20px}.brand small{display:none}.sidebar nav{display:flex;overflow:auto;gap:6px}.sidebar nav button{white-space:nowrap}.sidebar .foot{display:none}.content{padding:18px}.top{padding:12px 18px}.split{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:13px}.metric .value{font-size:18px}.heading{display:block}.heading .badge{margin-top:8px}h1{font-size:23px}.panel{padding:13px}.tabs{flex-wrap:nowrap;overflow:auto}.filters select{width:100%}}
.live-gantt{display:grid;font-size:12px;width:max-content}.live-gantt>div{border-bottom:1px solid var(--line);padding:9px 4px}.live-gantt .date{text-align:center}.live-gantt .task-label{grid-column:1;position:sticky;left:0;background:var(--paper);z-index:2;padding:12px 10px;width:330px}.task-label strong{font-weight:600}.task-label button{padding:4px 8px;margin-top:6px;font-size:12px}.task-track{display:grid;align-content:center;background:repeating-linear-gradient(to right,transparent 0,transparent 27px,var(--line) 27px,var(--line) 28px);min-height:85px}.task-bar{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-height:32px;align-content:center;padding:5px 7px;border-radius:5px;background:#e9edf2;color:#273c52}.task-bar[draggable=true]{cursor:grab}.task-bar.active{background:linear-gradient(to right,#a8ceef var(--elapsed),#e8f1fa var(--elapsed))}.task-bar.late{background:linear-gradient(to right,#f0b0b2 var(--elapsed),#fbe6e7 var(--elapsed));color:#8e2225}.task-bar.done{background:#ccebdc;color:#19563c}.status-late{color:#a53235;font-weight:bold}.status-active{color:#1b63ad}.status-done{color:#25765a}.status-planned{color:#52677b}.undated{grid-column:1/-1;color:var(--sub);padding-left:8px}.schedule-dialog{width:min(880px,95vw);max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:14px;padding:24px;background:var(--paper);color:var(--ink)}.schedule-dialog::backdrop{background:#142a3d88}.schedule-dialog label{display:grid;gap:5px;margin:10px 0}.schedule-dialog .dependency{display:grid;grid-template-columns:20px 1fr 65px;gap:8px;align-items:center}.schedule-dialog .dependency input{width:100%;padding:5px}.schedule-dialog .grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.preview-changes{overflow:auto}.preview-plan,.save-plan{background:#192b3d;color:#fff}

.gantt-scroll{max-height:70vh;max-height:70dvh;min-height:220px;position:relative;border:1px solid var(--line);border-radius:8px;overscroll-behavior:contain;scrollbar-gutter:stable}.live-gantt>.gantt-header{grid-column:1/-1;display:grid;grid-template-columns:subgrid;grid-template-rows:34px 34px;position:sticky;top:0;z-index:6;padding:0;background:var(--soft);border-bottom:2px solid #b5cce4;align-self:start}.gantt-header>div{padding:7px 0;border-right:1px solid var(--line)}.gantt-header .gantt-corner{grid-column:1;grid-row:1/3;position:sticky;left:0;z-index:8;background:var(--soft);padding:21px 10px;font-weight:bold}.gantt-month{background:#d8e9fa;color:#174d85;font-weight:bold;text-transform:capitalize;overflow:hidden}.gantt-month span{position:sticky;left:340px;padding:0 8px;white-space:nowrap}.gantt-header .date{background:var(--soft);font-variant-numeric:tabular-nums}.gantt-header .date.today{background:#1b63ad;color:white}

.crm-stage-line{min-height:32px;padding:4px 0;border-bottom:1px solid var(--line)}.crm-stage-line:last-child{border-bottom:0}

.calendar-filters{align-items:end}.calendar-filters label{display:grid;gap:5px}.calendar-filters select{width:auto;max-width:240px}

.filters:has(#pipeline-filter){align-items:end}.filters:has(#pipeline-filter) label{display:grid;gap:5px}.filters:has(#pipeline-filter) select{width:auto;max-width:260px}

.date-late{color:#a52229!important;background:#fff0f0!important;font-weight:bold}.date-late-note{font-size:11px;line-height:1.4;font-weight:normal;white-space:normal;max-width:220px;margin-top:3px;color:#a52229}.metric.date-late{border-color:#e8aeb1}.metric.date-late .value{color:#a52229}

.resizable-table{table-layout:fixed;border-collapse:collapse}.resizable-table th{position:relative;padding-right:22px;white-space:normal;overflow-wrap:anywhere}.resizable-table td{white-space:normal;overflow-wrap:anywhere}.column-resizer{position:absolute;right:-5px;top:0;bottom:0;width:12px;z-index:3;cursor:col-resize;touch-action:none;user-select:none}.column-resizer:after{content:"";position:absolute;left:5px;top:15%;height:70%;width:2px;background:#b3c8dc}.column-resizer:hover:after,.column-resizer:focus:after{background:var(--blue);width:3px}.resizable-table.is-resizing{cursor:col-resize;user-select:none}.column-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0}.column-tools button{font-size:12px;padding:6px 10px;white-space:nowrap}

/* Keep resize grips inside each header so adjacent cells never cover the target. */
.resizable-table th{padding-right:38px;border-right:1px solid #b7cce0}.column-resizer{right:0;top:0;bottom:0;width:28px;display:flex;align-items:center;justify-content:center;background:#dbeafa;color:#245d91;font-size:17px;font-weight:bold;border-left:1px solid #b7cce0;opacity:1;cursor:col-resize;touch-action:none;user-select:none}.column-resizer:after{display:none}.column-resizer:hover,.column-resizer:focus-visible{background:#1b63ad;color:white;outline:2px solid #1b63ad;outline-offset:-2px}.columns-dragging,.columns-dragging *{cursor:col-resize!important;user-select:none!important}.column-tools .muted{font-size:13px}

.customer-wish{line-height:1.5}.wish-entry+.wish-entry{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}

.order-comment-cell{line-height:1.5}.order-comment-cell details{padding:0;border:0}.order-comment summary{font-weight:normal;list-style:none;cursor:pointer}.order-comment summary::-webkit-details-marker{display:none}.comment-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}.comment-more,.comment-less{display:block;color:var(--blue);margin-top:5px;text-decoration:underline}.comment-less{display:none}.order-comment[open] .comment-preview,.order-comment[open] .comment-more{display:none}.order-comment[open] .comment-less{display:block;margin:0 0 8px}
.load-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.load-summary .stat{padding:22px;border:1px solid #dce4ec;border-radius:12px;background:white}.load-summary .stat b{font-size:23px;display:block;margin:10px 0}.load-summary small{color:#60758a;display:block;line-height:1.5}.load-settings{margin-bottom:20px}.load-settings summary{cursor:pointer;font-weight:600}.load-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.load-overview{margin-bottom:20px}.load-grid{display:grid;grid-template-columns:145px repeat(8,minmax(150px,1fr));gap:8px;min-width:1430px;margin-top:16px}.load-week-title{font-size:12px;text-align:center;padding:8px;color:#60758a}.load-label{padding:14px 8px;align-self:center}.load-label small{display:block;color:#60758a;font-size:12px;margin-top:8px}.load-week{display:flex;flex-direction:column;gap:10px;text-align:left;background:#f3f5f8;border:1px solid #dce4ec;border-radius:10px;padding:14px}.load-week.filled{background:#edf5ff}.load-week small{font-size:11px;line-height:1.4}.load-week.selected{outline:2px solid #2369ad;outline-offset:-2px}.load-week.over,.load-day.over{background:#fff0f0;border-color:#e8a1a1;color:#ad2222}.load-meter{height:7px;background:#dce4ec;border-radius:5px;overflow:hidden}.load-meter i{display:block;height:100%;background:#307cb5}.over .load-meter i{background:#c53737}.load-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0 24px}.load-day{padding:15px;border:1px solid #dce4ec;border-radius:10px;display:flex;flex-direction:column;gap:7px}.load-day b{font-size:22px}.load-day span,.load-day small{font-size:12px;color:#60758a}#workload-host>.panel{margin-bottom:20px}.load-dialog{width:min(560px,94vw);border:1px solid #dce4ec;border-radius:14px;padding:25px;max-height:90vh;overflow:auto;color:#192b3d}.load-dialog::backdrop{background:#132a4066}.load-dialog form>label{display:flex;flex-direction:column;gap:5px;margin:12px 0}.load-dialog .split{gap:12px}.load-dialog .split label{display:flex;flex-direction:column;gap:5px}.load-dialog input,.load-dialog select{width:100%}.load-dialog .source{margin:12px 0;line-height:1.5}@media(max-width:760px){.load-summary{grid-template-columns:1fr}.load-days{grid-template-columns:repeat(2,minmax(0,1fr))}.load-dialog .split{display:block}}
.load-grid{grid-template-columns:120px repeat(8,minmax(98px,1fr));min-width:920px;gap:6px}.load-week{padding:12px 8px}.load-week strong{font-size:12px}.load-week small{font-size:10px}.load-week-title{font-size:11px}
.resizable-track-header{padding-right:34px!important;min-height:48px}.resizable-track-header>.column-resizer{border-radius:3px;font-size:15px}.gantt-header .date.resizable-track-header{padding-right:17px!important}.gantt-header .date>.column-resizer{width:16px;font-size:12px}.live-gantt .task-label{width:var(--label-width,330px)}.live-gantt .task-track{background:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--day-width,28px) - 1px),var(--line) calc(var(--day-width,28px) - 1px),var(--line) var(--day-width,28px))}.gantt-month span{left:calc(var(--label-width,330px) + 10px)}.column-tools{flex-wrap:wrap}.resizable-table .num{white-space:normal}
.gantt-header .date.resizable-track-header{min-height:0}.resizable-track-header>.column-resizer:focus-visible{outline:2px solid #1b63ad;outline-offset:-2px}
.order-workload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.order-workload-card{border-top:3px solid #84afd6}.order-workload-card .value{line-height:1.6}.order-workload-card .value>div+div{margin-top:3px}.order-workload-parts{font-size:12px;line-height:1.6;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.order-workload-card .source{display:inline-block}@media(max-width:580px){.order-workload-grid{grid-template-columns:1fr}}
.unplan-order{display:block;margin-top:8px;color:#a53235;font-size:12px}

.production-plan-table{min-width:1350px}.production-plan-table th{position:sticky;top:0;z-index:2}.pp-check{text-align:center}.pp-check input{width:23px;height:23px;cursor:pointer;accent-color:#28775b}.pp-check input:disabled{cursor:default}.pp-statuses{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.pp-done{color:#1d704a;font-weight:600}.pp-week{margin-top:18px}

.order-workload-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.order-production-combined h2{font-size:20px;margin:0 0 14px}.order-production-facts{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.order-production-facts h3{font-size:14px;margin:0 0 10px}.order-production-part+.order-production-part{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.order-production-part .muted{font-size:12px;margin-top:5px}.order-production-combined .filters{margin-top:12px}.order-production-combined .pp-statuses{font-size:12px;gap:8px 14px}@media(max-width:850px){.order-workload-grid{grid-template-columns:1fr}}

.todo-table{min-width:760px}.todo-table td:first-child{min-width:260px}.todo-complete td:first-child{color:#28775b}.todo-complete input{accent-color:#28775b}.todo-dialog{max-width:600px;width:calc(100% - 32px);border:1px solid var(--line);border-radius:14px;padding:24px}.todo-dialog::backdrop{background:#12233780}.todo-dialog label{display:flex;flex-direction:column;gap:6px;margin:14px 0}.todo-dialog textarea,.todo-dialog input,.todo-dialog select{width:100%;padding:10px;border:1px solid #cbd8e4;border-radius:7px;font:inherit}.todo-dialog .filters{justify-content:flex-end}

.fixed-table-header{position:fixed;top:0;z-index:40;overflow:hidden;background:var(--soft);box-shadow:0 3px 8px #142a3d30;pointer-events:none;border-bottom:2px solid #b5cce4}.fixed-table-header[hidden]{display:none}.fixed-table-header table{margin:0}.fixed-table-header th{position:relative!important;top:auto!important;background:var(--soft)}.fixed-table-header .column-resizer{pointer-events:auto}.fixed-week-grid{display:grid;background:var(--paper)}.fixed-week-grid>*{background:var(--soft);margin:0;align-self:stretch}
