:root{
  --bg:#eef2f6;--panel:#fff;--line:#d9e0e8;--text:#172033;--muted:#667085;
  --accent:#2563eb;--accent-soft:#eaf1ff;--danger:#dc2626;--warning:#d97706;
  --success:#16803c;--sidebar:#111827;--radius:14px;--shadow:0 10px 30px rgba(15,23,42,.07)
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}button{cursor:pointer}
.app{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}
.sidebar{background:var(--sidebar);color:#fff;padding:18px 14px;position:sticky;top:0;height:100vh}
.brand{display:flex;gap:10px;align-items:center;padding:5px 8px 24px}.brand .logo{width:43px;height:43px;border-radius:12px;background:#2563eb;display:grid;place-items:center;font-weight:800}.brand strong,.brand small{display:block}.brand small{color:#9ca3af;margin-top:4px;font-size:11px}
nav{display:flex;flex-direction:column;gap:6px}nav button{border:0;background:transparent;color:#cbd5e1;text-align:left;padding:11px 12px;border-radius:9px}nav button:hover,nav button.active{background:#1f2937;color:#fff}
main{padding:22px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.topbar h1{margin:0;font-size:25px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.top-actions,.modal-actions{display:flex;gap:8px}
.btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;color:var(--text)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger);border-color:#fecaca}
.page{display:none}.page.active{display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.panel h2{margin:0;font-size:18px}.panel p{color:var(--muted);font-size:13px}
.stats{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.stat small{color:var(--muted)}.stat strong{display:block;font-size:27px;margin-top:7px}
.two-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:15px;margin-top:15px}.order-card{border:1px solid var(--line);padding:12px;border-radius:10px;margin-bottom:9px}.order-card h3{font-size:14px;margin:0 0 6px}.meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin-bottom:14px}.filters.compact{grid-template-columns:repeat(3,minmax(150px,240px));margin:0}.filters label,.form-grid label,.modal-card>form>label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}
.filters.compact.calendar-filters{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
input,select,textarea{border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#8bb4ff;box-shadow:0 0 0 3px #e6efff}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;border-bottom:1px solid var(--line);font-size:13px;text-align:left}th{background:#f8fafc;color:var(--muted);font-weight:600}
.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}.notstarted{background:#e5e7eb}.progressing{background:#dbeafe;color:#1d4ed8}.done{background:#dcfce7;color:#166534}.risk{background:#fef3c7;color:#92400e}.overdue{background:#fee2e2;color:#991b1b}
.progressbar{height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden;min-width:100px}.progressbar i{display:block;height:100%;background:var(--accent)}
.toolbar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:14px}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.dot{width:10px;height:10px;border-radius:3px}.dot.design{background:#2563eb}.dot.supply{background:#8b5cf6}.dot.production{background:#f97316}.dot.quality{background:#16a34a}.diamond{width:10px;height:10px;transform:rotate(45deg);background:#dc2626}
.gantt-shell{overflow:auto;border:1px solid var(--line);border-radius:10px;max-height:70vh}.gantt-table{min-width:1100px;background:#fff}.gantt-row{display:grid;min-height:35px;border-bottom:1px solid #edf0f4}.gantt-row.header{position:sticky;top:0;z-index:8;background:#f8fafc}.gantt-label{position:sticky;left:0;z-index:4;background:inherit;border-right:1px solid var(--line);padding:8px 10px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-order{font-weight:700;background:#f5f8fc}.gantt-toggle{border:0;background:transparent;padding:0;margin-right:6px}.day-cell{border-right:1px solid #eef2f7;position:relative;text-align:center;font-size:10px;padding-top:9px}.day-cell.weekend{background:#fafafa}.task-segment{position:absolute;top:7px;bottom:7px;left:2px;right:2px;border-radius:5px;opacity:.9}.task-segment.design{background:#2563eb}.task-segment.supply{background:#8b5cf6}.task-segment.production{background:#f97316}.task-segment.quality{background:#16a34a}.task-segment.finish{background:#64748b}.task-segment.overdue{outline:2px solid #dc2626}.milestone-mark{position:absolute;width:13px;height:13px;background:#dc2626;transform:rotate(45deg);top:10px;left:7px;border:2px solid #fff;box-shadow:0 0 0 1px #dc2626}.task-row:hover{background:#f8fbff}
.calendar-head{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:12px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));border:1px solid var(--line);border-radius:10px;overflow:auto}.calendar .dow{background:#f8fafc;padding:9px;text-align:center;color:var(--muted);font-size:12px;font-weight:700}.calendar .day{min-height:120px;padding:7px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.calendar .day.other{background:#f9fafb;color:#a1a1aa}.calendar .day.today{box-shadow:inset 0 0 0 2px var(--accent)}.event{display:block;padding:4px 5px;margin-top:4px;border-radius:5px;font-size:10px;background:#eaf1ff;color:#1e40af;overflow:hidden;text-overflow:ellipsis}.event.milestone{background:#fee2e2;color:#991b1b}
.board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow:auto}.board-col{background:#e7ecf2;border-radius:12px;padding:10px;min-height:65vh}.board-head{display:flex;justify-content:space-between;margin-bottom:9px}.board-head h2{font-size:14px;margin:0}.board-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px;margin-bottom:8px;box-shadow:0 4px 12px rgba(15,23,42,.05)}.board-card h3{font-size:13px;margin:0 0 6px}.board-card[draggable=true]{cursor:grab}
.template-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:12px}.template-card{border:1px solid var(--line);border-radius:11px;padding:14px}.template-card h3{margin:0 0 8px}.template-card ul{margin:8px 0 0;padding-left:18px;font-size:12px;color:var(--muted)}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;padding:18px;z-index:30}.modal.open{display:flex}.modal-card{width:min(620px,100%);max-height:93vh;overflow:auto;background:#fff;border-radius:15px;padding:18px;box-shadow:0 25px 70px rgba(0,0,0,.3)}.modal-card.wide{width:min(970px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{margin:0}.icon-btn{border:0;background:#eef2f6;width:34px;height:34px;border-radius:8px;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.full{display:flex;flex-direction:column;gap:6px;margin-top:12px}.config-box,.preview-box{border:1px solid var(--line);border-radius:11px;padding:13px;margin-top:14px}.config-title,.preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.config-title h3,.preview-head h3{margin:0;font-size:15px}.config-title p{margin:4px 0 0;font-size:11px}.switch-line{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;color:var(--text)!important}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.check-item{border:1px solid var(--line);border-radius:8px;padding:8px;font-size:12px}.stage-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:9px}.stage-chip{font-size:11px;padding:7px 8px;border-radius:7px;background:#f4f7fb;border-left:4px solid #64748b}.stage-chip.design{border-left-color:#2563eb}.stage-chip.supply{border-left-color:#8b5cf6}.stage-chip.production{border-left-color:#f97316}.stage-chip.quality{border-left-color:#16a34a}.modal-actions{justify-content:flex-end;margin-top:15px}
.empty{text-align:center;color:var(--muted);padding:25px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.two-cols{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.form-grid,.check-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{flex-direction:row;overflow:auto}.sidebar nav button{white-space:nowrap}main{padding:13px}.topbar{align-items:flex-start;flex-direction:column}.filters,.filters.compact,.form-grid,.form-grid.two,.check-grid,.stage-preview,.template-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.board{grid-template-columns:repeat(5,250px)}}
.gantt-add-cell{cursor:crosshair}.gantt-add-cell:hover{background:#dbeafe!important;box-shadow:inset 0 0 0 1px #60a5fa}.add-stage-mark{display:none;font-size:16px;font-weight:800;color:#2563eb;line-height:28px}.gantt-add-cell:hover .add-stage-mark{display:inline}.gantt-clickable,.clickable-task{cursor:pointer}.gantt-clickable:hover{filter:brightness(.86);box-shadow:0 0 0 2px rgba(37,99,235,.25)}.gantt-draggable{cursor:grab;touch-action:none}.gantt-draggable.gantt-dragging{cursor:grabbing;z-index:12;opacity:.72}.task-segment.gantt-dragging{transform:translateX(var(--gantt-drag-offset))}.milestone-mark.gantt-dragging{transform:translateX(var(--gantt-drag-offset)) rotate(45deg)}.gantt-dragging-active{user-select:none}.gantt-order small{color:#94a3b8;font-weight:400;margin-left:6px;font-size:10px}

.gantt-period-head{justify-content:flex-start;margin:0 0 10px}.gantt-period-head h2{min-width:190px;text-align:center;text-transform:capitalize}
.outside-group-row{min-height:31px;background:#f8fafc}.outside-group-toggle{width:100%;border:0;text-align:left;cursor:pointer;color:var(--muted)}.outside-group-toggle:hover{background:#eef4fb}.outside-group-toggle span{display:inline-block;width:15px;color:var(--text)}.outside-group-toggle strong{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:5px;border-radius:10px;background:#e2e8f0;color:var(--text);font-size:10px}
.task-row>.gantt-label,.outside-group-row>.gantt-label{padding-left:34px}
.gantt-clickable,.clickable-task,.event[data-calendar-task],.event[data-calendar-order]{cursor:pointer}
.task-segment{--base:#64748b;background:var(--base)!important;overflow:hidden}
.task-segment.design{--base:#2563eb}.task-segment.supply{--base:#8b5cf6}.task-segment.production{--base:#f97316}.task-segment.quality{--base:#16a34a}.task-segment.finish{--base:#64748b}
.task-segment.status-notstarted{background:repeating-linear-gradient(135deg,var(--base) 0 8px,rgba(255,255,255,.32) 8px 12px)!important;filter:saturate(.65)}
.task-segment.status-progressing{background:linear-gradient(135deg,var(--base) 0 64%,#facc15 64% 78%,var(--base) 78%)!important}
.task-segment.status-risk{background:repeating-linear-gradient(135deg,var(--base) 0 7px,#dc2626 7px 11px)!important;box-shadow:inset 0 0 0 1px #991b1b}
.task-segment.status-overdue{background:repeating-linear-gradient(45deg,#991b1b 0 7px,var(--base) 7px 12px)!important;outline:2px solid #dc2626}
.task-segment.status-done{background:linear-gradient(135deg,var(--base) 0 48%,#22c55e 48% 62%,var(--base) 62%)!important;opacity:.72}
.milestone-mark.status-notstarted{background:linear-gradient(135deg,#dc2626 50%,#cbd5e1 50%)}.milestone-mark.status-progressing{background:linear-gradient(135deg,#dc2626 50%,#facc15 50%)}.milestone-mark.status-risk,.milestone-mark.status-overdue{background:linear-gradient(135deg,#dc2626 50%,#111827 50%);box-shadow:0 0 0 2px #dc2626}.milestone-mark.status-done{background:linear-gradient(135deg,#dc2626 50%,#22c55e 50%)}
.status-sample{width:22px;height:11px;border-radius:3px;display:inline-block;background:#64748b}.status-sample.status-notstarted{background:repeating-linear-gradient(135deg,#64748b 0 6px,#cbd5e1 6px 9px)}.status-sample.status-progressing{background:linear-gradient(135deg,#64748b 0 60%,#facc15 60% 78%,#64748b 78%)}.status-sample.status-risk{background:repeating-linear-gradient(135deg,#64748b 0 6px,#dc2626 6px 10px)}.status-sample.status-done{background:linear-gradient(135deg,#64748b 0 48%,#22c55e 48% 65%,#64748b 65%)}
.event{width:100%;border:0;text-align:left;cursor:pointer}.event.status-notstarted{border-left:4px solid #94a3b8}.event.status-progressing{border-left:4px solid #facc15}.event.status-risk{border-left:4px solid #dc2626}.event.status-overdue{border-left:4px solid #991b1b;background:#fee2e2}.event.status-done{border-left:4px solid #22c55e;opacity:.75}.more-event{cursor:default;width:auto}
.template-editor-head{display:flex;gap:10px;align-items:end}.template-editor-head label{display:flex;flex-direction:column;gap:6px;flex:1;font-size:12px;color:var(--muted)}.template-editor-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.template-edit-row{display:grid;gap:7px;align-items:center}.template-edit-row.option-row{grid-template-columns:180px 1fr 36px}.template-edit-row.stage-row{grid-template-columns:minmax(230px,2fr) 145px 75px minmax(150px,1fr) 55px 36px 36px 36px}.template-edit-row input,.template-edit-row select{min-width:0}.stage-name-input{font-weight:600}
.stage-days-field{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:10px}.stage-days-field input{width:100%}
@media(max-width:1050px){.template-edit-row.stage-row{grid-template-columns:1fr 1fr 80px 1fr;}.template-edit-row.stage-row .icon-btn{width:100%}}

.field-hint{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:1px}.confirm-card{width:min(500px,100%)}.confirm-card p{font-size:14px;line-height:1.55;color:var(--text);margin:4px 0 18px}.confirm-card .modal-actions{flex-wrap:wrap}

.global-user-filter{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:5px 7px 5px 10px;color:var(--muted);font-size:11px;white-space:nowrap}.global-user-filter select{border:0;padding:5px 26px 5px 6px;box-shadow:none;font-weight:700;color:var(--text);background-color:transparent}.global-user-filter.active{border-color:#8bb4ff;background:var(--accent-soft)}.global-user-filter.active span{color:#1d4ed8}.responsibility-note{font-size:11px;color:var(--muted);margin-left:5px}@media(max-width:760px){.top-actions{flex-wrap:wrap}.global-user-filter{width:100%;justify-content:space-between}}

.dot.approval{background:#0f9fa8}.task-segment.approval{background:#0f9fa8;--base:#0f9fa8}.stage-chip.approval{border-left-color:#0f9fa8}
.responsible-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.responsible-zone{border:1px solid var(--line);border-radius:12px;padding:14px}.responsible-zone h3{margin:0}.responsible-add{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.responsible-list{display:flex;flex-direction:column;gap:7px}.responsible-item{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:7px 9px}.responsible-empty{font-size:12px;color:var(--muted);padding:8px 0}
@media(max-width:760px){.responsible-grid{grid-template-columns:1fr}}

.project-paths-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;margin-top:12px}.project-paths-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.path-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.path-open-btn:disabled{opacity:.45;cursor:not-allowed}.project-paths-box{background:#fbfcfe}#dialogInputWrap{flex-direction:column;gap:6px;margin-top:12px;font-size:12px;color:var(--muted)}#dialogMessage{white-space:pre-line;line-height:1.5}@media(max-width:760px){.project-paths-grid{grid-template-columns:1fr}}
.folder-state{display:block;min-height:15px;margin-top:4px;color:var(--muted);font-size:10px}.folder-state.selected{color:var(--success);font-weight:600}.folder-pick-btn{white-space:nowrap}.path-input-row{grid-template-columns:minmax(180px,1fr) auto auto!important}
@media(max-width:760px){.path-input-row{grid-template-columns:1fr 1fr!important}.path-input-row input{grid-column:1/-1}}

.order-row-clickable{cursor:pointer}.order-row-clickable:hover td{background:#f4f8ff}.readonly-note{margin:3px 0 0;color:var(--muted);font-size:12px}.readonly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.readonly-field{border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc}.readonly-field small{display:block;color:var(--muted);margin-bottom:5px}.readonly-field strong,.readonly-field span{word-break:break-word}.readonly-section{margin-top:14px;border:1px solid var(--line);border-radius:11px;padding:13px}.readonly-section h3{margin:0 0 10px;font-size:15px}.readonly-path{display:grid;grid-template-columns:220px 1fr auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #edf0f4}.readonly-path:last-child{border-bottom:0}.readonly-config{display:flex;gap:7px;flex-wrap:wrap}.readonly-config span{padding:5px 8px;border-radius:999px;background:#eaf1ff;font-size:11px}.order-view-link{cursor:pointer}.order-view-link:hover{text-decoration:underline}.task-modal-actions{justify-content:space-between}.dashboard-order-click,.board-card{cursor:pointer}@media(max-width:760px){.readonly-grid{grid-template-columns:1fr}.readonly-path{grid-template-columns:1fr}}
.stage-schedule-box{background:#fbfcfe}.stage-schedule-table-wrap{overflow:auto;margin-top:11px}.stage-schedule-table{width:100%;min-width:780px;border-collapse:collapse;font-size:12px}.stage-schedule-table th,.stage-schedule-table td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.stage-schedule-table th{color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.stage-schedule-table tr:last-child td{border-bottom:0}.stage-schedule-stage{min-width:220px}.stage-schedule-stage strong{display:block}.stage-schedule-stage small{display:block;margin-top:3px;color:var(--muted)}.stage-schedule-link{display:flex;align-items:center;gap:6px;white-space:nowrap;color:var(--muted);font-size:11px}.stage-schedule-table input[type=date]{min-width:137px}.stage-schedule-table input[type=number]{width:76px}.stage-schedule-end{font-weight:700;white-space:nowrap}.stage-schedule-delete{color:#b91c1c}.stage-schedule-table input:disabled{background:#f1f5f9;color:#64748b;cursor:not-allowed}.stage-schedule-table .icon-btn:disabled{opacity:.35;cursor:not-allowed}.stage-schedule-empty{padding:17px 8px;color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:8px}@media(max-width:760px){.stage-schedule-box .config-title{align-items:flex-start;flex-direction:column}.stage-schedule-box .config-title .btn{width:100%}}

/* v3.9: календарні режими та виразніша сітка Ганта */
.calendar-toolbar{display:flex;align-items:flex-start;justify-content:center;gap:24px;position:relative;margin-bottom:12px}.calendar-toolbar .calendar-head{margin-bottom:0}.calendar-view-label{position:absolute;right:0;top:0;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.calendar-view-label select{min-width:130px}.calendar .dow span{display:block;margin-top:3px;color:var(--text);font-size:14px}.calendar-week .week-day{min-height:360px}.weekend-head{background:#fff1f2!important;color:#b91c1c!important}.calendar .day.calendar-weekend,.mini-day.calendar-weekend{background:#fff7f7}.calendar-six{display:block}.six-month-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.mini-month{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.mini-month h3{margin:0;padding:10px 12px;text-align:center;text-transform:capitalize;background:#f8fafc;border-bottom:1px solid var(--line);font-size:14px}.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr)}.mini-dow{padding:5px 2px;text-align:center;font-size:9px;font-weight:700;background:#f8fafc;color:var(--muted)}.mini-day{min-height:45px;padding:3px;border-top:1px solid #e5e7eb;border-right:1px solid #e5e7eb;font-size:10px}.mini-day.other{background:#fafafa;color:#c4c4c8}.mini-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.order-markers{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.order-marker{width:8px;height:8px;border:0;border-radius:50%;padding:0;background:var(--accent);cursor:pointer}.order-marker.status-risk,.order-marker.status-overdue{background:#dc2626}.order-marker.status-done{background:#16a34a}.order-marker:hover{transform:scale(1.35)}
.gantt-shell{border-color:#cbd5e1}.gantt-row{border-bottom:1px solid #d9e0e8}.gantt-row.header{box-shadow:0 2px 0 #94a3b8}.gantt-label{border-right:2px solid #94a3b8}.day-cell{border-right:1px solid #d7dee8}.day-cell.week-start{border-left:2px solid #94a3b8}.day-cell.weekend{background:#fff1f2!important}.gantt-row.header .day-cell.weekend{color:#b91c1c;font-weight:800}.gantt-row.header .day-cell small{display:block;font-size:8px;line-height:9px}.day-cell.today-column{box-shadow:inset 2px 0 0 #2563eb,inset -2px 0 0 #2563eb;background:#eff6ff!important}.gantt-order .day-cell{border-bottom:1px solid #cbd5e1}.task-row:nth-child(even){background:#fbfcfe}.task-row:hover{background:#eef6ff}
@media(max-width:800px){.calendar-toolbar{justify-content:flex-start;flex-wrap:wrap}.calendar-view-label{position:static;width:100%;justify-content:flex-start}.six-month-grid{grid-template-columns:1fr}.calendar-week .week-day{min-height:240px}}
.sales-manager-zone{grid-column:1/-1;border-color:#bfd2f6;background:#f7faff}

/* v3.11 */
.gantt-table{width:100%;min-width:0}
.gantt-row{width:100%}
.calendar-view-controls{position:absolute;right:0;top:0;display:flex;gap:10px;align-items:flex-start}
.calendar-view-controls .calendar-view-label{position:static}
.six-month-filter-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.six-month-filter-label select{min-width:210px}
.six-month-legend{display:flex;justify-content:flex-end;gap:16px;margin:0 0 8px;font-size:11px;color:var(--muted)}
.six-month-legend span{display:flex;align-items:center;gap:6px}
.mini-legend-marker{display:inline-block;width:9px;height:9px;background:var(--accent)}
.mini-legend-marker.order{border-radius:50%}
.mini-legend-marker.task{border-radius:2px;transform:rotate(45deg)}
.order-marker.task-marker{border-radius:2px;transform:rotate(45deg)}
.order-marker.task-marker:hover{transform:rotate(45deg) scale(1.35)}
.order-marker.order-marker-due{border-radius:50%;box-shadow:0 0 0 1px rgba(15,23,42,.18)}
.mini-more{font-size:8px;line-height:8px;color:var(--muted)}
.folder-state{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.folder-state.selected{color:#15803d}
@media(max-width:900px){.calendar-view-controls{position:static;width:100%;flex-wrap:wrap}.calendar-toolbar{justify-content:flex-start;flex-wrap:wrap}.six-month-filter-label select{min-width:170px}}

/* v3.12: виразний маркер готового виробу та розширені картки відповідальних */
.order-marker.finished-product-marker{width:13px;height:13px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px #0f172a,0 1px 3px rgba(15,23,42,.35);position:relative;transform:none}
.order-marker.finished-product-marker::after{content:"✓";display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:8px;line-height:1;color:#fff;font-weight:900}
.order-marker.finished-product-marker:hover{transform:scale(1.25)}
.mini-legend-marker.order{width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:9px;font-weight:900;box-shadow:0 0 0 2px #0f172a}
.responsible-grid{grid-template-columns:1fr}
.responsible-zone-wide{overflow-x:auto}
.responsible-add-wide,.responsible-table-head,.responsible-person-row{display:grid;grid-template-columns:minmax(130px,.85fr) minmax(180px,1.2fr) minmax(150px,.9fr) minmax(190px,1.2fr) 42px;gap:8px;align-items:center;min-width:780px}
.responsible-add-wide{margin:12px 0}.responsible-add-wide input{min-width:0}
.responsible-table-head{padding:0 9px 6px;color:var(--muted);font-size:11px;font-weight:700}
.responsible-person-row{padding:8px 9px}.responsible-person-row .icon-btn{justify-self:end}
.person-position,.person-phone,.person-email{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.person-name{overflow-wrap:anywhere}
@media(max-width:760px){.responsible-zone-wide{padding:10px}.responsible-add-wide,.responsible-table-head,.responsible-person-row{min-width:720px}}


/* v3.13: компактний довідник працівників */
.responsible-grid{grid-template-columns:repeat(2,minmax(320px,1fr));align-items:start}
.responsible-zone{padding:12px;min-width:0;overflow:visible}
.responsible-zone .panel-head{align-items:flex-start}
.responsible-add-panel{margin:8px 0 10px;border:1px dashed var(--line);border-radius:8px;background:#fafbfd}
.responsible-add-panel summary{cursor:pointer;padding:7px 9px;font-size:12px;font-weight:700;color:var(--accent);user-select:none}
.responsible-add-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:0 8px 8px;margin:0}
.responsible-add-compact .btn{grid-column:1/-1;justify-self:end}
.compact-person-list{display:grid;grid-template-columns:1fr;gap:6px}
.responsible-person-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "contacts actions";gap:3px 8px;align-items:center;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}
.person-main{grid-area:main;display:flex;align-items:baseline;gap:7px;min-width:0}.person-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-main span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-contacts{grid-area:contacts;display:flex;gap:12px;min-width:0;font-size:11px;color:var(--muted)}.person-contacts span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-actions{grid-area:actions;display:flex;gap:4px}.edit-person-btn{color:#2563eb}
.person-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.person-edit-form label{display:flex;flex-direction:column;gap:5px}.person-edit-form input{width:100%}
@media(max-width:900px){.responsible-grid{grid-template-columns:1fr}}
@media(max-width:560px){.responsible-add-compact,.person-edit-form{grid-template-columns:1fr}.responsible-person-card{grid-template-columns:minmax(0,1fr) auto}.person-contacts{flex-direction:column;gap:2px}}

/* v3.14: фон і компактна ширина модального вікна редагування працівника */
.compact-modal{width:min(560px,100%)}

/* v3.16: director approval control points */
.dot.director{background:#7c3aed;border:2px solid #4c1d95}
.task-segment.director{background:#7c3aed;--base:#7c3aed}
.stage-chip.director{border-left-color:#7c3aed;background:#f5f3ff}


/* v3.17: sales responsibility zone and prominent director control points */
.dot.sales{background:#2563eb}
.task-segment.sales{background:#2563eb;--base:#2563eb}
.stage-chip.sales{border-left-color:#2563eb;background:#eff6ff}
.mini-legend-marker.control{width:15px;height:15px;border-radius:4px;transform:none;background:#7c3aed;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:900;box-shadow:0 0 0 2px #4c1d95,0 1px 4px rgba(76,29,149,.35)}
.order-marker.task-marker.control-marker{width:14px;height:14px;border-radius:4px;transform:none;background:#7c3aed!important;border:2px solid #fff;box-shadow:0 0 0 2px #4c1d95,0 1px 4px rgba(76,29,149,.5);position:relative}
.order-marker.task-marker.control-marker::after{content:"D";display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:8px;line-height:1;color:#fff;font-weight:900}
.order-marker.task-marker.control-marker:hover{transform:scale(1.25)}


/* v4.0: workflow control, audit, workload and checklists */
.dashboard-extra{margin-top:16px}.workload-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(100px,1.5fr) 100px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.workload-row:last-child{border-bottom:0}.workload-row div:first-child{display:flex;flex-direction:column}.workload-row small{color:var(--muted);font-size:11px}.workload-row b{font-size:11px;text-align:right}.workload-bar{height:9px;background:#e8edf4;border-radius:999px;overflow:hidden}.workload-bar i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#7c3aed);border-radius:inherit}.approval-row{width:100%;display:grid;grid-template-columns:28px 1fr;gap:8px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:9px 4px;cursor:pointer}.approval-row:hover{background:#f5f3ff}.approval-row>span{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:#7c3aed;color:#fff}.approval-row div{display:flex;flex-direction:column}.approval-row small{color:var(--muted);margin-top:2px}.task-control-box,.checklist-box{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.task-control-box{display:grid;gap:10px}.checklist-row{display:grid;grid-template-columns:22px minmax(0,1fr) 90px 34px;gap:7px;align-items:center;margin-top:7px}.checklist-row input[data-check-text]{width:100%}.checklist-row label{display:flex;flex-direction:row;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.audit-log{display:grid;gap:7px}.audit-item{display:grid;grid-template-columns:145px 28px 1fr;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.audit-item time{font-size:11px;color:var(--muted)}.audit-item>div{display:flex;flex-direction:column}.audit-item small{color:var(--muted);margin-top:3px}.audit-icon{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;background:#e2e8f0}.audit-item.approval{border-left:4px solid #7c3aed}.audit-item.approval .audit-icon{background:#7c3aed;color:#fff}.audit-item.order{border-left:4px solid #2563eb}.audit-item.task{border-left:4px solid #16a34a}.badge.blocked{background:#ede9fe;color:#5b21b6}@media(max-width:700px){.workload-row{grid-template-columns:1fr}.workload-row b{text-align:left}.audit-item{grid-template-columns:1fr 28px minmax(0,1fr)}.audit-item time{grid-column:1/-1}.checklist-row{grid-template-columns:22px minmax(0,1fr) 70px 34px}}
.checklist-template-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:8px;margin:10px 0 4px}.btn.success{background:#15803d;color:#fff;border-color:#15803d}.btn.success:hover{background:#166534}.complete-task-btn.completed{background:#dcfce7;color:#166534;border-color:#86efac}.complete-task-btn.completed:hover{background:#bbf7d0}#taskForm .task-control-box>label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}#taskForm .checklist-box .preview-head h3{font-size:12px}#taskForm .task-control-box,#taskForm .checklist-box{font-size:12px}#taskForm .btn{padding:7px 10px;border-radius:7px;font-size:12px}#taskForm .checklist-box select,#taskForm .checklist-box input{font-size:12px}@media(max-width:620px){.checklist-template-row{grid-template-columns:1fr}.task-modal-actions{justify-content:flex-start}}
.telegram-bind-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.telegram-bind-row .btn{white-space:nowrap}@media(max-width:760px){.telegram-bind-row{grid-template-columns:1fr}.telegram-bind-row .btn{width:100%}}
 .access-session{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);background:var(--panel);white-space:nowrap}
.access-session span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.access-session strong{font-size:12px}.access-session .btn{padding:6px 9px}
.admin-lock{display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-lock h2{margin:4px 0}.admin-lock p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;color:var(--accent);text-transform:uppercase;font-weight:700;letter-spacing:.08em}
.access-settings-panel{margin-bottom:16px}.admin-password-grid{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:16px}.admin-password-grid label,.zone-password-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px}.admin-password-grid input{width:100%}.zone-password-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px}.zone-password-grid input{width:100%}
#taskAccessNote{margin:3px 0 0;color:var(--warning);min-height:1.2em}
button:disabled{opacity:.48;cursor:not-allowed}
@media (max-width:900px){.access-session{width:100%;justify-content:space-between}.admin-password-grid{grid-template-columns:1fr}.zone-password-grid{grid-template-columns:1fr}.admin-lock{align-items:flex-start;flex-direction:column}}
.access-settings-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.password-visibility{display:flex!important;align-items:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}.password-visibility input{width:auto}
.cloud-retention-panel{margin:0 0 16px}.retention-toggle{display:flex;align-items:center;gap:8px;color:var(--text);font-size:12px;white-space:nowrap}.retention-toggle input{width:auto;accent-color:var(--accent)}
.workload-settings-panel{margin:0 0 16px}.workload-settings-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px}.workload-settings-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px}.workload-settings-grid input{width:100%}.workload-department{border:1px solid var(--line);border-radius:9px;background:#fff}.workload-department+ .workload-department{margin-top:8px}.workload-department-summary{display:grid;grid-template-columns:minmax(150px,1fr) minmax(90px,1.2fr) 110px;gap:12px;align-items:center;padding:10px;cursor:pointer;list-style:none}.workload-department-summary::-webkit-details-marker{display:none}.workload-department-summary:before{content:"+";grid-column:1;grid-row:1;align-self:start;width:18px;height:18px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-weight:700}.workload-department[open] .workload-department-summary:before{content:"−"}.workload-department-summary>div:first-of-type{padding-left:26px;grid-column:1;grid-row:1}.workload-department-summary>div:first-of-type{display:flex;flex-direction:column}.workload-department-summary small,.workload-person-row small{color:var(--muted);font-size:11px}.workload-department-summary>b,.workload-person-row>b{font-size:11px;text-align:right}.workload-people{padding:4px 10px 10px 36px;border-top:1px solid var(--line)}.workload-person-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(90px,1.2fr) 110px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.workload-person-row:last-child{border-bottom:0}.workload-person-row>div:first-child{display:flex;flex-direction:column}@media(max-width:700px){.workload-settings-grid{grid-template-columns:1fr}.workload-department-summary,.workload-person-row{grid-template-columns:minmax(0,1fr) 90px}.workload-department-summary:before{grid-column:1;grid-row:1}.workload-department-summary>div:first-of-type{grid-column:1;grid-row:1}.workload-department-summary>.workload-bar,.workload-person-row>.workload-bar{grid-column:1}.workload-department-summary>b,.workload-person-row>b{text-align:left;grid-column:2;grid-row:2}.workload-people{padding-left:20px}}
.remember-login{display:flex!important;flex-direction:row!important;align-items:center;gap:7px!important;color:var(--muted)!important}.remember-login input{width:auto}
.cloud-status{padding:9px 12px;border:1px solid #f59e0b;border-radius:9px;background:#fff7ed;color:#9a3412;font-size:12px;font-weight:800;white-space:nowrap}.cloud-status:hover{border-color:#ea580c;background:#ffedd5}.cloud-status[data-state="connected"]{color:#166534;border-color:#bbf7d0;background:#f0fdf4}.cloud-status[data-state="error"]{color:#991b1b;border-color:#fecaca;background:#fef2f2}.cloud-warning{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-5px 0 16px;padding:11px 14px;border:1px solid #fdba74;border-left:5px solid #ea580c;border-radius:10px;background:#fff7ed;color:#7c2d12}.cloud-warning[hidden]{display:none}.cloud-warning div{display:flex;flex-direction:column;gap:3px}.cloud-warning strong{font-size:13px}.cloud-warning span{font-size:12px;color:#9a3412}.cloud-warning .btn{flex-shrink:0}
.documentation-box{margin-top:14px;border:1px solid var(--line);border-radius:11px;padding:13px;background:#fbfcfe}.document-editor-list{display:grid;gap:7px;margin-top:11px}.document-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(145px,.85fr) minmax(240px,1.4fr) 36px;gap:7px;align-items:center}.document-row input,.document-row select{min-width:0}.document-row .icon-btn{color:#b91c1c}.document-empty{padding:9px 0;color:var(--muted);font-size:12px}.available-documents{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.available-documents:empty{display:none}.available-documents h4{margin:0 0 7px;font-size:12px}.document-link-list{display:grid;gap:6px}.document-link{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-decoration:none}.document-link:hover{border-color:#8bb4ff;background:#f7faff}.document-link strong{font-size:12px}.document-link small{display:block;margin-top:3px;color:var(--muted);overflow-wrap:anywhere}.document-link span{font-size:11px;color:var(--accent);white-space:nowrap}.document-source{display:block;margin-top:3px;color:var(--muted);font-size:10px}.task-documentation-box{background:#fff}.document-link.locked{background:#fff7ed;border-color:#fed7aa}.document-lock-note{color:#9a3412!important}@media(max-width:760px){.cloud-warning{align-items:flex-start;flex-direction:column}.cloud-warning .btn{width:100%}.document-row{grid-template-columns:1fr 36px}.document-row select,.document-row input[data-document-name]{grid-column:1/-1}.document-link{flex-direction:column}.document-link span{white-space:normal}}
.db-usage-panel{margin:0 0 16px}.db-usage-summary{padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.db-usage-primary{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.db-usage-primary strong{font-size:25px}.db-usage-primary span,.db-usage-summary small{color:var(--muted);font-size:11px}.db-usage-meter{height:10px;margin:10px 0 7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.db-usage-meter i{display:block;width:0;height:100%;border-radius:inherit;background:#2563eb;transition:width .2s ease}.db-usage-meter i[data-state="attention"]{background:#d97706}.db-usage-meter i[data-state="warning"]{background:#dc2626}.db-usage-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin-top:12px}.db-usage-grid div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}.db-usage-grid span{color:var(--muted);font-size:11px}.db-usage-grid strong{font-size:14px}@media(max-width:700px){.db-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.db-usage-primary{align-items:flex-start;flex-direction:column;gap:2px}}
.gantt-clickable.gantt-draggable{cursor:grab;touch-action:none}.gantt-clickable.gantt-draggable.gantt-dragging{cursor:grabbing}
.task-review-box{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-top:14px;padding:12px;border:1px solid #c4b5fd;border-radius:10px;background:#f5f3ff}.task-review-box[hidden]{display:none}.task-review-box h3{margin:0 0 4px;font-size:13px}.task-review-box p{margin:0}.task-review-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.task-review-actions .btn{white-space:nowrap}@media(max-width:700px){.task-review-box{flex-direction:column}.task-review-actions{justify-content:flex-start}}
