@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Unbounded:wght@400;600&display=swap";.app-header{border-bottom:1px solid var(--line);background:#1d1f28f5;flex-shrink:0;align-items:center;gap:16px;height:48px;padding:0 16px;display:flex}.app-header__logo{letter-spacing:.2em;color:var(--t2);text-transform:uppercase;flex-shrink:0;font-family:Unbounded,sans-serif;font-size:11px;font-weight:600}.app-header__nav{align-items:stretch;gap:0;height:100%;display:flex}.app-header__tab{height:48px;color:var(--t2);cursor:pointer;letter-spacing:.02em;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;padding:0 18px;font-size:13px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s,background .15s;display:flex}.app-header__tab:hover{color:var(--t1);background:#ffffff06}.app-header__tab.is-active{color:var(--t1);border-bottom-color:var(--accent);background:#8abfff1a}.app-header__meta{align-items:center;gap:12px;margin-left:auto;display:flex}.app-header__sync{color:var(--t2);font-size:11px}.app-header__user{color:var(--t2);align-items:center;gap:8px;font-size:11px;display:flex}.app-header__user strong{color:var(--t1)}.app-header__logout{border:1px solid var(--ln2);color:var(--t2);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500}.app-header__logout:hover{border-color:var(--y);color:var(--y)}@media (width<=767px){.app-header{flex-wrap:wrap;gap:8px;height:auto;padding:8px 12px}.app-header__logo{font-size:9px}.app-header__nav{border-top:1px solid var(--line);flex-wrap:wrap;order:3;width:100%;padding-top:4px}.app-header__tab{flex:calc(50% - 4px);justify-content:center;height:44px;padding:0 10px;font-size:13px}.app-header__meta{flex-wrap:wrap;gap:8px;margin-left:auto}.app-header__sync{width:100%;font-size:11px}.app-header__logout{min-height:36px;padding:6px 12px;font-size:11px}}@media (width>=768px) and (width<=1199px){.app-header__tab{padding:0 12px;font-size:11px}}.assign-group-modal__info{color:var(--t1);margin-bottom:14px;font-size:11px}.assign-group-modal__meta{color:var(--t2);margin-top:4px;font-size:10px}.assign-group-modal__field{color:var(--t2);flex-direction:column;gap:6px;margin-bottom:12px;font-size:10px;display:flex}.assign-group-modal__field input,.assign-group-modal__field select{width:100%}.assign-group-modal__actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.grouped-task-list{flex:1;min-height:0;padding:12px 16px;overflow:auto}.grouped-task-list--by-assignee{flex-direction:column;gap:12px;padding:12px 16px;display:flex;overflow:hidden}.grouped-task-list--by-assignee .grouped-task-list__section{border:1px solid var(--ln2);background:var(--bg2);border-radius:10px;flex-direction:column;flex:1 1 0;min-height:160px;max-height:100%;display:flex;overflow:hidden}.grouped-task-list__section-body{flex:1;min-height:0;overflow-y:auto}.grouped-task-list__section-title{color:var(--t1);background:var(--bg3);border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:600;display:flex}.grouped-task-list__section-count{color:var(--t3);font-size:11px;font-weight:500}.grouped-task-list table{border-collapse:collapse;width:100%}.grouped-task-list th,.grouped-task-list td{border-bottom:1px solid var(--line);text-align:left;padding:10px 12px;font-size:13px}.grouped-task-list th{text-transform:uppercase;letter-spacing:.08em;color:var(--t2);background:var(--bg2);z-index:1;font-size:11px;position:sticky;top:0}.grouped-task-list tr:hover td{background:var(--bg3)}.grouped-task-list tr.is-blocked td{color:var(--t2)}.grouped-task-list__count{background:var(--bg4);min-width:28px;font-weight:600;font-family:var(--font-mono);border-radius:10px;justify-content:center;padding:2px 8px;display:inline-flex}.grouped-task-list__assignee{color:var(--t1);font-size:12px}.grouped-task-list__assignee.is-empty{color:var(--t2)}@media (width<=767px){.grouped-task-list{padding:8px 12px}.grouped-task-list--by-assignee{padding:8px 12px;overflow:auto}.grouped-task-list--by-assignee .grouped-task-list__section{flex:auto;min-height:200px}.grouped-task-list table{min-width:640px}.grouped-task-list__section-body{-webkit-overflow-scrolling:touch;overflow-x:auto}}.order-filter{align-items:center;gap:8px;padding:0 16px 8px;display:flex}.order-filter__label{color:var(--t2);white-space:nowrap;font-size:11px;font-weight:500}.order-filter__select{border:1px solid var(--ln2);background:var(--bg3);min-width:220px;max-width:360px;color:var(--t1);border-radius:7px;padding:6px 10px;font-size:12px}.order-filter__select:disabled{opacity:.6}.kanban-board{flex:1;grid-template-columns:repeat(4,1fr);gap:12px;padding:12px 16px;display:grid;overflow:hidden}.kanban-column{background:var(--bg2);border:1px solid var(--line);border-radius:10px;flex-direction:column;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.kanban-column.is-drop-target{border-color:var(--accent,#60a5fa);background:#60a5fa0f}.kanban-column__title{letter-spacing:.1em;text-transform:uppercase;color:var(--t2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:11px 12px;font-size:10px;font-weight:600;display:flex}.kanban-column__count{color:var(--t2);font-size:11px}.kanban-column__items{flex-direction:column;flex:1;gap:8px;min-height:120px;padding:8px;display:flex;overflow-y:auto}.kanban-column__empty{min-height:80px;color:var(--t2);border:1px dashed var(--line);border-radius:6px;flex:1;justify-content:center;align-items:center;font-size:10px;display:flex}.kanban-card{border:1px solid var(--ln2);background:linear-gradient(#323646eb,#262936fa);border-radius:9px;padding:10px 11px;box-shadow:0 8px 20px #0000001f}.kanban-card.is-draggable{cursor:grab}.kanban-card.is-draggable:active{cursor:grabbing}.kanban-card.is-dragging{opacity:.45;transform:scale(.98)}.kanban-card__order{color:var(--t2);font-size:10px;font-family:var(--font-mono);margin-bottom:3px}.kanban-card__header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:3px;display:flex}.kanban-card__header .kanban-card__order{margin-bottom:0}.kanban-card__count{background:var(--bg4);color:var(--t1);font-size:11px;font-weight:600;font-family:var(--font-mono);border-radius:8px;padding:1px 6px}.kanban-card__name{color:var(--t1);margin-bottom:4px;font-size:12px;font-weight:600;line-height:1.45}.kanban-card__meta{color:var(--t2);font-size:10px}.kanban-card__assignee{color:var(--t1);margin-top:4px;font-size:11px;font-weight:600}.kanban-card__assignee.is-empty{color:var(--t2);font-weight:500}.kanban-card.is-overdue{border-color:var(--r)}.kanban-card.is-blocked{border-style:dashed;border-color:#f7c86a52}.kanban-card__blocked{color:var(--t2);margin-top:6px;font-size:10px}.kanban-card__materials{color:var(--t2);margin-top:4px;font-size:10px}.route-editor-backdrop{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.route-editor{background:var(--bg2);border:1px solid var(--ln2);border-radius:10px;flex-direction:column;width:min(560px,100%);max-height:min(90vh,720px);padding:18px 20px;display:flex;box-shadow:0 16px 48px #00000059}.route-editor__header{justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.route-editor__header h3{color:var(--t1);margin:0;font-size:14px}.route-editor__subtitle{color:var(--t2);margin:4px 0 0;font-size:11px}.route-editor__close{color:var(--t3);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.route-editor__hint{color:var(--t3);margin:0 0 14px;font-size:11px;line-height:1.45}.route-editor__pipeline{background:var(--bg3);border:1px solid var(--line);border-radius:8px;margin-bottom:14px;padding:12px}.route-editor__pipeline-title{text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-bottom:10px;font-size:9px}.route-editor__pipeline-empty{color:var(--t3);font-size:11px;font-style:italic}.route-editor__pipeline-track{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.route-editor__pipeline-step{align-items:center;gap:4px;display:flex}.route-editor__pipeline-arrow{color:var(--t3);padding:0 2px;font-size:12px}.route-editor__pipeline-chip{color:var(--t1);white-space:nowrap;background:#22c55e1f;border:1px solid #22c55e59;border-radius:16px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;display:inline-flex}.route-editor__pipeline-num{background:var(--g);color:#0a0a0c;border-radius:50%;justify-content:center;align-items:center;min-width:18px;height:18px;font-size:10px;font-weight:700;display:inline-flex}.route-editor__timeline{flex-direction:column;flex:1;gap:4px;max-height:320px;padding-right:4px;display:flex;overflow-y:auto}.route-editor__timeline-row{border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;transition:background .15s,border-color .15s;display:flex}.route-editor__timeline-row.is-selected{background:#22c55e14;border-color:#22c55e40}.route-editor__timeline-check{cursor:pointer;min-width:0;color:var(--t1);flex:1;align-items:center;gap:10px;font-size:11px;display:flex}.route-editor__timeline-check input{accent-color:var(--g);flex-shrink:0}.route-editor__timeline-order{width:22px;color:var(--t3);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.route-editor__timeline-row.is-selected .route-editor__timeline-order{color:var(--g)}.route-editor__timeline-name{flex:1;min-width:0}.route-editor__timeline-actions{flex-shrink:0;gap:4px;display:flex}.route-editor__move-btn{border:1px solid var(--line);background:var(--bg4);width:26px;height:26px;color:var(--t2);cursor:pointer;border-radius:4px;padding:0;font-size:12px;line-height:1}.route-editor__move-btn:hover:not(:disabled){background:var(--bg3);color:var(--t1)}.route-editor__move-btn:disabled{opacity:.35;cursor:default}.route-editor__error{color:var(--r);margin-top:12px;font-size:11px}.route-editor__success{color:var(--g);margin-top:12px;font-size:11px}.route-editor__actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.route-editor__actions button{border:1px solid var(--line);background:var(--bg3);color:var(--t1);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:11px}.route-editor__actions button:disabled{opacity:.5;cursor:default}.route-editor__actions button:not(.btn-secondary):not(:disabled){background:var(--g);border-color:var(--g);color:#0a0a0c;font-weight:600}.route-editor__actions .btn-secondary:hover{background:var(--bg4)}.move-tasks-modal__info{color:var(--t1);margin-bottom:14px;font-size:11px}.move-tasks-modal__meta{color:var(--t2);margin-top:4px;font-size:10px}.move-tasks-modal__field{color:var(--t2);flex-direction:column;gap:6px;margin-bottom:12px;font-size:10px;display:flex}.move-tasks-modal__field input{width:100%}.move-tasks-modal__actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.drag-handle{width:18px;height:24px;color:var(--t3);cursor:grab;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.drag-handle:hover{color:var(--t2);background:var(--bg4)}.drag-handle:active{cursor:grabbing}tr.is-dragging td{opacity:.45}tr.is-drag-over td{box-shadow:inset 0 2px 0 var(--accent,#60a5fa);background:#60a5fa14}.order-rank{background:var(--bg4);font-variant-numeric:tabular-nums;min-width:24px;color:var(--t2);border-radius:4px;justify-content:center;padding:2px 6px;font-size:10px;display:inline-flex}.task-list{flex:1;padding:12px 16px;overflow:auto}.task-list .th-drag,.task-list .td-drag{width:28px;padding-left:8px;padding-right:4px}.task-list .td-drag{vertical-align:middle}.task-list table{border-collapse:collapse;width:100%}.task-list th,.task-list td{border-bottom:1px solid var(--line);text-align:left;padding:8px 10px}.task-list th{text-transform:uppercase;letter-spacing:.08em;color:var(--t2);background:var(--bg);font-size:10px;position:sticky;top:0}.task-list tr:hover td{background:var(--bg3)}.task-list tr.is-overdue td{color:var(--r)}.task-list tr.is-selected td{background:#60a5fa14}.task-status{background:var(--bg4);white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:600}.task-status--in_progress{color:#b8f5d4;background:#58d99d24;border-color:#58d99d47}.task-status--done{color:var(--t2);background:#94a3b81f;border-color:#94a3b833}.task-status--ready{color:#ffe3a3;background:#f7c86a24;border-color:#f7c86a47}.task-status--waiting{color:#d9e3f7;background:#94a3b81f;border-color:#94a3b82e}.task-list tr.is-blocked td{color:var(--t2)}.task-blocked-badge{color:var(--t2);margin-left:6px;font-size:10px;display:inline-block}.task-materials{font-size:11px}.task-materials summary{cursor:pointer;color:var(--t2)}.task-materials ul{color:var(--t2);margin:4px 0 0;padding-left:16px}.task-materials__empty{color:var(--t3)}@media (width<=767px){.task-list{-webkit-overflow-scrolling:touch;padding:8px 12px;overflow-x:auto}.task-list table{min-width:720px}.task-list th,.task-list td{padding:10px 8px;font-size:12px}}.worker-task-cards{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.worker-task-cards__filters{border-bottom:1px solid var(--line);background:var(--bg2);flex-wrap:wrap;flex-shrink:0;gap:8px;padding:8px 16px;display:flex}.worker-task-cards__list{flex-direction:column;flex:1;gap:12px;min-height:0;padding:12px 16px;display:flex;overflow-y:auto}.worker-task-card{border:1px solid var(--ln2);background:linear-gradient(#262936f5,#1d1f28fa);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.worker-task-card.is-blocked{border-style:dashed;border-color:#f7c86a52}.worker-task-card__header{justify-content:space-between;align-items:center;gap:8px;display:flex}.worker-task-card__order{font-size:14px;font-weight:600;font-family:var(--font-mono)}.worker-task-card__count{color:var(--t1);background:var(--bg4);font-size:12px;font-family:var(--font-mono);border-radius:10px;padding:2px 8px}.worker-task-card__title{font-size:13px;font-weight:600;line-height:1.45}.worker-task-card__meta{color:var(--t2);font-size:12px}.worker-task-card__materials summary{cursor:pointer;color:var(--t2);font-size:12px}.worker-task-card__materials ul{color:var(--t2);margin:8px 0 0;padding-left:18px;font-size:11px}.worker-task-card__actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.worker-task-card__actions .btn{min-height:44px;padding:10px 16px;font-size:13px}.tech-map-table-wrap{flex:1;overflow:auto}.tech-map-table{border-collapse:collapse;width:100%;font-size:12px}.tech-map-table th{z-index:2;background:var(--bg2);text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--t2);border-bottom:1px solid var(--ln2);white-space:nowrap;padding:9px 12px;font-size:10px;font-weight:600;position:sticky;top:0}.tech-map-table .th-fix{z-index:3;position:sticky}.tech-map-table .th-order{width:32px;min-width:32px;left:0}.tech-map-table .th-name{border-right:1px solid var(--ln2);width:360px;min-width:360px;left:32px}.tech-map-table-wrap--with-drag .tech-map-table .th-drag,.tech-map-table-wrap--with-drag .tech-map-table .td-drag{z-index:1;background:inherit;position:sticky;left:0}.tech-map-table-wrap--with-drag .tech-map-table .th-order,.tech-map-table-wrap--with-drag .tech-map-table .tr-order .td-order,.tech-map-table-wrap--with-drag .tech-map-table .tr-pos .td-fix1{left:52px}.tech-map-table-wrap--with-drag .tech-map-table .th-name,.tech-map-table-wrap--with-drag .tech-map-table .tr-order .td-name,.tech-map-table-wrap--with-drag .tech-map-table .tr-pos .td-fix2{left:84px}.tech-map-table-wrap--with-drag .tech-map-table .td-drag--spacer{padding:0}.tr-order{cursor:pointer;background:var(--bg2)}.tr-order:hover{background:var(--bg3)}.tr-order td{border-bottom:1px solid var(--line);color:var(--t2);padding:9px 12px;font-size:12px;font-weight:600}.tr-order.overdue td{background:var(--r2);color:var(--r)}.tr-order .td-order{background:inherit;z-index:1;position:sticky;left:0}.tr-order .td-name{background:inherit;z-index:1;border-right:1px solid var(--ln2);position:sticky;left:32px}.tr-order__name-row{justify-content:space-between;align-items:center;gap:12px;min-height:32px;display:flex}.tech-map-table .th-drag,.tech-map-table .td-drag{border-right:1px solid var(--ln2);width:52px;padding:0 6px}.tech-map-table .td-drag{vertical-align:middle;align-items:center;gap:4px;display:flex}.tr-order__name-block{flex-direction:column;gap:2px;min-width:0;display:flex}.tr-order__title{color:var(--t1);font-weight:600}.tr-order__meta{color:var(--t2);font-size:11px;font-weight:400}.tr-order__stats-inline{color:var(--t2);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.tr-order td .order-stats-cell{padding:2px 0}.order-stats-cell{background:0 0;border:none;padding:4px 0}.order-priority{color:var(--t2);flex-shrink:0;align-items:center;gap:4px;font-size:10px;display:inline-flex}.order-priority input{width:48px;font-size:10px;font-family:var(--font-mono);padding:2px 4px}.order-priority-readonly{color:var(--t2);flex-shrink:0;font-size:10px}.order-play-btn{border:1px solid var(--g);width:32px;height:32px;color:var(--g);cursor:pointer;background:#22c55e1f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding-left:2px;font-size:12px;line-height:1;display:inline-flex}.order-play-btn:hover:not(:disabled){background:var(--g);color:#0a0a0c}.order-play-btn:disabled{opacity:.5;cursor:default}.order-generating-badge{color:#93c5fd;white-space:nowrap;background:#3b82f61f;border:1px solid #3b82f659;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-size:10px;font-weight:600;display:inline-flex}.order-generating-badge__spinner{border:2px solid #93c5fd40;border-top-color:#93c5fd;border-radius:50%;width:10px;height:10px;animation:.8s linear infinite order-generating-spin}@keyframes order-generating-spin{to{transform:rotate(360deg)}}.tr-order--generating td{background:#3b82f614}.tr-order--generating .tr-order__title{color:#bfdbfe}.tr-order__toggle{align-items:center;gap:6px;display:inline-flex}.toggle-arrow{color:var(--t3);font-size:10px;transition:transform .2s;display:inline-block}.toggle-arrow.open{transform:rotate(90deg)}.tr-pos td{border-bottom:1px solid var(--line);vertical-align:middle;background:var(--tree-row-bg,transparent);padding:7px 12px}.tr-pos--depth-0{--tree-row-bg:#22c55e0f;--tree-accent:#22c55e8c}.tr-pos--depth-1{--tree-row-bg:#3b82f60d;--tree-accent:#3b82f673}.tr-pos--depth-2{--tree-row-bg:#a855f70a;--tree-accent:#a855f766}.tr-pos--depth-3{--tree-row-bg:#f59e0b09;--tree-accent:#f59e0b59}.tr-pos--depth-4,.tr-pos--depth-5{--tree-row-bg:#ffffff04;--tree-accent:#ffffff1f}.tr-pos--branch.tr-pos--depth-0,.tr-pos--branch.tr-pos--depth-1,.tr-pos--branch.tr-pos--depth-2{--tree-row-bg:color-mix(in srgb, var(--tree-row-bg) 100%, #ffffff08)}.tr-pos:hover td{background:var(--bg3)}.tr-pos .td-fix1{background:inherit;z-index:1;width:32px;min-width:32px;padding:6px 4px 6px 12px;position:sticky;left:0}.tr-pos .td-fix2{background:inherit;z-index:1;color:var(--t1);border-right:1px solid var(--ln2);min-width:360px;box-shadow:inset 3px 0 0 var(--tree-accent,transparent);font-size:12px;position:sticky;left:32px}.tr-pos--product .tree-node-name{color:var(--t1);font-size:13px;font-weight:600}.tr-pos--assembly.tr-pos--branch .tree-node-name{color:var(--t1);font-weight:600}.tr-pos--material .tree-node-name{color:var(--t2);font-size:11px}.tr-pos--material{--tree-row-bg:#ffffff02}.tr-pos--material .td-fix2{box-shadow:inset 3px 0 #ffffff0f}.tree-rails{flex-shrink:0;align-self:stretch;margin-right:2px;display:inline-flex}.tree-rail{flex-shrink:0;width:18px;position:relative}.tree-rail:before{content:"";border-left:1px solid #ffffff1a;position:absolute;top:0;bottom:0;left:8px}.tree-rail--last:before{bottom:50%}.tree-rail--active:after{content:"";border-top:1px solid #ffffff24;width:10px;position:absolute;top:50%;left:8px}.tree-rail--active.tree-rail--leaf:before{bottom:50%}.tree-toggle{background:var(--bg4);cursor:pointer;width:18px;height:18px;color:var(--t2);border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:inline-flex}.tree-toggle:hover{color:var(--t1);background:var(--bg3)}.tree-toggle--leaf{cursor:default;background:0 0}.tree-node-label{flex-wrap:wrap;align-items:center;gap:8px;min-height:22px;display:flex}.tree-node-stages{flex-wrap:wrap;gap:4px;display:inline-flex}.tree-node-stage-pill{color:#bfdbfe;background:#60a5fa29;border:1px solid #60a5fa59;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600}.tree-node-stage-pill--laser{color:#fca5a5;background:#ef444429;border-color:#ef444459}.tree-node-stage-pill--welding_aluminum,.tree-node-stage-pill--welding_steel{color:#fdba74;background:#f9731629;border-color:#f9731659}.tree-node-stage-pill--locksmith{color:#fde047;background:#eab30829;border-color:#eab30859}.tree-node-stage-pill--assembly{color:#86efac;background:#22c55e29;border-color:#22c55e59}.tree-node-stage-pill--painting{color:#d8b4fe;background:#a855f729;border-color:#a855f759}.tree-node-edit{border:1px solid var(--line);background:var(--bg4);color:var(--t2);cursor:pointer;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px}.tree-node-edit:hover{color:var(--t1);border-color:var(--ln2)}.tree-node-type{letter-spacing:.04em;text-transform:uppercase;background:var(--bg3);color:var(--t2);border-radius:3px;flex-shrink:0;padding:2px 5px;font-size:10px;font-weight:600}.tree-node-type--assembly{color:var(--b);background:#3b82f61f}.tree-node-type--product{color:var(--g);background:#22c55e1f}.tree-node-type--material{color:var(--t3);background:var(--bg3)}.tree-line-header{color:var(--t1);letter-spacing:.02em;padding:6px 0;font-size:12px;font-weight:600}.tr-line td{background:var(--bg2);border-bottom:1px solid var(--line)}.tr-line .td-fix2{box-shadow:inset 3px 0 #fff3}.td-order-meta{color:var(--t2);border-bottom:1px solid var(--line);padding:8px 12px;font-size:11px;font-weight:400}.tr-pos:hover .td-fix1,.tr-pos:hover .td-fix2{background:inherit}.cell{flex-direction:column;align-items:flex-start;gap:2px;min-width:72px;display:flex}.cell-date{color:var(--t2);font-variant-numeric:tabular-nums;font-size:11px;font-family:var(--font-mono)}.cell-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.cell-row{align-items:center;gap:5px;display:flex}.cell-stats{flex-direction:column;gap:2px;display:flex}.cell-stats__head{align-items:center;gap:6px;display:flex}.cell-stats__date,.cell-stats__total{color:var(--t2);font-size:10px;font-family:var(--font-mono)}.cell-stats__row{color:var(--t2);font-variant-numeric:tabular-nums;font-size:10px;font-family:var(--font-mono);flex-wrap:wrap;gap:4px 6px;display:flex}.cell.done .cell-date{color:var(--t2)}.cell.done .cell-dot{background:var(--t3)}.cell.done .cell-date:before{content:"✓ "}.cell.active .cell-dot{background:var(--g);box-shadow:0 0 4px var(--g)}.cell.active .cell-date{color:var(--g)}.cell.overdue .cell-dot{background:var(--r);box-shadow:0 0 4px var(--r)}.cell.overdue .cell-date{color:var(--r)}.cell.pending .cell-dot{background:var(--t3)}.cell-empty{color:var(--t2);font-size:11px}.cell-empty--loading{color:var(--t2);animation:1.2s ease-in-out infinite tech-map-pulse}.tr-order__stats-inline--loading{color:var(--t2)}@keyframes tech-map-pulse{0%,to{opacity:.45}50%{opacity:1}}@media (width<=767px){.tech-map-table-wrap{margin:0 -4px}.tech-map-table{font-size:12px}.tech-map-table .th-name{width:220px;min-width:220px}.order-play-btn{min-width:44px;min-height:44px}}.workforce-panel{flex:1;gap:16px;padding:16px;display:grid;overflow:auto}.workforce-error{margin-bottom:0}.workforce-grid{grid-template-columns:minmax(280px,340px) 1fr;gap:16px;display:grid}@media (width<=960px){.workforce-grid{grid-template-columns:1fr}}.workforce-card{background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.workforce-card--wide{min-width:0}.workforce-card h2{letter-spacing:.1em;text-transform:uppercase;color:var(--t2);margin:0;font-family:Unbounded,sans-serif;font-size:11px;font-weight:600}.workforce-card__header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.workforce-card__hint{color:var(--t3);margin:6px 0 0;font-size:11px;line-height:1.4}.workforce-more{margin:8px 0 0}.workforce-form{gap:10px;margin-top:12px;display:grid}.workforce-field{gap:4px;display:grid}.workforce-field span{text-transform:uppercase;letter-spacing:.06em;color:var(--t3);font-size:10px}.workforce-field input,.workforce-search{border:1px solid var(--line);background:var(--bg3);width:100%;color:var(--t1);border-radius:6px;padding:8px 10px;font-family:inherit;font-size:12px}.workforce-search{flex-shrink:0;max-width:220px}.workforce-form__submit{margin-top:4px}.workforce-source-table-wrap{border:1px solid var(--line);border-radius:8px;max-height:320px;overflow:auto}.workforce-source-table{border-collapse:collapse;width:100%}.workforce-source-table th,.workforce-source-table td,.workforce-table th,.workforce-table td{border-bottom:1px solid var(--line);text-align:left;padding:8px 10px;font-size:12px}.workforce-source-table th,.workforce-table th{background:var(--bg3);text-transform:uppercase;color:var(--t3);z-index:1;font-size:10px;position:sticky;top:0}.workforce-source-action{text-align:right;width:90px}.workforce-muted{color:var(--t3);font-size:11px}.workforce-stage-editor{flex-wrap:wrap;gap:4px;max-width:520px;display:flex}.workforce-stage-chip{border:1px solid var(--line);background:var(--bg3);color:var(--t2);cursor:pointer;border-radius:999px;padding:3px 7px;font-size:11px;line-height:1.2}.workforce-stage-chip:hover:not(:disabled){border-color:var(--ln2);color:var(--t1)}.workforce-stage-chip.is-active{border-color:var(--accent);color:var(--t1);background:#7cb8ff1f}.workforce-stage-chip:disabled{cursor:default;opacity:.65}.workforce-empty{text-align:center;color:var(--t3);padding:24px 12px!important}.workforce-table{border-collapse:collapse;width:100%;margin-top:12px}.btn--sm{padding:4px 8px;font-size:10px}.login-card{border:1px solid var(--line);background:var(--bg2);text-align:left;border-radius:12px;gap:12px;width:min(100%,420px);padding:24px;display:grid}.login-card h1{letter-spacing:.08em;text-transform:uppercase;margin:0;font-family:Unbounded,sans-serif;font-size:18px;font-weight:600}.login-card p{color:var(--t2);line-height:1.5}.login-card label{color:var(--t2);gap:6px;font-weight:500;display:grid}.login-card input{border:1px solid var(--ln2);background:var(--bg3);color:var(--t1);border-radius:6px;padding:10px 12px}.login-card button{border:1px solid var(--accent);color:var(--t1);cursor:pointer;background:#60a5fa1f;border-radius:6px;padding:10px 12px}.login-card button:disabled{opacity:.5;cursor:not-allowed}.login-error{color:var(--r)}:root{--bg:#15161d;--bg2:#1d1f28;--bg3:#262936;--bg4:#323646;--line:#94a3b824;--ln2:#94a3b83d;--t1:#f4f6fb;--t2:#c8ceda;--t3:#939bad;--g:#58d99d;--g2:#58d99d24;--y:#f7c86a;--y2:#f7c86a26;--r:#ff8585;--r2:#ff858524;--accent:#8abfff;--accent2:#8abfff29;--star:#fbbf24;--font-ui:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--t1);font-family:var(--font-ui);font-size:13px;line-height:1.45;overflow:hidden}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-shell--centered{place-content:center;padding:24px;display:grid}.page-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.page-error{background:var(--r2);color:var(--r);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 16px;display:flex}.page-error button{border:1px solid var(--ln2);color:var(--t1);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px}.page-notice{background:var(--accent2);color:#c9e0ff;border-bottom:1px solid #8abfff4d;align-items:center;gap:12px;padding:10px 16px;font-size:12px;display:flex}.page-loading{color:var(--t2);padding:24px 16px;font-size:13px}.tasks-counter{color:var(--t3);padding:8px 16px 0;font-size:12px}.load-more-trigger{justify-content:center;padding:16px;display:flex}.load-more-trigger button{border:1px solid var(--ln2);background:var(--bg2);color:var(--t1);cursor:pointer;border-radius:6px;padding:8px 16px}.load-more-trigger button:disabled{opacity:.6;cursor:default}.link-button{color:#93c5fd;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.tech-map-toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0 12px;display:flex}.tech-map-toolbar__label{color:var(--t3);font-size:10px}.tech-map-toolbar button{border:1px solid var(--line);background:var(--bg3);color:var(--t1);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:10px}.tech-map-toolbar button:hover:not(:disabled){background:var(--g);border-color:var(--g);color:#0a0a0c}.tech-map-toolbar button:disabled{opacity:.6;cursor:default}.btn{border:1px solid var(--ln2);background:var(--bg3);color:var(--t1);cursor:pointer;border-radius:5px;padding:6px 12px;font-weight:500;transition:border-color .15s,background .15s}.btn:hover:not(:disabled){border-color:var(--ln2);background:var(--bg4)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{border-color:var(--accent);background:var(--accent2)}.btn--primary:hover:not(:disabled){background:#8abfff3d}.chip{border:1px solid var(--line);background:var(--bg3);color:var(--t2);cursor:pointer;white-space:nowrap;border-radius:7px;padding:5px 11px;font-weight:500;transition:all .15s}.chip:hover{border-color:var(--ln2);color:var(--t1);background:var(--bg4)}.chip.is-active{border-color:var(--accent);color:var(--t1);background:#8abfff2e;box-shadow:inset 0 0 0 1px #8abfff14}.view-toggle{gap:4px;display:flex}.view-toggle button{border:1px solid var(--line);background:var(--bg3);color:var(--t2);cursor:pointer;border-radius:5px;padding:4px 10px;font-weight:500}.view-toggle button.is-active{border-color:var(--ln2);color:var(--t1);background:var(--bg4)}.fbar{border-bottom:1px solid var(--line);background:#1d1f28eb;flex-shrink:0;align-items:center;gap:8px;min-height:44px;padding:0 16px;display:flex}.fbar>span{font-weight:500;color:var(--t2)!important;font-size:11px!important}.fsel,.fsearch{background:var(--bg3);border:1px solid var(--ln2);color:var(--t1);border-radius:7px;outline:none;padding:5px 10px;font-size:12px;transition:border-color .15s}.fsel{cursor:pointer}.fsel:hover,.fsearch:focus{border-color:var(--accent)}.fsearch{width:180px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:2px}@media (width<=767px){body{font-size:14px;overflow:auto}.app-shell{height:auto;min-height:100vh;overflow:visible}.page-content{overflow:visible}.btn,.chip,.fsel,.fsearch,.page-error button,.load-more-trigger button{min-height:44px;font-size:13px}.fbar{flex-wrap:wrap;gap:8px;height:auto;padding:8px 12px}.fsearch{flex:100%;width:100%}.fsel{flex:calc(50% - 4px);min-width:140px}.page-notice,.page-error{flex-wrap:wrap;font-size:13px}}@media (width>=768px) and (width<=1199px){body{font-size:13px}}@media (width>=1200px){.task-list th,.task-list td,.grouped-task-list th,.grouped-task-list td{padding:10px 14px}}
