:root{--ink: #10233b;--ink-2: #334155;--muted: #5b6b7f;--line: #dbe3ea;--line-input: #7c8b9d;--surface: #ffffff;--surface-2: #f8fafc;--bg: #eef2f6;--navy: #0e2a47;--navy-2: #14385c;--accent: #f97316;--accent-strong: #c2410c;--accent-dark: #9a3412;--accent-soft: #fff1e8;--teal: #0f766e;--success: #0f766e;--success-soft: #e6f4f2;--danger: #b91c1c;--danger-soft: #fff1f1;--warn: #b45309;--focus: #0f766e;--shell-max: 1600px;--gutter: 32px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow: 0 1px 2px rgba(15, 35, 59, .04), 0 1px 3px rgba(15, 35, 59, .06);--shadow-overlay: 0 24px 64px rgba(8, 22, 38, .35);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.45;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}h1,h2,h3,h4{margin:0;letter-spacing:-.01em}p{margin:0}button,input,select{font:inherit}a{color:inherit}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--navy);color:#e6eef7;border-bottom:3px solid var(--accent)}.topbar-inner{max-width:var(--shell-max);margin:0 auto;padding:0 var(--gutter);height:60px;display:flex;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:10px;min-width:200px;color:#e6eef7}.brand-logo{display:block;width:auto;height:44px;max-width:72px;object-fit:contain;border-radius:3px}.brand-name{color:#fff;font-weight:700;font-size:16px;line-height:1.15}.brand-sub{font-size:11px;color:#9db2c9;text-transform:uppercase;letter-spacing:.1em}.nav{display:flex;gap:2px;flex:1}.nav button{background:transparent;color:#b9c9da;border:0;padding:8px 12px;border-radius:8px;cursor:pointer;font-weight:500;font-size:13.5px;white-space:nowrap}.nav button:hover{background:#ffffff12;color:#fff}.nav button.active{background:#ffffff1a;color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}.topbar-project-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}.topbar-project-actions .btn{padding:6px 8px;font-size:11.5px}.topbar-project-status{max-width:115px;overflow:hidden;color:#b9c9da;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.topbar-project-status.is-dirty{color:#fdba74;font-weight:700}.user-switcher{display:flex;align-items:center;gap:10px}.user-switcher select{background:var(--navy-2);color:#e6eef7;border:1px solid #2b5378;border-radius:8px;padding:7px 10px;font-size:13px}.role-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:4px 8px;border-radius:999px;white-space:nowrap}.role-ADMIN{background:#fde3c4;color:#7c2d12}.role-COLLABORATOR,.role-EDITOR{background:#d7f0ee;color:#0f5e57}.role-READER{background:#e2e8f0;color:#475569}.app-main{flex:1;width:100%;max-width:var(--shell-max);margin:0 auto;padding:32px var(--gutter)}.app-main.planning-main{max-width:var(--shell-max);padding-inline:var(--gutter)}.app-footer{padding:14px 24px 22px;text-align:center;color:var(--muted);font-size:11.5px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:700;letter-spacing:-.015em}.page-subtitle{color:var(--muted);margin-top:4px;font-size:13.5px}.breadcrumb{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--teal);font-weight:600;cursor:pointer;padding:0;margin-bottom:10px;font-size:13px}.breadcrumb:hover{text-decoration:underline}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{min-height:36px;border-radius:8px;border:1px solid transparent;padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .12s ease,border-color .12s ease,color .12s ease;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--accent-strong);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:#b8c6d4;background:#f8fafc}.btn-ghost{background:transparent;color:var(--teal)}.btn-ghost:hover:not(:disabled){background:#e6f4f2}.btn-danger{background:#fff1f1;color:var(--danger);border-color:#f3c5c5}.btn-danger:hover:not(:disabled){background:#ffe0e0}.btn-danger-solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger-solid:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.btn:focus-visible,.icon-btn:focus-visible,.icon-action:focus-visible,.settings-nav-item:focus-visible,.settings-role-switch button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.btn-sm{padding:6px 10px;font-size:12.5px;min-height:32px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:24px}.card-title{font-size:15px;font-weight:700;margin-bottom:3px}.card-hint{color:var(--muted);font-size:12.5px;margin-bottom:14px;line-height:1.45}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.site-card{padding:20px;display:flex;flex-direction:column;gap:14px;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.site-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0f233b1a}.site-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.site-card-name{font-size:16px;font-weight:700;line-height:1.25}.site-card-id{color:var(--muted);font-size:12px;font-family:SFMono-Regular,ui-monospace,monospace;margin-top:3px}.site-card-period{font-size:13px;color:var(--muted)}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:5px 10px;font-size:12px;color:#334155;white-space:nowrap}.chip strong{color:var(--ink)}.chip-ok{background:#e8f5f2;border-color:#c6e8e2;color:#0f5e57}.chip-warn{background:#fff4e6;border-color:#f9d9b5;color:#9a3412}.chip-danger{background:#fef2f2;border-color:#f5c9c9;color:#991b1b}.stat-strip{display:flex;gap:10px;flex-wrap:wrap}.stat-strip-compact{gap:8px;flex-wrap:nowrap;margin-top:10px}.stat-strip-compact .stat{display:flex;align-items:center;gap:8px;min-width:0;padding:5px 9px;border-radius:8px}.stat-strip-compact .stat-value{font-size:14px;white-space:nowrap}.stat-strip-compact .stat-label{margin-top:0;white-space:nowrap}.stat{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;min-width:118px}.stat-value{font-size:20px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums}.stat-label{font-size:11.5px;font-weight:600;color:var(--muted);margin-top:3px;letter-spacing:0;text-transform:none}.banner{border-radius:10px;padding:13px 15px;font-size:13.5px;border:1px solid;display:flex;gap:10px;align-items:flex-start;margin-bottom:16px}.banner strong{display:block;margin-bottom:2px}.banner-error{background:#fef2f2;border-color:#f3c5c5;color:#7f1d1d}.banner-warn{background:#fffbeb;border-color:#fde68a;color:#78350f}.banner-info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.banner-success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.toast-stack{position:fixed;right:24px;bottom:24px;z-index:50;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;border-radius:10px;padding:12px 14px;font-size:13.5px;line-height:1.4;color:#fff;box-shadow:0 16px 40px #0f233b47;background:var(--navy)}.toast.is-error{background:#991b1b}.toast.is-success{background:#0f5e57}.toast-message{flex:1;min-width:0}.toast-dismiss{flex:0 0 auto;display:inline-grid;place-items:center;width:22px;height:22px;margin:-2px -4px 0 0;border:0;border-radius:5px;background:transparent;color:inherit;cursor:pointer;opacity:.8}.toast-dismiss:hover{background:#ffffff24;opacity:1}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.task-form-header-grid{display:grid;grid-template-columns:minmax(90px,.6fr) minmax(150px,1.4fr) auto;align-items:end;gap:14px;margin-bottom:14px}#task-site-name{background:#f1f5f9}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:600;color:var(--ink);text-transform:none;letter-spacing:0}.field input,.field select,.field textarea{min-height:38px;border:1px solid var(--line-input);border-radius:8px;padding:8px 11px;background:#fff;color:var(--ink);font-size:13.5px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e24}.field-error{color:var(--danger);font-size:12.5px;line-height:1.4}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px #b91c1c1a}.task-color-palette{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:38px}.task-color-swatch{width:27px;height:27px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #cbd5e1;cursor:pointer}.task-color-swatch.selected{box-shadow:0 0 0 2px var(--teal)}.task-color-swatch:focus-visible{outline:3px solid rgba(15,118,110,.35);outline-offset:3px}.field-hint{font-size:12px;color:var(--muted)}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.predecessor-list{display:flex;flex-wrap:wrap;gap:8px}.predecessor-option{display:flex;align-items:center;flex-wrap:wrap;gap:6px;border:1px solid #cbd5e1;border-radius:10px;padding:6px 11px;font-size:12.5px;cursor:pointer;background:#fff}.predecessor-choice{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.predecessor-option select{max-width:150px;border:1px solid #cbd5e1;border-radius:7px;padding:5px 7px;background:#fff;color:var(--ink);font-size:12px}.predecessor-option input{accent-color:var(--teal)}.predecessor-option.checked{border-color:var(--teal);background:#e6f4f2;color:#0f5e57;font-weight:600}.table-wrap{overflow:auto}.sites-list-table-wrap{max-height:65vh}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{text-align:left;font-size:11.5px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--muted);padding:11px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.data-table .numeric,.data-table th.numeric{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.sites-table th{position:sticky;top:0;z-index:1}.data-table td{padding:10px 12px;border-bottom:1px solid #edf1f5;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfe}.table-inline-edit{display:inline-block;max-width:100%;padding:3px 5px;color:inherit;text-align:inherit;border:1px solid transparent;border-radius:5px;background:transparent;cursor:text;font:inherit}.data-table .numeric .table-inline-edit,.data-table .numeric .table-inline-input{text-align:right}.table-inline-edit:hover,.table-inline-edit:focus-visible{border-color:var(--line);background:#fff;outline:none}.table-inline-input{width:100%;min-width:100px;padding:5px 7px;border:1px solid var(--teal);border-radius:5px;font:inherit}.table-inline-duration{width:84px;min-width:84px}.site-calendar-stat,.site-divers-stat{flex:0 0 150px;min-width:150px;width:150px}.site-divers-stat{flex-basis:188px;min-width:188px;width:188px}.site-divers-stat>.stat-label{color:var(--ink);font-weight:700}.site-divers-stat-value{max-height:72px;overflow:auto;color:var(--muted);font-size:13px;font-weight:500;line-height:1.3;white-space:pre-wrap;overflow-wrap:anywhere}.site-divers-clickable{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:text;font-family:inherit}.site-divers-clickable:hover{color:var(--muted)}.site-divers-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.site-divers-input{display:block;width:100%;min-height:72px;padding:10px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.sites-table{min-width:800px}.sites-filter-input{width:min(280px,45vw);min-width:200px;min-height:36px;padding:8px 10px;border:1px solid var(--line-input);border-radius:8px;background:#fff;color:var(--ink);font-size:13.5px}.sites-filter-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f}.sites-filter-empty{padding:22px 12px!important;color:var(--muted);text-align:center}.sites-table .sites-table-row{cursor:pointer}.sites-table .sites-table-row:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.sites-table .numeric{text-align:right;white-space:nowrap}.sites-table .date-cell{white-space:nowrap}.site-table-name{font-weight:700}.sites-divers-cell{max-width:360px;white-space:pre-wrap;overflow-wrap:anywhere}.sites-divers-edit{display:block;width:100%;min-height:28px;padding:3px 4px;border:1px solid transparent;background:transparent;color:inherit;font:inherit;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}.sites-divers-edit:hover,.sites-divers-edit:focus-visible{border-color:var(--line);border-radius:4px;outline:none}.sites-divers-input{display:block;width:100%;min-height:48px;padding:5px;border:1px solid var(--line);border-radius:4px;font:inherit;resize:vertical}.task-name{font-weight:600}.mono{font-family:SFMono-Regular,ui-monospace,monospace;font-size:12px;color:var(--muted)}.task-actions{display:flex;gap:6px;justify-content:flex-end}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0816268c;display:grid;place-items:center;padding:24px;z-index:40}.modal,.modal-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:620px;max-height:90vh;overflow:auto;box-shadow:var(--shadow-overlay)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line)}.modal-head h2{font-size:16.5px;line-height:1.3}.modal-body{padding:24px}.form-help{color:var(--muted);font-size:12.5px;line-height:1.45}.form-error{color:var(--danger);font-size:12.5px;line-height:1.45}.icon-btn{display:inline-grid;place-items:center;border:0;background:#f1f5f9;color:var(--muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:16px;line-height:1}.icon-btn:hover{background:#e2e8f0;color:var(--ink)}.gantt-card{padding:0;overflow:hidden}.gantt-head{padding:18px 20px 14px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;border-bottom:1px solid var(--line)}.zoom-controls{display:inline-flex;align-items:center;gap:8px;padding:3px 7px;border:1px solid var(--line);border-radius:8px;background:#fff}.zoom-level{min-width:68px;text-align:center;color:var(--ink);font-size:12px;font-weight:700}.gantt-scroll{overflow:auto;max-height:72vh;background:#fff}.gantt-scroll.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.gantt-inner{display:flex;min-width:max-content}.gantt-labels{position:sticky;left:0;z-index:3;background:#fff;border-right:1px solid var(--line);flex:0 0 var(--label-width, 230px);width:var(--label-width, 230px)}.gantt-labels-header{position:sticky;top:0;z-index:4;display:flex;align-items:flex-end;padding:0 12px 8px;font-size:11px;text-transform:none;letter-spacing:.01em;color:var(--muted);border-bottom:1px solid var(--line);background:var(--surface-2);font-weight:600}.gantt-task-columns-header{display:grid;grid-template-columns:minmax(0,1fr) 76px 76px 42px;gap:8px;align-items:end;padding-inline:12px}.gantt-task-columns-header span{text-align:left}.gantt-task-columns-header .gantt-task-duration-header{text-transform:none}.gantt-task-columns-header .gantt-group-toggle{position:absolute;right:6px;bottom:7px}.gantt-label-row.gantt-task-columns-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 76px 42px;gap:8px;align-items:center;padding:0 12px}.gantt-task-columns-row .gantt-inline-name{grid-column:1}.gantt-task-columns-row .gantt-inline-duration{grid-column:4}.gantt-task-columns-row .gantt-date-start{grid-column:2}.gantt-task-columns-row .gantt-date-end{grid-column:3}.gantt-inline-edit,.gantt-inline-input{width:100%;min-width:0;height:22px;padding:1px 4px;border:1px solid transparent;border-radius:4px;background:transparent;color:inherit;font:inherit;font-size:11.5px;line-height:1.15}.gantt-inline-edit{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text}.gantt-inline-edit:hover,.gantt-inline-edit:focus-visible{border-color:var(--line);background:#fff;outline:none}.gantt-inline-edit:disabled,.gantt-inline-edit:disabled:hover{border-color:transparent;background:transparent;cursor:default}.gantt-inline-date{text-align:center;font-variant-numeric:tabular-nums}.gantt-date-readonly{display:flex;width:100%;height:22px;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;font-size:11.5px;line-height:1.15}.gantt-inline-duration{text-align:center;font-variant-numeric:tabular-nums}.gantt-inline-input{border-color:var(--teal);background:#fff;outline:none}.gantt-inline-input[type=date]{padding-inline:0;font-size:10.5px}.gantt-inline-input[type=number]{padding-inline:2px;text-align:center}.gantt-group-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;margin-left:auto;padding:0 4px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted);font:inherit;font-size:11px;cursor:pointer}.gantt-group-toggle:hover{color:var(--ink);background:#f1f5f9}.gantt-label-row{display:flex;flex-direction:column;justify-content:center;padding:0 12px;border-bottom:1px solid #edf1f5;overflow:hidden}.gantt-label-row .label-main{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-label-row .label-sub{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.gantt-label-row.resource-task-draggable{flex-direction:row;align-items:center;gap:5px;padding-inline:8px}.gantt-resource-task-grip{display:grid;place-items:center;flex:0 0 25px;width:25px;height:100%;margin-left:-4px;border-radius:4px;color:#64748b;font-size:16px;line-height:1;cursor:grab;-webkit-user-select:none;user-select:none}.gantt-resource-task-grip:hover{background:#e2e8f0;color:var(--ink)}.gantt-resource-task-grip:active{cursor:grabbing;background:#dbeafe}.resource-task-draggable .label-main{min-width:0;flex:1}.gantt-label-row.group{background:#f1f5f9;border-bottom:1px solid #dbe3ea;flex-direction:row;align-items:center;gap:7px}.gantt-label-row.group .label-main{flex:1 1 auto;text-align:left;font-size:11.5px;text-transform:none;letter-spacing:0;color:var(--ink-2);font-weight:700}.gantt-group-openable{cursor:pointer}.gantt-group-chevron{display:inline-flex;flex:0 0 20px;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:0;border-radius:4px;background:transparent;color:#475569;font:inherit;font-size:15px;cursor:pointer}.gantt-group-chevron:hover,.gantt-group-chevron:focus-visible{background:#e2e8f0;outline:none}.gantt-label-row.group.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.gantt-label-row.group.reorderable-group{flex-direction:row;align-items:center;gap:6px}.gantt-group-grip{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;color:#475569;cursor:grab;font-size:15px;line-height:1;-webkit-user-select:none;user-select:none}.gantt-group-grip:active{cursor:grabbing}.gantt-label-row.group.reorderable-group .label-main{min-width:0;flex:1}.gantt-label-row.editable,.gantt-label-row.collapsible-site-row{cursor:pointer}.gantt-label-row.collapsible-site-row:hover{background:#f1f5f9}.gantt-label-row[data-drop-target=true]{background:#dcfce7;outline:2px solid #16a34a;outline-offset:-2px}.gantt-label-row[draggable=true]{cursor:grab}.gantt-label-row[draggable=true]:active{cursor:grabbing}.gantt-svg{display:block}.gantt-svg.interactive{touch-action:none;-webkit-user-select:none;user-select:none}.gantt-svg.interactive .gantt-bar,.gantt-resource-draggable{cursor:grab}.resource-planning-hint{margin:8px 2px 0}.resource-load-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:10px 2px 0;color:var(--muted);font-size:11px}.resource-load-legend strong{color:var(--ink)}.resource-load-legend span{display:inline-flex;align-items:center;gap:5px}.load-swatch{display:inline-block;width:12px;height:12px;border:1px solid #cbd5e1;border-radius:2px}.load-none{background:#fff}.load-one{background:#d1fae5}.load-over{background:repeating-linear-gradient(135deg,#fecaca 0,#fecaca 4px,#fca5a5 4px,#fca5a5 6px)}.gantt-bar-group.dragging .gantt-bar{cursor:grabbing;filter:brightness(1.07)}.gantt-handle{fill:#ffffffeb;stroke:#0f233b47;stroke-width:.5;opacity:0;cursor:ew-resize;transition:opacity .12s ease}.gantt-bar-group:hover .gantt-handle{opacity:1}.gantt-drag-tip rect{fill:#0e2a47;opacity:.95}.gantt-drag-tip text{fill:#fff;font-size:11px;font-weight:600}.gantt-label-row.reorderable{position:relative;padding-left:26px;cursor:grab;touch-action:none}.gantt-label-row.reorderable:hover{background:#f8fafc}.gantt-label-row.reorderable.dragging{opacity:.55;cursor:grabbing;background:#eef2f6}.gantt-grip{position:absolute;left:9px;top:50%;display:inline-flex;align-items:center;justify-content:center;transform:translateY(-50%);color:#475569;font-size:13px;line-height:1;pointer-events:auto;cursor:grab}.gantt-drop-line{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 3}.gantt-today-line{stroke:#dc2626;stroke-width:2;pointer-events:none}.gantt-empty{padding:48px 20px;text-align:center;color:var(--muted);font-size:13.5px}.gantt-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--line);background:#fbfcfd;font-size:11.5px;color:var(--muted)}.legend-item{display:inline-flex;align-items:center;gap:7px}.legend-swatch{width:20px;height:11px;border-radius:3px;border:1px solid rgba(15,35,59,.15)}.swatch-task{background:#1e6f9f}.swatch-site{background:var(--accent-strong)}.swatch-weekend{background:#e8edf2}.swatch-holiday{background:#b8c4d2}.swatch-leave{background:#fbe3cc}.date-filter{display:inline-flex;align-items:center;flex-wrap:wrap;gap:7px}.date-filter label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.date-filter input{width:138px;min-height:34px;padding:6px 8px;border:1px solid var(--line-input);border-radius:7px;background:#fff;color:var(--ink);font:inherit;font-size:12.5px}.date-filter-error{color:#b91c1c;font-size:11px}.settings-shell{display:grid;grid-template-columns:232px minmax(0,1fr);gap:32px;width:100%;align-items:start}.settings-page-head{width:100%}.settings-sidebar{position:sticky;top:24px}.settings-nav{display:flex;flex-direction:column;gap:4px}.settings-nav-item{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.settings-nav-item svg{flex:0 0 auto;color:#7c8b9d;transition:color .12s ease}.settings-nav-item:hover{background:#e8eef4;color:var(--ink)}.settings-nav-item.is-active{background:#fff;border-color:var(--line);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent-strong),0 1px 2px #0f233b0f}.settings-nav-item.is-active svg{color:var(--accent-strong)}.settings-main{display:flex;flex-direction:column;gap:20px;min-width:0}.settings-panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 1px 2px #0f233b0a}.settings-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px;flex-wrap:wrap}.settings-panel-title{font-size:17px;line-height:22px;font-weight:700}.settings-panel-desc{margin-top:4px;max-width:62ch;color:var(--muted);font-size:13px;line-height:18px}.settings-panel-head .btn{flex:0 0 auto;min-height:34px}.settings-list{display:flex;flex-direction:column}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:10px 4px;border-top:1px solid #edf1f5;transition:background-color .12s ease}.settings-row:last-child{border-bottom:1px solid #edf1f5}.settings-row:hover{background:#fafcfe}.settings-row-main{display:flex;align-items:center;gap:12px;min-width:0}.settings-row-title{display:block;min-width:0;font-size:14px;font-weight:600;line-height:20px;color:var(--ink);overflow-wrap:anywhere}.settings-row-sub{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;line-height:18px;font-variant-numeric:tabular-nums}.settings-row-text{min-width:0}.settings-row-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto}.icon-action{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;border:1px solid transparent;border-radius:8px;background:transparent;color:#62748a;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.icon-action:hover:not(:disabled){background:#eef2f6;border-color:var(--line);color:var(--ink)}.icon-action.is-danger:hover:not(:disabled){background:#fef2f2;border-color:#f3c5c5;color:var(--danger)}.icon-action.is-positive:hover:not(:disabled){background:#e6f4f2;border-color:#c6e8e2;color:var(--teal)}.icon-action:disabled{opacity:.4;cursor:not-allowed}.icon-action.is-busy svg{opacity:0}.icon-action.is-busy:after{content:"";position:absolute;width:14px;height:14px;border:2px solid #cbd5e1;border-top-color:var(--teal);border-radius:50%;animation:settings-spin .7s linear infinite}@keyframes settings-spin{to{transform:rotate(360deg)}}.settings-empty{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:22px 4px;border-top:1px solid #edf1f5}.settings-empty-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:10px;background:#eef2f6;color:#64748b}.settings-empty-title{font-size:14px;font-weight:600;line-height:20px}.settings-empty-desc{margin-top:2px;color:var(--muted);font-size:13px;line-height:18px;max-width:58ch}.settings-empty .btn{margin-left:auto;flex:0 0 auto}.settings-note{margin:2px 0 14px;max-width:72ch;color:var(--muted);font-size:12.5px;line-height:18px}.settings-form .field label{color:var(--ink);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}.settings-form .field input,.settings-form .field select{min-height:38px}.settings-form .field input:focus-visible,.settings-form .field select:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.field-full{grid-column:1 / -1}.settings-role-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:10px;background:#eef2f6}.settings-role-switch button{min-height:34px;padding:6px 14px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.settings-role-switch button:hover{color:var(--ink)}.settings-role-switch button[aria-pressed=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0f233b1f}.permission-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px 0 14px}.permission-summary-text{flex:1 1 240px;min-width:0;color:var(--muted);font-size:13px;line-height:18px}.permission-count{color:var(--ink);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.permission-item{display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 10px;border:1px solid #edf1f5;border-radius:8px;background:#fbfcfd;color:var(--ink);font-size:12.5px;line-height:16px}.permission-item.is-denied{background:#fff;color:var(--muted)}.permission-icon{display:inline-grid;place-items:center;flex:0 0 20px;width:20px;height:20px;border-radius:50%}.permission-item.is-granted .permission-icon{background:#e6f4f2;color:var(--teal)}.permission-item.is-denied .permission-icon{background:#f1f5f9;color:#64748b}.permission-label{min-width:0;overflow-wrap:anywhere}.settings-action-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:16px 0;border-top:1px solid #edf1f5}.settings-action-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:#eef4f8;color:var(--navy)}.settings-action-copy{flex:1 1 260px;min-width:0}.settings-action-title{font-size:14px;font-weight:600;line-height:20px}.settings-action-desc{margin-top:2px;color:var(--muted);font-size:12.5px;line-height:18px}.settings-action-row .btn{flex:0 0 auto}.settings-storage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-storage-item{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}.settings-storage-label{display:block;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.settings-storage-value{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:14px;font-weight:600;line-height:20px}.settings-storage-sub{display:block;margin-top:4px;color:var(--muted);font-size:12.5px;line-height:18px;font-variant-numeric:tabular-nums}.settings-danger-zone{border-color:#f3c5c5;background:snow}.settings-danger-zone .settings-panel-title{color:#7f1d1d}.settings-danger-zone .settings-panel-head{margin-bottom:0}.user-row{align-items:center}.user-identity{display:flex;align-items:center;gap:12px;min-width:0}.user-avatar{display:inline-grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#e8eef5;color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.02em}.user-identity-copy{min-width:0}.user-identity-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;font-weight:600;line-height:20px}.user-email{display:block;max-width:340px;margin-top:1px;color:var(--muted);font-size:12px;line-height:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-row-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.settings-role-select{min-height:34px;padding:6px 28px 6px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:var(--ink);font-size:13px}.settings-role-select:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.settings-role-select:disabled{background:#f8fafc;color:var(--muted)}.resource-order-row{transition:background-color .12s ease,box-shadow .12s ease}.settings-row.resource-order-drop-target{background:#ecfdf5;box-shadow:inset 3px 0 #0f9f6e}.resource-order-main{min-width:0}.resource-order-grip{display:grid;place-items:center;flex:0 0 26px;width:26px;height:32px;margin-left:-6px;border-radius:7px;background:transparent;color:#94a3b8;cursor:grab;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease}.resource-order-grip:hover{background:#eef2f6;color:var(--ink)}.resource-order-grip:active{cursor:grabbing}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf1f5}.list-row:last-child{border-bottom:0}.list-main{font-size:13.5px;font-weight:600}.list-sub{font-size:12px;color:var(--muted);margin-top:2px}.empty-note{color:var(--muted);font-size:13px;padding:16px 0}.modal-confirm{max-width:480px}.modal-form{max-width:560px}.confirm-text{color:var(--ink);font-size:14px;line-height:21px}.confirm-text p+p{margin-top:8px}.confirm-text .banner{margin-bottom:14px}.confirm-detail{color:var(--muted);font-size:13px;line-height:19px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 980px){.settings-shell{grid-template-columns:1fr;gap:20px}.settings-sidebar{position:static}.settings-nav{flex-direction:row;gap:6px;overflow-x:auto;padding-bottom:2px}.settings-nav-item{width:auto;min-height:44px;white-space:nowrap;border-color:var(--line);background:#fff}.settings-nav-item.is-active{box-shadow:inset 0 -3px 0 var(--accent-strong),0 1px 2px #0f233b0f}.icon-action{width:44px;height:44px}.resource-order-grip{flex-basis:32px;width:32px;height:44px}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 700px){.settings-panel{padding:18px}.settings-panel-head{flex-direction:column;align-items:stretch;gap:12px}.settings-panel-head .btn{width:100%;min-height:44px;justify-content:center}.settings-row,.user-row{align-items:flex-start;flex-direction:column;gap:10px}.settings-row-actions,.user-row-actions{align-self:flex-end;width:100%;justify-content:flex-end}.user-row-actions .settings-role-select{flex:1}.settings-empty{align-items:flex-start;flex-wrap:wrap}.settings-empty .btn{width:100%;min-height:44px;margin-left:0;justify-content:center}.permission-grid,.settings-storage{grid-template-columns:1fr}.settings-action-row{flex-wrap:wrap}.settings-action-row .btn{width:100%;justify-content:center}.settings-action-copy{flex:1 1 220px}.settings-role-switch{display:flex;width:100%}.settings-role-switch button{flex:1;min-height:44px;padding-inline:8px}.settings-danger-zone .settings-panel-head .btn{width:100%}.user-email{max-width:100%}.settings-role-select{min-height:44px}}@media (prefers-reduced-motion: reduce){.settings-nav-item,.settings-row,.icon-action,.resource-order-row,.resource-order-grip,.settings-role-switch button{transition:none}.icon-action.is-busy:after{animation:none}}.segmented{display:inline-flex;background:#eef2f6;border:1px solid var(--line);border-radius:9px;padding:3px;gap:3px}.segmented button{border:0;background:transparent;padding:7px 13px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer}.segmented button.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px #0f233b1f}.print-title{display:none}.site-print-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.site-print-form-grid label{display:flex;flex-direction:column;gap:6px;color:var(--ink);font-size:12px;font-weight:600}.site-print-form-grid input,.site-print-form-grid select{min-width:0;min-height:38px;padding:8px 10px;border:1px solid var(--line-input);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13.5px}.site-print-dialog{width:min(560px,calc(100vw - 32px))}@page{size:A3 landscape;margin:8mm}@media print{body{background:#fff}.topbar,.app-footer,.no-print,.btn,.segmented,form,.modal-overlay,.toast{display:none!important}.app-main{max-width:none;padding:0}.app-main.print-planning-only>*:not(.gantt-card){display:none!important}.card,.gantt-card{border:1px solid #cbd5e1;box-shadow:none;border-radius:0}.gantt-scroll{overflow:visible;max-height:none}.gantt-inner{display:grid;grid-template-columns:max-content max-content;align-items:start;width:max-content}.gantt-labels{position:static;flex:none!important}.gantt-svg{width:auto;height:auto}.gantt-card{zoom:var(--gantt-print-scale, 1);width:max-content;overflow:visible}.site-task-table,.site-print-title~.stat-strip,.site-print-title~.banner{display:none!important}.gantt-card{break-inside:avoid;page-break-inside:avoid}.gantt-handle,.gantt-drag-tip,.gantt-grip,.gantt-drop-line,.gantt-legend{display:none!important}.print-title{display:block;margin-bottom:10px;font-size:14px;font-weight:700}.print-title span{font-weight:400;color:#475569}tr,.gantt-label-row{break-inside:avoid}}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(circle at 15% 10%,rgba(249,115,22,.16),transparent 32%),radial-gradient(circle at 85% 90%,rgba(15,118,110,.14),transparent 38%),var(--bg)}.auth-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:34px 36px 28px}.auth-card-loading{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}.auth-logo{display:block;width:auto;height:56px;max-width:88px;object-fit:contain;border-radius:4px}.auth-brand-name{font-weight:800;font-size:19px;line-height:1.1}.auth-brand-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em}.auth-title{font-size:26px;margin-bottom:6px}.auth-muted{color:var(--muted);font-size:14px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:16px;margin-top:24px}.auth-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.auth-field input{border:1px solid #cbd5e1;border-radius:10px;padding:11px 13px;font-size:14px;font-weight:400;color:var(--ink);background:#fff}.auth-field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #0f766e1f}.auth-submit{width:100%;justify-content:center;margin-top:4px;padding-block:11px}.auth-error,.auth-notice{border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.45}.auth-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.auth-notice{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.auth-link{display:block;margin:18px auto 0;background:none;border:0;color:var(--teal);font-size:13px;font-weight:600;cursor:pointer;padding:4px}.auth-link:hover{text-decoration:underline}.auth-footnote{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}.auth-spinner{width:30px;height:30px;border-radius:50%;border:3px solid #dbe3ea;border-top-color:var(--teal);animation:auth-spin .9s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.account-menu{display:flex;align-items:center;gap:10px}.account-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent-strong);color:#fff;font-size:12px;font-weight:800;letter-spacing:.03em}.account-identity{display:flex;flex-direction:column;gap:3px;line-height:1.15}.account-name{color:#e6eef7;font-size:13px;font-weight:600;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu .role-badge{align-self:flex-start;padding:2px 6px;font-size:10.5px}.account-signout{border-color:#2b5378;color:#e6eef7;background:var(--navy-2)}@media (max-width: 860px){.auth-card{padding:28px 22px 24px}.account-identity{display:none}}:where(button,a[href],input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--focus)!important;outline-offset:2px!important}.empty-state{display:flex;align-items:flex-start;gap:14px;padding:28px 4px;flex-wrap:wrap}.empty-state-compact{padding:18px 4px}.empty-state-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}.empty-state-copy{flex:1 1 240px;min-width:0}.empty-state-title{font-size:14px;font-weight:600;line-height:1.35;color:var(--ink)}.empty-state-desc{margin-top:3px;max-width:64ch;color:var(--muted);font-size:13px;line-height:1.45}.empty-state-action{flex:0 0 auto;align-self:center}.site-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.note-field{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.note-field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:600}.note-field-value{display:block;width:100%;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}.note-field-value:hover{color:var(--ink-2)}.note-field-empty{color:var(--muted)}.note-field textarea{width:100%;min-height:74px;padding:8px 10px;border:1px solid var(--line-input);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13.5px;line-height:1.5;resize:vertical}.confirm-inline{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding:12px 14px;border:1px solid #f3c5c5;border-radius:var(--radius);background:var(--danger-soft);color:#7f1d1d;font-size:13px}.confirm-inline-actions{display:flex;gap:8px;flex-wrap:wrap}.site-task-table .table-wrap{max-height:62vh}.site-task-table .data-table th{position:sticky;top:0;z-index:1}.actions{gap:8px}.actions .btn{flex:0 0 auto}@media (max-width: 1200px){:root{--gutter: 20px}.topbar-inner{gap:14px}.brand{min-width:0}.brand-sub{display:none}.nav button{padding-inline:10px}}@media (max-width: 1100px){.account-identity{display:none}}@media (max-width: 980px){.topbar-inner{height:auto;min-height:60px;flex-wrap:wrap;padding-block:10px;row-gap:8px}.brand{flex:1 1 auto}.nav{order:3;flex:1 0 100%;overflow-x:auto;padding-bottom:2px}.nav button{white-space:nowrap}.account-identity{display:none}.app-main,.app-main.planning-main{padding:var(--gutter)}}@media (max-width: 760px){:root{--gutter: 16px}.page-head{align-items:flex-start}.page-head>.actions{width:100%}.site-notes{grid-template-columns:1fr}.empty-state-action,.empty-state-action .btn{width:100%}.topbar-undo{padding-inline:10px}.site-task-table .table-wrap{max-height:none}}.backup-row-main{display:flex;align-items:flex-start;gap:12px;min-width:0;flex:1}.backup-row-icon{display:inline-grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:9px;background:var(--accent-soft);color:var(--accent-strong)}.backup-row-text{display:flex;flex-direction:column;gap:2px;min-width:0}.backup-row-counts{color:var(--muted);font-size:12px;line-height:17px;font-variant-numeric:tabular-nums}.backup-row-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}.backup-page-head{align-items:flex-start}.backup-back-link{display:inline-flex;align-items:center;gap:5px;margin-bottom:8px;padding:0;border:0;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;cursor:pointer}.backup-back-link:hover{color:var(--accent-strong)}.backup-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.backup-compare-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.backup-filter{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted)}.backup-filter input{width:190px;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.backup-compared-at{color:var(--muted);font-size:12px}.backup-state-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 24px;margin-bottom:20px;text-align:center}.backup-state-icon{display:inline-grid;place-items:center;width:58px;height:58px;margin-bottom:6px;border-radius:50%;background:var(--surface-2);color:var(--muted)}.backup-state-icon.is-error{background:var(--danger-soft);color:var(--danger)}.backup-state-icon.is-success{background:var(--success-soft);color:var(--success)}.backup-page{display:flex;flex-direction:column;gap:20px}.backup-page>.page-head,.backup-page>.backup-toolbar{margin-bottom:0}.backup-stats{margin-bottom:0}.backup-site-table-wrap{max-height:62vh}.backup-site-table tbody tr.backup-site-row{cursor:pointer}.backup-site-table tbody tr.backup-site-row:hover{background:#f4f8fc}.backup-site-toggle{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:transparent;color:var(--ink);font-weight:600;text-align:left;cursor:pointer}.backup-site-toggle svg{color:var(--muted)}.backup-detail-row>td{padding:0 12px 14px;background:#f8fafc}.backup-task-table{margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.backup-task-table th,.backup-task-table td{font-size:12.5px;padding:8px 10px}.backup-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.backup-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.backup-simple-list{margin:0;padding:0;list-style:none}.backup-simple-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 2px;border-top:1px solid #edf1f5;font-size:13.5px}.backup-simple-list li:first-child{border-top:0}.backup-simple-meta{color:var(--muted);font-size:12.5px;text-align:right;white-space:nowrap}.diff-section{padding:20px 24px}.diff-counts{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.diff-count-empty{color:var(--muted);font-size:12.5px}.diff-list{display:flex;flex-direction:column;gap:10px}.diff-item{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}.diff-item-nested{margin:8px 0 0 16px;background:var(--surface)}.diff-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.diff-item-head strong{font-size:13.5px}.diff-item-meta{margin-left:auto;color:var(--muted);font-size:12px}.diff-field-table-wrap{margin-top:10px;overflow-x:auto}.diff-field-table{font-size:12.5px}.diff-field-table th,.diff-field-table td{padding:7px 10px}.diff-field-table tbody th{font-weight:600;color:var(--ink-2);background:transparent}.diff-before{color:#7f1d1d;background:#fff7f7;overflow-wrap:anywhere}.diff-after{color:#065f46;background:#f0fdf4;overflow-wrap:anywhere}.diff-empty{color:var(--muted);font-size:13px}.diff-task-group{border:1px solid var(--line);border-radius:10px;background:#fbfcfd;overflow:hidden}.diff-task-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;font-size:13.5px;font-weight:600;cursor:pointer}.diff-task-group>summary:hover{background:#f4f8fc}.diff-task-group .diff-item-meta{margin-left:0}.diff-site-name{margin-bottom:4px;font-weight:600}.diff-warning{margin-top:4px;color:var(--warn);font-size:11.5px}.diff-shift{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.diff-shift.is-late{color:var(--danger)}.diff-shift.is-early{color:var(--success)}@media (max-width: 980px){.backup-side-grid{grid-template-columns:1fr}}@media (max-width: 760px){.backup-row{align-items:flex-start;flex-direction:column}.backup-row-actions{width:100%;flex-wrap:wrap}.backup-row-actions .btn{flex:1 1 auto}.backup-toolbar{align-items:stretch}.backup-compare-tools{align-items:stretch;width:100%}.backup-filter{flex:1 1 100%}.backup-filter input{width:100%}.backup-compared-at{flex:1 1 auto}.diff-item-nested{margin-left:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.site-card:hover{transform:none}}
