:root {
  --ink: #18201d;
  --muted: #6f7773;
  --paper: #f7f8f5;
  --white: #ffffff;
  --line: #e4e8e3;
  --line-strong: #d6dbd5;
  --accent: #175f4c;
  --accent-dark: #104638;
  --week-height: 168px;
  --week-width: 148px;
  --group-width: 196px;
  --header-height: 104px;
  --project-tabs-height: 42px;
  --shadow: 0 12px 40px rgba(24, 32, 29, .12);
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
body { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: var(--paper); overflow: hidden; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.topbar { height: 68px; padding: 0 22px; display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; align-items: center; gap: 16px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--line); position: relative; z-index: 30; backdrop-filter: blur(14px); }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 750; letter-spacing: -.02em; }
.devneed-logo-link { display: flex; align-items: center; border-radius: 7px; transition: opacity .15s; }
.devneed-logo-link:hover { opacity: .7; }
.devneed-logo { display: block; width: auto; height: 32px; }
.brand-divider { width: 1px; height: 24px; background: var(--line-strong); }
.product-name { color: #56605b; font-size: 13px; }
.top-actions { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.top-actions > .button { flex: 0 0 auto; }
.view-switcher { min-width: 0; max-width: 100%; justify-self: center; display: flex; gap: 3px; padding: 3px; overflow-x: auto; border-radius: 10px; background: #eef1ed; scrollbar-width: none; }
.view-switcher::-webkit-scrollbar { display: none; }
.view-button { min-height: 31px; display: inline-grid; place-items: center; flex: 0 0 auto; border: 0; border-radius: 7px; padding: 6px 10px; background: transparent; color: #68706c; cursor: pointer; font-size: 11px; font-weight: 700; line-height: 1; }
.view-button:hover { color: var(--ink); }
.view-button.active { color: var(--ink); background: white; box-shadow: 0 2px 7px rgba(24,32,29,.09); }
.button { border: 0; border-radius: 9px; padding: 9px 13px; cursor: pointer; font-weight: 650; font-size: 13px; transition: .16s ease; }
.button:hover { transform: translateY(-1px); }
.button.primary { color: white; background: var(--accent); box-shadow: 0 5px 13px rgba(23,95,76,.16); }
.button.primary:hover { background: var(--accent-dark); }
.button.export { color: var(--accent); background: #e8f1ed; }
.button.export:hover { background: #dceae3; }
.button.export:disabled { opacity: .55; transform: none; cursor: wait; }
.button.ghost { background: transparent; color: #505954; }
.button.ghost:hover { background: #eff2ee; }
.button.danger { background: #fff0f0; color: #a33a3a; }
.icon-button { width: 32px; height: 32px; display: inline-grid; place-items: center; flex: 0 0 32px; border: 0; border-radius: 8px; padding: 0 0 2px; color: var(--muted); background: transparent; cursor: pointer; font-family: Arial, sans-serif; font-size: 22px; font-weight: 400; line-height: 1; }
.icon-button:hover { background: #eff2ee; color: var(--ink); }

.project-tabs-bar { height: var(--project-tabs-height); padding: 5px 18px 0; display: flex; align-items: end; gap: 8px; background: #edf0ec; border-bottom: 1px solid var(--line-strong); position: relative; z-index: 29; }
.project-tabs { min-width: 0; display: flex; align-items: end; gap: 3px; overflow-x: auto; scrollbar-width: none; }
.project-tabs::-webkit-scrollbar { display: none; }
.project-tab { height: 32px; max-width: 210px; display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; padding: 0 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 9px 9px 0 0; color: #66706b; background: #e3e7e2; cursor: pointer; font-size: 10px; font-weight: 750; }
.project-tab::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #a4ada7; }
.project-tab span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-tab:hover { color: var(--ink); background: #f4f6f3; }
.project-tab.active { height: 36px; color: var(--ink); background: var(--paper); border-color: var(--line-strong); box-shadow: 0 -3px 10px rgba(28,40,35,.04); }
.project-tab.active::before { background: var(--accent); }
.project-tab.all-projects::before { width: 11px; height: 11px; flex-basis: 11px; border-radius: 3px; background: linear-gradient(135deg, var(--accent) 0 48%, #8db2a6 48% 100%); }
.project-picker-wrap { position: relative; flex: 0 0 auto; }
.project-picker-button { height: 32px; margin-bottom: 1px; padding: 0 11px; border: 1px solid #d5dbd5; border-radius: 8px; color: #59635e; background: white; cursor: pointer; font-size: 9px; font-weight: 800; }
.project-picker-button:hover, .project-picker-button[aria-expanded="true"] { color: var(--accent); border-color: #a9beb5; background: #f7fbf8; }
.hint-button { display: inline-flex; align-items: center; justify-content: center; gap: 5px; flex: 0 0 auto; margin-left: auto; }
.hint-button span { width: 15px; height: 15px; display: inline-grid; place-items: center; border-radius: 50%; color: white; background: var(--accent); font-size: 9px; }
.project-picker-panel { width: 310px; max-height: min(430px, calc(100vh - 130px)); position: absolute; top: 38px; right: 0; z-index: 45; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 12px; background: white; box-shadow: var(--shadow); }
.project-picker-head { display: flex; align-items: center; gap: 10px; padding: 13px 14px 11px; border-bottom: 1px solid var(--line); }
.project-picker-head > div { min-width: 0; display: grid; gap: 2px; }
.project-picker-head strong { font-size: 11px; }
.project-picker-head span { color: var(--muted); font-size: 8px; }
.project-picker-head button { margin-left: auto; border: 0; color: var(--accent); background: transparent; cursor: pointer; font-size: 8px; font-weight: 800; }
.project-picker-list { max-height: 330px; padding: 6px; overflow-y: auto; }
.project-picker-option { display: flex; align-items: center; gap: 9px; padding: 9px; border-radius: 8px; cursor: pointer; }
.project-picker-option:hover { background: #f2f5f1; }
.project-picker-option input { accent-color: var(--accent); }
.project-picker-option span { min-width: 0; display: grid; gap: 2px; }
.project-picker-option strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.project-picker-option small { color: var(--muted); font-size: 8px; }
.workspace { height: calc(100vh - 68px - var(--project-tabs-height)); position: relative; }
.timeline { height: 100%; overflow: auto; position: relative; overscroll-behavior: contain; }
.workspace.sidebar-open .timeline { width: calc(100% - 224px); }
.workspace.sidebar-open .view-panel { width: calc(100% - 224px); }
.timeline-header { height: var(--header-height); min-width: 100%; width: max-content; display: flex; position: sticky; top: 0; z-index: 20; background: rgba(252,253,250,.96); border-bottom: 1px solid var(--line-strong); backdrop-filter: blur(10px); }
.corner { width: var(--week-width); min-width: var(--week-width); padding: 11px 12px; position: sticky; left: 0; z-index: 24; background: #fcfdfa; border-right: 1px solid var(--line-strong); }
.corner .label { text-transform: uppercase; letter-spacing: .12em; font-weight: 750; font-size: 10px; color: #909792; }
.corner .range { margin-top: 5px; font-weight: 700; font-size: 12px; }
.column-width-control { display: flex; align-items: center; gap: 3px; margin-top: 7px; color: var(--muted); font-size: 8px; font-weight: 750; }
.column-width-control input { width: 43px; height: 23px; padding: 2px 4px; border: 1px solid #dbe0db; border-radius: 6px; color: var(--ink); background: white; font-size: 9px; font-weight: 800; text-align: right; outline: none; }
.column-width-control input:focus { border-color: #77a497; box-shadow: 0 0 0 2px rgba(23,95,76,.08); }
.column-width-control button { height: 23px; margin-left: auto; padding: 0 6px; border: 0; border-radius: 6px; color: white; background: var(--accent); cursor: pointer; font-size: 8px; font-weight: 800; }
.column-width-control button:hover { background: var(--accent-dark); }
.projects-header { display: flex; height: 100%; }
.project-header { border-right: 1px solid var(--line-strong); }
.project-title { height: 50px; padding: 10px 11px 8px 13px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid var(--line); }
.project-title strong { min-width: 0; overflow: hidden; font-size: 13px; line-height: 18px; letter-spacing: -.01em; text-overflow: ellipsis; white-space: nowrap; }
.header-actions { display: flex; align-items: center; gap: 1px; flex: 0 0 auto; }
.mini-button { width: 27px; height: 27px; display: inline-grid; place-items: center; flex: 0 0 27px; border: 0; border-radius: 7px; padding: 0 0 2px; color: #828a85; background: transparent; cursor: pointer; font-family: Arial, sans-serif; font-size: 14px; line-height: 1; }
.mini-button:hover { color: var(--ink); background: #edf0ec; }
.groups-header { display: flex; height: 54px; }
.group-header { width: var(--group-width); min-width: var(--group-width); padding: 9px 10px 9px 12px; border-right: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.group-header.milestone-group { background: color-mix(in srgb, var(--group-color) 9%, white); box-shadow: inset 0 -3px 0 var(--group-color); }
.group-header.drop-before { box-shadow: inset 3px 0 0 var(--accent); background: #eef5f1; }
.group-header.drop-after { box-shadow: inset -3px 0 0 var(--accent); background: #eef5f1; }
.group-header.column-dragging { opacity: .42; }
.group-label { display: flex; align-items: center; gap: 7px; min-width: 0; font-size: 11px; font-weight: 720; line-height: 15px; }
.column-grip { width: 11px; display: inline-grid; place-items: center; flex: 0 0 11px; padding: 3px 0; color: #a0a7a2; cursor: grab; font-size: 10px; line-height: 1; letter-spacing: -2px; user-select: none; }
.column-grip:active { cursor: grabbing; }
.color-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
.group-label span:last-child { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.milestone-mark { color: var(--group-color); font-size: 10px; flex: 0 0 auto; filter: drop-shadow(0 1px 2px color-mix(in srgb, var(--group-color) 30%, transparent)); }
.add-group-placeholder { min-width: var(--group-width); width: var(--group-width); display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--line); color: #858d88; font-size: 12px; cursor: pointer; }
.add-group-placeholder:hover { background: #f1f3ef; color: var(--accent); }

.timeline-body { min-height: calc(100% - var(--header-height)); position: relative; width: max-content; min-width: 100%; display: flex; }
.weeks-column { width: var(--week-width); min-width: var(--week-width); position: sticky; left: 0; z-index: 12; background: var(--paper); border-right: 1px solid var(--line-strong); }
.week-cell { height: var(--week-height); padding: 10px 16px; border-bottom: 1px solid var(--line); }
.week-cell .week-number { font-weight: 800; font-size: 13px; letter-spacing: -.01em; }
.week-cell .week-date { color: var(--muted); font-size: 11px; margin-top: 4px; }
.week-cell.current { background: #eaf2ee; }
.week-cell.current .week-number { color: var(--accent); }
.week-cell.drop-target { background: #dcece5; box-shadow: inset 4px 0 0 var(--accent); }
.week-cell.drop-target .week-number { color: var(--accent); }
.board { display: flex; position: relative; }
.project-lane { display: flex; border-right: 1px solid var(--line-strong); }
.group-lane { width: var(--group-width); min-width: var(--group-width); position: relative; border-right: 1px solid var(--line); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--week-height) - 1px), var(--line) calc(var(--week-height) - 1px), var(--line) var(--week-height)); }
.group-lane.milestone-lane { background-color: color-mix(in srgb, var(--group-color) 3.5%, var(--paper)); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--group-color) 42%, transparent), inset -3px 0 0 color-mix(in srgb, var(--group-color) 42%, transparent); }
.group-lane.drag-over { background-color: #f4f8f5; }
.week-drop-indicator { position: absolute; left: 0; right: 0; z-index: 3; pointer-events: none; background: rgba(23, 95, 76, .10); border-top: 2px solid rgba(23, 95, 76, .52); border-bottom: 2px solid rgba(23, 95, 76, .52); box-shadow: inset 0 0 24px rgba(23, 95, 76, .05); }
.week-drop-indicator::after { content: attr(data-label); position: absolute; right: 7px; top: 7px; padding: 3px 6px; border-radius: 5px; background: var(--accent); color: white; font-size: 9px; font-weight: 750; letter-spacing: .02em; }
.empty-project-lane { width: var(--group-width); min-width: var(--group-width); display: grid; place-items: start center; padding-top: 20px; color: #969d98; border-right: 1px solid var(--line); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--week-height) - 1px), var(--line) calc(var(--week-height) - 1px), var(--line) var(--week-height)); font-size: 12px; cursor: pointer; }
.today-line { height: 2px; background: #e56b50; position: absolute; left: 0; right: 0; z-index: 2; pointer-events: none; }
.today-line::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #e56b50; position: absolute; left: -4px; top: -3px; }

.task { position: absolute; left: 9px; right: 9px; min-height: 45px; padding: 8px 30px 7px 13px; overflow: visible; border: 1px solid color-mix(in srgb, var(--task-color) 28%, white); border-radius: 9px; color: #17201d; background: white; box-shadow: 0 5px 16px rgba(28,40,35,.085); cursor: grab; z-index: 4; user-select: none; transition: box-shadow .15s, transform .15s; }
.task-content { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.task.has-unassigned-warning { padding-right: 52px; }
.task.has-label-note { padding-top: 6px; padding-bottom: 4px; }
.task.has-label-note .task-name { font-size: 11px; line-height: 14px; }
.task.has-label-note .task-meta { margin-top: 0; }
.task.has-label-note .status-label, .task.has-label-note .task-code, .task.has-label-note .task-id { height: 14px; }
.task.has-label-note .avatar { width: 16px; height: 16px; }
.task::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; border-radius: 9px 0 0 9px; background: var(--task-color); }
.task:hover { box-shadow: 0 9px 24px rgba(28,40,35,.15); transform: translateY(-1px); z-index: 7; }
.task.task-status-todo { background: #fafbfa; }
.task.task-status-in-progress { background: #f1f8fc; }
.task.task-status-review { background: #fff9eb; }
.task.task-status-done { background: #eef8f3; }
.task.label-muted { opacity: .55; filter: saturate(.72); }
.task.label-highlight { border: 2px solid var(--highlight-color); background: color-mix(in srgb, var(--highlight-color) 11%, white); box-shadow: 0 0 0 3px color-mix(in srgb, var(--highlight-color) 13%, transparent), 0 8px 22px rgba(28,40,35,.12); opacity: 1; filter: none; }
.task.label-highlight .task-code { color: color-mix(in srgb, var(--highlight-color) 78%, black); background: color-mix(in srgb, var(--highlight-color) 18%, white); }
.task.estimate-excluded, .task.estimate-excluded.label-highlight { opacity: .48; filter: grayscale(.55) saturate(.55); border-style: dashed; }
.task.estimate-excluded .task-code { text-decoration: line-through; }
.task.milestone-task { outline: 2px solid color-mix(in srgb, var(--task-color) 58%, white); outline-offset: 2px; }
.task.milestone-task .task-name::before { content: "◆"; margin-right: 5px; color: var(--task-color); font-size: 9px; }
.task.dragging { opacity: .45; cursor: grabbing; }
.task.dependency-focused { z-index: 8; box-shadow: 0 0 0 3px rgba(23,95,76,.18), 0 9px 24px rgba(28,40,35,.16); }
.task.dependency-neighbor { z-index: 7; box-shadow: 0 0 0 2px color-mix(in srgb, var(--task-color) 25%, transparent), 0 7px 19px rgba(28,40,35,.12); }
.task-name { min-height: 0; max-height: 30px; flex: 0 1 auto; margin-bottom: 5px; overflow: hidden; font-size: 11px; font-weight: 760; line-height: 15px; white-space: normal; overflow-wrap: anywhere; }
.dependency-count-badge { height: 18px; min-width: 24px; position: absolute; z-index: 10; display: inline-flex; align-items: center; justify-content: center; gap: 2px; padding: 0 5px; border: 1px solid color-mix(in srgb, var(--task-color) 48%, white); border-radius: 9px; color: color-mix(in srgb, var(--task-color) 78%, black); background: color-mix(in srgb, var(--task-color) 12%, white); box-shadow: 0 2px 7px rgba(28,40,35,.10); font-size: 8px; line-height: 1; }
.dependency-count-badge b { font-size: 8px; font-weight: 900; }
.dependency-count-badge span { font-size: 10px; font-weight: 900; }
.dependency-count-badge.incoming { top: -10px; left: 10px; }
.dependency-count-badge.outgoing { right: 10px; bottom: -10px; }
.task-meta { min-height: 16px; display: flex; align-items: center; flex: 0 0 auto; flex-wrap: wrap; gap: 3px; margin-top: 0; overflow: visible; color: #6c746f; font-size: 9px; line-height: 16px; white-space: normal; }
.task-meta > * { flex-shrink: 0; }
.status-label { height: 16px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 4px; border-radius: 4px; font-size: 7px; font-weight: 820; line-height: 1; letter-spacing: .035em; text-transform: uppercase; }
.task-code { height: 16px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 4px; border-radius: 4px; color: color-mix(in srgb, var(--task-color) 78%, black); background: color-mix(in srgb, var(--task-color) 13%, white); font-size: 7px; font-weight: 850; line-height: 1; letter-spacing: .035em; }
.task-id { height: 16px; display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 4px; border-radius: 4px; color: #59635e; background: #edf0ed; font-size: 7px; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: .035em; }
.estimated-hours { color: #646d68; font-size: 9px; font-weight: 750; flex: 0 0 auto; }
.estimated-hours.calculated { color: var(--accent); }
.estimated-hours.estimate-off { color: #8b938e; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.task-label-note { min-height: 0; flex: 1 1 auto; margin-top: 3px; overflow: hidden; color: #77807b; font-size: 7px; font-weight: 700; line-height: 9px; letter-spacing: .015em; white-space: normal; overflow-wrap: anywhere; }
.task-duration { flex: 0 0 auto; margin-top: 3px; color: #6c746f; font-size: 8px; font-weight: 700; line-height: 11px; }
.task-type-label { display: inline-flex; align-items: center; height: 16px; padding: 0 5px; border-radius: 5px; font-size: 8px; font-weight: 850; letter-spacing: .05em; }
.task-type-label.ext { color: #79511b; background: #f8e8c7; }
.task-type-label.event { color: #59635e; background: #e8ece9; }
.task.task-type-ext { border-style: dashed; }
.task.task-type-event { border-style: dashed; background: #f4f6f3; box-shadow: none; }
.task.task-type-event::before { background: #a2aaa5; }
.is-readonly .task { cursor: default; }
.is-readonly .task-menu, .is-readonly .resize-handle, .is-readonly .dependency-handle,
.is-readonly .project-actions, .is-readonly .group-header .mini-button,
.is-readonly .product-add-form, .is-readonly [data-delete-product],
.is-readonly [data-table-delete], .is-readonly [data-edit-assignments],
.is-readonly #orderView button, .is-readonly #peopleForm { display: none !important; }
.is-readonly #taskTable input, .is-readonly #taskTable select,
.is-readonly #orderEditor input, .is-readonly #orderEditor textarea,
.is-readonly #orderEditor select, .is-readonly .product-check:not(.inherited-check),
.is-readonly [data-resource-capacity], .is-readonly [data-capacity-override-person] {
  pointer-events: none;
  color: var(--ink);
  background: #f5f6f4;
}
.status-todo { color: #626b66; background: #edf0ed; }
.status-in-progress { color: #24628a; background: #e4f2fb; }
.status-review { color: #936515; background: #fff1cf; }
.status-done { color: #257052; background: #dff2e9; }
.assignee-inline { display: inline-flex; align-items: center; gap: 4px; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.avatar { width: 17px; height: 17px; display: inline-grid; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--task-color) 18%, white); color: color-mix(in srgb, var(--task-color) 70%, black); font-size: 7px; font-weight: 800; line-height: 1; }
.task-menu { position: absolute; right: 5px; top: 5px; width: 23px; height: 23px; display: grid; place-items: center; border: 0; border-radius: 6px; padding: 0 0 4px; color: #929994; background: transparent; cursor: pointer; font-family: Arial, sans-serif; font-size: 13px; line-height: 1; }
.task-menu:hover { color: var(--ink); background: #f0f2ef; }
.unassigned-warning { display: inline-grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; color: white; background: #d84c4c; box-shadow: 0 2px 7px rgba(167, 42, 42, .24); font-size: 11px; font-weight: 900; line-height: 1; }
.timeline-warning { position: absolute; right: 31px; top: 8px; z-index: 2; }
.resize-handle { position: absolute; left: 10px; right: 10px; bottom: 0; height: 8px; border-radius: 0 0 8px 8px; cursor: ns-resize; }
.resize-handle::after { content: ""; position: absolute; left: 50%; bottom: 2px; width: 22px; height: 2px; border-radius: 2px; background: #cbd2cd; transform: translateX(-50%); opacity: 0; transition: opacity .15s; }
.task:hover .resize-handle::after { opacity: .85; }
.dependency-handle { width: 12px; height: 12px; position: absolute; left: 50%; bottom: -7px; z-index: 9; border: 2px solid var(--task-color); border-radius: 50%; background: white; box-shadow: 0 2px 5px rgba(28,40,35,.12); cursor: crosshair; opacity: 0; transform: translateX(-50%); transition: opacity .15s, transform .15s; }
.task:hover .dependency-handle { opacity: 1; transform: translateX(-50%) scale(1.04); }

.dependency-layer { position: absolute; left: var(--week-width); top: 0; z-index: 3; pointer-events: none; overflow: visible; }
.dependency-halo { fill: none; stroke: var(--paper); stroke-width: 5px; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; opacity: .96; }
.dependency { fill: none; stroke: var(--dependency-color, #78857f); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; marker-end: url(#arrowhead); color: var(--dependency-color, #78857f); pointer-events: stroke; cursor: pointer; opacity: .82; }
.dependency.dependency-all { stroke-width: 1.15; opacity: .34; }
.dependency.dependency-focus { stroke-width: 1.8; opacity: .92; }
.dependency:hover { stroke: #d45843; color: #d45843; stroke-width: 3; }
.dependency.draft { stroke: var(--dependency-color, var(--accent)); stroke-dasharray: 5 4; }

.dialog { width: min(460px, calc(100vw - 32px)); border: 1px solid var(--line); border-radius: 16px; padding: 22px; box-shadow: var(--shadow); color: var(--ink); }
.dialog::backdrop { background: rgba(18,25,22,.35); backdrop-filter: blur(3px); }
.dialog.small { width: min(400px, calc(100vw - 32px)); }
.dialog.task-dialog { width: min(1040px, calc(100vw - 32px)); max-height: calc(100vh - 32px); overflow: hidden; }
.dialog.task-dialog #entityForm { display: flex; max-height: calc(100vh - 78px); flex-direction: column; }
.dialog.task-dialog .dialog-head { flex: 0 0 auto; }
.dialog.task-dialog .form-fields { margin: 0 -6px; padding: 0 6px 8px; overflow-y: auto; }
.dialog.task-dialog .dialog-actions { flex: 0 0 auto; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.dialog.hint-dialog { width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 36px); padding: 0; overflow: hidden; background: #fbfcfa; }
.help-header { min-height: 92px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); background: white; }
.help-header h2 { margin: 3px 0 5px; font-size: 24px; letter-spacing: -.035em; }
.help-header p:last-child { margin: 0; color: var(--muted); font-size: 11px; }
.help-layout { min-height: 470px; max-height: calc(100vh - 190px); display: grid; grid-template-columns: 220px minmax(0, 1fr); }
.help-nav { padding: 14px 10px; overflow-y: auto; border-right: 1px solid var(--line); background: #f1f4f0; }
.help-nav button { width: 100%; min-height: 48px; display: grid; grid-template-columns: 29px minmax(0, 1fr); align-items: center; gap: 9px; padding: 7px 9px; border: 0; border-radius: 9px; color: #65706a; background: transparent; cursor: pointer; text-align: left; }
.help-nav button:hover { color: var(--ink); background: rgba(255,255,255,.7); }
.help-nav button.active { color: var(--accent); background: white; box-shadow: 0 3px 12px rgba(28,40,35,.07); }
.help-nav button > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; color: #738079; background: #e1e7e2; font-size: 9px; font-weight: 900; }
.help-nav button.active > span { color: white; background: var(--accent); }
.help-nav button strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.help-content { padding: 27px 30px 30px; overflow-y: auto; }
.help-section-code { margin: 0 0 6px; color: var(--accent); text-transform: uppercase; letter-spacing: .1em; font-size: 9px; font-weight: 850; }
.help-content h3 { margin: 0; font-size: 22px; letter-spacing: -.03em; }
.help-intro { max-width: 620px; margin: 9px 0 22px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.help-action-list { display: grid; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: white; }
.help-action { min-height: 57px; display: grid; grid-template-columns: minmax(145px, .75fr) minmax(0, 1.75fr); gap: 18px; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.help-action:last-child { border-bottom: 0; }
.help-action strong { color: #26312d; font-size: 11px; }
.help-action span { color: #68726d; font-size: 10px; line-height: 1.5; }
.help-note { margin-top: 16px; display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 12px; padding: 12px 14px; border: 1px solid #cfe0d8; border-radius: 10px; color: #245d4a; background: #edf6f1; }
.help-note strong { font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.help-note span { font-size: 10px; line-height: 1.5; }
.help-footer { min-height: 66px; padding: 12px 20px 12px 24px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); background: white; }
.help-footer > span { color: var(--muted); font-size: 10px; }
.help-footer kbd { padding: 3px 6px; border: 1px solid #d5dcd6; border-bottom-width: 2px; border-radius: 5px; color: #4e5b55; background: #f7f9f6; font-family: inherit; font-size: 8px; font-weight: 800; }
.help-footer .button { min-width: 84px; }
.dialog.export-dialog { width: min(720px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 24px; overflow: hidden; }
.export-dialog form { display: flex; max-height: calc(100vh - 80px); flex-direction: column; }
.export-dialog-help { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.export-dialog-help strong { color: var(--accent); }
.export-section-options { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding-right: 4px; overflow-y: auto; }
.export-section-options label { min-height: 86px; display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fafbf9; cursor: pointer; transition: border-color .15s, background .15s; }
.export-section-options label:hover { border-color: #b9ccc3; background: #f4f8f5; }
.export-section-options label:has(input:checked) { border-color: #8fb5a5; background: #edf6f1; box-shadow: inset 3px 0 0 var(--accent); }
.export-section-options input { width: 16px; height: 16px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--accent); }
.export-section-options label > span { display: grid; gap: 5px; }
.export-section-options strong { font-size: 12px; }
.export-section-options small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.export-dialog .dialog-actions { flex: 0 0 auto; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.dependency-focus-dialog { width: min(1180px, calc(100vw - 32px)); max-height: calc(100vh - 36px); overflow: hidden; border: 1px solid var(--line); border-radius: 16px; padding: 20px; color: var(--ink); background: #fbfcfa; box-shadow: var(--shadow); }
.dependency-focus-dialog::backdrop { background: rgba(18,25,22,.42); backdrop-filter: blur(4px); }
.dependency-focus-dialog .dialog-head { margin-bottom: 14px; }
.dependency-focus-dialog h2 { margin: 3px 0 0; font-size: 21px; letter-spacing: -.03em; }
.dependency-focus-help { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.dependency-focus-map { position: relative; min-height: 350px; max-height: calc(100vh - 150px); overflow: auto; border: 1px solid var(--line); border-radius: 12px; background-color: #f5f7f4; background-image: radial-gradient(#dce2dd 1px, transparent 1px); background-size: 16px 16px; }
.dependency-focus-lines { position: absolute; inset: 0; z-index: 1; overflow: visible; pointer-events: none; }
.dependency-focus-halo { fill: none; stroke: #f5f7f4; stroke-width: 6px; stroke-linejoin: round; }
.dependency-focus-path { fill: none; stroke: var(--focus-line); stroke-width: 2px; stroke-linejoin: round; marker-end: url(#focusArrowhead); color: var(--focus-line); }
.dependency-focus-columns { position: relative; z-index: 2; min-width: 940px; min-height: 350px; display: grid; grid-template-columns: repeat(3, minmax(250px, 1fr)); gap: 90px; align-items: center; padding: 24px 34px; }
.dependency-focus-column { min-width: 0; }
.dependency-focus-column-title { margin-bottom: 10px; color: #808984; text-align: center; text-transform: uppercase; letter-spacing: .09em; font-size: 8px; font-weight: 850; }
.dependency-focus-stack { display: grid; gap: 12px; }
.dependency-focus-card { position: relative; min-width: 0; padding: 13px 14px; border: 1px solid color-mix(in srgb, var(--focus-color) 32%, #dfe5e0); border-radius: 11px; background: white; box-shadow: inset 4px 0 0 var(--focus-color), 0 6px 18px rgba(28,40,35,.08); }
.dependency-focus-card.current { padding: 17px; border-width: 2px; box-shadow: inset 5px 0 0 var(--focus-color), 0 10px 28px rgba(28,40,35,.13); }
.dependency-focus-card-head { display: flex; align-items: center; gap: 6px; margin-bottom: 7px; color: #6d7671; font-size: 8px; font-weight: 850; }
.dependency-focus-card > strong { display: block; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.dependency-focus-card > small { display: block; margin-top: 4px; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.dependency-focus-meta, .dependency-focus-products { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.dependency-focus-meta span, .dependency-focus-products span { padding: 3px 5px; border-radius: 5px; color: #65706a; background: #edf1ee; font-size: 7px; font-weight: 750; }
.dependency-focus-products span { color: #28664f; background: #e5f3eb; }
.dependency-focus-card > button { margin-top: 10px; padding: 4px 0; border: 0; border-bottom: 1px solid #8ca99c; color: var(--accent); background: transparent; cursor: pointer; font-size: 8px; font-weight: 800; }
.dependency-focus-empty { padding: 26px 12px; border: 1px dashed #ccd5ce; border-radius: 10px; color: #929a95; background: rgba(255,255,255,.65); text-align: center; font-size: 9px; }
.dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.dialog-head > div { min-width: 0; }
.dialog h2 { margin: 2px 0 0; font-size: 21px; letter-spacing: -.03em; }
.eyebrow { margin: 0; text-transform: uppercase; letter-spacing: .12em; color: #8a928d; font-weight: 750; font-size: 10px; }
.form-fields { display: grid; gap: 14px; }
.field { display: grid; gap: 6px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.field label { font-size: 11px; font-weight: 730; color: #59615d; }
.field-help { color: var(--muted); font-size: 9px; line-height: 1.4; }
.field input:disabled { color: #9ca39f; background: #f0f2ef; cursor: not-allowed; }
.conditional-hidden { display: none !important; }
.field input, .field select, .field textarea, .inline-form input { width: 100%; border: 1px solid #dbe0db; border-radius: 9px; padding: 10px 11px; background: #fbfcfa; outline: none; color: var(--ink); }
.field input:focus, .field select:focus, .field textarea:focus, .inline-form input:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.field input[type="color"] { padding: 3px; height: 41px; }
.checkbox-field { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px; border: 1px solid #dbe0db; border-radius: 9px; background: #f8faf7; cursor: pointer; }
.checkbox-field input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--accent); }
.checkbox-copy { display: grid; gap: 2px; }
.checkbox-copy strong { font-size: 12px; }
.checkbox-copy span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.assignment-editor { display: grid; gap: 7px; }
.assignment-editor-head { display: flex; align-items: center; justify-content: space-between; }
.assignment-editor-head label { font-size: 11px; font-weight: 730; color: #59615d; }
.assignment-rows { display: grid; gap: 7px; }
.assignment-row { display: grid; grid-template-columns: minmax(0, 1fr) 82px 30px; gap: 7px; align-items: center; }
.assignment-row select, .assignment-row input { width: 100%; border: 1px solid #dbe0db; border-radius: 8px; padding: 8px 9px; background: #fbfcfa; font-size: 11px; }
.assignment-remove { width: 30px; height: 30px; display: grid; place-items: center; border: 0; border-radius: 7px; padding: 0 0 2px; color: #a54a4a; background: #fff0f0; cursor: pointer; font-family: Arial, sans-serif; font-size: 17px; line-height: 1; }
.assignment-summary { color: var(--muted); font-size: 9px; }
.task-deliverables-editor { display: grid; gap: 10px; padding: 12px; border: 1px solid #dce5df; border-radius: 10px; background: #f7faf8; }
.task-deliverables-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.task-deliverables-head strong { display: block; color: #4f5b55; font-size: 11px; }
.task-deliverables-head span:not(.task-id) { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.task-deliverables-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.task-deliverables-grid > div { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.task-deliverables-grid label { display: block; margin-bottom: 7px; color: #717a75; text-transform: uppercase; letter-spacing: .06em; font-size: 8px; font-weight: 850; }
.task-product-create { display: flex; align-items: center; gap: 6px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); }
.task-product-create > input:not([type="checkbox"]) { min-width: 80px; height: 30px; flex: 1; padding: 5px 7px; border: 1px solid #dbe2dd; border-radius: 7px; background: #fbfcfa; outline: none; font-size: 9px; }
.task-product-create > label { display: flex; align-items: center; gap: 4px; margin: 0; color: #79643e; text-transform: none; letter-spacing: 0; font-size: 7px; white-space: nowrap; }
.task-product-create > label input { width: 14px; height: 14px; margin: 0; accent-color: #b27b22; }
.task-product-create > button { height: 30px; padding: 0 9px; border: 0; border-radius: 7px; color: white; background: var(--accent); cursor: pointer; font-size: 8px; font-weight: 800; }
.task-editor-shell { display: grid; gap: 12px; }
.task-editor-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 14px; padding: 15px 16px; border-radius: 12px; background: linear-gradient(135deg, #edf4f0, #f8faf8); box-shadow: inset 4px 0 0 var(--accent); }
.task-editor-name .field label { color: var(--accent); text-transform: uppercase; letter-spacing: .06em; font-size: 8px; }
.task-editor-name .field input { height: 43px; border-color: #cfdcd5; background: white; font-size: 15px; font-weight: 760; }
.task-editor-id { align-self: center; padding: 6px 8px; border-radius: 6px; color: #53615b; background: white; font-size: 8px; font-weight: 900; letter-spacing: .06em; white-space: nowrap; }
.task-editor-id.new { color: var(--accent); }
.task-editor-columns { display: grid; grid-template-columns: 1.08fr .92fr; gap: 12px; align-items: start; }
.task-editor-section { min-width: 0; display: grid; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfa; }
.task-editor-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.task-editor-section-head strong { display: block; font-size: 12px; }
.task-editor-section-head span { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.task-editor-section.delivery-section { padding: 0; border: 0; background: transparent; }
.task-editor-section.delivery-section > .task-editor-section-head { padding: 3px 2px 0; }
.task-editor-section.delivery-section .task-deliverables-editor { padding: 13px; }
.task-editor-section.status-section { gap: 8px; }
.task-status-picker > span { display: none; }
.task-status-picker > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.task-status-option { position: relative; display: block; min-width: 0; border: 1px solid #dce2de; border-radius: 9px; background: white; cursor: pointer; }
.task-status-option input { position: absolute; opacity: 0; pointer-events: none; }
.task-status-option > span { min-height: 52px; display: grid; align-content: center; gap: 3px; padding: 8px 10px 8px 14px; border-radius: 8px; }
.task-status-option > span::before { content: ""; width: 5px; position: absolute; left: 6px; top: 10px; bottom: 10px; border-radius: 4px; background: #a8b0ab; }
.task-status-option b { font-size: 9px; }
.task-status-option small { color: var(--muted); font-size: 7px; }
.task-status-option.status-in-progress > span::before { background: #4c9acc; }
.task-status-option.status-review > span::before { background: #d5a13e; }
.task-status-option.status-done > span::before { background: #3f9b73; }
.task-status-option:has(input:checked) { border-color: #7aa493; box-shadow: 0 0 0 2px rgba(23,95,76,.11); }
.task-status-option.status-todo:has(input:checked) { background: #f2f4f2; }
.task-status-option.status-in-progress:has(input:checked) { background: #eaf5fb; }
.task-status-option.status-review:has(input:checked) { background: #fff5dc; }
.task-status-option.status-done:has(input:checked) { background: #e6f5ed; }
.task-deliverables-empty { display: grid; place-items: center; gap: 3px; min-height: 92px; padding: 15px; border: 1px dashed #cbd5ce; border-radius: 10px; color: var(--muted); background: #f8faf7; text-align: center; }
.task-deliverables-empty strong { color: #57635d; font-size: 10px; }
.task-deliverables-empty span { font-size: 8px; }
.task-notes-field textarea { min-height: 138px; resize: vertical; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.inline-form { display: flex; gap: 8px; margin-bottom: 15px; }
.people-list { display: grid; gap: 6px; max-height: 330px; overflow: auto; }
.person-row { display: flex; align-items: center; justify-content: space-between; padding: 9px 10px; background: #f6f8f5; border-radius: 9px; font-size: 13px; }
.person-name { display: flex; align-items: center; gap: 9px; font-weight: 650; }
.person-avatar { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: #dfeae5; color: var(--accent); font-size: 10px; font-weight: 800; }

.context-menu { position: fixed; z-index: 50; min-width: 168px; padding: 5px; border-radius: 10px; border: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
.menu-item { width: 100%; border: 0; background: transparent; text-align: left; padding: 9px 10px; border-radius: 7px; font-size: 12px; cursor: pointer; }
.menu-item:hover { background: #f0f3ef; }
.menu-item.danger { color: #b33e3e; }
.menu-separator { height: 1px; background: var(--line); margin: 4px; }
.toast { position: fixed; right: 20px; bottom: 20px; z-index: 100; padding: 11px 14px; border-radius: 10px; background: #1c2622; color: white; font-size: 12px; box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s ease; }
.toast.show { opacity: 1; transform: none; }
.toast.error { background: #9e3d3d; }
.empty-state { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; z-index: 25; background: var(--paper); }
.empty-state h2 { margin: 14px 0 5px; font-size: 22px; }
.empty-state p { margin: 0 0 20px; color: var(--muted); font-size: 13px; }
.empty-icon { margin: auto; width: 52px; height: 52px; border-radius: 15px; display: grid; place-items: center; background: #e7efeb; color: var(--accent); font-size: 28px; }
.hidden { display: none !important; }

.label-sidebar { position: absolute; top: 0; right: 0; bottom: 0; z-index: 19; width: 224px; padding: 18px 13px; overflow-y: auto; border-left: 1px solid var(--line-strong); background: rgba(252,253,250,.97); box-shadow: -8px 0 24px rgba(24,32,29,.045); backdrop-filter: blur(10px); }
.label-sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.label-sidebar-head h2 { margin: 3px 0 0; font-size: 16px; letter-spacing: -.025em; }
.label-sidebar-head .mini-button { width: auto; padding: 0 6px; font-size: 10px; }
.label-sidebar-help { margin: 10px 0 15px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.dependency-display-section { margin: 0 0 14px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #f7f9f6; }
.dependency-display-section > div:first-child { display: grid; gap: 2px; }
.dependency-display-section strong { font-size: 10px; }
.dependency-display-section span { color: var(--muted); font-size: 8px; line-height: 1.4; }
.dependency-mode-switch { margin-top: 8px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; padding: 3px; border-radius: 8px; background: #e8ece8; }
.dependency-mode-switch button { height: 27px; border: 0; border-radius: 6px; color: #6c746f; background: transparent; cursor: pointer; font-size: 8px; font-weight: 800; }
.dependency-mode-switch button:hover { color: var(--ink); }
.dependency-mode-switch button.active { color: var(--accent); background: white; box-shadow: 0 2px 7px rgba(24,32,29,.09); }
.label-filter-list { display: grid; gap: 6px; }
.label-filter-row { display: flex; align-items: stretch; min-width: 0; border: 1px solid var(--line); border-radius: 9px; background: white; transition: .15s ease; }
.label-filter-row:hover { border-color: #cfd6d1; transform: translateY(-1px); }
.label-filter-row.active { border-color: color-mix(in srgb, var(--label-color) 60%, #d7ddd8); background: color-mix(in srgb, var(--label-color) 8%, white); box-shadow: 0 3px 12px color-mix(in srgb, var(--label-color) 10%, transparent); }
.label-filter-row.estimate-disabled, .label-summary-row.estimate-disabled { background: #f4f5f3; opacity: .72; }
.label-filter-row.estimate-disabled .label-color-dot, .label-summary-row.estimate-disabled .label-summary-dot { filter: grayscale(1); }
.label-color-button { width: 34px; flex: 0 0 34px; display: grid; place-items: center; border: 0; border-right: 1px solid var(--line); border-radius: 8px 0 0 8px; background: transparent; cursor: pointer; }
.label-color-dot { width: 13px; height: 13px; border-radius: 50%; background: var(--label-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--label-color) 14%, transparent); }
.label-filter-content { min-width: 0; flex: 1; display: grid; padding-bottom: 6px; }
.label-filter-heading { min-width: 0; display: flex; align-items: stretch; }
.label-toggle { min-width: 0; flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 6px; border: 0; padding: 9px 9px; border-radius: 0 8px 8px 0; color: var(--ink); background: transparent; cursor: pointer; text-align: left; }
.label-toggle strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.label-toggle span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.label-estimate-toggle { position: relative; width: 31px; flex: 0 0 31px; border: 0; border-left: 1px solid #edf0ed; color: #65706a; background: transparent; cursor: pointer; font-size: 13px; }
.label-estimate-toggle:hover { color: var(--accent); background: #f4f7f5; }
.label-estimate-toggle[aria-pressed="false"]::after { content: ""; position: absolute; left: 7px; top: 50%; width: 17px; height: 2px; background: #c45b5b; transform: rotate(-38deg); transform-origin: center; }
.label-note-input { width: calc(100% - 18px); min-height: 42px; margin: -2px 9px 0; padding: 5px 6px; border: 1px solid #e0e5e0; border-radius: 6px; color: #626b66; background: #fafbf9; font-size: 9px; line-height: 1.35; outline: none; resize: vertical; }
.label-note-input:focus { border-color: #77a497; background: white; box-shadow: 0 0 0 2px rgba(23,95,76,.07); }
.label-filter-empty { padding: 18px 7px; color: var(--muted); text-align: center; font-size: 10px; line-height: 1.45; }
.label-summary-row { display: flex; align-items: center; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.label-summary-dot { width: 9px; height: 9px; flex: 0 0 auto; border-radius: 50%; background: var(--label-color); }
.label-summary-copy { min-width: 0; flex: 1; }
.label-summary-copy strong { display: block; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.label-summary-copy span { color: var(--muted); font-size: 9px; }
.label-summary-hours { color: var(--ink); font-size: 12px; font-weight: 850; font-variant-numeric: tabular-nums; white-space: nowrap; }
.label-summary-total { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; padding: 11px 10px; border-top: 1px solid var(--line-strong); color: var(--muted); font-size: 10px; }
.label-summary-total strong { color: var(--accent); font-size: 14px; }
.assignee-highlight-section { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line-strong); }
.assignee-highlight-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.assignee-highlight-head h3 { margin: 3px 0 0; font-size: 14px; letter-spacing: -.02em; }
.assignee-highlight-head .mini-button { width: auto; padding: 0 6px; font-size: 10px; }
.assignee-filter-list { display: grid; gap: 6px; }
.assignee-filter-button { width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: white; cursor: pointer; text-align: left; }
.assignee-filter-button:hover { border-color: color-mix(in srgb, var(--assignee-color) 48%, var(--line)); }
.assignee-filter-button.active { border-color: var(--assignee-color); background: color-mix(in srgb, var(--assignee-color) 9%, white); box-shadow: 0 2px 10px color-mix(in srgb, var(--assignee-color) 12%, transparent); }
.assignee-filter-avatar { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--assignee-color); font-size: 8px; font-weight: 900; }
.assignee-filter-button > span:last-child { min-width: 0; }
.assignee-filter-button strong, .assignee-filter-button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assignee-filter-button strong { font-size: 10px; }
.assignee-filter-button small { margin-top: 2px; color: var(--muted); font-size: 8px; }
.label-palette { position: fixed; z-index: 80; width: 174px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: var(--shadow); }
.palette-color { width: 24px; height: 24px; border: 2px solid white; border-radius: 7px; background: var(--palette-color); box-shadow: 0 0 0 1px #d9ded9; cursor: pointer; }
.palette-color:hover, .palette-color.selected { box-shadow: 0 0 0 2px var(--ink); transform: scale(1.06); }

.view-panel { height: 100%; overflow: auto; padding: 32px clamp(18px, 4vw, 58px) 60px; }
.view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 auto 22px; max-width: 1500px; }
.view-heading h1 { margin: 3px 0 4px; font-size: 25px; letter-spacing: -.035em; }
.view-heading > div > p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.table-shell { max-width: 1500px; margin: auto; overflow: auto; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 28px rgba(28,40,35,.06); }
.task-table, .report-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.task-table { min-width: 1500px; }
.task-table th, .report-table th { padding: 11px 10px; border-bottom: 1px solid var(--line-strong); background: #f6f8f5; color: #737b76; text-align: left; text-transform: uppercase; letter-spacing: .07em; font-size: 9px; font-weight: 800; }
.sort-button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 6px; border: 0; padding: 0; color: inherit; background: transparent; text-align: left; text-transform: inherit; letter-spacing: inherit; font: inherit; cursor: pointer; }
.sort-button:hover { color: var(--ink); }
.sort-indicator { min-width: 10px; color: #a2aaa5; font-size: 10px; }
.sort-button.active { color: var(--accent); }
.sort-button.active .sort-indicator { color: var(--accent); }
.task-table td, .report-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.task-table tr:last-child td, .report-table tr:last-child td { border-bottom: 0; }
.task-table tbody tr { transition: background .15s; }
.task-table tbody tr:hover { background: #fafbf9; }
.task-table tbody tr.task-unassigned-warning { background: #fffafa; }
.task-table tbody tr.saving { opacity: .58; }
.task-table tbody tr.saved { background: #f0f8f4; }
.table-task-name-cell { display: flex; align-items: center; gap: 6px; }
.table-task-name-cell .table-control { flex: 1; }
.table-warning { flex: 0 0 17px; }
.table-control { width: 100%; min-width: 0; height: 34px; border: 1px solid transparent; border-radius: 7px; padding: 6px 7px; color: var(--ink); background: transparent; font-size: 11px; outline: none; }
.table-control:hover { border-color: #dfe4df; background: white; }
.table-control:focus { border-color: #77a497; background: white; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.table-control:disabled { color: #9ba29e; background: #f3f5f2; cursor: not-allowed; }
.table-control.table-calculated:disabled { color: var(--accent); background: #edf5f1; font-weight: 850; }
.table-code { font-weight: 800; color: var(--accent); }
.table-task-id { display: inline-flex; padding: 5px 7px; border-radius: 6px; color: #56605b; background: #edf0ed; font-size: 9px; font-weight: 900; font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.table-check-cell { text-align: center; }
.table-check { width: 17px; height: 17px; accent-color: var(--accent); cursor: pointer; }
.table-delete { border: 0; border-radius: 7px; padding: 6px 8px; color: #a54a4a; background: transparent; cursor: pointer; }
.table-delete:hover { background: #fff0f0; }
.table-empty { padding: 42px !important; color: var(--muted); text-align: center; font-size: 13px; }

.report-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 1500px; margin: 0 auto 16px; }
.report-card { padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 6px 20px rgba(28,40,35,.045); }
.report-card span { color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .07em; }
.report-card strong { display: block; margin-top: 7px; font-size: 25px; letter-spacing: -.04em; }
.report-table { min-width: 720px; }
.report-table td { font-size: 12px; }
.report-label { display: inline-flex; padding: 5px 8px; border-radius: 6px; color: var(--accent); background: #e8f1ed; font-weight: 850; }
.hours-value { font-weight: 800; font-variant-numeric: tabular-nums; }
.progress-track { width: 100%; height: 7px; overflow: hidden; border-radius: 10px; background: #e9ede9; }
.progress-fill { height: 100%; border-radius: inherit; background: var(--accent); }
.progress-copy { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; }
.report-task-names { display: block; max-width: 360px; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.deliverable-section-head { max-width: 1500px; margin: 22px auto 10px; }
.deliverable-section-head.table-head { margin-top: 26px; }
.deliverable-section-head strong { display: block; font-size: 13px; }
.deliverable-section-head span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
#deliverablesView .view-heading { flex-wrap: wrap; }
.deliverable-controls { display: flex; align-items: flex-end; gap: 8px; }
.deliverable-controls label { display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; }
.deliverable-controls select { min-width: 150px; height: 34px; padding: 6px 28px 6px 9px; border: 1px solid #dbe0db; border-radius: 8px; color: var(--ink); background: white; font-size: 11px; text-transform: none; letter-spacing: 0; outline: none; }
.deliverable-controls select:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.deliverable-controls .button { height: 34px; white-space: nowrap; }
.deliverable-label-note { max-width: 320px; min-height: 34px; display: inline-flex; align-items: center; padding: 7px 10px; border: 1px solid #d9e5df; border-radius: 8px; color: #4e6259; background: #edf5f1; font-size: 10px; line-height: 1.35; overflow-wrap: anywhere; }
.deliverable-label-note.hidden { display: none; }
#deliverablesView .report-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.deliverable-summary { max-width: 1500px; margin: auto; display: grid; gap: 8px; }
.deliverable-summary-card { display: grid; grid-template-columns: 150px 1fr 1fr; gap: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: white; box-shadow: 0 4px 16px rgba(28,40,35,.035); }
.deliverable-summary-title { min-width: 0; padding-right: 10px; border-right: 1px solid var(--line); }
.deliverable-summary-title > span { display: inline-flex; padding: 5px 8px; border-radius: 6px; color: var(--accent); background: #e8f1ed; font-size: 10px; font-weight: 850; }
.deliverable-summary-title small { display: block; margin-top: 6px; color: var(--muted); font-size: 9px; }
.deliverable-summary-column > strong { display: block; margin-bottom: 6px; color: #6d7671; text-transform: uppercase; letter-spacing: .06em; font-size: 8px; }
.deliverable-empty { padding: 28px; border: 1px dashed var(--line-strong); border-radius: 11px; color: var(--muted); text-align: center; font-size: 11px; }
.deliverables-table { width: 100%; min-width: 1170px; border-collapse: collapse; table-layout: fixed; }
.deliverables-table th { padding: 11px 10px; border-bottom: 1px solid var(--line-strong); background: #f6f8f5; color: #737b76; text-align: left; text-transform: uppercase; letter-spacing: .07em; font-size: 9px; }
.deliverables-table td { padding: 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.deliverable-task-name { display: block; font-size: 11px; }
.deliverable-task-id { display: inline-flex; margin-bottom: 5px; padding: 3px 6px; border-radius: 5px; color: #5d6762; background: #edf0ed; font-size: 7px; font-weight: 900; font-variant-numeric: tabular-nums; letter-spacing: .045em; text-transform: uppercase; }
.deliverable-task-location { display: block; margin: 4px 0 7px; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.deliverables-table .report-label { padding: 3px 6px; font-size: 8px; }
.product-list { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 5px; min-height: 23px; }
.product-chip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 4px 6px; border: 1px solid #dce5df; border-radius: 6px; color: #40504a; background: #edf5f1; font-size: 9px; }
.product-chip > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.product-chip b { margin-left: 3px; color: var(--accent); font-size: 8px; }
.product-chip small { color: #74807a; font-size: 7px; white-space: nowrap; }
.product-chip em { padding: 2px 4px; border-radius: 4px; color: #8c5f13; background: #fff1cf; font-size: 7px; font-style: normal; font-weight: 800; white-space: nowrap; }
.product-chip.inherited { border-style: dashed; color: #5f6964; background: #f3f5f2; }
.product-chip.external { border-color: #ecd9a8; background: #fffaf0; }
.product-chip.completed { border-color: #9fd5bb; color: #215f47; background: #e3f5eb; box-shadow: inset 3px 0 0 #36a16f; }
.product-chip.inherited.completed { border-color: #88c9aa; color: #1d694b; background: #dcf3e7; }
.product-check { width: 14px; height: 14px; margin: 0; flex: 0 0 auto; accent-color: #27835c; cursor: pointer; }
.product-check:disabled { cursor: default; opacity: 1; }
.product-id { padding: 2px 4px; border-radius: 4px; color: #53605a; background: rgba(255,255,255,.76); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 7px; font-weight: 900; letter-spacing: .025em; }
.product-chip button { width: 17px; height: 17px; display: grid; place-items: center; flex: 0 0 17px; padding: 0 0 2px; border: 0; border-radius: 4px; color: #a64a4a; background: transparent; cursor: pointer; font-family: Arial, sans-serif; font-size: 13px; line-height: 1; }
.product-chip button:hover { background: #f9dddd; }
.product-empty { align-self: center; color: #9aa19d; font-size: 9px; }
.product-add-form { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.product-add-form > input[type="text"], .product-add-form > input:not([type]) { min-width: 90px; flex: 1; height: 28px; padding: 5px 7px; border: 1px solid #dfe4df; border-radius: 7px; background: #fbfcfa; font-size: 9px; outline: none; }
.product-add-form > input:focus { border-color: #77a497; box-shadow: 0 0 0 2px rgba(23,95,76,.07); }
.product-add-form > button { height: 28px; padding: 0 9px; border: 0; border-radius: 7px; color: white; background: var(--accent); cursor: pointer; font-size: 9px; font-weight: 750; }
.external-input-flag { display: flex; align-items: center; gap: 4px; color: #7c6540; font-size: 8px; white-space: nowrap; }
.external-input-flag input { width: 14px; height: 14px; accent-color: #b27b22; }
.order-heading { align-items: center; }
.order-toolbar { max-width: 1500px; margin: 0 auto 8px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 5px 20px rgba(28,40,35,.04); }
.order-toolbar label { display: grid; gap: 4px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: 8px; font-weight: 800; }
.order-toolbar select, .order-toolbar input { min-width: 175px; height: 35px; padding: 6px 9px; border: 1px solid #dbe0db; border-radius: 8px; color: var(--ink); background: #fbfcfa; text-transform: none; letter-spacing: 0; font-size: 11px; outline: none; }
.order-toolbar select:focus, .order-toolbar input:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.order-toolbar .order-draft-name { flex: 1; }
.order-toolbar .order-draft-name input { width: 100%; }
.order-toolbar .button { height: 35px; padding-top: 0; padding-bottom: 0; white-space: nowrap; }
.order-toolbar .button:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.order-status-strip { max-width: 1500px; margin: 0 auto 16px; display: flex; align-items: center; gap: 16px; padding: 0 3px; color: var(--muted); font-size: 9px; }
.order-status-strip > span { display: inline-flex; align-items: center; gap: 5px; }
.order-status-strip > span:first-child { color: var(--accent); font-weight: 800; }
.order-override-dot { width: 8px; height: 8px; border-radius: 50%; background: #edae49; box-shadow: 0 0 0 3px #fff3dc; }
.mini-link { margin-left: auto; padding: 2px 0; border: 0; border-bottom: 1px solid #aeb7b2; color: #67716c; background: transparent; cursor: pointer; font-size: 9px; }
.mini-link:hover { color: var(--accent); border-color: var(--accent); }
.order-metrics { max-width: 1500px; margin: 0 auto 14px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.order-metrics .report-card { padding: 14px 16px; }
.order-metrics .report-card strong { font-size: 20px; }
.order-metric-warning { border-color: #efc77e; background: #fffaf0; }
.order-metric-warning strong { color: #a66813; }
.order-finance-panel { max-width: 1500px; margin: 0 auto 16px; overflow: hidden; border: 1px solid #cbd9d2; border-radius: 14px; background: #f8faf8; box-shadow: 0 10px 30px rgba(28,40,35,.06); }
.order-finance-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 20px 22px; color: white; background: linear-gradient(128deg, #243a33, #38594e); }
.order-finance-head h2 { margin: 3px 0 4px; font-size: 18px; }
.order-finance-head p:last-child { margin: 0; color: rgba(255,255,255,.66); font-size: 9px; }
.order-finance-head > span { padding: 5px 8px; border: 1px solid rgba(255,255,255,.28); border-radius: 6px; color: rgba(255,255,255,.8); font-size: 8px; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; white-space: nowrap; }
.finance-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: white; }
.finance-kpis > div { min-height: 76px; display: grid; align-content: center; gap: 4px; padding: 13px 18px; border-right: 1px solid var(--line); }
.finance-kpis > div:last-child { border-right: 0; }
.finance-kpis span { color: var(--muted); text-transform: uppercase; letter-spacing: .055em; font-size: 7px; font-weight: 850; }
.finance-kpis strong { color: var(--accent); font-size: 17px; }
.finance-kpis small { color: var(--muted); font-size: 8px; }
.finance-kpis .finance-negative { background: #fff3f1; }
.finance-kpis .finance-negative strong { color: #b24c42; }
.finance-opening { display: flex; align-items: center; gap: 12px; padding: 11px 18px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 8px; }
.finance-opening label { display: flex; align-items: center; gap: 7px; color: var(--ink); font-size: 9px; font-weight: 800; }
.finance-opening input, .finance-table input, .finance-table select { height: 30px; padding: 5px 7px; border: 1px solid #d9e0dc; border-radius: 6px; color: var(--ink); background: white; outline: none; font-size: 9px; }
.finance-opening input { width: 110px; text-align: right; }
.finance-opening b { margin-left: auto; color: #a95b20; }
.finance-grid { display: grid; grid-template-columns: minmax(360px, .8fr) minmax(620px, 1.4fr); gap: 12px; padding: 16px 18px 0; }
.finance-block { min-width: 0; }
.finance-block-title { display: grid; gap: 2px; margin-bottom: 7px; }
.finance-block-title strong { font-size: 11px; }
.finance-block-title span { color: var(--muted); font-size: 8px; }
.finance-table { width: 100%; min-width: 460px; border-collapse: collapse; table-layout: fixed; background: white; }
.finance-payment-table { min-width: 760px; }
.finance-table th { padding: 7px 8px; color: #dae5e0; background: #35584d; text-align: left; text-transform: uppercase; letter-spacing: .05em; font-size: 7px; }
.finance-table td { padding: 7px 8px; border-bottom: 1px solid var(--line); color: #4f5b55; font-size: 9px; vertical-align: middle; }
.finance-table tr:last-child td { border-bottom: 0; }
.finance-table td strong { display: block; color: var(--ink); font-size: 9px; }
.finance-table td small { display: block; margin-top: 2px; color: var(--muted); font-size: 7px; }
.finance-table input, .finance-table select { width: 100%; }
.finance-cashflow { padding: 15px 18px 18px; }
.finance-cashflow .finance-table { min-width: 620px; }
.finance-table .cash-in { color: #257052; font-weight: 800; }
.finance-table .cash-out { color: #9c5b29; font-weight: 800; }
.finance-table .negative-cash { color: #b44141; background: #fff0ef; }
.order-paper { max-width: 1500px; margin: auto; overflow: hidden; border: 1px solid var(--line-strong); border-radius: 14px; background: white; box-shadow: 0 12px 36px rgba(28,40,35,.075); }
.order-paper-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 23px 25px; color: white; background: linear-gradient(128deg, #124b3d, #1e715b); }
.order-paper-title .eyebrow { color: rgba(255,255,255,.62); }
.order-paper-title h2 { margin: 5px 0 0; font-size: 22px; letter-spacing: -.025em; }
.order-paper-title > span { padding: 5px 8px; border: 1px solid rgba(255,255,255,.25); border-radius: 6px; color: rgba(255,255,255,.78); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.order-form-section { padding: 24px 25px; border-bottom: 1px solid var(--line); }
.order-form-section:last-child { border-bottom: 0; }
.order-form-section.payment-overridden { background: #fffdf8; box-shadow: inset 4px 0 0 #edae49; }
.order-timeline-appendix { background: #f7faf8; }
.order-appendix-notice { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 15px; border: 1px solid #cfe0d8; border-radius: 10px; color: #285f4d; background: #edf6f1; }
.order-appendix-notice strong { font-size: 10px; }
.order-appendix-notice span { color: #577068; font-size: 9px; }
.order-section-title { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.order-section-title > span { width: 29px; height: 29px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: #e8f1ed; font-size: 10px; font-weight: 900; }
.order-section-title > div:nth-child(2) { display: grid; gap: 2px; }
.order-section-title strong { font-size: 13px; }
.order-section-title strong b { margin-left: 5px; padding: 2px 5px; border-radius: 4px; color: #945c0b; background: #fff0d2; text-transform: uppercase; letter-spacing: .05em; font-size: 7px; }
.order-section-title small { color: var(--muted); font-size: 9px; }
.order-section-actions { margin-left: auto; display: flex !important; grid-auto-flow: column; gap: 5px !important; }
.order-section-actions .button { padding: 6px 9px; font-size: 9px; }
.order-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.order-long-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.order-long-fields .order-field:last-child { grid-column: 1 / -1; }
.order-field { position: relative; display: grid; gap: 5px; padding: 9px; border: 1px solid #e2e6e2; border-radius: 9px; background: #fafbf9; }
.order-field > span { display: flex; align-items: center; justify-content: space-between; color: #69726d; text-transform: uppercase; letter-spacing: .055em; font-size: 8px; font-weight: 800; }
.order-field > span b { padding: 2px 5px; border-radius: 4px; color: #945c0b; background: #fff0d2; font-size: 7px; }
.order-field input, .order-field textarea { width: 100%; min-height: 33px; padding: 7px 8px; border: 1px solid transparent; border-radius: 6px; color: var(--ink); background: white; outline: none; resize: vertical; font-size: 10px; }
.order-field textarea { line-height: 1.45; }
.order-field input:focus, .order-field textarea:focus, .order-cell input:focus, .order-cell textarea:focus, .order-payment-table input:focus, .order-payment-table select:focus { border-color: #77a497; box-shadow: 0 0 0 2px rgba(23,95,76,.08); }
.order-field.overridden { border-color: #e9bd6e; background: #fffaf0; box-shadow: inset 3px 0 0 #edae49; }
.order-field > button { justify-self: start; padding: 0; border: 0; border-bottom: 1px solid #c08a38; color: #9a681e; background: transparent; cursor: pointer; font-size: 8px; }
.order-table-shell { overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.order-label-table, .order-stage-table, .order-payment-table, .order-appendix-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.order-label-table { min-width: 780px; }
.order-label-table th, .order-stage-table th, .order-payment-table th, .order-appendix-table th { padding: 8px; border-right: 1px solid #2e7865; color: rgba(255,255,255,.88); background: var(--accent); text-align: left; text-transform: uppercase; letter-spacing: .055em; font-size: 7px; }
.order-label-table th:nth-child(1) { width: 70px; }
.order-label-table th:nth-child(2), .order-label-table th:nth-child(3), .order-label-table th:nth-child(4) { width: 125px; }
.order-label-table th:nth-child(5), .order-label-table th:nth-child(6) { width: 135px; }
.order-label-table td, .order-stage-table td, .order-payment-table td, .order-appendix-table td { padding: 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); vertical-align: top; }
.order-label-table tr:last-child td, .order-stage-table tr:last-child td, .order-payment-table tr:last-child td, .order-appendix-table tr:last-child td { border-bottom: 0; }
.order-label-code { display: inline-flex; padding: 5px 7px; border-radius: 6px; color: var(--accent); background: #e8f1ed; font-size: 9px; font-weight: 900; }
.order-cell { position: relative; border-radius: 6px; }
.order-cell.overridden { padding: 3px; background: #fff0d2; box-shadow: inset 2px 0 0 #edae49; }
.order-cell input, .order-cell textarea, .order-payment-table input, .order-payment-table select { width: 100%; min-height: 31px; padding: 6px 7px; border: 1px solid transparent; border-radius: 5px; color: var(--ink); background: #fafbf9; outline: none; resize: vertical; font-size: 9px; }
.order-cell textarea { min-height: 63px; line-height: 1.35; }
.order-cell > button { margin-top: 3px; padding: 2px 4px; border: 0; border-radius: 4px; color: #945c0b; background: white; cursor: pointer; font-size: 6px; font-weight: 900; }
.order-stage-table { min-width: 980px; font-size: 9px; }
.order-stage-table th:nth-child(1) { width: 74px; }
.order-stage-table th:nth-child(2) { width: 72px; }
.order-stage-table th:nth-child(3) { width: 220px; }
.order-stage-table th:nth-child(4), .order-stage-table th:nth-child(5) { width: 105px; }
.order-stage-table th:nth-child(6) { width: 72px; }
.order-stage-table th:nth-child(7) { width: 280px; }
.order-payment-table { min-width: 1200px; }
.order-payment-table th:nth-child(1) { width: 74px; }
.order-payment-table th:nth-child(2) { width: 90px; }
.order-payment-table th:nth-child(3) { width: 210px; }
.order-payment-table th:nth-child(4) { width: 150px; }
.order-payment-table th:nth-child(5) { width: 110px; }
.order-payment-table th:nth-child(6) { width: 130px; }
.order-payment-table th:nth-child(7) { width: 125px; }
.order-payment-table th:nth-child(8) { width: 130px; }
.order-payment-table th:last-child { width: 38px; }
.order-appendix-reference { margin-bottom: 12px; padding: 10px 12px; border-left: 3px solid var(--accent); border-radius: 7px; color: #53605a; background: #f1f6f3; font-size: 10px; line-height: 1.45; }
.order-appendix-table { min-width: 1145px; font-size: 9px; }
.order-appendix-table th:nth-child(1) { width: 48px; }
.order-appendix-table th:nth-child(2) { width: 60px; }
.order-appendix-table th:nth-child(3) { width: 230px; }
.order-appendix-table th:nth-child(4) { width: 105px; }
.order-appendix-table th:nth-child(5), .order-appendix-table th:nth-child(6) { width: 350px; }
.order-appendix-table td strong { display: block; font-size: 10px; }
.order-appendix-table td small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
.order-appendix-table td > .order-cell + .order-cell { margin-top: 4px; }
.order-product-copy { white-space: pre-line; line-height: 1.45; }
.order-include-toggle { display: inline-flex; align-items: center; gap: 5px; color: #50605a; font-size: 8px; font-weight: 800; white-space: nowrap; }
.order-include-toggle input { width: 15px; height: 15px; margin: 0; accent-color: var(--accent); cursor: pointer; }
.order-row-excluded { opacity: .48; background: #f4f5f3; }
.order-history-section { max-width: 1500px; margin: 25px auto 0; }
.order-history { display: grid; gap: 8px; }
.order-history-item { display: grid; grid-template-columns: 180px 210px minmax(0, 1fr) 32px; align-items: center; gap: 15px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.order-history-item > div:first-child { display: grid; gap: 3px; }
.order-history-item strong { color: var(--accent); font-size: 11px; }
.order-history-item span { color: var(--muted); font-size: 8px; }
.order-history-totals { display: flex; gap: 12px; font-size: 10px; }
.order-history-item p { margin: 0; overflow: hidden; color: #68716c; font-size: 9px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.order-history-delete { width: 30px; height: 30px; display: grid; place-items: center; padding: 0 0 2px; font-family: Arial, sans-serif; font-size: 16px; line-height: 1; }
.milestone-list { display: grid; gap: 16px; max-width: 1500px; margin: auto; }
.milestone-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 28px rgba(28,40,35,.055); }
.milestone-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--milestone-color) 7%, white); box-shadow: inset 4px 0 0 var(--milestone-color); }
.milestone-identity { display: flex; align-items: center; gap: 11px; min-width: 0; }
.milestone-label { padding: 5px 8px; border-radius: 6px; color: white; background: var(--milestone-color); font-size: 10px; font-weight: 850; letter-spacing: .05em; }
.milestone-title { min-width: 0; }
.milestone-title strong { display: block; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.milestone-title span { color: var(--muted); font-size: 10px; }
.milestone-period { color: #59625d; font-size: 11px; font-weight: 700; white-space: nowrap; }
.milestone-allocation-table { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.milestone-allocation-table th { padding: 9px 12px; background: #f8f9f7; color: #7a827d; text-align: left; text-transform: uppercase; letter-spacing: .06em; font-size: 8px; }
.milestone-allocation-table td { padding: 9px 12px; border-top: 1px solid var(--line); font-size: 11px; }
.allocation-partial { display: inline-flex; margin-left: 5px; padding: 2px 5px; border-radius: 4px; color: #936515; background: #fff1cf; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.milestone-total-row td { background: #f6f8f5; font-weight: 800; }
.milestone-empty { padding: 30px; color: var(--muted); text-align: center; font-size: 12px; }
.resource-legend { max-width: 1500px; margin: 0 auto 12px; display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: 10px; }
.resource-legend span { display: flex; align-items: center; gap: 5px; }
.resource-legend b { font-weight: 500; }
.resource-legend i { width: 10px; height: 10px; border-radius: 3px; }
.resource-legend .load-empty, .workload-thresholds .load-empty { background: #ecefec; }
.resource-legend .load-low { background: #dff2e9; }
.resource-legend .load-medium { background: #fff1cf; }
.resource-legend .load-high { background: #f9dddd; }
.resource-legend strong { margin-left: auto; color: #56605b; }
.workload-thresholds { max-width: 1500px; margin: 0 auto 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: white; color: #626b66; font-size: 10px; }
.workload-thresholds > strong { margin-right: 5px; color: var(--ink); font-size: 11px; }
.workload-thresholds label, .workload-thresholds > span { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.workload-thresholds i { width: 10px; height: 10px; border-radius: 3px; }
.workload-thresholds .load-low { background: #dff2e9; }
.workload-thresholds .load-medium { background: #fff1cf; }
.workload-thresholds .load-high { background: #f9dddd; }
.workload-thresholds input { width: 58px; height: 28px; padding: 4px 6px; border: 1px solid #dbe0db; border-radius: 7px; color: var(--ink); background: #fbfcfa; font-size: 10px; font-weight: 750; text-align: right; outline: none; }
.workload-thresholds input:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }

.user-menu { display: flex; align-items: center; gap: 9px; margin-left: 3px; padding-left: 10px; border-left: 1px solid var(--line); }
.user-menu > span { display: grid; gap: 1px; min-width: 0; text-align: right; }
.user-menu strong { max-width: 130px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.user-menu small { color: var(--muted); font-size: 7px; text-transform: uppercase; letter-spacing: .08em; }

.time-log-layout { max-width: 1500px; margin: auto; display: grid; grid-template-columns: minmax(320px, 430px) minmax(0, 1fr); gap: 14px; align-items: start; }
.time-entry-panel, .time-history-panel { border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 26px rgba(28,40,35,.055); }
.time-entry-panel { position: sticky; top: 84px; padding: 18px; }
.time-panel-title { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.time-panel-title > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: #e8f1ed; font-size: 9px; font-weight: 900; }
.time-panel-title > div { display: grid; gap: 2px; }
.time-panel-title strong { font-size: 13px; }
.time-panel-title small { color: var(--muted); font-size: 8px; }
.time-entry-form { display: grid; gap: 11px; }
.time-entry-form > label, .time-field-row label { display: grid; gap: 5px; color: #66706b; text-transform: uppercase; letter-spacing: .055em; font-size: 8px; font-weight: 800; }
.time-entry-form input, .time-entry-form select, .time-entry-form textarea { width: 100%; min-height: 38px; padding: 8px 9px; border: 1px solid #dce2dd; border-radius: 8px; color: var(--ink); background: #fbfcfa; outline: none; resize: vertical; font-size: 11px; text-transform: none; letter-spacing: 0; }
.time-entry-form input:focus, .time-entry-form select:focus, .time-entry-form textarea:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.time-field-row { display: grid; grid-template-columns: 1fr 120px; gap: 9px; }
.time-form-actions { display: flex; justify-content: flex-end; gap: 7px; }
.time-summary { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.time-summary > div { padding: 16px; border-right: 1px solid var(--line); }
.time-summary > div:last-child { border-right: 0; }
.time-summary span { display: block; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: 8px; font-weight: 800; }
.time-summary strong { display: block; margin-top: 5px; color: var(--accent); font-size: 20px; }
.time-history-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.time-history-head > div { display: grid; gap: 2px; }
.time-history-head strong { font-size: 12px; }
.time-history-head span { color: var(--muted); font-size: 8px; }
.time-history-head .button { padding: 6px 9px; font-size: 9px; }
.time-entry-list { display: grid; max-height: calc(100vh - 280px); overflow: auto; }
.time-entry-card { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.time-entry-card:last-child { border-bottom: 0; }
.time-entry-date { display: grid; gap: 4px; }
.time-entry-date strong { color: #66706b; font-size: 9px; }
.time-entry-date span { color: var(--accent); font-size: 16px; font-weight: 850; }
.time-entry-copy { min-width: 0; }
.time-entry-copy > div { display: flex; align-items: center; gap: 7px; }
.time-entry-copy > div strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.time-entry-copy small { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; }
.time-entry-copy p { margin: 7px 0 0; color: #52605a; font-size: 9px; line-height: 1.45; white-space: pre-line; }
.time-entry-actions { display: flex; gap: 4px; }
.time-entry-actions button { padding: 4px 7px; border: 0; border-radius: 6px; color: #52615b; background: #edf1ee; cursor: pointer; font-size: 8px; font-weight: 750; }
.time-entry-actions button.danger { color: #9b4040; background: #fae7e7; }

.admin-user-list { max-width: 1500px; margin: auto; display: grid; gap: 10px; }
.admin-user-card { padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 6px 20px rgba(28,40,35,.045); }
.admin-user-head { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.admin-user-head > div:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.admin-user-head strong { font-size: 12px; }
.admin-user-head span { color: var(--muted); font-size: 8px; }
.admin-user-head i { margin-left: auto; padding: 4px 7px; border-radius: 5px; color: #8e5353; background: #f8e8e8; font-size: 7px; font-style: normal; font-weight: 850; text-transform: uppercase; }
.admin-user-head i.active { color: #21674d; background: #e2f3ea; }
.admin-user-fields { display: grid; grid-template-columns: 1.2fr 1.5fr 110px 1.2fr; gap: 8px; }
.admin-user-fields label { display: grid; gap: 4px; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; font-size: 7px; font-weight: 800; }
.admin-user-fields input, .admin-user-fields select { width: 100%; height: 34px; padding: 6px 8px; border: 1px solid #dce2dd; border-radius: 7px; color: var(--ink); background: #fafbf9; font-size: 9px; outline: none; text-transform: none; letter-spacing: 0; }
.admin-project-access { margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line); }
.admin-project-access > strong { display: block; margin-bottom: 7px; color: #69726d; text-transform: uppercase; letter-spacing: .05em; font-size: 7px; }
.admin-project-access > div { display: flex; flex-wrap: wrap; gap: 6px; }
.admin-project-check { display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; border: 1px solid #dce2dd; border-radius: 6px; color: #52605a; background: #fafbf9; font-size: 8px; }
.admin-project-check input, .admin-modal-projects input { accent-color: var(--accent); }
.admin-user-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; margin-top: 12px; }
.admin-user-actions .order-include-toggle { margin-right: auto; }
.admin-modal-projects { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; }
.admin-modal-projects > strong { width: 100%; color: #69726d; text-transform: uppercase; letter-spacing: .05em; font-size: 8px; }
.admin-modal-projects label { display: inline-flex; align-items: center; gap: 5px; font-size: 9px; }

.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 20% 10%, #e4f0ea, transparent 38%), #f4f6f3; }
.auth-card { width: min(410px, 100%); padding: 31px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 18px 55px rgba(28,40,35,.12); }
.auth-card img { width: 132px; height: auto; margin-bottom: 26px; }
.auth-card h1 { margin: 6px 0 7px; font-size: 24px; letter-spacing: -.035em; }
.auth-help { margin: 0 0 21px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.auth-form { display: grid; gap: 12px; }
.auth-form label { display: grid; gap: 5px; color: #66706b; text-transform: uppercase; letter-spacing: .055em; font-size: 8px; font-weight: 850; }
.auth-form input { width: 100%; height: 42px; padding: 8px 10px; border: 1px solid #d9e0da; border-radius: 9px; color: var(--ink); background: #fbfcfa; outline: none; font-size: 12px; text-transform: none; letter-spacing: 0; }
.auth-form input:focus { border-color: #77a497; box-shadow: 0 0 0 3px rgba(23,95,76,.08); }
.auth-form .button { height: 42px; margin-top: 3px; }
.auth-error { margin: 0; padding: 8px 10px; border-radius: 7px; color: #963f3f; background: #fae8e8; font-size: 9px; }

@media (max-width: 980px) {
  .time-log-layout { grid-template-columns: 1fr; }
  .time-entry-panel { position: static; }
  .admin-user-fields { grid-template-columns: 1fr 1fr; }
}
.workload-thresholds .workload-save { margin-left: auto; padding: 7px 14px; font-size: 11px; }
.resource-section-title { max-width: 1500px; margin: 0 auto 9px; }
.resource-section-title.weekly { margin-top: 24px; }
.resource-section-title strong { display: block; font-size: 13px; }
.resource-section-title span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.resource-summary-shell { max-width: 1500px; margin: auto; overflow: auto; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 28px rgba(28,40,35,.05); }
.resource-summary-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.resource-summary-table th { padding: 10px 12px; border-bottom: 1px solid var(--line-strong); background: #f6f8f5; color: #737b76; text-align: right; text-transform: uppercase; letter-spacing: .06em; font-size: 9px; }
.resource-summary-table th:first-child { text-align: left; }
.resource-summary-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: right; font-size: 11px; font-variant-numeric: tabular-nums; }
.resource-summary-table tr:last-child td { border-bottom: 0; }
.resource-summary-table td:first-child { text-align: left; }
.resource-summary-table .resource-total { color: var(--accent); background: #f3f8f5; font-weight: 850; }
.resource-table-shell { max-width: 1500px; margin: auto; overflow: auto; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: 0 8px 28px rgba(28,40,35,.06); }
.resource-table { border-collapse: separate; border-spacing: 0; min-width: 100%; }
.resource-table th, .resource-table td { min-width: 82px; height: 68px; padding: 7px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.resource-table th { position: sticky; top: 0; z-index: 3; background: #f6f8f5; color: #68716c; font-size: 9px; }
.resource-table th span { display: block; margin-top: 3px; color: #929994; font-weight: 500; }
.resource-table .resource-name { position: sticky; left: 0; z-index: 2; min-width: 170px; max-width: 170px; background: white; text-align: left; box-shadow: 1px 0 0 var(--line); }
.resource-table thead .resource-name { z-index: 4; background: #f6f8f5; }
.resource-person { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 750; }
.load-cell { font-variant-numeric: tabular-nums; }
.load-value { min-height: 25px; }
.load-cell strong { display: block; font-size: 11px; }
.load-cell span { color: #68716c; font-size: 8px; }
.load-cell.load-empty { color: #a3aaa6; background: #fafbf9; }
.load-cell.load-low { background: #edf8f2; }
.load-cell.load-medium { background: #fff6df; }
.load-cell.load-high { color: #8f3434; background: #fce8e8; }
.resource-capacity-editor { display: flex; align-items: center; gap: 4px; margin-top: 7px; color: var(--muted); font-size: 8px; font-weight: 650; }
.resource-capacity-editor input, .capacity-override input { border: 1px solid rgba(110,123,116,.24); border-radius: 5px; color: var(--ink); background: rgba(255,255,255,.76); font-variant-numeric: tabular-nums; text-align: right; outline: none; }
.resource-capacity-editor input { width: 48px; height: 22px; padding: 2px 4px; font-size: 9px; }
.capacity-override { display: flex; align-items: center; justify-content: center; gap: 3px; margin-top: 3px; }
.capacity-override span { color: #8b938e; font-size: 7px; font-weight: 750; text-transform: uppercase; }
.capacity-override input { width: 39px; height: 19px; padding: 1px 3px; font-size: 8px; }
.resource-capacity-editor input:focus, .capacity-override input:focus { border-color: #77a497; background: white; box-shadow: 0 0 0 2px rgba(23,95,76,.08); }
.table-assignees { width: 100%; border: 0; padding: 6px 7px; overflow: hidden; color: #4f5954; background: transparent; cursor: pointer; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.table-assignees:hover { border-radius: 7px; background: #edf2ef; }

@media (max-width: 700px) {
  :root { --week-width: 118px; --group-width: 184px; }
  .topbar { padding: 0 12px; gap: 8px; }
  .top-actions .ghost { display: none; }
  .project-tabs-bar { padding-left: 8px; padding-right: 8px; }
  .project-tab { max-width: 145px; padding: 0 10px; }
  .project-picker-panel { width: min(310px, calc(100vw - 16px)); right: -2px; }
  .dialog.hint-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); }
  .help-header { min-height: 80px; padding: 17px 18px 14px; }
  .help-header h2 { font-size: 20px; }
  .help-layout { min-height: 0; max-height: calc(100vh - 160px); grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .help-nav { display: flex; gap: 5px; padding: 8px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .help-nav button { width: auto; min-width: max-content; min-height: 38px; grid-template-columns: 24px max-content; padding: 5px 8px; }
  .help-nav button > span { width: 24px; height: 24px; }
  .help-content { padding: 20px 17px 24px; }
  .help-content h3 { font-size: 19px; }
  .help-intro { margin-bottom: 16px; font-size: 11px; }
  .help-action { grid-template-columns: 1fr; gap: 4px; padding: 11px 12px; }
  .help-note { grid-template-columns: 1fr; gap: 4px; }
  .help-footer { min-height: 58px; padding: 9px 12px; }
  .help-footer > span { display: none; }
  .help-footer .button { margin-left: auto; }
  .export-section-options { grid-template-columns: 1fr; }
  .view-button { padding: 7px 8px; }
  .brand-divider, .product-name { display: none; }
  .devneed-logo { height: 28px; }
  .report-cards { grid-template-columns: 1fr; }
  #deliverablesView .report-cards { grid-template-columns: 1fr; }
  .deliverable-controls { width: 100%; }
  .deliverable-controls label { flex: 1; }
  .deliverable-controls select { width: 100%; }
  .deliverable-label-note { width: 100%; max-width: none; }
  .order-heading { align-items: flex-start; flex-direction: column; }
  .order-toolbar label, .order-toolbar .order-draft-name { width: 100%; flex: none; }
  .order-toolbar select, .order-toolbar input { width: 100%; }
  .order-status-strip { align-items: flex-start; flex-direction: column; gap: 7px; }
  .order-status-strip .mini-link { margin-left: 0; }
  .order-metrics { grid-template-columns: 1fr 1fr; }
  .order-finance-head { flex-direction: column; }
  .finance-kpis { grid-template-columns: 1fr 1fr; }
  .finance-kpis > div:nth-child(2) { border-right: 0; }
  .finance-kpis > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .finance-opening { align-items: flex-start; flex-direction: column; }
  .finance-opening b { margin-left: 0; }
  .finance-grid { grid-template-columns: 1fr; padding-left: 12px; padding-right: 12px; }
  .finance-cashflow { padding-left: 12px; padding-right: 12px; }
  .order-form-section, .order-paper-title { padding: 18px; }
  .order-field-grid, .order-long-fields { grid-template-columns: 1fr; }
  .order-long-fields .order-field:last-child { grid-column: auto; }
  .order-section-title { align-items: flex-start; flex-wrap: wrap; }
  .order-section-actions { width: 100%; margin-left: 39px; }
  .order-history-item { grid-template-columns: 1fr; gap: 7px; }
  .order-history-item p { white-space: normal; }
  .dialog.task-dialog { width: calc(100vw - 16px); max-height: calc(100vh - 16px); padding: 16px; }
  .task-editor-columns { grid-template-columns: 1fr; }
  .task-status-picker > div { grid-template-columns: 1fr 1fr; }
  .task-editor-hero { grid-template-columns: 1fr; }
  .task-editor-id { justify-self: start; }
  .task-product-create { flex-wrap: wrap; }
  .task-product-create > input:not([type="checkbox"]) { flex-basis: 100%; }
  .task-deliverables-grid { grid-template-columns: 1fr; }
  .deliverable-summary-card { grid-template-columns: 1fr; }
  .deliverable-summary-title { padding-right: 0; padding-bottom: 8px; border-right: 0; border-bottom: 1px solid var(--line); }
  .workspace.sidebar-open .timeline { width: 100%; }
  .workspace.sidebar-open .view-panel { width: 100%; padding-right: 205px; }
  .label-sidebar { width: 190px; box-shadow: -12px 0 30px rgba(24,32,29,.14); }
  .week-cell { padding-left: 11px; }
}
