.shop-gantt-dialog {
    box-sizing: border-box; position: fixed; padding: 0; border: 1px solid #aebccb;
    border-radius: 7px; background: #fff; color: #243746; width: min(1440px, 94vw);
    height: min(850px, 90vh); max-width: calc(100vw - 16px); max-height: calc(100vh - 16px);
    min-width: min(550px, 94vw); min-height: min(420px, 90vh); overflow: hidden; resize: both;
    box-shadow: 0 12px 48px #0004; font: 14px Arial, sans-serif;
}
.shop-gantt-dialog[open] { display: flex; flex-direction: column; }
.shop-gantt-dialog::backdrop { background: #16283966; }
.shop-gantt-dialog.is-maximized { width: calc(100vw - 16px); height: calc(100vh - 16px); resize: none; }
.shop-gantt-header { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #f2f6fa; border-bottom: 1px solid #d8e1e9; cursor: move; touch-action: none; }
.shop-gantt-header h2 { flex: 1; margin: 0; font-size: 18px; }
.shop-gantt-dialog button, .shop-gantt-dialog input, .shop-gantt-dialog select { font: inherit; padding: 5px 8px; border: 1px solid #b9c7d4; border-radius: 3px; background: white; color: #243746; }
.shop-gantt-dialog button { cursor: pointer; }
.shop-gantt-dialog button:hover { background: #e7f1fb; }
.shop-gantt-dialog button:focus-visible { outline: 2px solid #256fa2; outline-offset: 2px; }
.shop-gantt-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; padding: 10px 14px; }
.shop-gantt-toolbar label { display: flex; flex-direction: column; gap: 3px; }
.shop-gantt-toolbar > button { margin: 0; }
.shop-gantt-summary, .shop-gantt-message { margin: 0; padding: 5px 14px; }
.shop-gantt-message { color: #785313; min-height: 18px; }
.shop-gantt-message.is-error { color: #a22b27; }
.shop-gantt-chart { flex: 1; min-height: 100px; border-top: 1px solid #d8e1e9; }
.shop-gantt-legend { display: flex; flex-wrap: wrap; gap: 16px; padding: 7px 14px; font-size: 12px; color: #4f6375; }
.shop-gantt-legend i { display: inline-block; width: 12px; height: 9px; margin-right: 5px; background: #cfe3f3; }
.shop-gantt-legend .done { background: #347bac; }
.shop-gantt-legend .late { background: #ba4038; }
.shop-gantt-stages { padding: 10px 14px; border-top: 1px solid #d8e1e9; max-height: 190px; overflow: auto; }
.shop-gantt-stages h3 { margin: 0 0 7px; font-size: 14px; }
.shop-gantt-stage-list { display: flex; flex-wrap: wrap; gap: 14px; }
.shop-gantt-stage { flex: 1; min-width: 125px; }
.shop-gantt-stage progress { width: 100%; height: 9px; accent-color: #347bac; }
.shop-gantt-stage p { margin: 4px 0; font-size: 12px; }
.shop-gantt-task-warning { color: #a22b27; }
.shop-gantt-dialog .gantt_task_line { background: #cfe3f3; border-color: #a8cce5; }
.shop-gantt-dialog .gantt_task_progress { background: #347bac; }
.shop-gantt-dialog .sg-job { background: #b0bac3; border-color: #96a1ab; }
.shop-gantt-dialog .sg-overdue { border: 2px solid #ba4038; }
.shop-gantt-dialog .sg-unknown { background: repeating-linear-gradient(135deg, #e7edf2, #e7edf2 5px, #d4dde5 5px, #d4dde5 7px); }
.shop-gantt-dialog .sg-link-warning .gantt_line_wrapper div { background-color: #ba4038; }
.shop-gantt-dialog .sg-link-warning .gantt_link_arrow { border-left-color: #ba4038; border-right-color: #ba4038; }
.shop-gantt-today { position: absolute; top: 0; bottom: 0; border-left: 1px dashed #c98c2e; z-index: 3; pointer-events: none; }
.shop-gantt-today span { position: absolute; top: 0; left: 3px; background: #fff; color: #96651c; font-size: 11px; }
.shop-gantt-dialog .gantt_task_cell.sg-weekend { background: #f2f5f8; }
.shop-gantt-dialog .gantt_cell, .shop-gantt-dialog .gantt_tree_content { font-size: 12px; }
.shop-gantt-dialog .sg-group-name { white-space: nowrap; }
.shop-gantt-open { min-height: .25in; }
.shop-gantt-dialog .shop-gantt-estimate-link { border: 0; padding: 0; color: #176593; background: transparent; text-decoration: underline; }
.shop-gantt-estimates { flex: 0 1 auto; margin: 8px 14px; padding: 12px 14px; border: 1px solid #d4ad60; border-left: 4px solid #b97b12; border-radius: 6px; background: #fffaf0; max-height: 38%; overflow: auto; }
.shop-gantt-estimates[hidden] { display: none; }
.shop-gantt-estimate-header, .shop-gantt-estimate-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.shop-gantt-estimate-header { position: sticky; top: -12px; background: #fffaf0; padding: 8px 0; z-index: 1; }
.shop-gantt-estimate-header > div { white-space: nowrap; }
.shop-gantt-estimates h3 { margin: 0; font-size: 15px; color: #694300; }
.shop-gantt-estimates p { margin: 8px 0; }
.shop-gantt-estimate-table { overflow-x: auto; }
.shop-gantt-estimates table { width: 100%; border: 1px solid #e4d2ab; border-collapse: collapse; text-align: left; background: white; }
.shop-gantt-estimates th { background: #f8edcf; font-weight: 600; color: #694300; }
.shop-gantt-estimates th, .shop-gantt-estimates td { padding: 7px 9px; border-bottom: 1px solid #e4d2ab; vertical-align: top; }
.shop-gantt-estimates small { display: block; margin-top: 3px; color: #4f6375; font-size: 12px; }
.shop-gantt-estimates a { color: #176593; }
.shop-gantt-estimate-footer { margin-top: 10px; }
.shop-gantt-estimate-header { flex-wrap: wrap; }
.shop-gantt-estimate-header > div { display: flex; flex-wrap: wrap; gap: 6px; white-space: normal; }
.shop-gantt-estimate-header p { flex-basis: 100%; margin: 0; }
.shop-gantt-estimate-header .shop-gantt-estimate-explanation { font-size: 12px; }
.shop-gantt-estimate-selection { font-weight: 600; }
.shop-gantt-estimate-explanation { color: #694300; }
.shop-gantt-estimate-check { width: 42px; text-align: center; }
.shop-gantt-estimate-select-actions { display: block; margin-top: 4px; white-space: nowrap; font-weight: normal; }
.shop-gantt-estimate-select-actions .shop-gantt-estimate-link { min-width: 0; min-height: 0; margin: 0; }
.shop-gantt-estimate-check input { width: 16px; height: 16px; cursor: pointer; }
.shop-gantt-dialog .shop-gantt-estimate-link:disabled { color: #6f7479; cursor: default; text-decoration: none; }
