:root{--blue:#246bfd;--ink:#0b2345;--muted:#66809f;--line:#d7e2f3;--bg:#f4f7fb;--card:#fff;--side:#082343;--ok:#16a34a;--warn:#f59e0b;--danger:#dc2626;--soft:#eef5ff}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}.app-shell{display:flex;min-height:100vh}.side{width:235px;background:linear-gradient(180deg,#082343,#071b34);color:#fff;padding:18px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center}.brand-icon{width:42px;height:42px;border-radius:12px;background:#2f7cff;display:grid;place-items:center;font-weight:800}.brand b{display:block;font-size:18px}.brand span{font-size:12px;color:#9fb9d5}.side nav{display:flex;flex-direction:column;gap:8px}.nav{background:transparent;color:#d7e6fa;border:1px solid transparent;border-radius:12px;padding:12px 14px;text-align:left;font-weight:700;cursor:pointer}.nav:hover,.nav.active{background:#1762d8;color:#fff}.side-foot{margin-top:auto;display:grid;gap:10px}.main{flex:1;min-width:0}.top{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:50}.top h1{font-size:24px;margin:0 0 4px}.top p{margin:0;color:var(--muted)}.top-status{display:none}.content,.view{padding:22px 28px}.view{display:none}.view.active{display:block}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:minmax(0,1fr) minmax(330px,420px)}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(22,50,90,.06);margin-bottom:18px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.card-head h2,.card-head h3{margin:0;color:#082343}.card-head span,.muted{color:var(--muted)}.form{display:grid;gap:12px}.form.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form.three-col{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.form label,.toolbar label{font-weight:700;color:#15395f;display:grid;gap:6px}input,select,textarea{height:40px;border:1px solid #bcd0ea;border-radius:10px;background:#fff;padding:0 12px;color:#0b2345;font-weight:600}textarea{height:70px;padding:10px}.btn{border:1px solid #bcd0ea;background:#fff;color:#0b2345;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.btn:hover{border-color:#246bfd}.btn.primary{background:#246bfd;color:#fff;border-color:#246bfd}.btn.danger{background:#fff4f4;color:#dc2626;border-color:#f5b6b6}.btn.small{padding:7px 10px;font-size:12px}.btn.full{width:100%}.chip{border:1px solid var(--line);background:#f6f9ff;border-radius:999px;padding:8px 12px;font-weight:800}.chip.ok{color:#087a32;background:#eafff1}.chip.warn{color:#a15c00;background:#fff5d8}.actions{margin-top:14px}.flow-list{margin:0;padding-left:22px;line-height:1.8}.compact-list{display:grid;gap:8px}.order-row{display:grid;grid-template-columns:1.1fr 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdff}.order-row.selected{border-color:#246bfd;background:#eef5ff}.order-main b{font-size:15px;display:block}.order-main span,.order-meta span{color:var(--muted);font-size:12px}.order-meta{display:flex;gap:10px;flex-wrap:wrap}.order-actions{display:flex;gap:6px;flex-wrap:wrap}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.op-picker-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,500px);gap:18px}.op-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.op-card{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.op-card.picked{background:#f1f7ff}.op-dot{width:14px;height:14px;border-radius:50%}.op-card span,.selected-op span{display:block;color:var(--muted);font-size:12px}.selected-list{display:grid;gap:8px}.selected-op{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fbfdff}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.work-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff}.work-table th{position:sticky;top:0;background:#f3f7ff;color:#49698b;font-size:12px;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--line);padding:10px}.work-table td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}.work-table small{display:block;color:var(--muted);margin-top:3px}.work-split{min-width:120px}.work-split input{width:92px;height:34px;padding:0 8px}.work-split.hours-only input{width:100px}.work-split small{font-size:11px}.cap-table th small{display:block;color:#6b7f99;font-size:11px;text-transform:none;margin-top:3px}.cap-input{width:82px;text-align:center}.alert-box{margin-top:12px}.warn-line,.ok-line{border-radius:10px;padding:10px 12px;margin:6px 0}.warn-line{background:#fff7de;border:1px solid #facc15;color:#92400e}.ok-line{background:#eafff1;border:1px solid #86efac;color:#166534}.gantt-card{padding:0}.gantt-card .card-head{padding:16px 18px;margin:0;border-bottom:1px solid var(--line)}.gantt-toolbar input,.gantt-toolbar select{height:36px}.shift-line{display:flex;border-bottom:1px solid var(--line);background:#fff;overflow-x:auto}.shift-left{width:240px;min-width:240px;padding:10px 14px;font-weight:800;border-right:1px solid var(--line);background:#f8fbff;position:sticky;left:0;z-index:3}.shift-grid{display:flex;min-height:58px}.shift-day{width:192px;border-right:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:24px 34px;text-align:center}.shift-day b{grid-column:1/4;padding-top:6px}.shift-day span{font-weight:800;font-size:12px;padding-top:8px;border-top:1px solid #edf3ff}.shift-day span:nth-child(2){background:#e9faef;color:#15803d}.shift-day span:nth-child(3){background:#fff5df;color:#b45309}.shift-day span:nth-child(4){background:#eef5ff;color:#1d4ed8}.gantt{overflow:auto;max-height:620px;background:#fff}.gantt-table{min-width:900px}.gantt-row{display:flex;border-bottom:1px solid var(--line)}.gantt-label{width:240px;min-width:240px;background:#fbfdff;border-right:1px solid var(--line);padding:12px 14px;position:sticky;left:0;z-index:2}.gantt-label b{display:block}.gantt-label span{font-size:12px;color:var(--muted)}.gantt-track{position:relative;background-image:linear-gradient(to right,rgba(35,107,253,.13) 1px,transparent 1px);background-size:64px 100%;min-height:50px}.empty-lane{position:absolute;left:14px;top:12px;color:#8ba1bc;border:1px dashed #c9d9ef;border-radius:999px;padding:6px 12px;font-size:12px}.gantt-bar{position:absolute;height:28px;border-radius:8px;color:#fff;padding:4px 10px;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:grab;overflow:hidden;white-space:nowrap;font-size:12px}.gantt-bar b{display:inline;margin-right:8px}.gantt-bar span{font-size:11px;font-weight:700;opacity:.95}.gantt-bar.dragging{cursor:grabbing;opacity:.85;z-index:50}.gantt-table.compact .gantt-bar{height:20px;font-size:11px;padding:2px 8px}.gantt-table.compact .gantt-label{padding:8px 12px}.admin-list{display:grid;gap:8px}.admin-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fbfdff}.admin-row span{display:block}.admin-row small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.admin-row i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px}.check{display:flex!important;grid-auto-flow:column;align-items:center;gap:8px}.empty{color:#7b91ad;background:#f8fbff;border:1px dashed #c9d9ef;border-radius:12px;padding:18px;text-align:center}.status-planned{outline:0}.status-in_progress{outline:2px solid #2563eb}.status-paused{filter:saturate(.7);outline:2px solid #f59e0b}.status-done{opacity:.65}@media(max-width:1200px){.grid.two,.op-picker-layout{grid-template-columns:1fr}.side{width:210px}.form.two-col,.form.three-col{grid-template-columns:1fr}.order-row{grid-template-columns:1fr}.top{height:auto;align-items:flex-start;padding:18px}.toolbar{align-items:stretch}.toolbar label{min-width:180px}}
/* v20 – test-ready: clean input flow, weekly staffing and resource-based Gantt */
.grid.two.wide-left{grid-template-columns:minmax(520px,1.4fr) minmax(300px,.8fr)}
.work-one{min-width:120px}.work-one input{width:95px;height:36px}.work-one small{font-size:11px;color:var(--muted);display:block;margin-top:4px}
.staffing-note{background:#f8fbff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:12px;color:#49698b;font-weight:700}.staffing-grid{display:grid;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fff;max-height:680px}.staff-cell,.staff-day-head{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:44px;padding:8px;background:#fff;display:grid;align-items:center}.staff-cell.head,.staff-cell.subhead,.staff-day-head{background:#f3f7ff;font-weight:800;color:#15395f}.staff-cell.sticky{position:sticky;left:0;z-index:2}.staff-cell.rowhead{background:#fbfdff}.staff-cell.rowhead small,.staff-cell.subhead small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.staff-input{width:72px;text-align:center;height:32px;padding:0 6px}.staff-day-head{text-align:center;justify-content:center}.status-paused{filter:saturate(.75);outline:2px solid #f59e0b}.status-in_progress{outline:2px solid #16a34a}.status-done{opacity:.55}.work-table th:nth-child(4),.work-table th:nth-child(5),.work-table th:nth-child(6),.work-table th:nth-child(7){text-align:center}.gantt-bar span{display:inline-block}.gantt-bar{min-width:56px}.gantt-toolbar label{min-width:145px}.shift-day{width:192px;display:grid;grid-template-rows:24px 34px}.shift-day b{grid-column:1/-1;padding-top:6px}.shift-day span{font-weight:800;font-size:11px;padding-top:8px;border-top:1px solid #edf3ff}.shift-day span:nth-child(2){background:#e9faef;color:#15803d}.shift-day span:nth-child(3){background:#fff5df;color:#b45309}.shift-day span:nth-child(4){background:#eef5ff;color:#1d4ed8}
/* v20 test ready */
.top-actions{display:none}.work-one{min-width:115px}.work-one input{width:88px}.week-table th,.week-table td{min-width:70px;text-align:center}.week-table .sticky-col{position:sticky;left:0;background:#fbfdff;z-index:5;min-width:180px;text-align:left}.week-table input{width:64px;text-align:center;padding:0 6px}.staffing-note{background:#f8fbff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px;color:#315273}.shift-day{grid-auto-flow:column;grid-auto-columns:1fr}.shift-day span{min-width:64px}.status-paused{outline:2px solid #f59e0b;filter:saturate(.75)}.gantt-bar span{display:inline}.gantt-toolbar label{min-width:130px}.admin-row .btn.danger{white-space:nowrap}@media(max-width:1400px){.work-table th,.work-table td{padding:8px}.gantt-toolbar label{min-width:160px}}

/* v23 role based staffing + cleaner hours input */
.work-one input { min-width: 90px; }
.staffing-toolbar { align-items: end; flex-wrap: wrap; }
.staff-legend { display:flex; gap:12px; padding:8px 10px; color:#37537a; font-size:12px; }
.staff-legend span { background:#f7fbff; border:1px solid #d8e5f5; border-radius:999px; padding:5px 9px; }
.table-wrap.wide { overflow:auto; max-height: 68vh; border-radius:14px; }
.staff-table th.staff-day { min-width: 150px; text-align:center; vertical-align:top; }
.staff-table th.staff-day b { display:block; font-size:12px; color:#0b2a50; }
.staff-table th.staff-day small { display:block; color:#55708e; font-size:10px; line-height:1.25; margin-top:2px; }
.staff-table th.staff-day em { display:block; font-style:normal; color:#7890aa; font-size:10px; margin-top:3px; }
.staff-role-cell { min-width:150px; white-space:nowrap; text-align:center; }
.staff-role-cell input { width:32px; min-width:32px; padding:6px 4px; text-align:center; margin:0 2px; border-radius:9px; }
.staff-role-cell input[data-role=assembly] { border-color:#2f80ed; }
.staff-role-cell input[data-role=welding] { border-color:#ef6c00; }
.staff-role-cell input[data-role=cleaning] { border-color:#64748b; }
.staff-role-cell input[data-role=other] { border-color:#7c3aed; }
.work-table td small { display:block; margin-top:4px; color:#60789a; }

/* v26 - widoczniejsza operacja Turrety i edycja daty wysyłki */
.op-card.op-turrety {
  border-color: rgba(232, 121, 249, 0.55);
}
.order-meta span:first-child {
  font-weight: 650;
}


/* v27/v28 - czytelna tabela obsady: nie ściskać, tylko przewijać */
table input[type="number"] { width:54px !important; min-width:54px !important; height:42px !important; font-size:16px !important; font-weight:700 !important; text-align:center !important; padding:6px !important; box-sizing:border-box !important; }
.week-table input,.staff-table input,.staff-role-cell input,.cap-input{width:54px!important;min-width:54px!important;height:42px!important;font-size:16px!important;font-weight:700!important;text-align:center!important;}
.table-wrap,.table-wrap.wide,.staffing-grid,.staffing-table,.week-staffing,.capacity-grid,.capacity-table{overflow-x:auto!important;max-width:100%!important;-webkit-overflow-scrolling:touch!important;}
.week-table th,.week-table td,.staff-table th,.staff-table td{min-width:210px!important;white-space:nowrap!important;}
.week-table th:first-child,.week-table td:first-child,.staff-table th:first-child,.staff-table td:first-child{min-width:220px!important;position:sticky!important;left:0!important;z-index:8!important;background:#fff!important;box-shadow:2px 0 0 rgba(15,23,42,.1)!important;}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important;}


/* v28 - Gantt: wspólna szerokość osi, ścieżka zlecenia, szczegóły operacji */
.shift-line{overflow:hidden!important;position:relative;border-bottom:1px solid var(--line);background:#fff;}
.shift-left{z-index:12!important;box-shadow:2px 0 0 rgba(15,23,42,.08);}
.shift-grid{display:flex!important;transition:none!important;will-change:transform;}
.shift-day{display:grid!important;grid-template-rows:24px 38px!important;border-right:1px solid var(--line);text-align:center;}
.shift-day strong{grid-column:1/-1;padding-top:5px;font-weight:900;color:#0b2a50;}
.shift-day span{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-weight:900;border-top:1px solid #e2eaf6;}
.shift-day span small{font-size:10px;color:inherit;opacity:.95;}
.gantt{overflow:auto!important;max-height:68vh!important;background:#fff;position:relative;}
.gantt-table{position:relative!important;background:#fff;}
.gantt-row{display:flex;border-bottom:1px solid var(--line);}
.gantt-label{width:240px!important;min-width:240px!important;position:sticky!important;left:0!important;z-index:5!important;background:#fbfdff!important;box-shadow:2px 0 0 rgba(15,23,42,.08);}
.gantt-track{position:relative!important;overflow:visible!important;background-color:#fff;background-image:linear-gradient(to right,rgba(36,107,253,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(15,23,42,.06) 1px,transparent 1px);background-size:64px 100%,100% 38px;}
.gantt-bar{height:30px!important;border-radius:8px!important;padding:5px 10px!important;box-shadow:0 5px 14px rgba(15,23,42,.22)!important;border:1px solid rgba(255,255,255,.35);cursor:pointer;}
.gantt-bar.critical{outline:3px solid rgba(239,68,68,.38);box-shadow:0 0 0 3px rgba(239,68,68,.16),0 5px 16px rgba(15,23,42,.24)!important;}
.gantt-bar.dependency-blocked{filter:saturate(.85);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.18) 0 7px,rgba(255,255,255,.04) 7px 14px);}
.gantt-bar.clipped{border-left-style:dashed!important;border-right-style:dashed!important;}
.gantt-bar b{font-size:12px!important;display:inline-block;margin-right:8px;}
.gantt-bar span{font-size:11px!important;font-weight:800!important;}
.gantt-table.compact .gantt-bar{height:22px!important;padding:3px 8px!important;font-size:11px!important;}
.gantt-table.path-mode .gantt-label{background:#f8fbff!important;}
.gantt-deps-svg{position:absolute;left:240px;top:0;z-index:3;pointer-events:none;overflow:visible;}
.gantt-deps-svg path{fill:none;stroke:#334155;stroke-width:2;stroke-dasharray:5 4;opacity:.55;}
.gantt-deps-svg path.critical{stroke:#ef4444;stroke-width:3;stroke-dasharray:none;opacity:.9;}
.gantt-insights{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr)) auto;gap:10px;padding:12px 16px;border-top:1px solid var(--line);background:#f8fbff;align-items:stretch;}
.gantt-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;}
.gantt-kpi b{font-size:12px;text-transform:uppercase;color:#49698b;}
.gantt-kpi span{font-weight:850;color:#0b2a50;}
.gantt-kpi.critical{border-color:#fecaca;background:#fff7f7;}
.gantt-detail-panel{position:fixed;right:24px;top:92px;width:380px;max-height:calc(100vh - 120px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px rgba(15,23,42,.24);z-index:200;padding:18px;display:none;}
.gantt-detail-panel.open{display:block;}
.gantt-detail-panel h3{margin:0 36px 10px 0;font-size:18px;color:#0b2a50;}
.panel-close{position:absolute;top:10px;right:12px;border:0;background:#eef4ff;border-radius:10px;font-size:22px;width:34px;height:34px;cursor:pointer;}
.detail-pill{display:inline-flex;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:5px 10px;font-weight:900;font-size:12px;margin-bottom:12px;}
.detail-pill.critical{border-color:#fecaca;background:#fee2e2;color:#b91c1c;}
.gantt-detail-panel dl{display:grid;grid-template-columns:130px 1fr;gap:7px 10px;margin:10px 0 16px;}
.gantt-detail-panel dt{font-size:12px;color:#64748b;font-weight:800;text-transform:uppercase;}
.gantt-detail-panel dd{margin:0;font-weight:800;color:#0b2a50;}
.gantt-detail-panel h4{margin:14px 0 8px;color:#0b2a50;}
.gantt-detail-panel ul{margin:0;padding-left:18px;line-height:1.65;}
.gantt-detail-panel li.ok{color:#15803d;font-weight:800;}
.gantt-detail-panel li.bad{color:#b91c1c;font-weight:800;}
.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.gantt-empty-state{margin:20px;}
@media(max-width:1200px){.gantt-insights{grid-template-columns:1fr}.gantt-detail-panel{left:16px;right:16px;width:auto;top:80px}.gantt-label,.shift-left{width:200px!important;min-width:200px!important}.gantt-deps-svg{left:200px;}}

/* v29 - Druk Windows + MS Project style dla ścieżki krytycznej */
.gantt-print-header{display:none;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px 16px;margin:0 16px 10px;justify-content:space-between;gap:20px;align-items:flex-start;color:#0b2a50}
.gantt-print-header b{font-size:18px;display:block;margin-bottom:4px}.gantt-print-header span{display:block;color:#49698b;font-weight:700;font-size:12px;margin-top:2px}
.gantt-table.path-mode .gantt-label{border-right:1px solid #cbd8ea;background:linear-gradient(180deg,#f8fbff,#eef5ff)!important}.gantt-table.path-mode .gantt-row{border-bottom:1px solid #d7e4f3}.gantt-table.path-mode .gantt-bar{border-radius:5px!important;height:26px!important;padding:4px 9px!important;box-shadow:0 2px 7px rgba(15,23,42,.22)!important}.gantt-table.path-mode .gantt-bar.critical{outline:0!important;border:2px solid #ef4444!important;box-shadow:0 0 0 2px rgba(239,68,68,.16),0 3px 10px rgba(15,23,42,.25)!important}.gantt-table.path-mode .gantt-bar.critical::after{content:"";position:absolute;inset:-5px;border-radius:8px;border:1px solid rgba(239,68,68,.38);pointer-events:none}.gantt-table.path-mode .gantt-track{background-size:64px 100%,100% 32px;background-color:#fff}
.gantt-deps-svg.msproject{z-index:4}.gantt-deps-svg.msproject path{fill:none;stroke-linejoin:miter;stroke-linecap:square}.gantt-deps-svg.msproject path.normal{stroke:#64748b;stroke-width:1.8;stroke-dasharray:none;opacity:.75}.gantt-deps-svg.msproject path.critical{stroke:#ef4444;stroke-width:2.8;stroke-dasharray:none;opacity:.95}.gantt-deps-svg.msproject .arrow-normal{fill:#64748b}.gantt-deps-svg.msproject .arrow-critical{fill:#ef4444}.gantt-kpi.critical{border-left:5px solid #ef4444}.detail-pill.critical{box-shadow:inset 0 0 0 1px rgba(185,28,28,.2)}
#print-gantt{background:#fff;border-color:#bcd0ea;color:#0b2a50;font-weight:900}#print-gantt:hover{border-color:#246bfd;color:#246bfd}
@media print{
  @page{size:A3 landscape;margin:8mm}
  html,body{background:#fff!important;color:#000!important;overflow:visible!important}
  body.print-mode .side,body.print-mode .top,body.print-mode .nav,body.print-mode .card-head,body.print-mode .gantt-toolbar,body.print-mode .gantt-detail-panel,body.print-mode .no-print,body.print-mode button{display:none!important}
  body.print-mode .app-shell{display:block!important;background:#fff!important}
  body.print-mode .main{margin:0!important;padding:0!important;display:block!important;background:#fff!important;width:100%!important;max-width:none!important}
  body.print-mode .view{display:none!important}body.print-mode #view-gantt{display:block!important}
  body.print-mode .card.gantt-card{box-shadow:none!important;border:0!important;margin:0!important;padding:0!important;background:#fff!important;border-radius:0!important}
  body.print-mode .gantt-print-header{display:flex!important}
  body.print-mode .shift-line{overflow:visible!important;border:1px solid #cbd8ea!important;border-bottom:0!important;margin:0 16px!important;page-break-inside:avoid}
  body.print-mode .gantt{overflow:visible!important;max-height:none!important;margin:0 16px!important;border:1px solid #cbd8ea!important;background:#fff!important}
  body.print-mode .gantt-table{transform-origin:top left!important;page-break-inside:avoid;background:#fff!important}
  body.print-mode .gantt-label,body.print-mode .shift-left{position:relative!important;left:auto!important;background:#f8fbff!important;color:#000!important}
  body.print-mode .gantt-bar{print-color-adjust:exact!important;-webkit-print-color-adjust:exact!important;color:#fff!important;box-shadow:none!important}
  body.print-mode .gantt-insights{display:grid!important;margin:8px 16px 0!important;border:1px solid #cbd8ea!important;background:#fff!important;page-break-inside:avoid}
  body.print-mode .gantt-deps-svg path.critical{stroke:#000!important;stroke-width:3!important}
}



/* PROPLAN v30 - wyraźne linie zmian Z1/Z2/Z3 + poprawa szerokości Gantta */
.shift-grid-v30 {
  overflow: visible !important;
  position: relative !important;
}

.shift-day-v30 {
  border-right: 2px solid #b8c8dc !important;
  box-sizing: border-box !important;
}

.shift-day-v30 > strong {
  border-bottom: 1px solid #bfd0e4 !important;
}

.shift-label {
  position: relative !important;
  border-left: 2px solid rgba(15, 23, 42, 0.18) !important;
  box-sizing: border-box !important;
}

.shift-label:first-of-type {
  border-left: 3px solid rgba(15, 23, 42, 0.30) !important;
}

.shift-label-1 {
  background: #e9f8ec !important;
  color: #075e22 !important;
}

.shift-label-2 {
  background: #fff1dc !important;
  color: #9a3b00 !important;
}

.shift-label-3 {
  background: #e8f2ff !important;
  color: #003e9a !important;
}

/* Linie zmian w całej siatce Gantta */
.gantt-track {
  position: relative !important;
  background-color: #fff !important;
}

.gantt-shift-line {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 0 !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.gantt-shift-line.shift-start {
  border-left: 1.5px dashed rgba(30, 64, 175, 0.33) !important;
}

.gantt-shift-line.day-start {
  border-left: 3px solid rgba(15, 23, 42, 0.26) !important;
}

.gantt-shift-line.shift-1 {
  border-left-color: rgba(22, 163, 74, 0.45) !important;
}

.gantt-shift-line.shift-2 {
  border-left-color: rgba(234, 88, 12, 0.48) !important;
}

.gantt-shift-line.shift-3 {
  border-left-color: rgba(37, 99, 235, 0.45) !important;
}

.gantt-bar {
  z-index: 3 !important;
}

.gantt-deps-svg {
  z-index: 2 !important;
}

/* Druk: linie zmian muszą być mocne i wyraźne na A3/A1/A0 */
@media print {
  .shift-day-v30 {
    border-right: 2.5px solid #4b5563 !important;
  }

  .shift-label {
    border-left: 2px solid #4b5563 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .shift-label-1 {
    background: #dff5e4 !important;
  }

  .shift-label-2 {
    background: #ffe8bf !important;
  }

  .shift-label-3 {
    background: #dbeafe !important;
  }

  .gantt-shift-line.shift-start {
    border-left: 1.8px dashed #4b5563 !important;
  }

  .gantt-shift-line.day-start {
    border-left: 3px solid #111827 !important;
  }

  .gantt-track {
    background-color: #fff !important;
  }
}


/* PROPLAN v31 - poprawka zamykania panelu i rzeczywistych granic zmian */
.shift-grid-v31 {
  overflow: visible !important;
  position: relative !important;
  display: flex !important;
  align-items: stretch !important;
}

.shift-day-v31 {
  position: relative !important;
  display: block !important;
  height: 76px !important;
  border-right: 3px solid #a9bad0 !important;
  box-sizing: border-box !important;
  background: #f8fbff !important;
}

.shift-day-v31 > strong {
  display: block !important;
  height: 26px !important;
  line-height: 26px !important;
  text-align: center !important;
  font-weight: 900 !important;
  color: #0b2a50 !important;
  border-bottom: 1px solid #c3d2e5 !important;
  background: #f1f6fc !important;
}

.shift-day-body {
  position: relative !important;
  height: 50px !important;
}

.shift-day-v31 .shift-label {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  border-left: 2px solid rgba(15, 23, 42, 0.28) !important;
  border-right: 2px solid rgba(15, 23, 42, 0.18) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.shift-day-v31 .shift-label b {
  font-size: 12px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

.shift-day-v31 .shift-label small {
  font-size: 10px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
}

.shift-label-1 { background: #e2f8e9 !important; color: #075e22 !important; }
.shift-label-2 { background: #fff0d5 !important; color: #9a3b00 !important; }
.shift-label-3 { background: #e4f0ff !important; color: #003e9a !important; }
.shift-label-4 { background: #f1e8ff !important; color: #5b21b6 !important; }

.gantt-shift-line.shift-boundary,
.gantt-shift-line.shift-start,
.gantt-shift-line.shift-end {
  border-left: 2px dashed rgba(30, 64, 175, 0.38) !important;
}

.gantt-shift-line.day-start {
  border-left: 4px solid rgba(15, 23, 42, 0.32) !important;
}

.gantt-shift-line.shift-1 { border-left-color: rgba(22, 163, 74, 0.55) !important; }
.gantt-shift-line.shift-2 { border-left-color: rgba(234, 88, 12, 0.58) !important; }
.gantt-shift-line.shift-3 { border-left-color: rgba(37, 99, 235, 0.55) !important; }
.gantt-shift-line.shift-4 { border-left-color: rgba(124, 58, 237, 0.55) !important; }

.panel-close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
  user-select: none !important;
  z-index: 260 !important;
}

.panel-close:hover {
  background: #dbeafe !important;
  color: #0b2a50 !important;
  transform: translateY(-1px);
}

@media print {
  .shift-day-v31 {
    border-right: 3px solid #111827 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .shift-day-v31 > strong {
    border-bottom: 1.5px solid #111827 !important;
    background: #eef2f7 !important;
  }

  .shift-day-v31 .shift-label {
    border-left: 2.4px solid #111827 !important;
    border-right: 1.8px solid #4b5563 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .gantt-shift-line.shift-boundary,
  .gantt-shift-line.shift-start,
  .gantt-shift-line.shift-end {
    border-left: 2.2px dashed #374151 !important;
  }

  .gantt-shift-line.day-start {
    border-left: 4px solid #111827 !important;
  }
}

/* ===== PROPLAN CORE-01: ręczne dane planistyczne ===== */
.form.four-col {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: end;
}

.span-two { grid-column: span 2; }
.span-all { grid-column: 1 / -1; }
.nowrap { white-space: nowrap; }

.core-edit-grid {
  grid-template-columns: minmax(0, 1.55fr) minmax(340px, 0.75fr) !important;
  align-items: start;
}

.core-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.core-kpi {
  min-height: 78px;
  padding: 12px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}

.core-kpi span {
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}

.core-kpi strong {
  color: #0f172a;
  font-size: 21px;
  line-height: 1.15;
}

.core-kpi.critical {
  border-color: #fecaca;
  background: #fff1f2;
}

.core-kpi.critical strong { color: #b91c1c; }

.core-stage {
  margin-top: 14px;
  border: 1px solid #dbe3ee;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.core-stage-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  border-bottom: 1px solid #dbe3ee;
  background: #f1f5f9;
}

.core-stage-head h3 {
  margin: 0;
  color: #0f172a;
  font-size: 16px;
}

.core-stage-head small {
  color: #64748b;
  font-weight: 700;
}

.core-stage .table-wrap {
  margin: 0;
  border: 0;
  border-radius: 0;
}

.core-table { min-width: 1120px; }

.core-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.core-pill.ok {
  border-color: #86efac;
  background: #ecfdf5;
  color: #166534;
}

.core-pill.warn {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.core-pill.bad {
  border-color: #fecaca;
  background: #fff1f2;
  color: #b91c1c;
}

.staff-role-cell { min-width: 205px; }
.staff-role-cell input[data-role="blasting"] { border-color: #0f766e; }

#core-task-notes,
#order-notes {
  min-height: 68px;
  resize: vertical;
}

@media (max-width: 1200px) {
  .form.four-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .core-edit-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 700px) {
  .form.four-col { grid-template-columns: 1fr; }
  .span-two,
  .span-all { grid-column: auto; }
  .core-stage-head { align-items: flex-start; flex-direction: column; }
}

.core-kpi b,
.core-kpi strong {
  color: #0f172a;
  font-size: 21px;
  line-height: 1.15;
}

.core-stage-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
}

.core-stage-head > div > span {
  padding: 2px 7px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #64748b;
  background: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .03em;
}

/* ===== PROPLAN CORE-02: planer gniazd i obciążenie ===== */
.core-plan-toolbar { justify-content: flex-end; }
.core-plan-note {
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #bfdbfe;
  border-radius: 12px;
  background: #eff6ff;
  color: #274b76;
  line-height: 1.45;
}
.core-kpi.good { border-color: #bbf7d0; background: #f0fdf4; }
.core-kpi.warning { border-color: #fde68a; background: #fffbeb; }
.core-kpi.warning b { color: #92400e; }
.core-plan-gantt-card { padding: 0; overflow: hidden; }
.core-plan-gantt-card > .card-head { padding: 16px 18px; margin: 0; border-bottom: 1px solid var(--line); }
.core-plan-gantt { overflow: auto; max-height: 650px; background: #fff; }
.core-plan-table { min-width: 1120px; position: relative; }
.core-plan-axis,
.core-plan-row { display: flex; border-bottom: 1px solid var(--line); }
.core-plan-axis { position: sticky; top: 0; z-index: 15; min-height: 52px; background: #f8fbff; }
.core-plan-axis-label,
.core-plan-label {
  width: 225px;
  min-width: 225px;
  padding: 10px 13px;
  border-right: 1px solid var(--line);
  background: #f8fbff;
  position: sticky;
  left: 0;
  z-index: 11;
}
.core-plan-axis-label { display: grid; align-items: center; font-weight: 900; color: #15395f; z-index: 16; }
.core-plan-label b { display: block; }
.core-plan-label span { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
.core-plan-days { display: flex; min-height: 52px; }
.core-plan-day {
  min-width: 56px;
  padding: 8px 4px;
  border-right: 1px solid #dbe5f2;
  text-align: center;
  background: #f8fbff;
}
.core-plan-day b { display: block; font-size: 12px; }
.core-plan-day span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.core-plan-row { min-height: 62px; }
.core-plan-track {
  min-height: 62px;
  position: relative;
  background-color: #fff;
  background-image: linear-gradient(to right, rgba(36,107,253,.13) 1px, transparent 1px);
  background-size: var(--core-day, 56px) 100%;
}
.core-plan-bar {
  position: absolute;
  top: 10px;
  height: 42px;
  border: 0;
  border-radius: 9px;
  padding: 5px 9px;
  overflow: hidden;
  white-space: nowrap;
  text-align: left;
  color: #fff;
  background: #2563eb;
  box-shadow: 0 4px 12px rgba(30,64,175,.22);
  cursor: pointer;
  z-index: 3;
}
.core-plan-bar:hover { transform: translateY(-1px); filter: brightness(1.04); z-index: 6; }
.core-plan-bar b,
.core-plan-bar span,
.core-plan-bar small { display: block; overflow: hidden; text-overflow: ellipsis; }
.core-plan-bar b { font-size: 11px; line-height: 1.05; }
.core-plan-bar span { font-size: 11px; font-weight: 800; line-height: 1.05; }
.core-plan-bar small { font-size: 9px; opacity: .9; margin-top: 2px; }
.core-plan-bar.running { background: #15803d; outline: 2px solid #86efac; }
.core-plan-bar.delayed { background: #b91c1c; outline: 2px solid #fecaca; }
.core-plan-bar.material-warning { box-shadow: inset 0 -4px 0 #f59e0b, 0 4px 12px rgba(30,64,175,.22); }
.core-plan-bar.priority-high::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  width: 7px;
  height: 100%;
  background: rgba(255,255,255,.42);
}
.core-plan-bottom { grid-template-columns: minmax(0,1.45fr) minmax(360px,.75fr) !important; align-items: start; }
.core-load-table { min-width: 930px; }
.load-pill {
  display: inline-flex;
  min-width: 68px;
  justify-content: center;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid #cbd5e1;
  font-weight: 900;
}
.load-pill.good { color: #166534; background: #ecfdf5; border-color: #86efac; }
.load-pill.warning { color: #92400e; background: #fffbeb; border-color: #fde68a; }
.load-pill.critical { color: #b91c1c; background: #fff1f2; border-color: #fecaca; }
.core-role-load { display: flex; gap: 5px; flex-wrap: wrap; min-width: 250px; }
.core-role-load span {
  padding: 3px 6px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #334155;
  font-size: 10px;
  font-weight: 850;
}
.text-danger { color: #b91c1c !important; font-weight: 850; }
.core-plan-issues { display: grid; gap: 8px; max-height: 510px; overflow: auto; }
.core-plan-issue {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid #fde68a;
  border-radius: 11px;
  background: #fffbeb;
}
.core-plan-issue.error { border-color: #fecaca; background: #fff1f2; }
.core-plan-issue b,
.core-plan-issue span,
.core-plan-issue small { display: block; }
.core-plan-issue b { color: #7c2d12; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.core-plan-issue.error b { color: #991b1b; }
.core-plan-issue span { margin-top: 3px; line-height: 1.35; font-weight: 700; }
.core-plan-issue small { margin-top: 4px; color: var(--muted); }

@media (max-width: 1250px) {
  .core-plan-bottom { grid-template-columns: 1fr !important; }
}

/* ===== PROPLAN CORE-02B: szablony gniazd i generator struktury ===== */
.nav-group{
  display:block;
  padding:8px 12px 1px;
  color:#7897b9;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.legacy-nav{opacity:.72}
.legacy-nav:hover,.legacy-nav.active{opacity:1}
.info-card p{line-height:1.55;color:#49698b}
.form.four-col{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.span-two{grid-column:span 2}.span-all{grid-column:1/-1}
.template-editor-grid{grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr)!important}
.template-task-grid{grid-template-columns:minmax(600px,1.45fr) minmax(360px,.75fr)!important;align-items:start}
.template-task-list{display:grid;gap:14px}
.template-workcenter{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.template-workcenter-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f1f5f9;border-bottom:1px solid var(--line)}
.template-workcenter-head>div{display:flex;align-items:center;gap:8px}
.template-workcenter-head span{padding:2px 7px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#64748b;font-size:10px;font-weight:850}
.template-workcenter-head strong{color:#49698b;font-size:12px}
.template-workcenter .table-wrap{border:0;border-radius:0}
.template-table{min-width:1050px}
.row-disabled{opacity:.55;background:#f8fafc}
.structure-generator-card{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}
.generation-form{grid-template-columns:repeat(6,minmax(125px,1fr));align-items:end}
.template-picker{display:grid;gap:12px;margin-top:16px}
.template-picker-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}
.template-picker-head b{color:#15395f;font-size:15px}.template-picker-head span{color:#49698b;font-size:12px;text-align:right}
.template-picker-group{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.template-picker-group>b{display:block;padding:9px 12px;background:#f1f5f9;color:#15395f;border-bottom:1px solid var(--line)}
.template-picker-group>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:0}
.template-pick-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 12px;border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;cursor:pointer}
.template-pick-row:hover{background:#f8fbff}.template-pick-row.required{background:#f0fdf4}
.template-pick-row input{width:17px;height:17px;padding:0}
.template-pick-row strong,.template-pick-row small{display:block}.template-pick-row small{margin-top:3px;color:var(--muted);font-size:10px}
.template-pick-row em{font-style:normal;color:#64748b;font-size:10px;font-weight:850}
.generation-result{margin-top:10px;color:#166534;font-weight:800}
.is-hidden{display:none!important}
.task-origin{display:inline-flex;margin-top:5px;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.task-origin.generated{background:#dbeafe;color:#1d4ed8}.task-origin.manual{background:#f1f5f9;color:#475569}
.core-edit-grid{grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr)!important;align-items:start;margin-top:18px}
.core-rule-check{align-self:center}

@media(max-width:1350px){
  .template-task-grid,.template-editor-grid,.core-edit-grid{grid-template-columns:1fr!important}
  .generation-form{grid-template-columns:repeat(3,minmax(140px,1fr))}
}
@media(max-width:850px){
  .form.four-col,.generation-form{grid-template-columns:1fr}
  .span-two,.span-all{grid-column:auto}
  .template-picker-head{flex-direction:column}.template-picker-head span{text-align:left}
}

/* CORE-02B polish */
.muted-row{opacity:.55;background:#f8fafc}
.generation-result.has-message{padding:10px 12px;border:1px solid #86efac;border-radius:10px;background:#ecfdf5}
.template-pick-row input:disabled{cursor:not-allowed}
.template-pick-row.required{cursor:default}

/* ===== PROPLAN CORE-02B: szablony technologii i automatyczna struktura ===== */
.nav-group {
  display: block;
  margin: 10px 10px 2px;
  color: #7fa3ca;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.legacy-nav { opacity: .78; }
.legacy-nav:hover,
.legacy-nav.active { opacity: 1; }

.template-editor-grid,
.template-task-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr) !important;
  align-items: start;
}
.template-task-grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, .75fr) !important;
}
.template-task-list { display: grid; gap: 14px; }
.template-workcenter {
  border: 1px solid #dbe3ee;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.template-workcenter-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid #dbe3ee;
  background: #f1f5f9;
}
.template-workcenter-head > div {
  display: flex;
  align-items: center;
  gap: 8px;
}
.template-workcenter-head span {
  padding: 2px 7px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  font-size: 10px;
  font-weight: 850;
}
.template-workcenter .table-wrap {
  margin: 0;
  border: 0;
  border-radius: 0;
}
.template-table { min-width: 1050px; }
.row-disabled { opacity: .55; background: #f8fafc; }

.structure-generator-card {
  border-color: #bfdbfe;
  background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}
.generation-form {
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  align-items: end;
}
.template-picker {
  margin-top: 14px;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.template-picker > .empty { border: 0; border-radius: 0; }
.template-picker-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border-bottom: 1px solid #dbeafe;
  background: #eff6ff;
}
.template-picker-head b,
.template-picker-head span,
.template-picker-head small { display: block; }
.template-picker-head b { color: #0b2a50; font-size: 15px; }
.template-picker-head span { margin-top: 3px; color: #49698b; font-size: 12px; }
.template-picker-head > small {
  color: #1d4ed8;
  font-weight: 850;
  white-space: nowrap;
}
.template-picker-group { border-bottom: 1px solid #e5edf7; }
.template-picker-group:last-child { border-bottom: 0; }
.template-picker-group > b {
  display: block;
  padding: 8px 14px;
  background: #f8fafc;
  color: #15395f;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.template-pick-row {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 54px;
  padding: 9px 14px;
  border-top: 1px solid #edf2f7;
  cursor: pointer;
}
.template-pick-row:hover { background: #f8fbff; }
.template-pick-row.required { background: #f0fdf4; }
.template-pick-row input { width: 17px; height: 17px; margin: 0; }
.template-pick-row strong,
.template-pick-row small { display: block; }
.template-pick-row strong { color: #0f172a; }
.template-pick-row small { margin-top: 3px; color: #64748b; font-size: 11px; }
.template-pick-row em {
  padding: 3px 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}
.template-pick-row.required em { background: #dcfce7; color: #166534; }
.generation-result {
  display: none;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #86efac;
  border-radius: 10px;
  background: #ecfdf5;
  color: #166534;
  font-weight: 800;
}
.generation-result.visible { display: block; }
.is-hidden { display: none !important; }
#core-manual-editor { scroll-margin-top: 105px; }

@media (max-width: 1350px) {
  .generation-form { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .template-editor-grid,
  .template-task-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 800px) {
  .generation-form { grid-template-columns: 1fr; }
  .template-picker-head { flex-direction: column; }
  .template-picker-head > small { white-space: normal; }
  .template-pick-row { grid-template-columns: 20px minmax(0,1fr); }
  .template-pick-row em { grid-column: 2; justify-self: start; }
}

/* CORE-03 — generator przewodnika i szybka obsada */
.generator-top-grid{align-items:stretch}
.generator-actions{flex-wrap:wrap}
.generator-rule{margin-top:14px;padding:12px 14px;border:1px solid #d9e5f3;border-radius:12px;background:#f7faff;color:#4b6380;font-size:13px;line-height:1.5}
.generator-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}
.generator-flow span{padding:8px 10px;border-radius:999px;background:#eef5ff;border:1px solid #cfe0f7;font-weight:700;color:#173d69}
.generator-flow i{font-style:normal;color:#7290b3;font-weight:800}
.status-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid #d4deea;background:#f6f8fb;color:#60738a}
.status-pill.ok{border-color:#a8e3c4;background:#ecfbf3;color:#167047}
.status-pill.neutral{border-color:#d4deea;background:#f6f8fb;color:#60738a}
.guide-warnings{margin:10px 0}
.guide-warning-box{display:grid;gap:5px;padding:12px 14px;border:1px solid #f5cf8a;border-radius:12px;background:#fff8e9;color:#795418}
.guide-warning-box span{font-size:12px;line-height:1.4}
.guide-tree{display:grid;gap:10px}
.guide-station,.guide-task{border:1px solid #dce6f2;border-radius:12px;background:#fff;overflow:hidden}
.guide-station>summary,.guide-task>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:#f8fbff}
.guide-station>summary::-webkit-details-marker,.guide-task>summary::-webkit-details-marker{display:none}
.guide-station>summary:before,.guide-task>summary:before{content:'▸';color:#4474aa;font-weight:900;flex:0 0 auto}
.guide-station[open]>summary:before,.guide-task[open]>summary:before{content:'▾'}
.guide-station>summary span,.guide-task>summary span{display:grid;gap:3px;flex:1}
.guide-station>summary small,.guide-task>summary small{color:#7188a2}
.guide-station>summary em{font-style:normal;font-size:12px;color:#58708d;text-align:right}
.guide-station-body{padding:10px;display:grid;gap:8px;background:#f5f8fc}
.guide-task>summary{padding:10px 12px;background:#fff}
.guide-operation-list{border-top:1px solid #e4ebf3}
.guide-operation{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 12px;border-bottom:1px solid #edf2f7;font-size:12px}
.guide-operation:last-child{border-bottom:0}
.guide-operation span{display:flex;gap:9px;align-items:center}
.guide-operation span b{min-width:26px;color:#2b65a9}
.guide-operation em{font-style:normal;color:#617991;text-align:right}

.staffing-quick{margin:12px 0 16px;padding:14px;border:1px solid #d7e3f1;border-radius:14px;background:linear-gradient(180deg,#fbfdff 0%,#f5f9fe 100%)}
.staff-quick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.staff-quick-head>div{display:grid;gap:3px}
.staff-quick-head span{font-size:12px;color:#6b819b}
.staff-quick-grid{display:grid;grid-template-columns:minmax(240px,1.5fr) repeat(3,minmax(150px,1fr));gap:10px}
.staff-quick-group{padding:10px;border:1px solid #dfe8f3;border-radius:10px;background:#fff;min-width:0}
.staff-quick-group>b{display:block;margin-bottom:8px;font-size:12px;color:#173a63}
.staff-quick-group>b small{font-weight:500;color:#8497aa}
.staff-quick-wcs{grid-row:span 2}
.staff-quick-wcs>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;max-height:140px;overflow:auto;padding-right:4px}
.staff-quick-wcs label,.inline-checks label{display:flex;align-items:center;gap:6px;font-size:12px;color:#415a74}
.inline-checks{display:flex;flex-wrap:wrap;gap:7px 12px}
.staff-quick-roles{grid-column:span 2}
.staff-quick-roles>div{display:grid;grid-template-columns:repeat(5,minmax(52px,1fr));gap:7px}
.staff-quick-roles label{display:grid;gap:3px;font-size:11px;font-weight:800;color:#45617f}
.staff-quick-roles input,.staff-quick-group select{width:100%;min-height:34px;border:1px solid #cbd9e8;border-radius:8px;padding:5px 7px;background:#fff}
.staff-quick-actions{margin-top:10px;flex-wrap:wrap}
.staff-wc-label label{display:flex;align-items:center;gap:8px}
.staff-wc-label label>span{display:grid}
.cap-role-cell{display:grid;grid-template-columns:repeat(5,minmax(34px,1fr));gap:4px;min-width:210px}
.cap-role-cell input{width:100%;min-width:0;text-align:center;border:1px solid #c8d7e8;border-radius:7px;padding:6px 2px}
.cap-table th em{display:block;margin-top:3px;font-style:normal;font-size:10px;color:#69809a}

.core-operation-detail{margin-top:12px;border:1px solid #d9e4f0;border-radius:13px;background:#f8fbff;overflow:hidden}
.operation-detail-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid #dfe8f2;background:#fff}
.operation-detail-head>div{display:grid;gap:3px}
.operation-detail-head h3{margin:0;font-size:15px;color:#102f52}
.operation-detail-head span{font-size:12px;color:#6b8199}
.operation-timeline{display:grid}
.operation-timeline-row{display:grid;grid-template-columns:34px minmax(240px,1fr) minmax(225px,.7fr);gap:10px;align-items:center;padding:10px 14px;border-bottom:1px solid #e5edf5}
.operation-timeline-row:last-child{border-bottom:0}
.operation-index{display:grid;place-items:center;width:25px;height:25px;border-radius:999px;background:#e8f2ff;color:#1f66bd;font-weight:900;font-size:11px}
.operation-name,.operation-time{display:grid;gap:3px}
.operation-name b{font-size:12px;color:#173a61}
.operation-name span,.operation-time span{font-size:11px;color:#70859d}
.operation-time{text-align:right}
.operation-time b{font-size:11px;color:#324e6d}

@media (max-width:1200px){
  .staff-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .staff-quick-wcs{grid-row:auto}
  .staff-quick-roles{grid-column:span 2}
}
@media (max-width:760px){
  .staff-quick-grid{grid-template-columns:1fr}
  .staff-quick-roles{grid-column:auto}
  .staff-quick-roles>div{grid-template-columns:repeat(3,minmax(52px,1fr))}
  .staff-quick-wcs>div{grid-template-columns:1fr}
  .operation-timeline-row{grid-template-columns:30px 1fr}
  .operation-time{grid-column:2;text-align:left}
  .guide-station>summary{align-items:flex-start}
  .guide-station>summary em{display:none}
}

/* ===== PROPLAN CORE-04: APS, analityka i dynamiczny Gantt ===== */
.btn.accent{background:#6d28d9;color:#fff;border-color:#6d28d9}.btn.accent:hover{background:#5b21b6}
.aps-dashboard-detail{margin-top:14px;padding-top:14px;border-top:1px solid #dbe5ef}
.aps-dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:18px}
.aps-dashboard-columns h3{margin:0 0 9px;color:#173a61;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.aps-role-cards{display:grid;grid-template-columns:repeat(5,minmax(115px,1fr));gap:8px}
.aps-role-card{display:grid;gap:3px;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}
.aps-role-card b{font-size:11px;color:#475569}.aps-role-card strong{font-size:20px;color:#0f172a}.aps-role-card span{font-size:10px;color:#64748b;line-height:1.3}
.aps-role-card.good{border-color:#bbf7d0;background:#f0fdf4}.aps-role-card.warning{border-color:#fde68a;background:#fffbeb}.aps-role-card.critical{border-color:#fecaca;background:#fff1f2}.aps-role-card.critical strong{color:#b91c1c}
.aps-shipments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.aps-shipment{border:1px solid #d6e0eb;border-radius:9px;padding:8px 10px;background:#fff;text-align:left;display:grid;gap:2px;color:#173a61;cursor:pointer}
.aps-shipment:hover{border-color:#79a9e4;background:#f8fbff}.aps-shipment.risk{border-color:#fecaca;background:#fff7f7}
.aps-shipment b{font-size:12px}.aps-shipment span,.aps-shipment small{font-size:10px;color:#64748b}.aps-shipment.risk small{color:#b91c1c;font-weight:800}
.core-plan-legend{position:sticky;left:0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid #dbe5ef;background:#f8fbff;color:#5b718a;font-size:10px;font-weight:800;z-index:17}
.core-plan-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:10px;height:10px;border-radius:3px;background:#2563eb}.legend-dot.critical{background:#7c3aed}.legend-dot.manual{background:#0f766e}.legend-dot.delayed{background:#b91c1c}
.core-plan-bar.critical-path{outline:3px solid #c4b5fd;background:#6d28d9;box-shadow:0 5px 14px rgba(109,40,217,.28)}
.core-plan-bar.manual-constrained{box-shadow:inset 0 -5px 0 #14b8a6,0 4px 12px rgba(30,64,175,.22)}
.core-plan-bar.dragging{opacity:.72;z-index:30;cursor:grabbing;transition:none!important;filter:none!important}
.core-drag-handle{position:absolute;right:4px;top:3px;font-style:normal;font-size:12px;opacity:.75;cursor:grab}
.aps-task-controls{display:grid;grid-template-columns:minmax(220px,1fr) 120px 130px minmax(190px,1fr) auto auto;gap:8px;align-items:end;padding:11px 14px;border-bottom:1px solid #dfe8f2;background:#f0f7ff}
.aps-task-controls>div{display:grid;gap:2px}.aps-task-controls>div b{font-size:12px;color:#173a61}.aps-task-controls>div span{font-size:10px;color:#6c829a}
.aps-task-controls label{display:grid;gap:3px;font-size:10px;font-weight:800;color:#526d89}.aps-task-controls select,.aps-task-controls input{min-height:34px;border:1px solid #c7d6e7;border-radius:8px;padding:6px 8px;background:#fff}
.aps-manual-info{grid-column:1/-1;color:#0f766e;font-weight:800}
.aps-timeline{overflow:auto}.aps-timeline-scroll{display:grid;gap:7px;min-width:760px;max-height:390px;overflow:auto;padding-right:5px}
.aps-timeline-row{display:grid;grid-template-columns:155px minmax(320px,1fr) minmax(220px,.7fr);gap:12px;align-items:center;padding:7px 9px;border:1px solid #e1e8f0;border-radius:9px;background:#fff}
.aps-timeline-date{display:grid;gap:2px}.aps-timeline-date b{font-size:12px;color:#173a61}.aps-timeline-date span{font-size:10px;color:#71869d}
.aps-timeline-track{height:24px;border-radius:999px;background:#edf2f7;position:relative;overflow:hidden}.aps-timeline-track i{position:absolute;left:0;top:0;height:100%;background:#22c55e}.aps-timeline-track i.warning{background:#f59e0b}.aps-timeline-track i.critical{background:#dc2626}.aps-timeline-track b{position:absolute;inset:0;display:grid;place-items:center;font-size:10px;color:#0f172a;text-shadow:0 1px #fff}
.aps-timeline-row>small{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.core-aps-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start}.aps-panel-list{display:grid;gap:8px;max-height:470px;overflow:auto}
.aps-list-row,.aps-action-row,.aps-critical-order{border:1px solid #dce5ef;border-radius:10px;padding:10px 11px;background:#fff}
.aps-list-row,.aps-action-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.aps-list-row>div,.aps-action-row>div{display:grid;gap:3px;min-width:0}
.aps-list-row b,.aps-action-row b{font-size:12px;color:#173a61}.aps-list-row span,.aps-action-row span{font-size:11px;color:#536d88}.aps-list-row small,.aps-action-row small{font-size:10px;color:#7b8fa4;line-height:1.35}
.aps-list-row.critical{border-color:#fecaca;background:#fff7f7}.aps-list-row.warning{border-color:#fde68a;background:#fffcf3}.aps-list-row.info{border-color:#bfdbfe;background:#f7fbff}
.aps-critical-order.risk{border-color:#fecaca;background:#fff8f8}.aps-list-head{display:flex;justify-content:space-between;gap:10px}.aps-list-head>div{display:grid;gap:2px}.aps-list-head b{font-size:13px;color:#173a61}.aps-list-head span,.aps-list-head small{font-size:10px;color:#6b8199}
.aps-critical-chain{display:flex;align-items:stretch;gap:5px;margin-top:8px;overflow:auto;padding-bottom:3px}.aps-critical-chain button{min-width:125px;max-width:190px;border:1px solid #c4b5fd;border-radius:8px;padding:7px 8px;background:#f5f3ff;text-align:left;display:grid;gap:2px;cursor:pointer}.aps-critical-chain button:hover{background:#ede9fe}.aps-critical-chain button b{font-size:10px;color:#5b21b6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aps-critical-chain button span{font-size:9px;color:#7c3aed}.aps-critical-chain i{align-self:center;font-style:normal;color:#7c3aed;font-weight:900}
@media(max-width:1250px){.aps-dashboard-columns{grid-template-columns:1fr}.aps-role-cards{grid-template-columns:repeat(3,minmax(120px,1fr))}.aps-task-controls{grid-template-columns:repeat(3,minmax(140px,1fr))}.aps-task-controls>div{grid-column:1/-1}}
@media(max-width:850px){.core-aps-grid{grid-template-columns:1fr!important}.aps-role-cards{grid-template-columns:repeat(2,minmax(110px,1fr))}.aps-shipments{grid-template-columns:1fr}.aps-task-controls{grid-template-columns:1fr}.aps-timeline-row{grid-template-columns:130px minmax(260px,1fr)}.aps-timeline-row>small{grid-column:2}.core-plan-axis-label,.core-plan-label{width:170px;min-width:170px}}

/* ===== PROPLAN CORE-04A: automatyczne poprzedniki i linie zależności ===== */
.core-plan-dependency-svg {
  position: absolute;
  z-index: 2;
  pointer-events: none;
  overflow: visible;
}
.core-dependency-link {
  fill: none;
  stroke: #475569;
  stroke-width: 2;
  stroke-linejoin: round;
  stroke-linecap: round;
  opacity: .78;
  vector-effect: non-scaling-stroke;
}
.core-plan-dependency-svg marker path { fill: #475569; }
.core-plan-bar.has-predecessor { border-left: 4px solid rgba(255,255,255,.72); }
.core-dependency-count {
  display: inline-flex;
  align-items: center;
  margin-left: 3px;
  padding: 0 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
  color: inherit;
  font-style: normal;
  font-size: 9px;
  line-height: 15px;
}
.legend-dot.dependency { background: #475569; }
.core-plan-dep-warning {
  margin: 10px 14px;
  padding: 10px 12px;
  border: 1px solid #fbbf24;
  border-radius: 10px;
  background: #fffbeb;
  color: #854d0e;
  font-size: 12px;
}

/* ===== PROPLAN CORE-05: FLOW, schematy zależności i gotowość planu ===== */
.nav-group{display:block;margin:10px 10px 0;color:#7fa0c4;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.nav-step{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:7px;background:rgba(255,255,255,.1);font-size:11px;font-weight:900}
.nav.active .nav-step,.nav:hover .nav-step{background:rgba(255,255,255,.22)}
.eyebrow{display:block;margin-bottom:7px;color:#246bfd;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 26px;margin-bottom:18px;border:1px solid #cfe0f5;border-radius:20px;background:linear-gradient(135deg,#fff,#eef6ff);box-shadow:0 12px 32px rgba(22,50,90,.07)}
.dashboard-hero h2{margin:0 0 8px;font-size:25px;color:#082343}.dashboard-hero p{margin:0;color:#5e7896;max-width:720px;line-height:1.55}
.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.dashboard-kpi{display:grid;gap:3px;padding:16px 18px;border:1px solid #d7e2f3;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(22,50,90,.05)}
.dashboard-kpi b{font-size:27px;line-height:1;color:#0b2345}.dashboard-kpi span{color:#66809f;font-size:12px;font-weight:750}.dashboard-kpi.good{border-color:#bbf7d0;background:#f3fdf6}.dashboard-kpi.warning{border-color:#fde68a;background:#fffbeb}.dashboard-kpi.critical{border-color:#fecaca;background:#fff4f4}.dashboard-kpi.critical b{color:#b91c1c}
.flow-steps{display:flex;align-items:stretch;gap:8px;overflow:auto;padding-bottom:3px}.flow-step{min-width:145px;flex:1;display:flex;align-items:center;gap:10px;border:1px solid #d3e1f1;border-radius:13px;padding:12px;background:#f9fbfe;color:#0b2345;text-align:left;cursor:pointer}.flow-step:hover{border-color:#78a8e3;background:#eff6ff}.flow-step i{display:grid;place-items:center;min-width:30px;height:30px;border-radius:9px;background:#246bfd;color:#fff;font-style:normal;font-weight:900}.flow-step span{display:grid;gap:2px}.flow-step b{font-size:12px}.flow-step small{font-size:10px;color:#6b829c}.flow-connector{align-self:center;color:#91a6bd;font-weight:900}
.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-list{display:grid;gap:8px}.dashboard-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;border:1px solid #dce6f1;border-radius:12px;background:#fff;padding:11px 12px;text-align:left;cursor:pointer}.dashboard-row:hover{border-color:#82ace0;background:#f8fbff}.dashboard-row span{display:grid;gap:2px}.dashboard-row b{font-size:12px;color:#173a61}.dashboard-row small{font-size:10px;color:#71859b}.flow-state{padding:5px 8px;border-radius:999px;background:#eef3f8;color:#60758d;font-size:10px;font-style:normal;font-weight:900;white-space:nowrap}.flow-state.ok{background:#dcfce7;color:#166534}.flow-state.warning{background:#fef3c7;color:#92400e}.flow-state.error{background:#fee2e2;color:#b91c1c}
.dashboard-alert{display:grid;gap:3px;border:1px solid #dce6f1;border-radius:12px;padding:11px 12px;background:#fbfdff}.dashboard-alert b{font-size:12px;color:#173a61}.dashboard-alert span{font-size:10px;color:#71859b}.dashboard-alert.critical{border-color:#fecaca;background:#fff5f5}.dashboard-alert.critical b{color:#b91c1c}
.order-flow-strip{display:flex;gap:6px;align-items:center;overflow:auto;margin:0 0 14px;padding:8px;border:1px solid #dbe6f2;border-radius:13px;background:#f8fbff}.order-flow-step{display:flex;align-items:center;gap:6px;min-width:max-content;border:1px solid #d7e2ef;border-radius:9px;background:#fff;padding:7px 9px;color:#4f6680;cursor:pointer}.order-flow-step i{display:grid;place-items:center;width:21px;height:21px;border-radius:7px;background:#e9eff6;font-style:normal;font-size:10px;font-weight:900}.order-flow-step span{font-size:10px;font-weight:850}.order-flow-step.ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.order-flow-step.ok i{background:#dcfce7}.order-flow-step.warning{border-color:#fde68a;background:#fffbeb;color:#92400e}.order-flow-step.error{border-color:#fecaca;background:#fff5f5;color:#b91c1c}
.settings-intro{border-left:5px solid #246bfd}.settings-note,.generator-rule{padding:11px 13px;border:1px solid #cfe0f5;border-radius:11px;background:#f5f9ff;color:#49698b;line-height:1.45}.settings-note code{padding:2px 5px;border-radius:5px;background:#e5eef9;color:#173a61}
.scheme-layout{grid-template-columns:minmax(310px,.8fr) minmax(420px,1.2fr)!important}.scheme-list{display:grid;gap:8px;max-height:520px;overflow:auto}.scheme-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid #dce6f1;border-radius:12px;background:#fff;padding:11px 12px;text-align:left;cursor:pointer}.scheme-row:hover,.scheme-row.selected{border-color:#246bfd;background:#eef5ff}.scheme-row span{display:grid;gap:2px}.scheme-row b{font-size:12px;color:#173a61}.scheme-row small{font-size:10px;color:#6f849b}.scheme-row em{padding:4px 7px;border-radius:999px;background:#edf2f7;color:#60758d;font-size:9px;font-style:normal;font-weight:900}.scheme-row em.ok{background:#dcfce7;color:#166534}
.rule-grid{grid-template-columns:repeat(3,minmax(115px,1fr)) 34px repeat(3,minmax(115px,1fr))!important;align-items:end}.rule-arrow{display:grid;place-items:center;height:40px;font-size:21px;font-weight:900;color:#246bfd}.scheme-rule-editor{padding:13px;border:1px solid #dce6f1;border-radius:13px;background:#f8fbff;margin-bottom:13px}.scheme-rules-list{display:grid;gap:7px}.scheme-rule-row{display:grid;grid-template-columns:minmax(170px,1fr) 30px minmax(170px,1fr) auto auto;align-items:center;gap:9px;border:1px solid #dce6f1;border-radius:11px;padding:9px 10px;background:#fff}.scheme-rule-row>i{font-style:normal;text-align:center;color:#246bfd;font-weight:900}.scheme-rule-row>em{color:#60758d;font-size:10px;font-style:normal;font-weight:800}.rule-code{display:grid;gap:2px}.rule-code b{font-size:11px;color:#173a61}.rule-code small{font-size:9px;color:#71859b}
.dependency-project-grid{grid-template-columns:minmax(340px,.85fr) minmax(480px,1.15fr)!important}.assignment-box{margin-top:12px}.assignment-active,.assignment-empty{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #bbf7d0;border-radius:11px;padding:10px 11px;background:#f0fdf4}.assignment-active span{display:grid;gap:2px}.assignment-active b{font-size:11px;color:#166534}.assignment-active small{font-size:9px;color:#4d7b5d}.assignment-empty{border-color:#fde68a;background:#fffbeb;color:#92400e;font-size:11px;font-weight:800}.dependency-preview-list{display:grid;gap:7px;max-height:430px;overflow:auto}.dependency-match{display:grid;grid-template-columns:minmax(145px,1fr) 24px minmax(145px,1fr) auto;align-items:center;gap:8px;border:1px solid #dce6f1;border-radius:10px;padding:8px 9px;background:#fff}.dependency-match span{display:grid;gap:2px}.dependency-match b{font-size:10px;color:#173a61}.dependency-match small{font-size:9px;color:#71859b}.dependency-match i{font-style:normal;color:#246bfd;font-weight:900}.dependency-match em{font-size:9px;font-style:normal;font-weight:900;color:#60758d}.dependency-match.ok{border-color:#bbf7d0;background:#f6fef8}.dependency-match.warning{border-color:#fde68a;background:#fffdf3}.dependency-match.critical{border-color:#fecaca;background:#fff7f7}.manual-dependency-box{margin-top:12px;padding:13px;border:1px solid #cfe0f5;border-radius:12px;background:#f8fbff}.is-hidden{display:none!important}
.flow-next-card{display:flex;align-items:center;justify-content:space-between;gap:18px}.flow-next-card>div:first-child{display:grid;gap:3px}.flow-next-card b{color:#173a61}.flow-next-card span{font-size:11px;color:#66809f}
.plan-readiness{margin-top:13px}.readiness-empty{display:flex;justify-content:space-between;gap:12px;border:1px dashed #b9cbe0;border-radius:12px;padding:12px 13px;background:#f8fbff}.readiness-empty b{font-size:11px;color:#173a61}.readiness-empty span{font-size:10px;color:#6b829c}.readiness-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4}.readiness-head.warning{border-color:#fde68a;background:#fffbeb}.readiness-head b{font-size:12px;color:#173a61}.readiness-head span{font-size:10px;color:#60758d}.readiness-orders{display:grid;gap:7px;margin-top:8px}.readiness-order{border:1px solid #dce6f1;border-radius:11px;background:#fff;overflow:hidden}.readiness-order>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;cursor:pointer}.readiness-order>summary span{display:grid;gap:2px}.readiness-order>summary b{font-size:11px;color:#173a61}.readiness-order>summary small{font-size:9px;color:#71859b}.readiness-order>summary em{padding:4px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:9px;font-style:normal;font-weight:900}.readiness-order.error>summary em{background:#fee2e2;color:#b91c1c}.readiness-order>div{display:grid;gap:5px;padding:0 9px 9px}.readiness-item{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #e0e8f1;border-radius:9px;background:#fbfdff;padding:7px 9px;text-align:left;cursor:pointer}.readiness-item i{display:grid;place-items:center;width:21px;height:21px;border-radius:7px;background:#e7edf4;font-style:normal;font-weight:900}.readiness-item span{display:grid;gap:1px}.readiness-item b{font-size:10px;color:#173a61}.readiness-item small{font-size:9px;color:#71859b}.readiness-item.ok i{background:#dcfce7;color:#166534}.readiness-item.warning i{background:#fef3c7;color:#92400e}.readiness-item.error i{background:#fee2e2;color:#b91c1c}
.status-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef3f8;color:#60758d;font-size:10px;font-weight:900}.status-pill.ok{background:#dcfce7;color:#166534}.status-pill.neutral{background:#eef3f8;color:#60758d}
.span-all{grid-column:1/-1}.span-two{grid-column:span 2}.four-col{grid-template-columns:repeat(4,minmax(0,1fr))}.rule-grid label{min-width:0}
@media(max-width:1280px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(150px,1fr))}.scheme-layout,.dependency-project-grid{grid-template-columns:1fr!important}.rule-grid{grid-template-columns:repeat(3,minmax(120px,1fr))!important}.rule-arrow{display:none}.dashboard-grid{grid-template-columns:1fr!important}}
@media(max-width:850px){.dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-kpis{grid-template-columns:1fr}.flow-steps{align-items:stretch;flex-direction:column}.flow-connector{display:none}.flow-step{width:100%}.scheme-rule-row,.dependency-match{grid-template-columns:1fr 24px 1fr}.scheme-rule-row>em,.scheme-rule-row>button,.dependency-match>em{grid-column:1/-1}.rule-grid,.four-col{grid-template-columns:1fr!important}.span-two{grid-column:auto}.flow-next-card{align-items:flex-start;flex-direction:column}.order-flow-strip{align-items:stretch;flex-direction:column}}
