@font-face {
  font-family: Inter;
  src: url("fonts/Inter.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
.pbf-clipboard-tools { display:flex; align-items:center; gap:4px; border-left:1px solid var(--line); padding-left:8px; }
.plan-row[data-cut] .outline-cell,.plan-row[data-cut] .gantt-cell,.plan-row:not([data-cut]) [data-bar-entry][data-cut],.plan-row:not([data-cut]) .pbf-combined-entry[data-cut] { filter:grayscale(1); opacity:.65; }
.pbf-clipboard-preview { max-width:min(920px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; color:var(--text); background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.pbf-clipboard-preview fieldset { display:flex; flex-wrap:wrap; gap:12px; }
.pbf-clipboard-preview label { display:flex; flex-direction:column; gap:4px; }
.pbf-clipboard-preview table { border-collapse:collapse; margin-block:12px; }
.pbf-clipboard-preview th,.pbf-clipboard-preview td { padding:6px 12px; border:1px solid var(--line); text-align:left; overflow-wrap:anywhere; }
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Courier Prime";
  src: url("fonts/CourierPrime-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  color-scheme: light;
  --background: #fff;
  --surface: #f4f4f4;
  --field: #e7e7e7;
  --line: #cfcfcf;
  --axis-major: #767676;
  --clock-change: #686868;
  --text: #000;
  --muted: #5c5c5c;
  --focus: #3868c2;
  --selection: #d8e9ff;
  --selection-text: #000;
  --object-selection: #293b55;
  --danger: #9b1616;
  --outline: clamp(220px, 31vw, 420px);
  --unit: 36px;
  --axis: 864px;
  font: 14px/1.4 Inter, system-ui, sans-serif;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --background: #000;
  --surface: #111;
  --field: #222;
  --line: #383838;
  --axis-major: #777;
  --clock-change: #B8B8B8;
  --text: #fff;
  --muted: #a8a8a8;
  --focus: #8bb8ff;
  --selection: #293b55;
  --selection-text: #fff;
  --object-selection: #d8e9ff;
  --danger: #ff8383;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
.pbf-visually-hidden {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pbf-selection-summary {color:var(--muted);font-size:12px}
body {
  min-width: 320px;
  height: 100dvh;
  min-height: 380px;
  margin: 0;
  padding: 8px;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 2px;
  background: var(--background);
  color: var(--text);
}
button, input, select { font: inherit; color: inherit; }
button {
  cursor: pointer;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid #777;
  border-radius: 5px;
  background: var(--field);
}
button:disabled, select:disabled { opacity: .5; cursor: default; }
button[aria-pressed="true"] { border-color: var(--focus); background: var(--selection); color: var(--selection-text); }
:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.project-header, .controls, footer, aside { background: var(--surface); }
.project-header { min-height: 83px; display: flex; gap: 24px; align-items: center; padding: 12px 14px; }
.brand { color: var(--text); text-decoration: none; white-space: nowrap; font-size: 18px; }
.brand strong { font-weight: 700; }
.project-logo {position:relative;flex:none;display:grid;align-content:center}
.project-logo-trigger {display:grid;place-items:center;border:0;background:none;padding:0;color:inherit;font:inherit;min-height:48px}
.project-logo-trigger:not(:disabled) {cursor:pointer}
.project-logo-trigger:focus-visible {outline:2px solid var(--focus);outline-offset:3px}
#project-logo-image {display:block;width:116px;height:58px;object-fit:contain;margin-inline-end:16px}
.project-logo-remove {position:absolute;inset-block-start:0;inset-inline-end:1px;width:16px;height:16px;min-height:16px;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 13px/1 Inter,sans-serif}
.project-logo-remove:hover {background:var(--field)}
#project-logo-feedback {max-width:148px;color:var(--danger);font:400 11px/1.3 Inter,sans-serif;white-space:normal}
.project-header[data-compact] .project-logo-trigger {min-height:33.12px}
.project-header[data-compact] #project-logo-image {width:80.04px;height:40.02px}
.brand.pbf-wordmark {display:inline-flex;align-items:baseline;gap:.6em;font-family:"Courier Prime",monospace;font-weight:400;font-style:normal;font-kerning:none;font-variant-ligatures:none;line-height:1.25;letter-spacing:0;border-inline-end:1px solid var(--line);padding-inline-end:16px}
.pbf-wordmark-product {display:inline-block;color:#527FA5}
@media (forced-colors:active) {.brand.pbf-wordmark,.pbf-wordmark-product {color:CanvasText}}
h1 { margin: 0; font: 400 clamp(18px, 3vw, 30px)/1.2 "Courier Prime", "Courier New", monospace; }
.project-details { min-width: 0; }
.project-title-trigger, .project-title-input {
  min-height: 0;
  max-width: 100%;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: transparent;
  text-align: start;
}
.project-title-trigger { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.project-title-input { width: min(24em, 60vw); box-shadow: inset 0 -1px var(--focus); }
.project-title-trigger:hover { box-shadow: inset 0 -1px var(--focus); }
.project-title-trigger[data-placeholder], .project-title-input::placeholder { color: var(--muted); }
.project-dates { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 5px; }
.project-dates label { display: flex; flex-wrap: wrap; align-items: center; gap: 3px 5px; font-size: 12px; }
.project-dates input {
  min-height: 26px;
  min-width: 0;
  max-width: 100%;
  border: 1px solid #777;
  border-radius: 5px;
  padding: 2px 5px;
  background: var(--field);
}
.project-dates input[aria-invalid="true"] { border-color: var(--danger); }
#project-date-error { color: var(--danger); }
.project-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
#plan-choice {
  min-height: 30px;
  max-width: min(23ch, 50vw);
  border: 1px solid #777;
  border-radius: 5px;
  padding: 4px 6px;
  background: var(--field);
}
#project-time, footer, .secondary { color: var(--muted); }
.controls, footer { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; align-items: center; }
.right-controls { display: flex; gap: 5px; flex-wrap: wrap; justify-content: flex-end; }
.workspace { min-width: 0; display: flex; gap: 2px; }
.plan-scroll { min-width: 0; flex: 1; overflow: auto; border: 1px solid var(--line); }
.plan-grid { --plan-row-height:48px; display: grid; grid-template-columns: var(--outline) minmax(var(--axis), 1fr); width: max(100%, calc(var(--outline) + var(--axis))); }
.plan-rows, .plan-row { display: contents; }
.pane-heading { min-height: 45px; position: sticky; top: 0; z-index: 2; background: var(--surface); border-bottom: 2px solid var(--line); }
.outline-heading, .outline-cell { display: grid; grid-template-columns: 66px minmax(0, 1fr); align-items: center; border-right: 2px solid var(--line); padding-inline: 8px; }
.outline-heading { position: sticky; left: 0; z-index: 4; font-weight: 600; }
.timeline, .gantt-cell { display: grid; grid-template-columns: repeat(var(--slots, 24), var(--unit)); }
.timeline span { padding: 6px 4px; font-size: 11px; border-left: 1px solid var(--line); white-space: nowrap; overflow: hidden; }
.outline-cell, .gantt-cell { height:var(--plan-row-height); min-height:var(--plan-row-height); border-bottom: 1px solid var(--line); }
.outline-cell { background: var(--background); position: sticky; left: 0; z-index: 1; }
.outline-cell.group, .gantt-cell.group { background-color: var(--surface); font-weight: 700; }
.outline-cell { padding-inline-start: 30px; padding-inline-end: 22px; grid-template-columns: 48px minmax(0, 1fr); }
.outline-heading { padding-inline-start: 30px; grid-template-columns: 48px minmax(0, 1fr); }
.row-grip { position: absolute; inset-inline-start: 0; inset-block: 0; width: 22px; min-height: 0; padding: 0; border: 0; border-radius: 0; background: inherit; opacity: 0; pointer-events: none; display: grid; place-items: center; }
.row-grip::after { content: ""; width: 3px; height: 3px; background: currentColor; box-shadow: 0 -5px currentColor, 0 5px currentColor; opacity: .76; }
.outline-cell:is(:hover,:focus-within,[data-row-holding],[data-row-moving]) .row-grip, .row-grip[aria-expanded="true"] { opacity: 1; pointer-events: auto; }
.group-title-line { display: flex; align-items: center; gap: 2px; }
.group-title-line .outline-title { font-weight: 700; }
.fold-toggle { flex: 0 0 16px; min-height: 24px; padding: 0; border: 0; background: transparent; color: inherit; }
.group-readonly { color: var(--muted); overflow-wrap: anywhere; }
.row-popup { position: fixed; inset: auto; width: max-content; min-width: 166px; max-width: calc(100vw - 12px); max-height: calc(100dvh - 12px); overflow: auto; margin: 0; padding: 4px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--text); box-shadow: 0 4px 18px rgb(0 0 0 / 23%); }
.row-popup-heading { padding: 4px 7px; color: var(--muted); font-size: 11px; }
.row-popup button { display: block; width: 100%; padding: 5px 8px; border: 0; border-radius: 3px; background: transparent; text-align: start; font-size: 12px; }
.row-popup button:enabled:is(:hover,:focus-visible) { background: var(--field); }
.gantt-group { position: absolute; inset-inline-start: var(--start); width: var(--duration); min-width: 10px; height: 36px; display: flex; gap: 4px; align-items: center; padding: 2px 6px; background: #808080; color: #fff; clip-path: polygon(7px 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 0 100%, 0 7px); }
.group-bar-toggle { min-height: 0; padding: 0; border: 0; background: transparent; color: inherit; }
.fold-toggle, .group-bar-toggle { display: grid; place-items: center; flex-shrink: 0; width: 18px; min-height: 24px; border-radius: 3px; }
.fold-toggle::after, .group-bar-toggle::after { content: ""; width: 8px; height: 9px; opacity: .77; background: currentColor; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.fold-toggle[aria-expanded="true"]::after, .group-bar-toggle[aria-expanded="true"]::after { transform: rotate(90deg); }
.fold-toggle:hover, .group-bar-toggle:hover { background: color-mix(in srgb, currentColor 16%, transparent); }
.group-caption { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.group-preview { position: absolute; inset-inline: 3px; bottom: 2px; height: 9px; pointer-events: none; }
.group-preview span { position: absolute; height: 3px; border: 1px solid currentColor; opacity: .7; }
@media (any-pointer: coarse) { .row-grip { opacity: 1; pointer-events: auto; } }
.plan-row[data-selected] > * { box-shadow: inset 0 1px var(--muted), inset 0 -1px var(--muted); }
.plan-row[data-selected] .outline-cell::before, .plan-row[data-selected] .outline-cell::after { content: ""; position: absolute; inset-inline: 0; height: 1px; background: var(--muted); z-index: 10; pointer-events: none; }
.plan-row[data-selected] .outline-cell::before { top: 0; }
.plan-row[data-selected] .outline-cell::after { bottom: 0; }
.plan-row[data-selected] .gantt-bar { box-shadow: 0 0 7px 2px var(--object-selection); }
.pos { color: var(--muted); font-variant-numeric: tabular-nums; }
.outline-title, .inspector-title { display: block; width: 100%; border: 0; background: transparent; padding: 2px 0; text-overflow: ellipsis; }
.outline-title:hover, .outline-title:focus, .inspector-title:focus { box-shadow: inset 0 -1px var(--focus); }
.outline-title:disabled, .inspector-title:disabled { opacity: .7; }
.secondary { display: block; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gantt-cell { position: relative; align-items: center; background-image: repeating-linear-gradient(to right, transparent 0 calc(var(--unit) - 1px), var(--line) calc(var(--unit) - 1px) var(--unit)); }
/* Timed shapes retain their true time geometry beneath the minimum drawing width. */
.gantt-bar { position: absolute; inset-inline-start: var(--start); width: var(--duration); top:2.5px; height:calc(var(--plan-row-height) - 5px); border: 1px solid var(--text); border-radius: 4px; background: #808080; color: #fff; display: flex; align-items: center; touch-action: none; user-select: none; cursor: grab; }
.gantt-bar[data-grip-size="small"] { border-radius: 4px; }
.gantt-bar.dynamic {border-radius:0;border-inline:3px solid var(--text);border-block-color:transparent;cursor:default}
.time-computed {cursor:default}
.time-status-note {display:block;color:#FF2020;font-size:10px;line-height:1.15;white-space:normal}
.time-status-note[hidden] {display:none}
.gantt-bar.time-conflict {border-color:#FF2020}
.gantt-group.time-conflict {box-shadow:inset 0 0 0 2px #FF2020}
.gantt-group {cursor:grab;touch-action:none}
.gantt-group[data-group-moving] {cursor:grabbing;opacity:.45}
.gantt-group.pbf-group-shift-ghost {pointer-events:none;opacity:.7;z-index:5}
.gantt-bar[data-row-moving] {opacity:.6;cursor:grabbing}
.gantt-cell[data-group-drop]::after {content:"";position:absolute;inset-inline:0;height:2px;background:var(--focus);z-index:12;pointer-events:none}
.gantt-cell[data-group-drop="before"]::after {top:0}
.gantt-cell[data-group-drop="after"]::after {bottom:0}
.gantt-cell[data-group-drop="inside"]::after {inset:2px;height:auto;border:2px solid var(--focus);background:transparent}
.pbf-entry-drop-preview {position:absolute;inset-inline-start:var(--start);width:var(--duration);top:4px;bottom:4px;z-index:13;overflow:hidden;pointer-events:none;border:1px dashed var(--focus);border-radius:4px;background:var(--cat-strong,#808080);color:var(--text);opacity:.65;padding-inline:6px;white-space:nowrap}
.dynamic-setting {display:flex;align-items:center;gap:6px;margin-block:8px}
.dynamic-setting input {width:16px;height:16px;accent-color:var(--focus)}
.dynamic-setting:has(input:disabled) {color:var(--muted);opacity:.5;cursor:default}
.gantt-caption { position: absolute; left: 50%; transform: translateX(-50%); width: calc(100% - 12px); font-size: 14px; overflow: hidden; pointer-events: none; }
.gantt-caption :is(button,input) { pointer-events: auto; }
.gantt-caption:has(input) { overflow: visible; width: max(100%, 24ch) !important; max-width: calc(100vw - 32px); z-index: 5; background: var(--field); color: var(--text); }
.gantt-caption-title { display: flex; justify-content: center; align-items: baseline; gap: 3px; white-space: nowrap; }
.gantt-title, .gantt-outside-title, .gantt-title-marker { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; font-weight: 500; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gantt-title { max-width: 100%; min-width: 0; }
:is(.gantt-title,.gantt-outside-title,.gantt-title-marker):hover { text-decoration: underline; }
.gantt-title-input { width: 25ch; max-width: calc(100vw - 32px); border: 0; padding: 0; background: var(--field); color: var(--text); font: inherit; pointer-events: auto; }
.gantt-bar > .gantt-title-input { position: absolute; left: 0; z-index: 7; }
.gantt-duration { display: inline-flex; gap: 2px; flex-shrink: 0; font-size: 12px; }
.gantt-meta { display: flex; justify-content: space-between; gap: 5px; font-size: 11px; opacity: .8; }
.gantt-meta .temporal-field { min-width: 0; max-width: 50%; overflow: hidden; }
.gantt-meta .time-trigger { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.gantt-meta .temporal-field:has(input) { overflow: visible; position: relative; z-index: 5; }
.gantt-outside-title, .gantt-title-marker { position: absolute; z-index: 2; padding: 2px 4px; background: #808080; color: #fff; font-size: 14px; border-radius: 2px; }
.gantt-title-marker { left: 50%; transform: translateX(-50%); padding-inline: 1px; min-width: 14px; }
.gantt-point-time { position: absolute; color: var(--text); font-size: 11px; overflow: hidden; white-space: nowrap; }
.gantt-point-time .time-trigger { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.gantt-point-time:has(input) { overflow: visible; z-index: 7; }
.gantt-bar.undated { inset-inline-start: 0; width: 100%; }
.gantt-bar.undated .gantt-caption { position: sticky; inset-inline-start: calc(var(--outline) + 5px); width: max-content; max-width: 50vw; transform: none; padding: 0 8px; overflow: visible; }
.gantt-bar.milestone { top:0; width:calc(var(--plan-row-height) - 1px); height:calc(var(--plan-row-height) - 1px); min-width:calc(var(--plan-row-height) - 1px); border: 0; border-radius: 0; transform: translateX(-50%); background: transparent; }
.gantt-bar.milestone::before { content: ""; position: absolute; inset: 0; background: #808080; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.plan-row[data-selected] .gantt-bar.milestone { box-shadow: none; }
.plan-row[data-selected] .gantt-bar.milestone::before { filter: drop-shadow(0 0 5px var(--object-selection)); }
.time-catch { position: absolute; top: 0; bottom: 0; width: var(--grip-extension, 0px); cursor: ew-resize; }
.time-catch.start { right: calc(100% + 1px); } .time-catch.end { left: calc(100% + 1px); }
.milestone .time-catch.start { right: 100%; } .milestone .time-catch.end { left: 100%; }
.time-grip { position: absolute; top: 50%; z-index: 3; width: 7px; height: 7px; border-top: 1.6px solid currentColor; border-right: 1.6px solid currentColor; opacity: 0; cursor: ew-resize; }
.time-grip.start { left: 4px; transform: translateY(-50%) rotate(-135deg); }
.time-grip.end { right: 4px; transform: translateY(-50%) rotate(45deg); }
[data-grip-size="medium"] .time-grip { width: 5px; height: 5px; border-width: 1.3px; }
[data-grip-size="small"] .time-grip { width: 3px; height: 3px; border-width: 1px; }
[data-grip-size="small"] .time-grip.start { left: 1px; }
[data-grip-size="small"] .time-grip.end { right: 1px; }
.gantt-bar:is(:hover,:focus-within,[data-dragging]) .time-grip { opacity: 1; }
.pbf-connection-mode :is(.time-grip,.time-catch) {visibility:hidden;pointer-events:none;cursor:default}
.gantt-bar[data-dragging="move"] { cursor: grabbing; }
.gantt-bar:is([data-dragging="start"],[data-dragging="end"]) { cursor: ew-resize; }
.version-link { min-height: 0; padding: 0; border: 0; background: transparent; color: inherit; text-decoration: underline; }
.pbf-footer-links {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;min-width:0}
.pbf-footer-links a {color:inherit;text-underline-offset:3px}
.pbf-footer-wordmark {display:inline-flex;align-items:baseline;gap:.6em;font-kerning:none;font-variant-ligatures:none;line-height:1.25;font-family:"Courier Prime",monospace;font-weight:400;font-style:normal;letter-spacing:0;white-space:nowrap;color:var(--text)}
.pbf-footer-wordmark > span {display:inline-block;color:#527FA5;word-spacing:normal}
:root[data-theme="dark"] .pbf-footer-wordmark > span {background:linear-gradient(to right,#E5FF00 0%,#527FA5 65%,#527FA5 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
@media(forced-colors:active) {.pbf-footer-wordmark > span,:root[data-theme="dark"] .pbf-footer-wordmark > span {background:none;color:CanvasText}}
aside { width: clamp(175px, 22vw, 320px); padding: 10px; overflow: auto; }
aside h2 { margin: 0 0 10px; font-size: 14px; }
.inspector-title { background: var(--field); padding: 6px; }
.detail-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.detail-fields > div:last-child { grid-column: 1 / -1; }
.detail-fields dt { color: var(--muted); font-size: 11px; }
.detail-fields dd { margin: 2px 0 0; padding: 4px 6px; border-radius: 3px; background: var(--field); font-size: 12px; font-variant-numeric: tabular-nums; }
.detail-fields > div, .detail-fields dd { min-width: 0; }
.detail-fields .temporal-field { display: block; width: 100%; }
.detail-fields .time-trigger { display: block; width: 100%; white-space: normal; }
.detail-fields .time-date, .detail-fields .time-clock { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.detail-fields .temporal-input { width: 100%; min-width: 0; max-width: 100%; }
.temporal-field { display: inline-block; min-width: 0; position:relative; }
.temporal-field[data-editing-part="date"] .time-date,.temporal-field[data-editing-part="clock"] .time-clock {visibility:hidden}
.temporal-field .temporal-part-input {position:absolute;max-width:none;min-width:0;z-index:1;color:inherit;line-height:inherit}
.pbf-col-start:has(.temporal-input),.pbf-col-end:has(.temporal-input) {overflow:visible;z-index:3}
.time-trigger { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; text-align: start; white-space: nowrap; }
.time-trigger:hover { text-decoration: underline; }
.time-trigger.time-computed:hover {text-decoration:none}
.temporal-input { width: 23ch; max-width: min(23ch, 100vw - 24px); min-height: 0; padding: 0; border: 0; border-radius: 0; background: var(--field); box-shadow: inset 0 -1px var(--focus); font: inherit; }
.entry-title-line { display: flex; align-items: baseline; gap: 5px; }
.entry-title-line .outline-title { min-width: 0; flex: 1; }
.entry-title-line .duration-field { font-size: 11px; font-style: italic; color: var(--muted); }
.entry-times { display: flex; gap: 4px; overflow: visible; }
.time-choice { max-width: min(35em, calc(100vw - 24px)); padding: 20px; background: var(--surface); color: var(--text); border: 1px solid var(--muted); border-radius: 5px; }
.time-choice h2 { font-size: 15px; margin-top: 0; }
.time-choice button { display: block; width: 100%; margin-top: 8px; text-align: start; }
.corrected > * { animation: time-correction .4s ease-out; }
@keyframes time-correction { from { background-color: var(--selection); } }
@media (prefers-reduced-motion: reduce) { .corrected > * { animation: none; } }
#feedback.error { color: var(--danger); }
@media (max-width: 600px) {
  :root { --outline: 185px; }
  .project-header { gap: 12px; }
  .outline-heading, .outline-cell { grid-template-columns: 42px minmax(0, 1fr); }
}

/* Toolbar geometry and symbols follow the approved desktop reference. */
/* Data columns and field controls use the same neutral surfaces and icon scale. */
.pbf-category-surface {--cat-soft:var(--cat-soft-light)}
.workspace {position:relative}
.pbf-pane-divider {position:absolute;top:0;bottom:0;width:9px;transform:translateX(-4px);cursor:col-resize;z-index:8;touch-action:none}
.pbf-pane-divider::after {content:"";position:absolute;left:4px;top:0;bottom:0;border-left:1px solid var(--line)}
.pbf-pane-divider:is(:hover,:focus-visible)::after {border-color:var(--focus)}
:root[data-theme="dark"] .pbf-category-surface {--cat-soft:var(--cat-soft-dark)}
.outline-heading,.outline-cell {display:block;padding:0 22px;overflow:hidden}
.pane-heading {height:64px;min-height:64px}
.timeline {align-items:stretch}.timeline > span {display:flex;align-items:flex-end}
.outline-cell.pbf-category-surface {height:var(--plan-row-height);background:var(--cat-soft,var(--background));color:var(--text)}
.plan-grid[data-row-layout="single"] {--plan-row-height:28px}
.pbf-column-track {display:grid;align-items:stretch;column-gap:3px;width:var(--columns-width);height:100%;transform:translateX(calc(-1 * var(--outline-scroll,0px)));position:relative}
.pbf-outline-column {display:flex;align-items:center;min-width:0;padding:0 4px;position:relative;overflow:hidden;font-size:12px;border-inline-end:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.pbf-outline-column.pbf-collapsed-column {padding:0;border:0}
.pbf-col-pos {display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding-inline:1px;font-variant-numeric:tabular-nums;overflow:visible;z-index:1}
.pbf-col-pos .pos {font-size:11px;max-width:none;white-space:nowrap;position:relative;z-index:2}
.pbf-col-title {display:flex;flex-direction:column;align-items:stretch;justify-content:center;overflow:visible}
.pbf-title-first-line {display:flex;align-items:center;gap:2px;min-width:0;height:24px}
.pbf-title-first-line .outline-title {width:0;flex:1;min-width:0;margin:0;padding:0;border:0;background:transparent;color:inherit;font-size:13px;line-height:22px}
.pbf-title-first-line .fold-toggle {width:12px;flex-basis:12px;min-height:20px;color:inherit}
.pbf-title-first-line .pbf-assignment-symbol {width:18px;flex:0 0 18px}
.pbf-title-second-line {display:flex;align-items:center;gap:5px;height:20px;min-width:0;white-space:nowrap;overflow:hidden}
.pbf-title-second-line .temporal-field,.pbf-title-second-line .time-trigger {font-size:9px;min-height:16px;line-height:16px}
.pbf-title-second-line .duration-field {font-style:italic}
.pbf-title-second-line .time-date::after {content:" "}
.pbf-title-second-line .pbf-group-value {font-size:9px}
.pbf-col-start .time-date,.pbf-col-end .time-date,.pbf-col-start .time-clock,.pbf-col-end .time-clock {display:block}
.plan-grid[data-row-layout="single"] :is(.pbf-col-start,.pbf-col-end) .time-date {font-size:8px}
.pbf-col-duration {font-style:italic}
.pbf-title-second-line .pbf-assignment-category {font-size:9px;padding:0 3px;min-height:14px;line-height:14px}
.pbf-title-second-line .time-trigger {display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pbf-title-second-line > .pbf-group-value {min-width:0;overflow:hidden;text-overflow:ellipsis}
.pbf-title-second-line > .temporal-field:has(.temporal-input) {flex:0 0 auto}
.pbf-title-second-line .temporal-input {position:relative;z-index:1;background:var(--cat-soft,var(--background))}
.pbf-highlighted-cell .pbf-title-second-line .temporal-input {background:var(--cat-strong)}
.pbf-title-second-line:has(.temporal-input) {overflow:visible}
.pbf-col-start,.pbf-col-end {justify-content:center;text-align:center}
.pbf-col-duration,.pbf-col-number {justify-content:flex-end;text-align:right;font-variant-numeric:tabular-nums}
.pbf-col-checkbox,.pbf-col-icon,.pbf-col-symbol,.pbf-col-trafficlight,.pbf-col-note {justify-content:center}
.pbf-col-uid {font-size:10px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.pbf-group-value {font-size:10px;color:inherit;opacity:.7;white-space:nowrap}
.outline-cell.pbf-root-group {background:var(--cat-strong);color:var(--cat-on-strong)}
.pbf-root-group :is(input,button,.secondary,.time-trigger) {color:inherit}
.pbf-root-group .pos,.pbf-highlighted-cell .pos {color:inherit}
.pbf-col-pos.pbf-highlighted-cell::after {content:"";position:absolute;left:100%;top:0;bottom:0;width:3px;background:var(--cat-strong)}
.pbf-highlighted-cell {background:var(--cat-strong);color:var(--cat-on-strong)}
.outline-cell .row-grip {inset-inline-start:0;inset-inline-end:auto;inline-size:22px;z-index:3;background:inherit}
.pbf-row-end-controls {position:absolute;inset-inline-end:0;inset-block:0;width:22px;z-index:4;background:var(--surface)}
.pbf-row-end-controls {background:inherit}
.pbf-row-jump {position:relative;width:22px;height:100%;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;opacity:0}
.outline-cell:is(:hover,:focus-within) .pbf-row-jump {opacity:1}
.pbf-row-jump::before,.pbf-row-jump::after {content:"";position:absolute;width:7px;height:7px;top:50%;left:50%;border-top:1.7px solid currentColor;border-right:1.7px solid currentColor;transform:translate(calc(-50% + var(--chevron-x)),-50%) rotate(var(--chevron-angle,45deg));pointer-events:none}
.pbf-row-jump::before {--chevron-x:-3px}.pbf-row-jump::after {--chevron-x:2px}.pbf-row-jump[data-direction="left"] {--chevron-angle:-135deg}
.pbf-column-plus {position:absolute;inset-inline-start:0;inset-block-end:0;width:22px;min-height:25px;border:0;border-radius:0;background:var(--surface);font-size:18px;z-index:4;padding:0}
.pbf-column-head {position:relative;display:flex;align-items:flex-end;min-width:0}
.pbf-column-head[data-angled] .pbf-column-caption {position:absolute;inset-inline-start:var(--angle-inset);bottom:4px;inline-size:var(--angle-length);height:16px;min-height:16px;padding:0;line-height:16px;transform:rotate(-45deg);transform-origin:left center;text-align:start}
.pbf-column-head[data-angled] .pbf-column-sort {position:absolute;right:2px;bottom:0}
.pbf-head-rules {position:absolute;inset:0;pointer-events:none;overflow:visible;color:var(--line);grid-area:1/1}
.pbf-head-rules path {fill:none;stroke:currentColor;stroke-width:1}
.pbf-column-caption,.pbf-column-sort {border:0;border-radius:0;background:transparent;min-height:22px;padding:0 2px;font-size:11px;line-height:18px;color:inherit}
.pbf-column-caption {margin-inline-start:var(--caption-inset,0px);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:start;cursor:grab}
.pbf-column-caption[data-moving] {color:var(--focus);cursor:grabbing}
.pbf-column-sort {width:12px;flex:0 0 12px;opacity:0}
[data-column-kind="pos"] .pbf-column-sort {width:9px;flex-basis:9px;font-size:10px}
.pbf-column-head:is(:hover,:focus-within) .pbf-column-sort,.pbf-column-sort[aria-pressed="true"] {opacity:1}
.pbf-column-resize {position:absolute;inset-inline-end:-4px;inset-block:0;width:9px;border:0;border-radius:0;min-height:0;background:transparent;cursor:col-resize;padding:0;z-index:3}
.pbf-column-resize:is(:hover,:focus-visible)::before {content:"";position:absolute;inset-inline-start:4px;inset-block:0;border-inline-start:1px solid var(--focus)}
.pbf-column-resize[data-slanted] {inset-inline-end:calc(-1 * var(--head-height,56px) - 4px);width:calc(var(--head-height,56px) + 8px);clip-path:polygon(0 100%,8px 100%,100% 0,calc(100% - 8px) 0)}
.pbf-column-resize[data-slanted]:is(:hover,:focus-visible)::before {left:4px;top:auto;bottom:0;width:var(--head-diagonal,79.2px);height:1px;border:0;background:var(--focus);transform:rotate(-45deg);transform-origin:left center}
.pbf-column-hidden {position:relative;margin-inline:2px}
.pbf-column-hidden::before {content:"";position:absolute;inset-inline:0;bottom:0;height:12px;border-inline:1px solid var(--line)}
.pbf-hidden-marker {position:absolute;inset:0;min-height:0;border:0;border-radius:0;padding:0;background:transparent;font-size:11px;line-height:12px;display:flex;align-items:flex-end;justify-content:center}
.pbf-outline-scrollbar {position:sticky;inset-inline-start:0;bottom:0;grid-column:1;width:var(--outline);height:14px;overflow-x:auto;overflow-y:hidden;background:var(--surface);z-index:5}
.pbf-outline-scrollbar > div {height:1px}
.pbf-gantt-footer {height:14px;background:var(--surface)}
.plan-grid[data-pane="outline"] {display:block;width:100%}
.plan-grid[data-pane="outline"] .outline-heading,.plan-grid[data-pane="outline"] .outline-cell {width:100%}
.plan-grid[data-pane="outline"] :is(.timeline,.gantt-cell,.pbf-gantt-footer) {display:none}
.plan-grid[data-pane="gantt"] {grid-template-columns:minmax(var(--axis),1fr);width:max(100%,var(--axis));--outline:0px!important}
.plan-grid[data-pane="gantt"] :is(.outline-heading,.outline-cell,.pbf-outline-scrollbar) {display:none}
.gantt-bar,.gantt-group {background:var(--cat-strong);color:var(--cat-on-strong)}
.gantt-bar.milestone {background:transparent}
.gantt-bar.milestone::before {background:var(--cat-strong)}
.gantt-outside-title,.gantt-point-time {background:color-mix(in srgb,var(--cat-soft) 80%,transparent);color:var(--text)}
.pbf-cell-editor {display:inline-flex;align-items:center;min-width:0;max-width:100%;min-height:22px;padding:0 2px;margin:0;border:0;border-radius:0;background:transparent;color:inherit;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pbf-cell-editor[role="button"] {cursor:text}
.pbf-inline-field {width:100%;min-width:20px;font:inherit;color:inherit;background:var(--background);border:1px solid var(--focus);padding:1px}
.pbf-cell-editor:has(.pbf-inline-field) {overflow:visible;width:100%}
.pbf-assignment-category,.pbf-catalog-select.pbf-category-surface {background:var(--cat-strong);color:var(--cat-on-strong);border-radius:3px;padding-inline:4px}
.pbf-assignment-symbol {justify-content:center}
.pbf-field-icon {width:16px;height:16px;flex:0 0 16px;vertical-align:middle}
.pbf-icon-button {display:inline-grid;place-items:center;min-height:24px;width:24px;padding:2px;border:0;background:transparent;border-radius:3px;color:inherit}
.pbf-icon-button:hover {background:var(--selection);color:var(--selection-text)}
.pbf-note-button {width:18px;min-height:18px;position:relative;padding:0;justify-content:center}
.pbf-note-button::before {content:"";width:10px;height:12px;border:1.3px solid currentColor;border-radius:1px;opacity:.45}
.pbf-note-button::after {content:"";position:absolute;left:5px;top:6px;width:6px;height:1px;background:currentColor;box-shadow:0 3px currentColor;opacity:0}
.pbf-note-button[data-has-note="true"]::before,.pbf-note-button[data-has-note="true"]::after {opacity:1}
.pbf-field-trafficlight,.pbf-traffic-lights {display:inline-grid;grid-template-columns:repeat(3,9px);gap:1px;align-items:center;justify-items:center;width:29px;height:22px;min-height:22px;border:0;border-radius:0;padding:0;background:transparent}
.pbf-light-dot {width:4px;height:4px;border-radius:50%;opacity:.25}.pbf-light-dot.active {width:8px;height:8px;opacity:1}
.pbf-light-dot-red {background:#FF2020}.pbf-light-dot-yellow {background:#E5FF00}.pbf-light-dot-green {background:#20FF56}
.pbf-light-control {display:grid;place-items:center;width:9px;height:22px;min-height:0;padding:0;border:0;border-radius:0;background:transparent}
.pbf-light-control:disabled {opacity:1}
.pbf-field-trafficlight[data-vertical] {grid-template-columns:29px;grid-template-rows:repeat(3,9px);height:29px}
.pbf-field-trafficlight[data-vertical] .pbf-light-control {width:29px;height:9px}
.pbf-field-trafficlight[data-vertical] > .pbf-light-dot-green {grid-row:1}
.pbf-field-trafficlight[data-vertical] > .pbf-light-dot-yellow {grid-row:2}
.pbf-field-trafficlight[data-vertical] > .pbf-light-dot-red {grid-row:3}
.pbf-light-choice {display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;text-align:start}
.pbf-cell-editor:disabled {opacity:1;cursor:default}
.pbf-cell-editor[aria-disabled="true"],.pbf-field-checkbox:disabled {opacity:.7;cursor:default}
.pbf-field-trafficlight:disabled {opacity:1}
.pbf-field-popover {position:fixed;inset:auto;margin:0;min-width:190px;max-width:min(420px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;box-shadow:0 4px 18px rgb(0 0 0 / 23%);font-size:12px}
.pbf-field-panel-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;padding:0 0 7px}
.pbf-panel-close {border:0;background:transparent;min-height:20px;padding:0 4px}
.pbf-field-popover > button {display:block;width:100%;border:0;background:transparent;text-align:start;font-size:12px}
.pbf-field-popover button:hover {background:var(--selection);color:var(--selection-text)}
.pbf-field-form {display:grid;gap:8px;min-width:200px}
.pbf-settings-field {display:flex;align-items:center;justify-content:space-between;gap:10px}
.pbf-settings-field > :is(input[type=text],select) {min-width:0;max-width:190px;width:60%;background:var(--background);border:1px solid var(--line);border-radius:3px;padding:3px;color:inherit}
.pbf-field-actions {display:flex;justify-content:flex-end;gap:6px}
.pbf-field-actions button {font-size:12px;min-height:27px}
.pbf-field-error {margin:0;color:var(--danger)}
.pbf-field-popover h3 {font-size:12px;font-weight:600;margin:9px 0 5px}
.pbf-destructive {color:var(--danger)}
.pbf-format-tools {display:grid;gap:2px}
.pbf-format-option {border:0;border-radius:3px;min-height:26px;padding:3px 7px;background:transparent;text-align:start;font-size:12px}
.pbf-format-option::before {content:"";display:inline-block;width:17px}.pbf-format-option[aria-pressed=true]::before {content:"✓"}
.pbf-format-bold {font-weight:700}.pbf-format-italic {font-style:italic}.pbf-format-underline {text-decoration:underline}.pbf-format-strike {text-decoration:line-through}
.pbf-note-overlay {width:min(380px,calc(100vw - 16px))}
.pbf-note-input {width:100%;min-height:140px;resize:vertical;border:1px solid var(--line);background:var(--background);color:var(--text);font:13px/1.5 Inter,sans-serif;padding:7px}
.pbf-note-overlay .pbf-format-tools {display:flex;flex-wrap:wrap}.pbf-note-overlay .pbf-format-option {font-size:11px;padding:2px}
.pbf-note-overlay .pbf-format-option::before {display:none}
.pbf-note-embedded {display:block!important;min-width:0}
.pbf-note-embedded .pbf-note-input {min-height:112px;max-width:100%;background:var(--field)}
.pbf-note-embedded .pbf-format-tools {display:flex;flex-wrap:wrap}
.pbf-note-embedded .pbf-field-error:empty {display:none}
.pbf-icon-catalog {max-height:290px;overflow:auto;min-width:250px}
.pbf-icon-grid {display:grid;grid-template-columns:repeat(8,1fr);gap:2px}.pbf-icon-grid .pbf-icon-button {width:29px;height:29px}
.pbf-palette-grid {display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:220px}
.pbf-palette-choice {position:relative;height:32px;min-height:32px;padding:0;border:1px solid var(--line);border-radius:3px;background:linear-gradient(90deg,var(--swatch) 50%,var(--soft-light) 50%)}
:root[data-theme=dark] .pbf-palette-choice {background:linear-gradient(90deg,var(--swatch) 50%,var(--soft-dark) 50%)}
.pbf-palette-choice[aria-pressed=true] {outline:2px solid var(--focus);outline-offset:1px}
.pbf-catalog-item {display:flex;gap:3px;align-items:center;margin-block:3px}.pbf-catalog-select {display:flex;align-items:center;gap:6px;min-width:160px;flex:1;font-size:12px;min-height:27px;border:0;text-align:start}
.pbf-affected-count {display:block;font-size:10px;color:var(--muted)}
.pbf-custom-details .pbf-cell-editor {width:100%;overflow:visible;white-space:normal}
.pbf-custom-details .pbf-field-trafficlight {width:29px;min-height:22px}.pbf-custom-details .pbf-field-icon {width:16px}
.pbf-custom-details dd {display:flex;align-items:center;flex-wrap:wrap;gap:2px}.pbf-custom-details dd > .pbf-cell-editor {flex:1;width:0;min-width:0}
.pbf-custom-details dd > .pbf-field-trafficlight {flex:0 0 29px}.pbf-custom-details dd > .pbf-affected-count {flex:0 0 100%}
.pbf-field-style {flex:0 0 22px;opacity:0}.pbf-field-style svg {width:15px;height:15px}
.pbf-custom-details dd:is(:hover,:focus-within) .pbf-field-style {opacity:1}
.project-header {position:relative;height:102px;min-height:102px;padding:8px 12px 11px;gap:16px}
.project-details {flex:1;min-width:0}.project-header h1 {font-size:30.75px;line-height:1.03}
.project-header[data-compact] {height:60px;min-height:60px;padding-block:4px 7px}
.project-header[data-compact] .brand {font-size:12.42px}.project-header[data-compact] .project-details {display:flex;align-items:center;gap:8px}
.project-header[data-compact] h1 {font-size:23.37px;min-width:0;flex:1}.project-header[data-compact] #project-time {display:none}
.project-header[data-compact] .project-period {margin:0;white-space:nowrap;min-width:0}
.pbf-project-fold {position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);display:grid;place-items:center;width:38px;height:13px;min-height:13px;padding:0;border:1px solid var(--line);border-radius:5px 5px 0 0;background:var(--surface);color:var(--muted);z-index:5}
.pbf-project-fold::before {content:"";width:9px;height:6px;background:currentColor;clip-path:polygon(0 100%,50% 0,100% 100%)}
.project-header[data-compact] .pbf-project-fold::before {transform:rotate(180deg)}
.pbf-project-legend {--legend-rows:4;margin-inline-start:auto;max-width:66.666%;min-width:180px;font-size:14px;display:flex;gap:0 8px;align-items:center;align-self:stretch}
.project-header[data-compact] .pbf-project-legend {--legend-rows:2}
.pbf-legend-heading {display:flex;align-items:center;gap:2px;flex:0 0 auto;align-self:stretch;padding-inline-end:7px;border-inline-end:1px solid var(--line)}.pbf-legend-title {padding:0;border:0;border-radius:0;background:transparent;min-height:18px;font:600 14px Inter,sans-serif}
.pbf-legend-heading .pbf-icon-button {width:18px;min-height:18px}.pbf-legend-heading .pbf-field-icon {width:12px;height:12px}
.pbf-legend-heading .pbf-icon-button {opacity:0}.pbf-legend-heading:is(:hover,:focus-within) .pbf-icon-button {opacity:1}
.pbf-legend-list {display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--legend-rows),18px);gap:0 8px;max-width:100%;min-width:0;overflow:hidden}
.pbf-legend-list:empty {display:none}.pbf-legend-list + .pbf-legend-list:not(:empty) {border-inline-start:1px solid var(--line);padding-inline-start:8px}
.pbf-legend-item {display:flex;align-items:center;gap:3px;max-width:170px;min-height:18px;position:relative}
.pbf-legend-name {min-width:0;min-height:18px;border:0;border-radius:0;background:transparent;text-align:start;font-size:14px;line-height:18px;padding:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.pbf-legend-name:disabled {opacity:1;color:inherit}.pbf-legend-swatch {width:12px;height:12px;min-height:12px;padding:0;border:0;border-radius:0;background:var(--cat-strong)}
.pbf-legend-item > .pbf-icon-button {width:15px;min-height:15px;padding:1px;opacity:0}.pbf-legend-item:is(:hover,:focus-within) > .pbf-icon-button {opacity:1}
.pbf-legend-item .pbf-field-icon {width:12px;height:12px;flex-basis:12px}
.pbf-legend-grip {border:0;border-radius:0;background:transparent;padding:0;min-height:15px;width:6px;font-size:11px;opacity:0;cursor:grab}.pbf-legend-item:is(:hover,:focus-within) .pbf-legend-grip {opacity:1}
.pbf-legend-settings-item {display:flex;align-items:center;gap:5px}.pbf-legend-settings-item input[type=text] {min-width:0;flex:1;background:var(--background);color:var(--text);border:1px solid var(--line);padding:3px}
.pbf-controls {
  --pbf-tool-size:32px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:6px 10px;
  min-height:46px;
  padding:6px 8px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.pbf-tools {display:flex;align-items:center;gap:4px}
.pbf-tools:first-child {justify-self:start}
.pbf-tools:last-child {justify-self:end}
.pbf-tool {
  display:inline-grid;
  place-items:center;
  width:var(--pbf-tool-size);
  height:var(--pbf-tool-size);
  padding:0;
  border:1px solid transparent;
  border-radius:5px;
  background:transparent;
  color:var(--text);
}
button.pbf-tool:not(:disabled) {cursor:pointer}
.pbf-tool:hover {background:var(--field)}
button.pbf-tool[aria-disabled="true"] {cursor:default}
.pbf-tool:disabled {opacity:.42}
.pbf-tool:focus-visible {outline:2px solid var(--focus);outline-offset:1px}
.pbf-tool :is(.lucide,.pbf-theme-icon,.pbf-row-layout-icon) {width:16px;height:16px}
[data-row-layout-switch][aria-pressed="true"] .pbf-single-line-icon,
[data-row-layout-switch][aria-pressed="false"] .pbf-double-line-icon {display:none}
.pbf-theme-switch {
  border-color:light-dark(rgb(0 0 0 / 56%),rgb(255 255 255 / 69%));
}
.pbf-theme-lever {color:var(--focus)}
.pbf-theme-switch[data-mode="light"] .pbf-theme-lever {transform:translateY(-4px)}
.pbf-theme-switch[data-mode="dark"] .pbf-theme-lever {transform:translateY(4px)}
:is(.pbf-tool,.pbf-pane-option) i[data-fallback] {font:normal 17px/1.1 system-ui,sans-serif}
:is(.pbf-tool,.pbf-pane-option) i[data-fallback]::before {content:attr(data-fallback)}
.pbf-pane-switch {
  display:flex;
  flex:none;
  width:calc(3 * var(--pbf-tool-size));
  color:var(--text);
  height:var(--pbf-tool-size);
}
:is(.pbf-pane-switch,.pbf-tool[data-panel],.pbf-tool[data-row-layout-switch]) {
  border:1px solid #777;
  border-radius:5px;
}
.pbf-pane-option {position:relative;display:grid;flex:1;min-width:0}
.pbf-pane-option:has(input:checked) {flex-grow:1.3}
.pbf-pane-option + .pbf-pane-option {border-inline-start:1px solid var(--line)}
.pbf-pane-option input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer;
}
.pbf-pane-option span {
  display:grid;
  place-items:center;
  border-radius:3px;
  pointer-events:none;
}
.pbf-pane-option svg {width:18px;height:18px;stroke-width:1.5}
.pbf-pane-option .pbf-pane-combined {width:min(26px,calc(100% - 4px))}
.pbf-pane-option input:hover + span {background:var(--field)}
.pbf-tool:is([data-panel],[data-row-layout-switch])[aria-pressed="true"],
.pbf-pane-option input:checked + span {
  background:var(--selection);
  box-shadow:inset 0 0 0 1px var(--focus);
}
.pbf-pane-option input:focus-visible + span {
  outline:2px solid var(--focus);
  outline-offset:-2px;
}

.pbf-row-tools { display:flex; align-items:center; gap:4px; padding-inline-start:6px; border-inline-start:1px solid var(--line); }
.project-period-trigger { padding:0; border:0; background:transparent; min-height:24px; font:inherit; text-align:start; }
.project-period-trigger:hover { box-shadow:inset 0 -1px var(--focus); }
.project-period-editor { display:flex; flex-wrap:wrap; gap:5px 8px; align-items:end; }
.project-period-editor label { display:flex; flex-direction:column; gap:3px; font-size:12px; }
.project-period-editor input { min-height:28px; padding:3px 5px; border:1px solid var(--line); border-radius:4px; background:var(--field); }
.project-period-editor button { min-width:28px; padding:3px 5px; }
.project-period-editor [aria-invalid="true"] { border-color:var(--danger); }
#project-date-error { flex-basis:100%; color:var(--danger); font-size:12px; }
.project-picker { position:fixed; inset:100px auto auto 16px; padding:12px; max-width:calc(100vw - 32px); border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--text); box-shadow:0 8px 24px #0003; }
.project-picker label { display:block; margin-bottom:6px; }
.project-picker-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
@media (max-width:740px) { .pbf-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } .pbf-tools:nth-child(2) { grid-row:2;grid-column:1/-1;justify-self:center; } .pbf-tools { flex-wrap:wrap; } }

.outline-cell:is([data-row-holding],[data-row-moving]) .row-grip { cursor: grabbing; }
.outline-cell[data-row-drop]::after { content: ""; position: absolute; inset-inline: 0; height: 2px; background: var(--focus); z-index: 12; pointer-events: none; }
.outline-cell[data-row-drop="before"]::after { top: 0; bottom: auto; }
.outline-cell[data-row-drop="after"]::after { bottom: 0; top: auto; }
.row-grip { touch-action: none; }

/* Connection lines remain below bar shapes and captions, above row backgrounds. */
:root {--connection:#52637A;--connection-preview:#3868C2}
:root[data-theme="dark"] {--connection:#94A3B8;--connection-preview:#8BB8FF}
.pbf-connections {position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.pbf-connections > svg {position:absolute;inset:0;overflow:hidden;pointer-events:none}
.pbf-connection-line {fill:none;stroke:var(--connection);stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round}
.pbf-connection-hit {fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:pointer}
.pbf-connection-hit:focus-visible {stroke:color-mix(in srgb,var(--focus) 25%,transparent);outline:none}
.pbf-connections g.conflict .pbf-connection-line {stroke:#FF2020}
.pbf-connection-preview {fill:none;stroke:var(--connection-preview);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.pbf-connection-label {position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px;max-width:calc(100% - 12px);pointer-events:auto;color:var(--connection)}
.pbf-connection-label[hidden] {display:none}
.pbf-connection-name {background:var(--surface);color:inherit;border:1px solid currentColor;border-radius:8px;min-height:23px;padding:2px 8px;white-space:nowrap;max-width:360px;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.pbf-connection-delete {display:grid;place-items:center;width:17px;height:17px;min-height:17px;flex-shrink:0;border:1px solid currentColor;border-radius:50%;padding:0;background:var(--surface);color:inherit;font-size:14px;line-height:1}
.pbf-connection-label.conflict {color:#FF2020}
.gantt-bar,.gantt-group {z-index:2}
.pane-heading {z-index:6}.outline-heading {z-index:7}.outline-cell {z-index:3}
.pbf-connection-mode .gantt-bar,.pbf-connection-mode .gantt-group {cursor:crosshair}
.pbf-connection-fields {display:flex;flex-direction:column;gap:8px;min-width:0;font-size:12px}
.pbf-connection-endpoints {overflow-wrap:anywhere;margin:0 0 4px}
.pbf-connection-error {color:#FF2020;margin:0}.pbf-connection-error:empty {display:none}
.pbf-connection-conflict {color:#FF2020;margin:4px 0}
.pbf-connection-note textarea {display:block;width:100%;min-height:130px;resize:vertical;margin-top:6px;background:var(--field);color:var(--text);border:1px solid var(--line);padding:6px;font:inherit}
.pbf-connection-note summary {cursor:pointer;color:var(--muted)}
.pbf-connection-proposal {overflow-wrap:anywhere;font-size:11px}
.pbf-connection-candidate {border-block-start:1px solid var(--line);padding-block:10px}
.pbf-connection-candidate h4 {font-size:12px;margin:0 0 8px}
.pbf-dating-entry {min-width:0;border:1px solid var(--line);margin:10px 0;padding:8px;display:flex;flex-direction:column;gap:6px}
.pbf-dating-select {display:flex;align-items:center;gap:6px;overflow-wrap:anywhere}
.pbf-dating-entry .pbf-settings-field > span {flex-shrink:0;white-space:nowrap}
.pbf-dating-hint {color:var(--muted)}
.pbf-connection-proposal ul {padding-inline-start:18px}.pbf-connection-proposal li {margin-block:8px}
.pbf-connection-popover {position:fixed;inset:auto;margin:0;width:350px;max-width:calc(100vw - 16px);padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);overflow:visible;box-shadow:0 4px 18px rgb(0 0 0 / 23%)}
.pbf-connection-popover::before {content:"";position:absolute;width:12px;height:12px;left:calc(var(--pointer-x) - 6px);background:var(--surface);border:1px solid var(--line);transform:rotate(45deg)}
.pbf-connection-popover[data-side="bottom"]::before {top:-7px;border-right:0;border-bottom:0}
.pbf-connection-popover[data-side="top"]::before {bottom:-7px;border-left:0;border-top:0}
.pbf-connection-popover-body {max-height:calc(100dvh - 100px);overflow:auto}
#inspector .time-computed {opacity:.83}
.outline-cell .time-computed {color:var(--muted)}

.project-subtitle-trigger,.project-subtitle-input {min-height:0;font-family:"Courier Prime",monospace;font-weight:700;font-size:14px;line-height:17px;max-width:100%;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:start}
.project-subtitle-trigger {display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.project-subtitle-input {width:100%}
.project-subtitle-trigger:hover,.project-subtitle-input:focus {box-shadow:inset 0 -1px var(--focus)}
.project-subtitle-trigger[data-placeholder],.project-subtitle-input::placeholder {color:var(--muted)}
#project-subtitle {min-width:0;line-height:17px}
.project-header[data-compact] #project-subtitle {display:flex;align-items:center;max-width:30%}
.project-header[data-compact] #project-subtitle::before {content:"–";margin-inline-end:8px}

/* Calendar geometry and the header controls follow the desktop reference. */
.plan-grid {position:relative}
.pane-heading {height:var(--header-height,56px);min-height:28px}
.timeline {display:block;touch-action:pan-x pan-y;border-bottom:0}
.pbf-calendar-bands {height:100%;position:relative;display:flex;flex-direction:column;justify-content:flex-end}
.pbf-axis-band {position:relative;flex:none;height:28px}
.timeline .pbf-axis-cell {position:absolute;inset-block:0;display:block;align-content:center;padding:0 2px;border-inline-start:1px solid var(--line);border-block:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font:500 10px/1.15 Inter,sans-serif;font-variant-numeric:tabular-nums}
.pbf-axis-band:last-of-type .pbf-axis-cell[data-major] {border-inline-start-color:var(--axis-major)}
.pbf-axis-caption {position:absolute;inset-block:0;display:block;align-content:center;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding-inline:2px}
.timeline .pbf-axis-cell[data-occurrence] {white-space:normal;text-overflow:clip;line-height:1.05}
.gantt-cell {display:block;background-image:var(--calendar-grid,none);background-repeat:no-repeat;touch-action:pan-x pan-y}
.group-preview {overflow:hidden;inset-inline:0}
.pbf-head-resize {position:absolute;z-index:9;height:7px;outline:0;cursor:row-resize;touch-action:none;user-select:none}
.pbf-head-resize::before {content:"";position:absolute;inset-inline:0;top:2px;height:2px;background:var(--line)}
.pbf-head-resize::after {content:"";position:absolute;top:1px;left:var(--height-grip-x,25%);width:28px;height:4px;transform:translateX(-50%);border-radius:1px;background:var(--line)}
.pbf-head-zoom-grip {position:absolute;z-index:1;top:3px;transform:translate(-50%,-50%);width:28px;height:15px;display:grid;place-items:center;border:1px solid var(--axis-major);border-radius:4px;background:var(--surface);color:var(--text);font:600 12px/1 Inter,sans-serif;cursor:ew-resize}
.pbf-head-resize[data-zooming] {cursor:ew-resize}
.pbf-head-resize:is(:hover,:focus-visible,[data-resizing])::before,.pbf-head-resize:is(:hover,:focus-visible,[data-resizing])::after {background:var(--focus)}
.pbf-head-zoom-grip:hover,.pbf-head-resize[data-zooming] .pbf-head-zoom-grip {border-color:var(--focus);color:var(--focus)}
.pbf-now-line {position:absolute;z-index:5;bottom:0;width:2px;background:#E5FF00;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 25%,transparent)}
.pbf-clock-change {position:absolute;z-index:6;bottom:6px;width:12px;height:12px;min-height:0;transform:translateX(-50%);padding:0;border:0;border-radius:2px;background:transparent;color:var(--clock-change);overflow:visible}
.pbf-clock-change::before {content:"";display:block;margin:auto;width:4px;height:12px;background:currentColor;border-radius:1px}
.timeline .pbf-clock-tooltip {display:none;position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:max-content;max-width:320px;padding:5px 7px;border:1px solid var(--clock-change);border-radius:4px;background:var(--surface);color:var(--text);font:11px/1.3 Inter,sans-serif;white-space:normal;text-align:start;box-shadow:0 2px 8px rgb(0 0 0 / 20%)}
.pbf-clock-change:is(:hover,:focus-visible,[aria-expanded="true"]):not([data-tooltip-dismissed]) .pbf-clock-tooltip {display:block}

/* Group surfaces and captions follow the approved desktop reference. */
.gantt-group {inset-block:0;height:auto;display:block;padding:0;background:transparent;clip-path:none;isolation:isolate}
.group-face {position:absolute;inset:0;background:var(--cat-strong);clip-path:var(--group-shape,polygon(7px 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%,0 7px));pointer-events:none}
.gantt-group[data-folded] {color:var(--text)}
.gantt-group[data-folded] .group-face {background:var(--cat-soft)}
.gantt-group.time-conflict {box-shadow:none}
.gantt-group.time-conflict .group-face {background:#FF2020}
.gantt-group.time-conflict .group-face::after {content:"";position:absolute;inset:2px;background:var(--cat-strong);clip-path:var(--group-inner-shape)}
.gantt-group.time-conflict[data-folded] .group-face::after {background:var(--cat-soft)}
.group-label {position:absolute;inset:1px var(--caption-end,7px) 1px var(--caption-start,7px);display:flex;align-items:center;justify-content:center;gap:4px;font-size:14px;pointer-events:none}
.group-label[hidden] {display:none}
.group-label .group-bar-toggle {pointer-events:auto;width:22px}
.group-label .group-bar-toggle:focus-visible {outline:2px solid currentColor;outline-offset:-2px}
.group-copy {display:block;min-width:0;flex:0 1 auto;overflow:hidden}
.group-title-line {display:flex;align-items:baseline;justify-content:center;min-width:0;white-space:nowrap;overflow:hidden}
.group-caption {min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.group-duration {flex:0 0 auto;font-size:12px}
.group-meta {display:flex;justify-content:space-between;gap:10px;font-size:10px;line-height:1.2;white-space:nowrap;opacity:.8}
.group-meta span {min-width:0;overflow:hidden;text-overflow:ellipsis}
.gantt-group[data-root-group] .group-caption {font-size:calc(14px + 1pt)}
.gantt-group[data-folded] .group-label {bottom:14px}
.group-preview {inset-inline:1px;bottom:2px;height:9px}
.group-preview span {opacity:1;border:0;border-radius:2px}
.plan-grid[data-row-layout="single"] .group-meta {display:none}
.plan-grid[data-row-layout="single"] .gantt-group[data-folded] .group-label {bottom:8px}
.plan-grid[data-row-layout="single"] .group-preview {height:3px}
.plan-grid[data-row-layout="single"] .group-preview span {top:0!important}
.gantt-group.time-conflict .group-meta {display:none}
.group-copy .time-status-note {min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;user-select:none}
.plan-grid[data-row-layout="single"] .gantt-group.time-conflict .group-copy {display:flex;align-items:baseline;gap:6px}
.plan-grid[data-row-layout="single"] .gantt-group.time-conflict .group-title-line {flex:0 1 auto}
.plan-grid[data-row-layout="single"] .gantt-group.time-conflict .time-status-note {flex:0 1 auto}


/* Approved desktop order, group backdrops and quiet shape boundaries. */
.pbf-controls {height:42px;min-height:42px;padding-block:4px;background:#222222;color:#FFFFFF}
.pbf-controls .pbf-tool {color:#FFFFFF}
.pbf-controls .pbf-tool:hover {background:rgb(255 255 255 / 10%)}
.pbf-controls :is(.pbf-theme-switch,.pbf-pane-switch,[data-panel]) {border-color:rgb(255 255 255 / 69%)}
.pbf-controls :is(.pbf-theme-lever,.pbf-tool[aria-pressed="true"]) {--focus:#8BB8FF}
.pbf-controls .pbf-tool[aria-pressed="true"] {background:#293B55;color:#FFFFFF}
.pbf-controls #zoom-in,.pbf-controls #zoom-out {border:0}
.pbf-col-pos {align-items:flex-start}
.pbf-title-first-line:not(:has(.fold-toggle)) {padding-inline-start:14px}
.gantt-cell {background-color:var(--background);background-image:var(--calendar-grid,linear-gradient(transparent,transparent)),var(--group-shadows-light,linear-gradient(transparent,transparent))}
:root[data-theme="dark"] .gantt-cell {background-image:var(--calendar-grid,linear-gradient(transparent,transparent)),var(--group-shadows-dark,linear-gradient(transparent,transparent))}
.gantt-bar:not(.milestone):not(.dynamic):not(.undated):not(.time-conflict) {border-color:transparent}
:root:not([data-theme="dark"]) .gantt-bar[data-contour-light]:not(.time-conflict) {border-color:rgb(0 0 0 / 28%)}
:root[data-theme="dark"] .gantt-bar[data-contour-dark]:not(.time-conflict) {border-color:rgb(255 255 255 / 34%)}
.gantt-bar.time-conflict {border-color:#FF2020}
.pbf-now-line {box-shadow:none}

.pbf-controls {--text:#FFFFFF;--field:#343434;--focus:#8BB8FF;--selection:#293B55;--selection-text:#FFFFFF}
:root:not([data-theme="dark"]) :is(.outline-heading,.timeline) {background-color:#FFFFFF}


.project-code-trigger,.project-code-input {font:inherit;font-size:12px;line-height:16px;min-height:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;text-align:start;max-width:100%}
.project-code-input {width:min(25ch,100%);box-shadow:inset 0 -1px var(--focus)}
.project-code-trigger {display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-code-trigger:hover {box-shadow:inset 0 -1px var(--focus)}
.project-code-trigger[data-placeholder],.project-code-input::placeholder {color:var(--muted)}
#project-code {min-width:0;line-height:16px}
.project-meta {display:flex;align-items:center;gap:6px;min-width:0;margin-block-start:4px;font:400 12px/1.2 Inter,sans-serif}
.project-meta-divider {flex:none;color:var(--muted)}
.project-meta #project-code {flex:0 1 auto;max-width:36%}
.project-meta .project-period {min-width:0;flex:0 1 auto}
.project-header[data-compact] .project-meta {margin:0;flex:0 1 auto}
.project-header[data-compact] .project-meta::before {content:"–";color:var(--muted);flex:none}
.project-header[data-compact] .project-details {gap:7px;align-items:baseline}

.project-period {position:relative}
.project-period-editor {position:absolute;inset-inline-start:0;top:0;z-index:30;width:min(360px,calc(100vw - 24px));padding:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:7px;box-shadow:0 4px 18px rgb(0 0 0 / 23%)}
.project-period-editor label {flex:1 1 calc(50% - 4px);min-width:0}
.project-period-editor input {width:100%;min-width:0;color:inherit}
.project-period-editor :is(.pbf-period-zone,#project-date-error) {flex-basis:100%;font-size:11px}
.pbf-period-zone {color:var(--muted)}


/* Keep compact project fields inside the viewport even with long periods/codes. */
body {grid-template-columns:minmax(0,1fr)}
.project-header {min-width:0}
.project-header[data-compact] h1 {flex:0 1 auto}
.project-header[data-compact] #project-subtitle {flex:0 1 auto;max-width:none}
.project-header[data-compact] #project-code {flex:0 1 auto;max-width:36%}
.project-header[data-compact] .project-period {flex:0 1 auto}
.project-header[data-compact] :is(.project-title-trigger,.project-subtitle-trigger,.project-subtitle-input,.project-code-trigger,.project-code-input,.project-period-trigger) {min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.project-header[data-compact] :is(#project-subtitle,#project-code,.project-period) > :is(button,input) {flex:1;min-width:0}
.time-choice p {overflow-wrap:anywhere;max-height:30vh;overflow:auto}

/* Keep the title line box stable when an inline editor finishes on pointer blur. */
.project-title-input {display:block;line-height:inherit}

:root[data-touch-capable] .row-grip {opacity:1;pointer-events:auto}
:root[data-touch-capable] :is(.pbf-legend-heading .pbf-icon-button,.pbf-legend-item > .pbf-icon-button,.pbf-legend-grip,.pbf-column-sort,.pbf-row-jump) {opacity:1}
.gantt-bar.undated {inset-inline-start:var(--start);width:var(--duration);background:linear-gradient(to right,transparent,color-mix(in srgb,var(--cat-strong) 77%,transparent) 26%,color-mix(in srgb,var(--cat-strong) 77%,transparent) 74%,transparent);border:0;color:var(--text);box-shadow:none}
.gantt-bar.undated .gantt-caption {position:absolute;inset-inline-start:0;width:100%;max-width:100%;padding:0 var(--ghost-title-inset,14px);overflow:hidden}
.gantt-bar.undated[data-ghost-depth]:not([data-ghost-depth="0"]) .gantt-caption {visibility:hidden}
.gantt-bar.undated .gantt-title {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}

.pbf-note-button::before,.pbf-note-button::after {display:none}
.pbf-note-button .pbf-ui-icon {width:13px;height:15px;opacity:.77}
.pbf-note-button .pbf-note-content {visibility:hidden}
.pbf-note-button[data-has-note="true"] .pbf-ui-icon {opacity:1}
.pbf-note-button[data-has-note="true"] .pbf-note-content {visibility:visible}
.row-popup [role="menuitem"] {display:flex;align-items:center;gap:9px;text-align:start;width:100%}
.row-popup .pbf-ui-icon {width:18px;height:18px;flex:0 0 18px}
.row-popup hr {border:0;border-top:1px solid var(--line);margin:4px 0}
.pbf-category-list {display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;padding:3px}
.pbf-category-list .pbf-catalog-select {flex:none;min-height:25px;text-align:start;border:1px solid transparent}
.pbf-category-list [aria-pressed="true"] {outline:2px solid var(--focus);outline-offset:1px}
.pbf-category-draft {display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pbf-category-draft input {min-width:80px;width:0;flex:1}
.pbf-category-draft .pbf-legend-swatch,.pbf-legend-settings-item .pbf-legend-swatch {width:22px;height:22px;min-height:22px;flex:0 0 22px}
.pbf-category-draft .pbf-field-error {flex-basis:100%}
.pbf-legend-management {display:flex;flex-direction:column;gap:6px}
.pbf-legend-grip {touch-action:none}
.pbf-legend-item[data-legend-moving] {opacity:.55;outline:1px solid var(--focus);cursor:grabbing}
.pbf-legend-item[data-legend-drop]::after {content:"";position:absolute;inset-inline:0;height:2px;background:var(--focus);pointer-events:none}
.pbf-legend-item[data-legend-drop="before"]::after {top:-1px}
.pbf-legend-item[data-legend-drop="after"]::after {bottom:-1px}

/* Header calendar text entry and a real native picker fallback. */
.pbf-project-date-field {flex:1 1 calc(50% - 4px);min-width:0;display:flex;flex-direction:column;gap:3px}
.project-period-editor .pbf-project-date-field label {flex:none}
.pbf-project-date-line {display:flex;gap:3px;align-items:stretch}
.project-period-editor .pbf-project-date-line input {flex:1;min-width:0}
.project-period-editor .pbf-project-date-line button {flex:none;font-size:11px;white-space:nowrap}
.pbf-project-date-field small {font-size:10px;color:var(--muted)}

.project-period-editor > label {align-self:flex-start}

/* Touch column gestures have explicit targets; the rest of the page keeps native manipulation. */
.pbf-column-caption,.pbf-column-resize {touch-action:none}
.pbf-column-caption[data-holding] {color:var(--focus)}
.pbf-column-head[data-column-drop="before"] {box-shadow:inset 2px 0 var(--focus)}
.pbf-column-head[data-column-drop="after"] {box-shadow:inset -2px 0 var(--focus)}
/* A selected touch bar exposes its resize affordances even after editor focus moves. */
:root[data-touch-capable] .plan-row[data-selected] .gantt-bar .time-grip {opacity:1}

/* Only the timeline world owns its two-dimensional pan and time-scale pinch. */
.gantt-cell,.timeline {touch-action:none}

/* The narrow layout reuses the existing controls and editors. Its threshold
   comes from content minima in mobile-controls, not pointer capability. */
:root[data-mobile] {--mobile-accent:#3868C2;--mobile-header:44px;--mobile-tab:14px;--mobile-tools:48px}
:root[data-mobile][data-theme="dark"] {--mobile-accent:#E5FF00}
:root[data-mobile] body {height:var(--mobile-layout-height,100dvh);min-height:0;padding:0;gap:0;overflow:hidden;grid-template-rows:44px auto minmax(0,1fr) 48px}
:root[data-mobile] body > :is(.project-header,.pbf-controls,footer) {display:none}
.pbf-mobile-header {min-width:0;display:flex;align-items:center;height:44px;background:var(--surface);border-bottom:1px solid var(--line);grid-row:1;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.pbf-mobile-header #project-title {flex:1;min-width:0;overflow:hidden;margin:0;font:400 18px/1.2 "Courier Prime",monospace}
.pbf-mobile-header #project-title :is(button,input) {width:100%;max-width:100%;min-width:0;min-height:44px;font:inherit;text-overflow:ellipsis}
.pbf-mobile-header-actions {display:flex;flex:none;align-items:center}
:is(.pbf-mobile-header,.pbf-mobile-tools,.pbf-mobile-quick,.pbf-mobile-views,.pbf-mobile-overflow) .pbf-tool {width:44px;height:44px;min-width:44px;min-height:44px;border:0;border-radius:0;padding:10px;background:transparent;color:var(--text)}
:is(.pbf-mobile-header,.pbf-mobile-quick) .pbf-tool[aria-pressed="true"] {background:transparent;color:var(--mobile-accent)}
:is(.pbf-mobile-header,.pbf-mobile-tools,.pbf-mobile-quick,.pbf-mobile-views,.pbf-mobile-overflow) .pbf-tool > svg {width:24px;height:24px}
#pbf-mobile-pane {padding-inline:6px;color:var(--text)}
#pbf-mobile-pane > svg {width:32px;height:24px}
:root[data-mobile-pane="outline"] #pbf-mobile-pane svg > path:nth-child(-n+2),
:root[data-mobile-pane="gantt"] #pbf-mobile-pane svg > :is(rect,path:nth-child(4)) {color:var(--mobile-accent)}
:root[data-mobile] .workspace {grid-row:3;min-width:0;min-height:0;position:relative;gap:0;overflow:hidden}
:root[data-mobile] .plan-scroll {min-width:0;min-height:0;width:100%;border-inline:0;overscroll-behavior:contain}
:root[data-mobile] .pbf-pane-divider {display:none}
.pbf-mobile-tools {grid-row:4;display:flex;justify-content:center;align-items:center;min-width:0;overflow:hidden;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.pbf-mobile-tools .pbf-tool[aria-pressed="true"] {color:var(--mobile-accent);background:transparent}
.pbf-mobile-legend {grid-row:2;min-width:0;max-height:calc(var(--mobile-layout-height,100dvh)/3 - 44px);display:flex;flex-direction:column;background:var(--surface)}
.pbf-mobile-legend-content {overflow:auto;min-height:0;overscroll-behavior:contain}
.pbf-mobile-legend-tab {height:14px;min-height:14px;flex:none;align-self:center;width:44px;padding:0;border:1px solid var(--line);border-top:0;border-radius:0 0 4px 4px;background:var(--surface);font-size:12px;line-height:12px}
.pbf-mobile-legend .pbf-project-legend {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 8px;max-width:none;min-width:0;width:100%;padding:5px 8px;margin:0;align-items:start}
.pbf-mobile-legend .pbf-legend-heading {grid-column:1/-1;border:0;padding:0}
.pbf-mobile-legend .pbf-legend-list {grid-template-rows:repeat(var(--mobile-legend-rows,1),22px);grid-auto-columns:minmax(0,1fr);width:100%;overflow:visible}
.pbf-mobile-legend .pbf-legend-item {max-width:100%;min-width:0}
.pbf-mobile-legend .pbf-legend-name {min-width:0}
:root[data-mobile] :is(#inspector,#pbf-views-panel) {width:50%;min-width:0;flex:0 0 50%;padding:8px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;overflow-wrap:anywhere;max-height:max(44px,calc(var(--visible-bottom,100dvh) - 66px))}
.pbf-mobile-views h3 {margin:12px 0 4px;font-size:14px}
.pbf-mobile-setting {display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:44px;border-bottom:1px solid var(--line)}
.pbf-mobile-setting > label {display:flex;min-width:0;gap:5px;align-items:center}
.pbf-mobile-setting input[type="checkbox"] {width:20px;height:20px;flex:none}
.pbf-mobile-setting .pbf-icon-button {width:44px;min-height:44px;flex:none}
:root[data-mobile-panel="inspector"] .plan-scroll,:root[data-mobile-panel="views"] .plan-scroll {width:50%;flex:1 1 50%}
:root[data-mobile-orientation="portrait"][data-mobile-panel="inspector"] .plan-scroll,:root[data-mobile-orientation="portrait"][data-mobile-panel="views"] .plan-scroll {margin-top:calc(var(--mobile-layout-height,100dvh)/2 - 58px);width:100%}
  :root[data-mobile][data-mobile-orientation="portrait"] :is(#inspector,#pbf-views-panel) {position:absolute;inset:0 0 auto;width:100%;height:calc(var(--mobile-layout-height,100dvh)/2 - 58px);max-height:max(44px,calc(var(--visible-bottom,100dvh) - 66px))}
.pbf-mobile-menu,.pbf-mobile-overflow,.pbf-mobile-quick {position:fixed;inset:auto;margin:0;padding:5px;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:0 3px 12px rgb(0 0 0 / 25%);max-width:100vw;max-height:calc(var(--visible-bottom,100dvh) - var(--visible-top,0px) - 52px);overflow:auto}
.pbf-mobile-menu {left:0;top:44px;width:min(100vw,420px)}
.pbf-mobile-menu:popover-open {display:flex;flex-wrap:wrap;gap:4px}
.pbf-mobile-menu .project-details {width:100%}
.pbf-mobile-menu .project-meta {flex-wrap:wrap}
.pbf-mobile-menu :is(.pbf-tool,.project-subtitle-trigger,.project-code-trigger,.project-period-trigger) {min-height:44px}
.pbf-mobile-menu :is(input,textarea,select) {font-size:16px}
.pbf-mobile-menu .project-period-editor {position:static;width:100%;max-width:100%;max-height:none}
.pbf-mobile-overflow {right:0;bottom:48px;min-width:150px}
.pbf-mobile-overflow:popover-open {display:flex;flex-wrap:wrap;gap:2px}
.pbf-mobile-quick {padding:2px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.pbf-mobile-quick:popover-open {display:flex}
.pbf-mobile-quick .pbf-theme-lever,.pbf-mobile-views .pbf-theme-lever {color:var(--mobile-accent)}
.pbf-mobile-status {position:fixed;bottom:48px;inset-inline:0;z-index:20;pointer-events:none}
.pbf-mobile-status .error {display:block;padding:6px;background:var(--surface);color:var(--danger)}
.pbf-mobile-status:not(:has(.error)) {width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.pbf-mobile-layout-switch[aria-pressed="true"] .pbf-single-line-icon,
.pbf-mobile-layout-switch[aria-pressed="false"] .pbf-double-line-icon {display:none}
:root[data-mobile] .pbf-field-popover {max-width:calc(100vw - 16px);max-height:calc(var(--visible-bottom,100dvh) - var(--visible-top,0px) - 16px);overscroll-behavior:contain}
:root[data-mobile] :is(.pbf-field-popover,#inspector,#pbf-views-panel) :is(input[type=text],input[type=time],input[type=date],textarea,select) {font-size:16px;max-width:100%;min-width:0}
:root[data-mobile] :is(#inspector,#pbf-views-panel) .detail-fields {min-width:0}
:root[data-mobile] :is(#inspector,#pbf-views-panel) dd {min-width:0;overflow-wrap:anywhere}
:root[data-mobile] :is(.outline-cell,.outline-heading) {touch-action:pan-y}
.pbf-point-touch-middle {display:none}
:root[data-touch-capable] .milestone .pbf-point-touch-middle {display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:30px;z-index:2;touch-action:none}
:root[data-touch-capable] .milestone .time-catch {width:18px;min-height:30px;top:50%;bottom:auto;height:100%;transform:translateY(-50%)}
.pbf-point-details .detail-fields {min-width:0}

.pbf-mobile-quick .pbf-mobile-layout-switch,.pbf-mobile-views .pbf-mobile-layout-switch {color:var(--mobile-accent)}
.pbf-mobile-header .pbf-tool,.pbf-mobile-quick .pbf-tool {touch-action:manipulation}

.pbf-col-pos button.pos {border:0;border-radius:0;background:transparent;padding:0;min-height:0;line-height:inherit;text-align:inherit;cursor:pointer}

/* Category feedback must not change the width of the chooser or draft. */
.pbf-category-picker {width:min(360px,calc(100vw - 16px));box-sizing:border-box}
.pbf-category-picker .pbf-catalog-item {display:grid;grid-template-columns:22px minmax(70px,1fr) minmax(70px,1fr)}
.pbf-category-picker .pbf-catalog-select {min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pbf-category-picker .pbf-catalog-item input {min-width:0;width:100%;box-sizing:border-box}
.pbf-category-draft {min-width:0;display:grid;grid-template-columns:22px minmax(0,1fr)}
.pbf-category-draft input {width:100%;min-width:0;box-sizing:border-box}
.pbf-category-draft .pbf-field-error:empty {display:none}
.pbf-inline-palette {grid-column:1/-1;min-width:0}
.pbf-inline-palette .pbf-palette-grid {width:100%;max-width:260px}
.pbf-category-picker [aria-invalid=true],.pbf-category-draft [aria-invalid=true] {border:1px solid var(--danger)}
#feedback {min-width:0;overflow-wrap:anywhere}
.pbf-legend-settings-item {flex-wrap:wrap}
.pbf-legend-settings-item > .pbf-inline-palette {flex-basis:100%}

/* Desktop view controls use the approved line accent and one pane-cycle master. */
.pbf-controls {--toolbar-mode-accent:#8BB8FF}
:root[data-theme=dark] .pbf-controls {--toolbar-mode-accent:#E5FF00}
.pbf-controls .pbf-tool:is([data-panel],[data-row-layout-switch],[data-theme-switch],.pbf-pane-cycle) {border-color:transparent;box-shadow:none;background:transparent}
.pbf-controls .pbf-tool[data-panel][aria-pressed=true],.pbf-controls .pbf-tool[data-row-layout-switch],.pbf-controls .pbf-theme-lever {color:var(--toolbar-mode-accent)}
.pbf-controls .pbf-pane-cycle {width:44px}
.pbf-pane-cycle > svg {width:36px;height:24px}
.pbf-pane-cycle[data-pane-active=outline] svg > path:nth-child(-n+2),
.pbf-pane-cycle[data-pane-active=both] svg > :not(:last-child),
.pbf-pane-cycle[data-pane-active=gantt] svg > :is(rect,path:nth-child(4)) {color:var(--toolbar-mode-accent)}
.plan-grid[data-row-layout=single] .gantt-caption {display:flex;align-items:center;gap:4px;white-space:nowrap}
.plan-grid[data-row-layout=single] .gantt-caption .gantt-meta {display:inline-flex;position:static;gap:4px;align-items:center;margin:0}
.plan-grid[data-row-layout=single] .gantt-caption .gantt-caption-title {display:inline-flex;align-items:center;min-width:0}

.plan-grid[data-row-layout=single] .gantt-caption-title {flex:1;overflow:hidden}
.project-header .project-meta {font:400 11px/1.2 Inter,sans-serif;color:var(--muted)}
.project-header .project-meta :is(.project-code-trigger,.project-code-input) {font:inherit;color:inherit}

.plan-row[data-partial-selection] .gantt-bar:not([data-selected-entry]) {box-shadow:none}
.plan-row[data-partial-selection] .gantt-bar.milestone:not([data-selected-entry])::before {filter:none}
:root[data-touch-capable] .plan-row[data-partial-selection] .gantt-bar:not([data-selected-entry]) .time-grip {opacity:0}

.pbf-combined-list {position:fixed;z-index:9;overflow:hidden auto;border-radius:0 0 6px 6px;background:var(--background);box-shadow:-6px 5px 9px -5px #0008,6px 5px 9px -5px #0008,0 8px 12px -5px #000a,0 1px 0 var(--line);overscroll-behavior:contain}
.pbf-combined-list .pbf-combined-entry {position:relative;left:auto;width:100%;height:var(--plan-row-height);font-weight:400}
.pbf-combined-list .pbf-row-end-controls,.pbf-combined-list .row-grip {display:none}
.pbf-combined-toggle {opacity:0;pointer-events:none}
.outline-cell:is(:hover,:focus-within) .pbf-combined-toggle,:root[data-touch-capable] .pbf-combined-toggle {opacity:1;pointer-events:auto}
.pbf-combined-toggle::before {opacity:.58}
