:root,[data-theme=light]{--bg: #f0f2f5;--surface: #ffffff;--surface2: #e8eaed;--text: #1f2937;--text-muted: #6b7280;--accent: #1976d2;--accent-light: #2564eb86;--accent-hover: #1565c0;--success: #47c84da8;--warning: #ed6c02;--danger: #d32f2f;--radius: 8px;--nav-height: 52px;--border: #dee2e6;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--surface-hover: #d0d4d9;--dip-vtk-table-bg: #ffffff;--dip-vtk-editable-header-bg: #e8f4fc;--dip-vtk-editable-header-text: #0d47a1;--dip-vtk-cell-hover: rgba(0, 0, 0, .05)}[data-theme=dark]{--bg: #0f1419;--surface: #1a2332;--surface2: #243044;--text: #e6edf3;--text-muted: #8b9cad;--accent: #3b82f6;--accent-hover: #2563eb;--accent-light: #2564eba0;--success: #22c55e;--warning: #eab308;--danger: #ef4444;--border: #243044;--shadow: 0 1px 3px rgba(0, 0, 0, .3);--surface-hover: #2d3d52;--dip-vtk-table-bg: var(--surface);--dip-vtk-editable-header-bg: rgba(59, 130, 246, .2);--dip-vtk-editable-header-text: #93c5fd;--dip-vtk-cell-hover: rgba(255, 255, 255, .06)}*{box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;margin:0;background:var(--bg);color:var(--text);min-height:100vh}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.app{min-height:100vh;display:flex;flex-direction:column}.nav{display:flex;align-items:center;gap:24px;padding:0 20px;height:var(--nav-height);background:var(--surface);border-bottom:1px solid var(--surface2)}.nav-brand{font-weight:700;color:var(--text);margin-right:16px}.nav-links{display:flex;gap:8px;flex-wrap:wrap}.nav a{color:var(--text-muted);text-decoration:none;padding:8px 12px;border-radius:var(--radius);font-size:.9rem}.nav a:hover{color:var(--text);background:var(--surface2)}.nav a.active{color:var(--accent);background:#3b82f626}.nav-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav-user{font-size:.9rem;color:var(--text-muted);padding:4px 8px}.nav-role{display:flex;align-items:center;gap:8px}.nav-theme-btn{flex-shrink:0}.nav-role-label{font-size:.85rem;color:var(--text-muted)}.nav-role-select{padding:6px 10px;border-radius:var(--radius);border:1px solid var(--surface2);background:var(--surface2);color:var(--text);font-size:.9rem;cursor:pointer}.main{flex:1;overflow:auto}.page{padding:24px;max-width:1400px;margin:0 auto}.page--planning{height:calc(100vh - var(--nav-height));overflow:hidden;display:flex;flex-direction:column;padding-bottom:0}.page--planning .planning-grid{flex:1;min-height:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:400px;background:var(--surface);border-radius:var(--radius);padding:32px;border:1px solid var(--border);box-shadow:var(--shadow)}.login-title{margin:0 0 4px;font-size:1.5rem;color:var(--text);text-align:center}.login-subtitle{margin:0 0 24px;font-size:.95rem;color:var(--text-muted);text-align:center}.login-form{display:flex;flex-direction:column;gap:16px}.login-form .form-label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;color:var(--text)}.login-form .form-input{padding:10px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1rem}.login-form .form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #1976d233}[data-theme=dark] .login-form .form-input:focus{box-shadow:0 0 0 2px #3b82f64d}.login-submit{margin-top:8px;width:100%;justify-content:center}.page h1{margin:0 0 8px;font-size:1.75rem}.page h2{margin:24px 0 12px;font-size:1.25rem}.page h3{margin:0 0 12px;font-size:1rem}.muted{color:var(--text-muted);font-size:.9rem;margin:0 0 16px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius);font-size:.9rem;font-weight:500;border:none;cursor:pointer;margin-right:8px;margin-bottom:8px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface2);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover)}.btn-small{padding:6px 12px;font-size:.85rem}.btn-icon{width:32px;height:32px;padding:0;border-radius:6px;border:1px solid var(--surface2);background:var(--surface);color:var(--text);cursor:pointer;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){background:var(--surface2)}.btn-icon.danger:hover{background:#ef444433;border-color:var(--danger);color:var(--danger)}.admin-table-ops .btn-icon{border:none;background:transparent}.admin-table-ops .btn-icon:hover:not(:disabled){background:var(--surface2)}.admin-table-ops .btn-icon.danger:hover:not(:disabled){background:#ef444433}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.dashboard-section{background:var(--surface);border-radius:var(--radius);padding:20px;margin-bottom:24px;border:1px solid var(--surface2)}.dashboard-section h2{margin-top:0}.stats-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.stat-card{background:var(--surface2);padding:20px 24px;border-radius:var(--radius);min-width:140px}.stat-card.highlight{border:1px solid var(--accent);background:#3b82f61a}.stat-value{display:block;font-size:1.75rem;font-weight:700;color:var(--text)}.stat-label{font-size:.85rem;color:var(--text-muted)}.shift-list{list-style:none;padding:0;margin:0 0 16px}.shift-item{padding:8px 0;border-bottom:1px solid var(--surface2)}.shift-item:last-child{border-bottom:none}.admin-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--border)}.admin-tab{padding:10px 16px;border:none;background:transparent;color:var(--muted);font-size:.95rem;cursor:pointer;border-radius:var(--radius) var(--radius) 0 0;transition:color .15s,background .15s}.admin-tab:hover{color:var(--fg);background:var(--bg-soft)}.admin-tab--active{color:var(--fg);background:var(--bg-soft);font-weight:600;border-bottom:2px solid var(--accent);margin-bottom:-1px}.admin-section{margin-bottom:32px}.admin-section-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.admin-section-header h2{margin:0}.admin-section h2{margin-bottom:12px}.admin-section-desc{margin:-4px 0 16px}.admin-feeders-top-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.admin-feeder-first-coord{margin-bottom:0;min-width:420px}.admin-table-header-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px;margin-bottom:10px}.admin-table-header-row h3{margin:0;font-size:1rem}.admin-table-header-row .btn{font-weight:600;padding:4px 10px;font-size:.8rem;margin-bottom:0}.admin-table-header-row .btn-icon{width:28px;height:28px;padding:0}.admin-table-header-actions{display:flex;gap:6px;align-items:center}.admin-table-header-actions--fixed{min-width:62px;justify-content:flex-end}.admin-feeders-table-header{margin-bottom:0;display:flex;justify-content:flex-end}.admin-feeders-table-header .btn{font-weight:600;padding:8px 16px}.admin-feeder-first-coord-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-feeder-first-coord-row.form-group .form-label{margin-bottom:0;min-width:220px}.admin-feeder-first-coord-actions{display:flex;gap:8px;margin-left:auto}.admin-feeders-table-actions-wrap{display:flex;justify-content:flex-end;margin-top:12px}.admin-feeder-first-coord-view{gap:12px}.admin-feeder-first-coord-value{font-weight:600;min-width:2.5rem}.admin-feeder-extra-equipment{margin-bottom:0}.admin-feeders-desc-above-table{margin-top:10px;margin-bottom:12px}.admin-feeders-tables-row{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.admin-feeders-table-block{flex:0 0 auto}.admin-step-check-title{margin-bottom:0;font-size:1rem}.admin-feeders-tables-row .admin-step-check-title{margin-top:0}.admin-step-check-table{max-width:320px}.admin-step-check-table th,.admin-step-check-table td{padding:6px 10px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal{background:var(--bg);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 32px #0003;max-width:480px;width:100%;max-height:90vh;overflow:auto}.modal-title{margin:0 0 16px;padding:16px 20px 0;font-size:1.15rem}.modal-body{padding:0 20px 20px}.modal-body .form-input,.modal-body .form-row{margin-bottom:12px}.modal-body .form-input{display:block;width:100%;box-sizing:border-box}.modal-body .form-row{display:flex;align-items:center;gap:8px}.modal-body .form-row label{min-width:120px}.admin-lines-checkboxes{display:flex;flex-direction:column;gap:2px;max-height:280px;max-width:330px;overflow-y:auto;margin-bottom:12px;padding:4px 0}.admin-line-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;max-width:325px;min-height:28px;padding:4px 6px;margin:0 -6px;border-radius:6px;transition:background-color .15s ease}.admin-line-checkbox:hover{background-color:var(--bg-hover, rgba(0, 0, 0, .04))}.admin-line-checkbox input[type=checkbox]{flex-shrink:0;width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--primary, #2563eb);vertical-align:middle}.admin-line-checkbox span{line-height:1.35;flex:1;-webkit-user-select:none;user-select:none}.admin-line-checkbox--other span:last-of-type{margin-left:4px}.admin-op-lines{display:inline-block;margin-right:8px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.admin-btn-lines{vertical-align:middle;margin-left:6px}.admin-defect-codes-cell{display:flex;align-items:center;gap:6px}.admin-defect-codes-cell .btn-icon{flex-shrink:0}.modal.modal--defect-codes{max-width:720px}.admin-defect-codes-table-wrap{max-height:60vh;overflow:auto}.admin-defect-codes-table-wrap .project-feeders-edit-table th:first-child,.admin-defect-codes-table-wrap .project-feeders-edit-table td:first-child{width:70px;max-width:70px}.admin-defect-codes-table-wrap .project-feeders-edit-table th:nth-child(2),.admin-defect-codes-table-wrap .project-feeders-edit-table td:nth-child(2){min-width:280px}.admin-defect-codes-table-wrap .project-feeders-edit-table th:last-child,.admin-defect-codes-table-wrap .project-feeders-edit-table td:last-child{width:44px;max-width:44px;padding-left:4px;padding-right:4px}.admin-section .btn-icon{margin-right:4px}.admin-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1}.admin-icon--edit{font-size:1.15rem}.admin-icon--delete{font-size:1rem}.admin-icon--lines{font-size:1.2rem}.admin-table-ops-order{width:1%;white-space:nowrap;text-align:center;vertical-align:middle}.admin-reorder-btns{display:flex;flex-direction:column;gap:0;align-items:center}.admin-reorder-btns .btn-icon{padding:2px;min-width:28px}.admin-reorder-btns .btn-icon:disabled{opacity:.35}.admin-table-ops td:nth-child(5),.admin-table-ops td:nth-child(6){text-align:center;vertical-align:middle}.admin-table-ops td:nth-child(5) .btn-icon{opacity:0;pointer-events:none;transition:opacity .15s ease}.admin-table-ops tr:hover td:nth-child(5) .btn-icon{opacity:1;pointer-events:auto}.admin-table-ops td:nth-child(6) .btn-icon{margin-left:2px;margin-right:2px}.admin-table-ops td:nth-child(4) .form-input--small{min-width:80px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.admin-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.admin-form .form-input{padding:8px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem;min-width:100px}.admin-op-name{max-width:150px;margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-wrap{overflow-x:auto;background:var(--surface);border-radius:var(--radius);border:1px solid var(--surface2)}.table-wrap--fit{width:fit-content;max-width:100%}.table{width:100%;border-collapse:collapse;font-size:.78rem}.table th,.table td{padding:4px 8px;text-align:left;border:1px solid var(--surface2)}.table th{font-weight:600;color:var(--text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.02em;padding:3px 8px}.table tr:hover td{background:#ffffff05}code{font-family:ui-monospace,monospace;font-size:.85em;background:var(--surface2);padding:2px 6px;border-radius:4px}.variant-tag{margin-right:6px;display:inline-block;margin-bottom:4px}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{width:40px;height:22px;background:var(--surface2);border-radius:11px;position:relative;transition:background .2s}.toggle-slider:after{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:var(--text-muted);border-radius:50%;transition:transform .2s}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:after{transform:translate(18px);background:#fff}.toggle-label{font-size:.9rem;color:var(--text-muted)}.operations-board{display:grid;grid-template-columns:220px 1fr;gap:24px;min-height:400px}.ops-sidebar{background:var(--surface);border-radius:var(--radius);padding:16px;border:1px solid var(--surface2);height:fit-content}.ops-sidebar h3{margin-bottom:12px}.ops-btn{display:block;width:100%;padding:10px 12px;margin-bottom:6px;text-align:left;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-muted);cursor:pointer;font-size:.9rem}.ops-btn:hover{background:var(--surface2);color:var(--text)}.ops-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ops-queue-panel{background:var(--surface);border-radius:var(--radius);padding:24px;border:1px solid var(--surface2)}.queue-list,.queue-list-operations{list-style:none;padding:0;margin:0}.queue-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--surface2);border-radius:6px;margin-bottom:8px}.queue-order{min-width:28px;font-weight:700;color:var(--text-muted)}.queue-name{flex:1}.queue-qty{color:var(--text-muted);font-size:.9rem}.queue-actions{display:flex;gap:4px}.planner-layout{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:start;max-height:calc(100vh - 180px);min-height:360px}.planner-pool{background:var(--surface);border-radius:var(--radius);padding:16px;border:1px solid var(--surface2);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 180px)}.planner-pool h3{margin:0 0 6px}.planner-pool-hint{font-size:.85rem;color:var(--text-muted);margin:0 0 12px}.planner-pool-list-wrap{display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;min-height:0}.planner-pool-project-group{display:flex;flex-direction:column;gap:6px}.planner-pool-project-head{font-size:.9rem;font-weight:600;color:var(--text);padding:0 2px}.planner-pool-list-wrap .planner-pool-list{margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.planner-pool-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.planner-pool-card{padding:10px 12px;background:var(--surface2);border-radius:6px;cursor:grab;display:flex;flex-direction:column;gap:2px;font-size:.88rem;border:1px solid transparent;transition:border-color .15s,opacity .15s}.planner-pool-card:hover{border-color:var(--surface2)}.planner-pool-card.dragging{opacity:.6;cursor:grabbing}.planner-pool-card:active{cursor:grabbing}.planner-pool-project{font-weight:600}.planner-pool-op{color:var(--text-muted);font-size:.85rem}.planner-pool-qty{font-size:.9rem;font-weight:600;color:var(--accent)}.planner-pool-label{font-size:.9rem;font-weight:600;color:var(--text)}.planner-pool-total-time,.planner-pool-nominal-line{font-size:.82rem;color:var(--text-muted)}.planner-pool-current{font-size:.8rem;color:var(--accent);margin-top:2px}.planner-main{min-width:0;display:flex;flex-direction:column}.planner-lines-info{margin-bottom:16px}.planner-lines-info h3{margin:0 0 6px}.planner-lines-info .muted{margin:0}.planner-lines{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.planner-lines-by-line{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.planner-line{background:var(--surface);border:2px dashed var(--surface2);border-radius:var(--radius);padding:12px;min-height:120px;transition:border-color .2s,background .2s}.planner-line.drop-target.drag-over{border-color:var(--accent);background:#3b82f614}.planner-line h4{margin:0 0 10px;font-size:.95rem}.line-slots{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.line-slot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--surface2);border-radius:6px;font-size:.85rem;cursor:grab}.line-slot:active{cursor:grabbing}.line-slot span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-slot-item{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center}.line-slot-item .line-slot-project{font-weight:600}.line-slot-item .line-slot-op{color:var(--text-muted)}.line-slot-item .line-slot-line-label{color:var(--accent);font-size:.85rem}.line-slot-actions{display:flex;gap:4px}.line-add select{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--surface2);background:var(--surface2);color:var(--text);font-size:.85rem;cursor:pointer}.line-add select:focus{outline:none;border-color:var(--accent)}.shifts-section{background:var(--surface);border-radius:var(--radius);padding:20px;margin-bottom:24px;border:1px solid var(--surface2)}.shift-cards{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.shift-card{background:var(--surface2);padding:16px 20px;border-radius:var(--radius);min-width:160px}.load-bar-wrap{position:relative;height:32px;background:var(--surface2);border-radius:var(--radius);overflow:hidden;margin-bottom:8px}.load-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:var(--radius);transition:width .3s}.load-bar.small{height:8px;background:var(--surface2)}.load-bar.small .load-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .3s}.load-label{font-size:.85rem;color:var(--text-muted)}.lines-load-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:16px}.line-load-card{background:var(--surface2);padding:12px;border-radius:var(--radius);display:flex;flex-direction:column;gap:8px}.line-load-card .load-fill{height:100%;background:var(--accent);border-radius:4px}.ops-load-list{list-style:none;padding:0;margin:0}.ops-load-item{display:grid;grid-template-columns:140px 1fr 60px;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--surface2)}.ops-load-name{font-size:.9rem}.execution-filters{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:24px;align-items:flex-end}.execution-filters label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:6px}.execution-filters select{padding:10px 14px;border-radius:var(--radius);border:1px solid var(--surface2);background:var(--surface);color:var(--text);font-size:.95rem;min-width:200px}.execution-queue{background:var(--surface);border-radius:var(--radius);padding:24px;border:1px solid var(--surface2)}.execution-item .btn{margin-left:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--surface);border:1px solid var(--surface2);border-radius:var(--radius);padding:24px;max-width:420px;width:100%}.modal--wide{max-width:1020px}.modal--wide:has(.modal-report-form-scroll){display:flex;flex-direction:column;max-height:90vh;overflow:hidden}.modal--wide .modal-report-form-header{flex-shrink:0;padding-bottom:8px}.modal--wide .modal-report-form-scroll{flex:1;min-height:0;overflow-y:auto;margin:0 -24px;padding:0 24px}.modal--wide .modal-report-form-actions{flex-shrink:0;margin-left:-24px;margin-right:-24px;margin-bottom:-24px}.modal h3{margin-top:0}.close-shift-ops,.report-form-body{margin-bottom:16px}.report-form-project-block{margin-bottom:24px;padding:16px 0;border-bottom:1px solid var(--border, rgba(0, 0, 0, .12))}.report-form-project-block+.report-form-project-block{border-top:1px solid var(--border, rgba(0, 0, 0, .12));padding-top:20px}.report-form-project-block:last-child{margin-bottom:0;border-bottom:none}.report-form-header{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:12px}.report-form-header-row{font-size:.9rem}.report-form-label{font-weight:600;margin-right:6px}.report-form-readonly{margin-bottom:12px;font-size:.9rem}.report-form-readonly-row{margin-bottom:4px}.report-form-aoi-fields{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:12px}.report-form-aoi-fields .form-group{min-width:200px}.report-form-row{display:flex;flex-wrap:wrap;gap:12px 24px;margin-bottom:12px}.report-form-row .form-group{min-width:80px;flex:1}.report-form-row--main .form-group:first-child{max-width:72px}.report-form-row--aoi .form-group:first-child{max-width:64px}.report-form-row .form-group:last-child{flex:2;min-width:200px}.report-form-ops-table{width:100%;font-size:.85rem;margin-bottom:10px}.report-form-ops-table th,.report-form-ops-table td{padding:6px 8px;vertical-align:middle}.report-form-total-isolated{font-size:.95rem;margin-top:0;display:flex;align-items:center;gap:12px;flex:1;min-width:0}.report-form-total-isolated label{white-space:nowrap;flex-shrink:0}.report-form-total-isolated .form-input{max-width:120px;margin-left:8px;flex-shrink:0}.close-shift-modal-project-block{margin-bottom:16px}.close-shift-modal-project-block:last-child{margin-bottom:0;overflow-x:auto}.close-shift-table{width:100%;font-size:.82rem}.close-shift-table th,.close-shift-table td{padding:5px 8px;vertical-align:middle}.close-shift-table th{text-align:left;font-weight:600}.close-shift-table th:first-child,.close-shift-table td:first-child{max-width:160px;overflow:hidden;text-overflow:ellipsis}.close-shift-table input.form-input--small{width:64px;padding:3px 6px;font-size:.8rem}.form-input--readonly{background:#ffffff0f;color:var(--text-muted)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.9rem;margin-bottom:6px;color:var(--text-muted)}.form-group input{width:100%;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--surface2);background:var(--surface2);color:var(--text);font-size:1rem}.form-group input:focus{outline:none;border-color:var(--accent)}.form-group textarea.form-input,.form-input{width:100%;padding:10px 12px;border-radius:var(--radius);border:1px solid var(--surface2);background:var(--surface2);color:var(--text);font-size:1rem;font-family:inherit;resize:vertical}.input-priority{width:56px;padding:6px 8px;text-align:center}.form-input-narrow{width:4.5rem;max-width:100%;text-align:right;padding:4px 6px;font-size:.8rem}.modal-actions{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.project-detail-row td{background:#ffffff05;padding:16px 20px;border-bottom:1px solid var(--surface2)}.project-detail-panel h4{margin:0 0 12px;font-size:.95rem}.project-detail-col-ops h4{margin:0 0 6px;font-size:.9rem}.project-ops-table-wrap{flex:1;min-width:0;width:580px;max-width:100%}.project-ops-table{width:580px;max-width:100%;table-layout:fixed;margin:0;font-size:.8rem;border-collapse:collapse}.project-ops-view-row--with-actions{display:flex;align-items:flex-start;gap:12px}.project-ops-actions-inline{display:flex;align-items:center;gap:4px;flex-shrink:0;min-width:66px;justify-content:flex-end}.project-ops-table thead th{padding:4px 8px;height:28px;max-height:28px;line-height:18px;border-bottom:1px solid var(--border);font-weight:600;font-size:.65rem;color:var(--text-muted);box-sizing:border-box;vertical-align:middle;overflow:hidden}.project-ops-table thead th:nth-child(1),.project-ops-table tbody td:nth-child(1){width:38%;white-space:nowrap;text-align:left;overflow:hidden;text-overflow:ellipsis}.project-ops-table thead th:nth-child(2),.project-ops-table tbody td:nth-child(2){width:18%;white-space:nowrap;text-align:center}.project-ops-table thead th:nth-child(3),.project-ops-table tbody td:nth-child(3){width:21%;white-space:nowrap;text-align:center}.project-ops-table thead th:nth-child(4),.project-ops-table tbody td:nth-child(4){width:23%;white-space:nowrap;text-align:center}.project-ops-table tbody td{padding:3px 8px;border-bottom:1px solid var(--border);vertical-align:top;height:28px;min-height:28px;max-height:28px;box-sizing:border-box;overflow:hidden}.project-ops-table tbody tr{height:28px;max-height:28px}.project-ops-table tbody td .project-cell-inner{display:flex;align-items:center;height:22px;min-height:22px;max-height:22px;overflow:hidden;box-sizing:border-box;line-height:1.2;font-size:.8rem;flex-shrink:0}.project-ops-table tbody td .project-cell-inner .form-input-narrow,.project-ops-table tbody td .project-cell-inner .form-input--small{width:100%;max-width:100%;height:22px;min-height:22px;max-height:22px;line-height:1.2;box-sizing:border-box;margin:0;border:1px solid var(--border);flex-shrink:0}.project-ops-table .project-op-name{color:var(--text)}.project-ops-table .project-op-norm{color:var(--accent)}.project-ops-table .project-op-total{font-weight:600}.project-ops-table .project-op-norm .project-cell-inner .form-input-narrow{width:56px;max-width:56px;padding:2px 4px;font-size:.8rem}.project-ops-table .project-op-nominal-line .form-input--small{width:100%;min-width:0;max-width:100%;padding:2px 6px;font-size:.8rem}.project-detail-two-cols{display:flex;gap:24px;flex-wrap:wrap;margin-top:12px}.project-detail-col-ops{min-width:0}.project-detail-col-feeders{flex:0 0 auto}.project-feeders-two-sides{display:flex;gap:24px;flex-wrap:wrap}.project-feeders-side-block{flex:1 1 200px;min-width:0}.project-feeders-side-title{font-size:.95rem;font-weight:600;margin:0 0 8px;color:var(--text)}.project-feeders-vertical-wrap{margin-bottom:8px}.project-feeders-vertical{width:auto;min-width:180px}.project-feeders-vertical thead th,.project-feeders-vertical tbody td{padding:4px 10px}.project-feeders-vertical-launch{font-size:.85rem;line-height:1.4;min-height:1.4em;color:var(--text-muted);margin-top:6px}.project-line-history-wrap--readonly .tag{display:inline-flex;padding:4px 8px;background:var(--surface2);border-radius:var(--radius);font-size:.85rem}.project-line-history-wrap--readonly .tag code{font-size:.8rem}.project-fields-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 24px;margin-bottom:16px}.project-field{display:flex;flex-direction:column;gap:4px}.project-field-label{font-size:.85rem;color:var(--text-muted)}.project-field-value{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-add-line{max-width:140px}.input-select{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem}.input-small{width:100%;max-width:120px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem}.input-datetime{width:100%;max-width:220px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.9rem}.project-field--history{grid-column:1 / -1}.project-field-history-header{display:flex;align-items:center;gap:10px;margin-bottom:6px}.project-field-history-header .project-field-label{margin-bottom:0}.project-history-table{font-size:.9rem}.project-history-table th,.project-history-table td{padding:8px 10px;white-space:nowrap}.project-history-table th{text-align:left;font-weight:600}.project-field--full{grid-column:1 / -1}.project-field-hint{font-size:.8rem;margin-top:2px}.project-feeders-wrap{margin-top:4px}.project-feeders-view-row,.project-ops-view-row{display:flex;align-items:center;gap:6px;margin-bottom:12px}.project-feeders-table-wrap{flex:0 1 auto;max-width:calc(100% - 52px)}.project-feeders-edit-btn{flex-shrink:0;width:28px;height:28px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);font-size:.875rem}.project-btn-icon--success:hover{background:#22c55e33;border-color:var(--success, #22c55e);color:var(--success, #22c55e)}.project-btn-icon--danger:hover{background:#ef444433;border-color:var(--danger);color:var(--danger)}.project-feeders-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}.project-field--steps{margin-bottom:1rem}.project-steps-view-row,.project-steps-edit-row{display:flex;align-items:center;gap:6px;margin-bottom:3px;margin-top:3px;min-width:250px}.project-steps-value{font-variant-numeric:tabular-nums}.project-setup-checkboxes{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:12px}.project-setup-checkboxes .toggle{margin-bottom:0}.project-setup-total{margin-top:10px}.project-feeders-table-wrap{flex:1;min-width:0;width:200px;max-width:100%}.project-feeders-table{font-size:.8rem}.project-feeders-table th,.project-feeders-table td{padding:4px 8px}.project-feeders-view-row--with-actions{display:flex;align-items:flex-start;gap:6px}.project-feeders-edit-table{font-size:.75rem;table-layout:fixed;width:200px;max-width:100%;border-collapse:collapse}.project-feeders-edit-table thead th,.project-feeders-edit-table tbody td{padding:2px 6px;height:24px;min-height:24px;max-height:24px;box-sizing:border-box;vertical-align:top;overflow:hidden}.project-feeders-edit-table thead th:nth-child(1),.project-feeders-edit-table tbody td:nth-child(1){width:60%}.project-feeders-edit-table thead th:nth-child(2),.project-feeders-edit-table tbody td:nth-child(2){width:40%;text-align:center}.project-feeders-edit-table th{font-size:.65rem;padding:2px 6px}.project-feeders-edit-table tbody tr{height:24px;max-height:24px}.project-feeders-edit-table tbody td .project-cell-inner--feeders{display:flex;align-items:center;height:20px;min-height:20px;max-height:20px;overflow:hidden;box-sizing:border-box;line-height:1.2;font-size:.75rem;flex-shrink:0}.project-feeders-edit-table tbody td .project-cell-inner--feeders .form-input-narrow{width:100%;max-width:100%;height:20px;min-height:20px;max-height:20px;line-height:1.2;box-sizing:border-box;padding:2px 4px;font-size:.75rem;margin:0;border:1px solid var(--border);flex-shrink:0}.project-line-history-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.project-line-history-empty{font-size:.9rem;color:var(--text-muted);font-style:italic}.tag-with-remove{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--surface2);border-radius:6px;font-size:.85rem}.tag-with-remove .tag-remove{padding:0 2px;font-size:1rem;line-height:1;opacity:.7}.tag-with-remove .tag-remove:hover{opacity:1}.planning-grid{display:grid;grid-template-columns:280px 1fr;grid-template-rows:auto 1fr;gap:20px 24px;min-height:0}.planning-intro{grid-column:1 / -1;grid-row:1;min-width:0}.planning-intro h1{margin:0 0 8px}.planning-intro h2{margin:16px 0 8px;font-size:1.15rem}.planning-intro p{margin:0 0 4px}.planning-op-type-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.planning-op-type-tab{padding:6px 14px;font-size:.9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.planning-op-type-tab:hover{background:var(--surface-hover)}.planning-op-type-tab--active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.planner-pool{grid-column:1;grid-row:2;min-height:0;display:flex;flex-direction:column}.planner-main{grid-column:2;grid-row:2;min-height:0;min-width:0;display:flex;flex-direction:column}.planning-grid--dip-vtk .planner-main{grid-column:1 / -1}.planning-dip-vtk{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.planning-dip-vtk-header{border-bottom:1px solid var(--border);padding-bottom:12px}.planning-dip-vtk-title{margin:0 0 8px;font-size:1.1rem}.planning-dip-vtk-body{flex:1;min-height:120px}.dip-vtk-table{width:100%;overflow-x:auto;background:var(--dip-vtk-table-bg)}.dip-vtk-table__table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--dip-vtk-table-bg)}.dip-vtk-table__th,.dip-vtk-table__td{padding:8px 10px;text-align:left;border:1px solid var(--border);background:var(--dip-vtk-table-bg);color:var(--text)}.dip-vtk-table__th--num,.dip-vtk-table__td--repair{text-align:center;vertical-align:middle}.dip-vtk-table__td--repair input[type=checkbox]{margin:0;cursor:default}.dip-vtk-table__td--num{text-align:right;white-space:nowrap}.dip-vtk-table__th--editable{background:var(--dip-vtk-editable-header-bg);color:var(--dip-vtk-editable-header-text)}.dip-vtk-table__th--action,.dip-vtk-table__td--action{width:1%;white-space:nowrap}.dip-vtk-table__td--note{max-width:400px;width:400px;overflow:hidden;text-overflow:ellipsis}.dip-vtk-table__td--note-editable{cursor:pointer}.dip-vtk-table__td--note-editable:hover{background:var(--dip-vtk-cell-hover)}.dip-vtk-table__note-input{width:100%;min-width:120px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;font-size:inherit;box-sizing:border-box;background:var(--surface);color:var(--text)}.dip-vtk-table__empty{color:var(--text-muted);font-style:italic;padding:24px;text-align:center}.dip-vtk-table__btn-report{padding:4px 10px;font-size:.8rem}.execution-dip-vtk-section{padding:12px 0}.execution-dip-vtk-section .schedule-day-row-title{margin-bottom:12px}.dip-vtk-table__td--inprogress{cursor:pointer}.dip-vtk-table__td--inprogress:hover{background:var(--dip-vtk-cell-hover)}.dip-vtk-table--accordion .dip-vtk-table__th--toggle,.dip-vtk-table--accordion .dip-vtk-table__td--toggle{width:36px;text-align:center;vertical-align:middle}.dip-vtk-table__toggle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text);font-size:.75rem;cursor:pointer;transition:background .15s}.dip-vtk-table__toggle:hover{background:var(--dip-vtk-cell-hover)}.dip-vtk-table__tr--accordion{vertical-align:top}.dip-vtk-table__accordion-cell{padding:0!important;border-left:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface2);vertical-align:top}.dip-vtk-table__accordion-body{padding:12px 16px}.dip-vtk-table__subtable{width:100%;max-width:820px;margin-bottom:12px;border-collapse:collapse;font-size:.85rem;background:var(--dip-vtk-table-bg)}.dip-vtk-table__subtable .dip-vtk-table__th,.dip-vtk-table__subtable .dip-vtk-table__td{padding:6px 10px;border:1px solid var(--border)}.dip-vtk-table__subtr--empty{cursor:pointer}.dip-vtk-table__subtr--empty:hover{background:var(--dip-vtk-cell-hover)}.dip-vtk-table__vtk-section-label{font-weight:600;padding:8px 0 4px!important;border:none!important;color:var(--text)}.dip-vtk-table__vtk-installer-row .dip-vtk-table__td{border:none!important;padding:6px 10px 2px!important;vertical-align:top}.dip-vtk-table__vtk-installer{font-size:.9rem}.dip-vtk-table__vtk-qty{margin-left:12px;color:var(--text-muted)}.dip-vtk-table__vtk-journal-wrap{padding:0 0 12px!important;border:none!important;vertical-align:top}.dip-vtk-table__journal{width:100%;max-width:640px;margin-left:0;margin-bottom:8px;border-collapse:collapse;font-size:.85rem;background:var(--dip-vtk-table-bg)}.dip-vtk-table__journal .dip-vtk-table__th,.dip-vtk-table__journal .dip-vtk-table__td{padding:6px 10px;border:1px solid var(--border)}.dip-vtk-table__td--empty{color:var(--text-muted);font-style:italic}.dip-vtk-table__accordion-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.dip-vtk-inprogress-modal .modal-title{margin:0 0 16px}.dip-vtk-inprogress-step1-info{margin-bottom:12px}.dip-vtk-inprogress-project-summary{margin:0;font-size:.95rem;color:var(--text-muted)}.dip-vtk-inprogress-entries{margin-bottom:16px;padding:12px;background:var(--surface2);border-radius:var(--radius)}.dip-vtk-inprogress-entries-title{margin:0 0 8px;font-size:.9rem;color:var(--text-muted)}.dip-vtk-inprogress-entries-list{margin:0;padding-left:20px}.dip-vtk-inprogress-entries-item{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.dip-vtk-inprogress-entries-item:last-child{margin-bottom:0}.dip-vtk-inprogress-add-hint{margin:0 0 8px;font-size:.9rem;color:var(--text-muted)}.dip-vtk-inprogress-quantity-hint{margin:0 0 4px;font-size:.85rem;color:var(--text-muted)}.dip-vtk-inprogress-installer-row{display:flex;flex-direction:column;gap:8px}.dip-vtk-inprogress-custom-code{max-width:120px}.dip-vtk-inprogress-step2-fields{margin-bottom:16px;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.dip-vtk-inprogress-readonly-row{margin-bottom:8px}.dip-vtk-inprogress-readonly-row:last-child{margin-bottom:0}.dip-vtk-inprogress-label{display:inline-block;min-width:220px;color:var(--muted);font-size:.9rem}.dip-vtk-vtkreport-step2{margin-top:12px}.dip-vtk-vtkreport-row{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-start;margin-bottom:12px}.dip-vtk-vtkreport-row--note{align-items:center}.dip-vtk-vtkreport-row .form-group{flex:0 1 auto;min-width:100px}.dip-vtk-vtkreport-row .form-group:first-child{min-width:80px}.dip-vtk-vtkreport-row .form-group input[type=number]{width:80px}.dip-vtk-vtkreport-row--note .form-group:first-child{flex:1;min-width:180px}.dip-vtk-vtkreport-row--defect .form-group{flex:1 1 100%;min-width:0}.dip-vtk-vtkreport-row--defect .form-group select{width:100%}.dip-vtk-vtkreport-row--checkbox{margin-top:8px;margin-bottom:0}.dip-vtk-checkbox-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:400}.dip-vtk-checkbox-label-text{order:-1}.dip-vtk-checkbox-label input[type=checkbox]{margin:0}.form-error{margin:8px 0 0;color:var(--danger, #c00);font-size:.85rem}.schedule-tabs-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;flex-shrink:0;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.schedule-tabs-row .schedule-day-tabs{margin-bottom:0}.planner-main-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.planner-main-scroll--carousel{overflow-x:auto;overflow-y:auto;scroll-behavior:smooth}.schedule-week-carousel{display:flex;flex-direction:row;gap:0;width:100%;padding-bottom:12px}.schedule-day-panel{flex:0 0 100%;min-width:100%;width:100%;box-sizing:border-box;border-right:1px solid var(--border);padding-right:16px;padding-left:12px}.schedule-day-panel:last-child{border-right:none;padding-right:12px}.schedule-day-panel-title{position:sticky;left:0;top:0;z-index:1;margin:0 0 12px;padding:10px 0;font-size:1rem;font-weight:600;color:var(--text);background:var(--bg);border-bottom:1px solid var(--border);text-align:center;width:100%;box-sizing:border-box}.week-picker-inline{position:relative;flex-shrink:0;margin-left:auto}.week-picker-toggle{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);font-size:.8rem;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.week-picker-toggle:hover{background:var(--bg-soft);border-color:var(--accent)}.week-picker-toggle-chevron{flex-shrink:0;color:var(--muted);font-size:.7rem}.week-picker-toggle-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-picker-toggle-label strong{font-weight:600;color:var(--accent)}.week-picker-dropdown{position:absolute;top:100%;right:0;z-index:100;margin-top:6px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026}.planning-section{margin-top:32px}.planning-section:first-of-type{margin-top:0}.planning-section h2{margin:0 0 8px;font-size:1.25rem}.planning-section-schedule{margin-top:40px}.schedule-week-meta{margin-bottom:20px;display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.schedule-week-legend{font-size:.9rem;color:var(--text-muted)}.schedule-week-picker{display:flex;flex-direction:column;gap:8px}.week-picker-calendar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:6px 8px}.week-picker-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:4px}.week-picker-month-title{font-weight:600;font-size:.8rem}.week-picker-nav{width:24px;height:24px;padding:0;border:none;background:var(--bg-soft);color:var(--fg);border-radius:4px;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.week-picker-nav:hover{background:var(--border)}.week-picker-table{border-collapse:collapse;font-size:.75rem}.week-picker-th{padding:2px 3px;text-align:center;font-weight:600;color:var(--muted)}.week-picker-cell{padding:1px}.week-picker-cell--empty{background:transparent}.week-picker-day{width:22px;height:22px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--fg);cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center}.week-picker-day:hover{background:var(--bg-soft)}.week-picker-day--selected{background:var(--accent);color:var(--bg)}.week-picker-day--selected:hover{background:var(--accent);opacity:.9;color:var(--bg)}.week-picker-day--today{font-weight:700;outline:1px solid var(--accent)}.week-picker-day--selected.week-picker-day--today{outline-color:var(--bg)}.week-picker-footer{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;justify-content:center}.week-picker-footer .gantt-btn-today{width:100%}.week-picker-summary{display:flex;flex-direction:column;gap:2px}.week-picker-summary strong{font-size:.8rem}.week-picker-summary .small{font-size:.75rem}.schedule-day-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.schedule-day-tab{padding:10px 16px;border:none;background:transparent;color:var(--muted);font-size:.95rem;cursor:pointer;border-radius:var(--radius) var(--radius) 0 0;transition:color .15s,background .15s}.schedule-day-tab:hover{color:var(--fg);background:var(--bg-soft)}.schedule-day-tab--active{color:var(--fg);background:var(--bg-soft);font-weight:600;border-bottom:2px solid var(--accent);margin-bottom:-1px}.schedule-week-rows{display:flex;flex-direction:column;gap:20px}.schedule-day-row{background:var(--surface);border:1px solid var(--surface2);border-radius:var(--radius);padding:16px 20px}.schedule-day-row-title{margin:0 0 16px;font-size:1.1rem;border-bottom:1px solid var(--surface2);padding-bottom:10px}.schedule-day-row-title--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px}.schedule-day-row-title--clickable:hover{color:var(--accent)}.schedule-collapse-icon{display:inline-block;width:1em;font-size:.75em;color:var(--text-muted);flex-shrink:0}.schedule-day-lines{display:flex;flex-direction:column;gap:12px}.schedule-line-row{background:var(--surface2);border-radius:var(--radius);padding:12px 16px}.schedule-line-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.schedule-line-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px}.schedule-line-header--clickable:hover{color:var(--accent)}.schedule-line-header--clickable .schedule-collapse-icon{margin-right:2px}.schedule-line-name{font-weight:600;font-size:.95rem}.schedule-line-total{font-size:.9rem;color:var(--accent);font-weight:600}.schedule-line-order-inline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:6px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}.schedule-line-order-label{font-size:.8rem;color:var(--text-muted);flex-shrink:0}.schedule-line-order-list{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;list-style:none;padding:0;margin:0}.schedule-line-order-item{display:inline-flex;align-items:center;gap:4px;font-size:.8rem;padding:2px 6px;background:#ffffff0d;border-radius:4px;margin-right:8px}.schedule-line-order-item--done{opacity:.85;background:#ffffff08}.schedule-line-order-done-badge{font-size:.7rem;color:var(--text-muted);margin-left:4px}.schedule-line-order-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-line-order-arrows{display:inline-flex;gap:1px}.schedule-line-order-arrows .btn-arrow{padding:1px 4px;font-size:.75rem;line-height:1.2;min-width:22px}.schedule-line-shifts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}.schedule-shift-block{background:var(--surface);border-radius:6px;padding:10px 12px;border:1px solid rgba(255,255,255,.06);min-width:0}.schedule-shift-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}.schedule-shift-name{font-size:.85rem;font-weight:600;color:var(--text-muted)}.schedule-shift-total{font-size:.85rem;color:var(--accent);font-weight:600}.schedule-shift-block.drop-target{border-color:#3b82f666;background:#3b82f60f}.schedule-shift-block.drop-target.drag-over{border-color:var(--accent);background:#3b82f61f}.schedule-shift-close{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.schedule-shift-close .btn{width:100%}.schedule-shift-block--closed{background:#5078501f;border-color:#50785059}.schedule-shift-closed-badge{font-size:.8rem;color:var(--success, #8c8);font-weight:600}.schedule-shift-closed-content{font-size:.85rem;margin-top:8px}.schedule-shift-closed-content>div{margin-bottom:6px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}.schedule-shift-closed-content>div:last-child{border-bottom:none}.schedule-shift-closed-plan,.schedule-shift-closed-fact,.schedule-shift-closed-nonconform{word-break:break-word}.schedule-shift-closed-content--compact{margin-top:6px}.schedule-shift-closed-content--compact .schedule-shift-closed-plan,.schedule-shift-closed-content--compact .schedule-shift-closed-fact,.schedule-shift-closed-content--compact .schedule-shift-closed-nonconform{margin-bottom:4px}.schedule-shift-closed-project{margin-bottom:8px}.schedule-shift-closed-project:last-child{margin-bottom:0}.schedule-shift-closed-project-title{font-size:.78rem;font-weight:700;color:var(--text);margin-bottom:2px;padding:2px 0}.schedule-shift-closed-table{width:100%;margin-top:0;font-size:.72rem;border-collapse:collapse}.schedule-shift-closed-table th,.schedule-shift-closed-table td{padding:2px 4px;text-align:left;border-bottom:1px solid var(--surface2)}.schedule-shift-closed-table th{color:var(--text-muted);font-weight:600}.schedule-shift-closed-table td:first-child{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-shift-closed-nc-cell{color:var(--warning);font-size:.7rem;max-width:80px;word-break:break-word}.schedule-line-project-item--readonly .schedule-line-item-actions{display:none}.schedule-shift-drop-hint{font-size:.8rem;color:var(--text-muted);margin:8px 0 0}.schedule-line-projects{list-style:none;padding:0;margin:0}.schedule-line-project-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:6px 12px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.9rem}.schedule-line-project-item:last-child{border-bottom:none}.schedule-line-project-item--with-report{display:block;grid-template-columns:unset;grid-template-rows:unset;gap:0}.schedule-line-project-item--with-report .schedule-line-project-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.schedule-line-project-item--with-report .schedule-line-project-row--with-action{grid-template-columns:1fr auto auto}.schedule-line-project-item--with-report .schedule-line-project-row--with-action .schedule-line-project-add-report{display:inline-flex;align-items:center;justify-content:center}.schedule-line-project-item--with-report .schedule-line-project-op{font-size:.85rem;color:var(--text-muted);margin:2px 0 0 12px}.schedule-line-preparation{background:#ffffff08}.schedule-line-preparation .schedule-line-project-name{font-style:italic;color:var(--text-muted)}.schedule-line-project-name{min-width:0;grid-column:1;grid-row:1}.schedule-line-project-min{font-weight:600;color:var(--text-muted);grid-column:2;grid-row:1}.schedule-line-item-actions{grid-column:1 / -1;grid-row:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.schedule-line-item-actions .btn-icon{white-space:nowrap;flex-shrink:0}.schedule-btn-remove-segment{padding:4px 10px;font-size:.8rem;background:#b48c3c33;color:var(--warning, #db8);border:1px solid rgba(180,140,60,.4)}.schedule-btn-remove-segment:hover{background:#b48c3c59}.schedule-btn-remove{padding:4px 10px;font-size:.8rem;background:#c8505033;color:var(--danger, #e88);border:1px solid rgba(200,80,80,.4)}.schedule-btn-remove:hover{background:#c8505059}.line-priority-section{margin-top:24px}.line-priority-section h3{margin:0 0 4px}.line-priority-section .muted{margin:0 0 12px}.line-priority-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.line-priority-card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:12px}.line-priority-card h4{margin:0 0 8px;font-size:.95rem}.line-priority-list{list-style:none;padding:0;margin:0}.line-priority-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.85rem}.line-priority-item:last-child{border-bottom:none}.line-priority-item-name{flex:1;min-width:0}.line-priority-qty{color:var(--text-muted);font-size:.8rem}.line-priority-actions{display:flex;gap:2px}.line-priority-actions .btn-icon{padding:2px 6px;font-size:.9rem}.variant-ends-table-wrap{overflow-x:auto}.variant-ends-table-wrap .table th,.variant-ends-table-wrap .table td{font-size:.8rem;padding:4px 8px;white-space:nowrap}.muted.small{font-size:.8rem;margin:0}.execution-schedule-section{margin-top:24px}.execution-schedule-section h2{margin:0 0 8px}.execution-plan-section{background:var(--surface);border-radius:var(--radius);padding:20px;margin-bottom:24px;border:1px solid var(--surface2)}.execution-plan-section h2{margin-top:0}.plan-text{margin:0;white-space:pre-wrap;color:var(--text)}.week-plan-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.week-plan-item{padding:8px 0;border-bottom:1px solid var(--surface2);font-size:.9rem}.execution-close-shift{margin-top:24px}.btn-radius-sm{border-radius:4px}.gantt-scroll-outer{border-radius:8px;overflow-x:auto;overflow-y:hidden}.gantt-scroll-outer--unified{max-height:70vh;overflow-y:auto;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.gantt-scroll-outer--unified .gantt-unified-inner{display:flex;flex-direction:column}.gantt-scroll-outer--unified .gantt-body{overflow-y:visible}.gantt-cell--sticky{position:sticky;left:0;z-index:2;flex-shrink:0;box-shadow:2px 0 4px #0000000f}.gantt-header .gantt-cell--sticky{background:var(--primary);color:var(--primary-fg, #fff);border-right:1px solid rgba(255,255,255,.2)}.gantt-row .gantt-cell--sticky{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center}.gantt-wrap{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface)}.gantt-wrap--scroll{display:inline-flex;flex-direction:column;min-width:min-content}.gantt-wrap--scroll .gantt-header .gantt-cell--task-name,.gantt-wrap--scroll .gantt-row .gantt-cell--task-name{position:sticky;left:0;z-index:2;box-shadow:2px 0 4px #0000000f}.gantt-wrap--scroll .gantt-header .gantt-cell--task-name{background:var(--primary)}.gantt-wrap--scroll .gantt-row .gantt-cell--task-name{background:var(--surface)}.gantt-wrap--split{display:flex;max-height:70vh;overflow:hidden}.gantt-wrap--split .gantt-fixed-col{flex:0 0 220px;min-width:220px;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border)}.gantt-wrap--split .gantt-fixed-col .gantt-body{overflow-y:auto;flex:1;min-height:0}.gantt-wrap--split .gantt-scroll-col{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:column}.gantt-wrap--split .gantt-scroll-col .gantt-body{overflow-y:auto;flex:1;min-height:0}.gantt-wrap--split .gantt-scroll-col .gantt-timeline-header{flex:0 0 auto}.gantt-wrap--split .gantt-scroll-col-inner{display:flex;flex-direction:column;flex:1;min-height:0}.gantt-wrap--split .gantt-scroll-col-inner .gantt-body{flex:1;min-height:0}.gantt-header--split.gantt-header--labels{min-height:88px;display:flex;align-items:stretch}.gantt-header--split .gantt-cell--task-name{display:flex;align-items:center}.gantt-row--cell-only,.gantt-row--timeline-only,.gantt-row--cell-only .gantt-cell,.gantt-row--timeline-only .gantt-timeline,.gantt-body--empty .gantt-cell--empty{min-height:44px}.gantt-header.gantt-header--labels{display:flex;background:var(--primary);color:var(--primary-fg, #fff)}.gantt-cell.gantt-cell--task-name{flex-shrink:0;width:220px;min-width:220px;padding:10px 12px;font-weight:600;color:var(--text);background:var(--surface);border-right:1px solid rgba(255,255,255,.2)}.gantt-timeline-header{flex:1;min-width:0;display:flex;flex-direction:column}.gantt-timeline-quarter{padding:6px 12px;font-size:.9rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.25)}.gantt-timeline-years{display:flex;border-bottom:1px solid rgba(255,255,255,.12)}.gantt-timeline-year{text-align:center;font-size:.85rem;font-weight:600;color:var(--text-muted);padding:4px 0;box-sizing:border-box}.gantt-timeline-days{display:flex;background:#00000019;color:var(--text-muted);border-right:1px solid var(--border)}.gantt-timeline-day{flex:1;padding:6px 4px;text-align:center;font-size:.75rem;line-height:1.2;border-right:1px solid rgba(255,255,255,.15);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.gantt-timeline-day:last-child{border-right:none}.gantt-body{max-height:70vh;overflow-y:auto}.gantt-row{display:flex;border-bottom:1px solid var(--border);min-height:44px;align-items:stretch}.gantt-row:last-child{border-bottom:none}.gantt-row .gantt-cell--task-name{background:var(--surface);color:var(--text);font-weight:400;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:2px}.gantt-task-variant{font-weight:600;font-size:.9rem}.gantt-task-op{font-size:.8rem;color:var(--text-muted)}.gantt-unplanned-ops{display:block;font-size:.8rem;color:var(--danger, #c0392b);margin-top:2px}.gantt-timeline{flex:1;min-width:0;position:relative;background:repeating-linear-gradient(to right,transparent,transparent calc(100% / 7 - 1px),var(--border) calc(100% / 7 - 1px),var(--border) calc(100% / 7))}.gantt-bar{position:absolute;top:8px;bottom:8px;min-width:6px;background:var(--accent-light);border-radius:4px;pointer-events:none;z-index:1}.gantt-bar--project{background:var(--accent-light);opacity:.9}.gantt-bar--completed{background:var(--success, #2e7d32);opacity:1}.gantt-section-title{font-size:1.1rem;margin:24px 0 12px;color:var(--text)}.gantt-section-title:first-of-type{margin-top:16px}.gantt-empty-hint{padding:24px;margin:0}.page .gantt-wrap{margin-top:16px}.gantt-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;margin-bottom:12px}.page--gantt .gantt-week-picker{margin-top:0;margin-bottom:0}.gantt-start-date-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gantt-btn-today{padding:6px 12px;font-size:.9rem;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:500}.gantt-btn-today:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.gantt-period-selector{display:flex;gap:4px}.gantt-period-btn{padding:6px 12px;font-size:.9rem;border:2px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);cursor:pointer;font-weight:500}.gantt-period-btn:hover{background:var(--surface-hover);border-color:var(--accent)}.gantt-period-btn--active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 1px 3px #00000026}[data-theme=dark] .gantt-period-btn--active{box-shadow:0 1px 4px #0006}.mb-0{margin-bottom:0}.mt-10{margin-top:10px!important}.ml-auto{margin-left:auto}.project-steps-view-row-wrap{display:flex;align-items:center;gap:6px}
