.project-map-mode { display:flex; gap:4px; margin-bottom:6px; }
.project-map-mode button { padding:6px 12px; background:#17222c; border:1px solid #536773; color:#dfedf3; border-radius:4px; }
.project-map-mode button[aria-pressed="true"] { background:#235b61; border-color:#6bdcc5; }
.project-three-host { position:relative; height:100%; min-height:240px; overflow:hidden; background:#0c1117; }
.project-three-host canvas { display:block; touch-action:none; }
.project-three-labels { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.project-three-labels button { position:absolute; transform:translate(-50%,-100%); max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; background:#101820dd; color:#ecf4f6; border:0; border-radius:3px; padding:3px 5px; font-size:11px; pointer-events:auto; cursor:pointer; }
.project-three-labels .is-muted { opacity:.35; }
.project-three-labels button.resource-label-below { transform:translate(-50%,0); }
.project-three-hover-name { align-self:center; max-width:220px; overflow-wrap:anywhere; padding:0 6px; color:#e4edf2; font-size:12px; line-height:1.3; }
.project-assigned-resources { max-height:240px; overflow:auto; }
.project-action-tabs { display:flex; gap:4px; border-bottom:1px solid #30444e; margin-bottom:12px; }
.project-action-tabs button { flex:1; min-height:32px; padding:6px 10px; background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; color:#a9becb; font-size:12px; }
.project-action-tabs button[aria-selected="true"] { color:#83e5cf; border-bottom-color:#83e5cf; background:#173b3a; }
.project-action-tab-panel { min-height:230px; max-height:55vh; overflow:auto; }
.project-action-tab-panel[hidden], #prompt-project-editor-form > .prompt-project-editor-fields[hidden] { display:none; }
.project-resource-tab-content { grid-column:1 / -1; min-width:0; }
.project-notes { grid-column:1 / -1; min-width:0; }
.project-node-companies { grid-column:1 / -1; min-width:0; width:100%; }
.project-node-company-list { max-height:280px; overflow:auto; }
.project-node-company-row { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.project-node-company-row > span, .project-node-company-row > select { flex:1; min-width:0; overflow-wrap:anywhere; }
.project-node-company-tools { display:flex; gap:4px; flex-shrink:0; }
.project-node-company-compose { display:flex; align-items:flex-end; gap:8px; margin-top:14px; }
.project-node-company-compose label { display:flex; flex-direction:column; gap:5px; flex:1; min-width:0; }
.project-node-companies select { max-width:100%; width:100%; min-width:0; min-height:34px; padding:6px 8px; box-sizing:border-box; border:1px solid var(--line); border-radius:4px; color:var(--text); background:var(--panel); font:inherit; font-size:12px; }
.project-node-companies button { width:28px; min-width:28px; height:28px; min-height:28px; padding:4px; line-height:1; flex-shrink:0; border-radius:4px; background:transparent; color:var(--text); border:1px solid var(--line); }
.project-node-companies button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.project-node-companies [data-company-command=reload] { width:auto; padding:4px 8px; }
.project-node-company-status { font-size:12px; margin:8px 0; overflow-wrap:anywhere; }
.operation-properties { min-width:0; margin:14px 0; border:1px solid var(--line); }
.project-node-summary { grid-column:1 / -1; min-width:0; }
.project-summary-tools { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.project-summary-tools select { min-width:0; flex:1; }
.project-node-summary .project-summary-tools button { flex-shrink:0; min-height:34px; height:34px; padding:5px 8px; font-size:12px; color:var(--text); background:transparent; border:1px solid var(--line); border-radius:4px; }
.project-summary-status,.project-summary-coverage { margin:8px 0; font-size:12px; overflow-wrap:anywhere; }
.project-summary-text { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; }
.project-action-tabs { flex-wrap:wrap; }
.project-notes-compose { display:flex; gap:6px; align-items:flex-start; }
.project-notes textarea { width:100%; min-width:0; resize:vertical; box-sizing:border-box; }
.project-notes-compose textarea { flex:1; }
.project-notes button { flex-shrink:0; }
.project-notes-status { font-size:12px; margin:8px 0; overflow-wrap:anywhere; }
.project-note { padding:10px 0; border-bottom:1px solid var(--line); }
.project-note-meta { display:flex; flex-wrap:wrap; gap:6px 12px; color:var(--muted); font-size:11px; }
.project-note-body { display:flex; align-items:flex-start; gap:8px; margin-top:5px; }
.project-note-body p { flex:1; min-width:0; margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.project-note-tools { display:flex; gap:3px; flex-shrink:0; }
.project-notes .project-note-tools button, .project-notes .project-notes-compose button { width:auto; height:28px; min-width:28px; min-height:28px; padding:4px 6px; line-height:1; background:transparent; color:var(--text); border:1px solid var(--line); border-radius:4px; }
.project-note-tools svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:480px) { .project-note-body { flex-wrap:wrap; } .project-note-body p { flex-basis:100%; } .project-action-tabs button { padding:6px 4px; } }
.project-assigned-resource { display:flex; align-items:center; gap:12px; padding:6px 0; border-bottom:1px solid #30444e; }
.project-assigned-resource span { flex:1; min-width:0; overflow-wrap:anywhere; }
.project-assigned-resource button { width:28px; height:28px; min-height:28px; padding:5px; flex-shrink:0; }
.project-assigned-resource svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:3; }
.project-map-node.drop-compatible { outline:2px dashed #62d8ac; outline-offset:3px; }
.project-three-labels button.drop-compatible { outline:1px dashed #62d8ac; outline-offset:3px; opacity:1; }
.project-three-labels button.drop-ready { background:#17634f; color:white; outline:2px solid #83ffd0; }
.project-three-labels button.is-node-dragging { pointer-events:none; opacity:.7; }
.project-three-host.is-node-dragging { cursor:grabbing; }
.project-three-hover-tools { position:absolute; z-index:5; display:flex; gap:2px; padding:3px; border:1px solid #48636b; background:#13242af5; border-radius:4px; box-shadow:0 3px 12px #0006; }
.project-three-hover-tools[hidden] { display:none; }
.project-three-host .project-three-hover-tools button { display:grid; place-items:center; width:28px; height:28px; min-width:28px; min-height:28px; padding:5px; border:0; border-radius:3px; background:transparent; color:#c3f4e9; }
.project-three-host .project-three-hover-tools button:hover { background:#36505a; }
.project-three-hover-tools svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.project-three-host .project-three-labels button { min-height:0; height:auto; min-width:0; width:auto; line-height:1.2; font-weight:400; }
.project-three-labels.tree-labels button { background:transparent; border:0; border-radius:0; box-shadow:none; padding:0; font-family:Arial,sans-serif; font-size:9px; line-height:1.2; font-weight:400; }
.project-three-tools { position:absolute; bottom:8px; left:8px; right:8px; display:flex; align-items:center; gap:6px; background:#101820ed; padding:6px; border-radius:4px; }
.project-three-tools button { flex-shrink:0; min-height:30px; color:#c3f4e9; background:#21353d; border:1px solid #48636b; border-radius:4px; cursor:pointer; }
.project-three-tools button:disabled { opacity:.4; }
.project-three-tools { flex-wrap:wrap; }
.project-three-tools .project-three-completed-filter { display:inline-flex; align-items:center; gap:4px; margin:0; color:var(--text, #e4edf2); font-size:11px; white-space:nowrap; cursor:pointer; }
.project-three-completed-filter input { width:14px; height:14px; margin:0; accent-color:#20e568; }
.project-three-tools select { min-width:0; max-width:170px; height:32px; background:#21353d; color:#e4edf2; border:1px solid #48636b; border-radius:4px; }
.project-three-tools output { flex:1 1 150px; }
.project-three-legend { position:absolute; top:8px; left:8px; right:8px; max-height:72px; overflow:auto; background:#101820e8; color:#c5d6de; font-size:11px; line-height:1.4; padding:6px 8px; pointer-events:auto; }
.project-three-legend:empty { display:none; }
.project-three-tools output { color:#e4edf2; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* Keep diagram controls compact even inside the main app's button styles. */
#prompt-projects-panel .prompt-projects-tools { gap:3px; align-items:center; flex-wrap:nowrap; overflow-x:auto; margin:0 0 4px; min-height:32px; }
#prompt-projects-panel .prompt-projects-tools > button,
#prompt-projects-panel .project-map-mode button { flex:0 0 auto; width:auto; height:28px; min-height:28px; padding:0 8px; font-size:11px; line-height:1; font-weight:600; border-radius:4px; border:1px solid transparent; background:transparent; color:#b8cbd5; box-shadow:none; }
#prompt-projects-panel .prompt-projects-tools > button.active { border-color:#376d68; background:#163c3b; color:#91ebd5; }
#prompt-projects-panel .prompt-projects-tools button:hover { background:#21343c; }
#prompt-projects-panel .project-map-mode { flex:0 0 auto; gap:1px; margin:0 0 0 auto; padding-left:6px; border-left:1px solid #30444e; }
#prompt-projects-panel .project-map-mode button[aria-pressed="true"] { background:#23535a; color:#e4faf6; }
#prompt-projects-panel.showing-project-visual { height:min(850px,calc(100vh - 24px)); padding:8px; }
#prompt-projects-panel.showing-project-visual .panel-title { margin-bottom:4px; min-height:26px; }
#prompt-projects-panel.showing-project-visual .prompt-projects-status:empty { display:none; }
#prompt-projects-panel > .prompt-projects-status { flex-shrink:0; max-height:90px; overflow:auto; margin:4px 0 8px; overflow-wrap:anywhere; }
#prompt-projects-panel.showing-project-visual .prompt-projects-list { scrollbar-gutter:auto; }
.project-three-host .project-three-tools { bottom:5px; left:5px; right:5px; padding:3px 4px; gap:4px; background:#101820d9; }
.project-three-host .project-three-tools button { width:26px; height:26px; min-height:26px; padding:0; font-size:15px; font-weight:500; line-height:1; border-color:transparent; border-radius:3px; box-shadow:none; }
.project-three-host .project-three-tools select { width:145px; max-width:40%; height:26px; min-height:26px; padding:2px 4px; font-size:11px; line-height:1.2; border-radius:3px; }
.project-three-host .project-three-tools output { font-size:11px; flex:1 1 80px; }
.project-three-host .project-three-legend { top:4px; left:6px; right:6px; padding:0; font-size:10px; background:transparent; max-height:42px; }

/* SAL reads as one continuous notebook, with indented, collapsible sections. */
.sal-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; padding:8px 0 14px; }
.sal-toolbar select { flex:1 1 180px; min-width:0; max-width:400px; min-height:32px; padding:4px 8px; font:inherit; font-size:12px; color:var(--text); background:var(--panel); border:1px solid var(--line); border-radius:4px; }
.sal-toolbar label { display:flex; align-items:center; gap:6px; margin:0; font-size:12px; }
.sal-toolbar input[type=checkbox], .sal-resource-option input[type=checkbox] { width:15px; height:15px; margin:0; flex-shrink:0; }
.sal-notebook { padding:10px 16px 32px; border-left:2px solid var(--line); color:var(--text); min-width:0; }
.sal-notebook > header { position:relative; padding:0 34px 16px 0; margin-bottom:8px; border-bottom:1px solid var(--line); }
.sal-notebook h2 { font-size:20px; font-weight:400; margin:0 0 6px; overflow-wrap:anywhere; }
.sal-notebook header > span { font-size:12px; color:var(--muted); }
.sal-node { border-bottom:1px solid var(--line); padding:8px 0; min-width:0; }
.sal-node > summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 8px; list-style:none; cursor:pointer; padding:5px 0; }
.sal-node > summary::-webkit-details-marker { display:none; }
.sal-node > summary::before { content:'\203a'; display:inline-block; width:10px; flex-shrink:0; transform:rotate(0deg); }
.sal-node[open] > summary::before { transform:rotate(90deg); }
.sal-code { color:var(--muted); font-size:11px; }
.sal-title { flex:1 1 150px; font-size:14px; overflow-wrap:anywhere; }
.sal-title small { color:var(--muted); font-size:11px; }
.sal-state { font-size:11px; color:var(--muted); }
.sal-node-body { margin:4px 0 0 18px; min-width:0; }
.sal-node-body > .sal-node { margin-top:8px; padding-left:12px; border-left:1px solid var(--line); }
.sal-node-tools { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.sal-node-tools > span { flex:1 1 180px; color:var(--muted); font-size:11px; }
#prompt-projects-panel .sal-node-tools button, #prompt-projects-panel .sal-project-edit { width:auto; min-width:28px; height:28px; min-height:28px; padding:4px 6px; font-size:11px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); }
.sal-node-tools svg, .sal-project-edit svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.sal-project-edit { position:absolute; right:0; top:0; }
.sal-description { white-space:pre-wrap; line-height:1.6; overflow-wrap:anywhere; font-size:13px; margin:10px 0; }
.sal-resources { color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.sal-notes { margin-top:8px; font-size:12px; }
.sal-notes > summary { cursor:pointer; color:var(--muted); padding:4px 0; }
.sal-notes-content { padding:8px 0; }
.sal-notes .project-note-body p, .sal-notes .project-notes-list > p { font-size:13px; line-height:1.6; }
.sal-notes textarea { border:1px solid var(--line); border-radius:4px; padding:8px; font:inherit; color:var(--text); background:var(--panel); }
#sal-action-dialog .prompt-project-editor-card { max-height:calc(100dvh - 24px); overflow:auto; }
#sal-action-dialog .panel-title { display:flex; justify-content:space-between; align-items:center; gap:8px; }
#sal-action-dialog .panel-title button { width:28px; min-width:28px; height:28px; min-height:28px; padding:4px; border:0; color:var(--text); background:transparent; }
#sal-action-dialog [hidden] { display:none; }
.sal-action-resources { margin:12px 0; max-height:190px; overflow:auto; }
.sal-action-resources h3 { font-size:13px; font-weight:400; margin:0 0 6px; }
.sal-resource-option { display:grid; grid-template-columns:18px minmax(0,1fr) 80px; align-items:center; gap:8px; border-bottom:1px solid var(--line); padding:6px 0; }
.sal-resource-option span { overflow-wrap:anywhere; font-size:13px; }
.sal-resource-option input[type=number] { min-width:0; width:100%; box-sizing:border-box; }
#project-operations-dialog { background:transparent; backdrop-filter:none; pointer-events:none; }
.operations-glass { pointer-events:auto; position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:760px; max-width:calc(100vw - 24px); height:540px; max-height:calc(100dvh - 24px); min-width:min(320px,calc(100vw - 24px)); min-height:240px; resize:both; overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:8px; color:var(--text); background:color-mix(in srgb,var(--bg) 78%,transparent); backdrop-filter:blur(20px) saturate(130%); box-shadow:0 16px 50px #0003; }
.operations-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; border-bottom:1px solid var(--line); cursor:move; touch-action:none; user-select:none; }
.operations-header span { overflow-wrap:anywhere; font-size:14px; }
.operations-content { flex:1; min-height:0; overflow:auto; scrollbar-gutter:stable; padding:12px; }
.operations-toolbar { display:flex; align-items:center; gap:8px; margin-bottom:8px; font-size:12px; }
#project-operations-dialog button { width:auto; min-width:28px; min-height:28px; height:28px; padding:4px 8px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); font-size:12px; }
#project-operations-dialog button:disabled { opacity:.5; }
#project-operations-dialog svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.operation-row { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); }
.operation-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; font-size:13px; overflow-wrap:anywhere; }
.operation-main small,.operation-state { color:var(--muted); font-size:11px; }
.operation-tools { display:flex; gap:4px; }
.operations-status { font-size:12px; overflow-wrap:anywhere; margin:6px 0; }
.operations-editor,.operations-notes { border-top:1px solid var(--line); padding-top:10px; margin-top:12px; }
.operations-editor[hidden],.operations-notes[hidden] { display:none; }
.operations-glass h3 { font-size:14px; font-weight:400; margin:4px 0 12px; }
.operations-glass .project-note-body p,.operations-glass .project-notes-list > p { font-size:13px; line-height:1.6; }
.operations-glass .project-notes textarea { font:inherit; padding:8px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); }
.operation-resources { border:0; margin:12px 0; padding:0; max-height:160px; overflow:auto; font-size:12px; }
.operation-resources label { display:inline-flex; align-items:center; gap:6px; margin:6px 16px 4px 0; }
.operation-resources input { width:15px; height:15px; margin:0; }
.project-teams-toolbar { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; padding:8px 0 16px; }
.project-teams-toolbar label { flex:1; min-width:180px; max-width:420px; display:flex; flex-direction:column; gap:6px; font-size:12px; }
.project-teams-toolbar select,.project-team-choice select,.project-team-editor input[name=name] { min-width:0; width:100%; min-height:34px; padding:6px 8px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; font-size:13px; box-sizing:border-box; }
.project-team-row { display:flex; gap:6px; align-items:center; border-bottom:1px solid var(--line); padding:12px 0; }
.project-team-row > div { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; overflow-wrap:anywhere; font-size:14px; }
.project-team-row small { font-size:12px; color:var(--muted); }
.project-team-row svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; }
#prompt-projects-panel .project-teams-toolbar button,#prompt-projects-panel .project-team-row button,#prompt-projects-panel .project-team-choice button,.project-team-choice button { min-height:30px; height:30px; width:auto; padding:4px 8px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); font-size:12px; }
.project-team-choice { display:flex; gap:8px; align-items:center; margin:8px 0; }
.project-team-choice select { flex:1; }
.project-team-choice button { flex-shrink:0; }
.project-team-editor { padding:16px 0; border-top:1px solid var(--line); margin-top:12px; }
.project-team-editor[hidden] { display:none; }
.project-team-editor > form > label { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.project-teams-status { font-size:12px; margin:6px 0; overflow-wrap:anywhere; }
.project-team-branch { margin:6px 0 6px 16px; padding:6px; border-left:1px solid var(--line); font-size:13px; }
.project-team-branch summary { cursor:pointer; }
.project-team-branch > div { padding:8px 0; color:var(--muted); overflow-wrap:anywhere; }
.project-wbs.interactive-wbs { display:block; min-width:0; width:100%; }
.wbs-node { min-width:0; padding:8px 0; border-bottom:1px solid var(--line); }
.wbs-node > summary { display:flex; gap:10px; align-items:baseline; list-style:none; padding:6px 0; cursor:default; }
.wbs-node > summary::-webkit-details-marker { display:none; }
.wbs-node > summary::before { content:'\203a'; flex:0 0 10px; display:inline-block; }
.wbs-node[open] > summary::before { transform:rotate(90deg); }
.wbs-node.wbs-leaf > summary::before { visibility:hidden; }
.wbs-node.wbs-leaf > summary { cursor:default; }
.wbs-node > summary[draggable="true"]:active,
.wbs-node.wbs-dragging > summary { cursor:grabbing; }
.wbs-node.wbs-dragging { opacity:.45; }
.wbs-node[data-wbs-drop="before"] > summary { box-shadow:inset 0 2px var(--accent); }
.wbs-node[data-wbs-drop="after"] > summary { box-shadow:inset 0 -2px var(--accent); }
.wbs-node[data-wbs-drop="inside"] > summary { outline:2px solid var(--accent); outline-offset:-2px; }
.interactive-wbs[aria-busy="true"] { pointer-events:none; opacity:.65; }
.wbs-title { flex:1; min-width:0; overflow-wrap:anywhere; font-size:14px; }
.wbs-state { flex-shrink:0; font-size:11px; color:var(--muted); }
.wbs-node-body { min-width:0; padding-left:20px; }
.wbs-completed-filter { display:flex; align-items:center; gap:7px; width:fit-content; margin:0 0 8px; color:var(--text); font-size:12px; font-weight:400; cursor:pointer; }
.wbs-fixed-controls { position:sticky; top:0; left:0; z-index:10; width:100%; box-sizing:border-box; padding-bottom:1px; background:var(--bg); }
.wbs-fixed-controls { display:flex; flex-wrap:wrap; align-items:center; gap:0 12px; }
.wbs-fixed-controls > .project-node-search { position:static; flex-basis:100%; min-width:0; }
.wbs-fixed-controls > .project-node-filters { margin-left:auto; }
.project-node-code { margin:2px 0 10px; text-align:left; color:var(--muted); font-size:11px; font-weight:400; line-height:1.4; overflow-wrap:anywhere; user-select:text; }
.project-node-filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:0 0 6px; font-size:12px; }
#prompt-projects-panel .project-node-filters button { min-height:28px; height:28px; padding:4px 9px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; }
#prompt-projects-panel .project-node-filters button[aria-pressed="true"] { border-color:var(--accent); color:var(--accent); }
.project-node-filters output { color:var(--muted); }
.project-node-filters svg,.project-filter-dialog svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; }
.project-diagram-picker .project-node-filters { padding:6px 0 0; }
.project-filter-dialog { width:660px; max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:16px; box-sizing:border-box; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--text); font:inherit; overflow:auto; }
.project-filter-dialog::backdrop { background:rgb(0 0 0 / .3); }
.project-filter-dialog form { margin:0; min-width:0; }
.project-filter-dialog header,.project-filter-dialog footer { display:flex; align-items:center; gap:8px; }
.project-filter-dialog header { justify-content:space-between; margin-bottom:14px; }
.project-filter-dialog h2 { font-size:16px; font-weight:400; margin:0; }
.project-filter-dialog footer { justify-content:flex-end; flex-wrap:wrap; margin-top:12px; }
.project-filter-dialog footer [data-filter-reset] { margin-right:auto; }
.project-filter-dialog button,.project-filter-dialog select { min-height:30px; padding:5px 8px; border:1px solid var(--line); border-radius:4px; background:var(--bg); color:var(--text); font:inherit; font-size:12px; }
.project-filter-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.project-filter-fields fieldset { margin:0; min-width:0; padding:8px; border:1px solid var(--line); }
.project-filter-fields legend { font-size:12px; font-weight:400; padding:0 4px; }
.project-filter-fields select { width:100%; min-width:0; }
.project-filter-options { max-height:200px; overflow:auto; display:flex; flex-direction:column; gap:2px; }
.project-filter-options label { display:flex; align-items:center; gap:8px; padding:4px 2px; font-size:12px; font-weight:400; text-align:left; }
.project-filter-options span { min-width:0; overflow-wrap:anywhere; }
.project-filter-options label.filter-option-unavailable { opacity:.45; cursor:not-allowed; }
.node-priority-button { flex:0 0 28px; width:28px; height:28px; padding:4px; border:0; background:transparent; cursor:pointer; }
.node-priority-button:disabled { opacity:.35; cursor:default; }
.node-priority-button svg,.node-priority-options svg { width:18px; height:18px; flex:0 0 18px; }
.node-priority-field-title { display:flex; align-items:center; gap:6px; }
.node-priority-field-title svg { width:18px; height:18px; }
.node-priority-dialog { width:280px; max-width:calc(100vw - 24px); padding:12px; border:1px solid var(--line); border-radius:6px; color:var(--text); background:var(--panel); }
.node-priority-dialog::backdrop { background:rgb(0 0 0 / .25); }
.node-priority-options { display:grid; gap:4px; }
.node-priority-options button { display:flex; align-items:center; gap:10px; padding:8px; font:inherit; font-size:12px; font-weight:400; color:var(--text); border:1px solid transparent; border-radius:4px; background:transparent; }
.node-priority-options button[aria-pressed=true] { border-color:var(--line); background:var(--bg); }
.project-filter-options input[type="checkbox"] { flex:0 0 15px; width:15px; height:15px; min-height:0; margin:0; padding:0; accent-color:var(--accent); }
.project-filter-dialog [role="status"] { font-size:12px; color:var(--muted); margin:8px 0 0; }
@media(max-width:480px) { .project-filter-fields { grid-template-columns:minmax(0,1fr); } .project-filter-options { max-height:150px; } }
#prompt-projects-panel .wbs-completed-filter input { width:15px; height:15px; min-height:0; margin:0; padding:0; accent-color:var(--accent); cursor:pointer; }
.wbs-description { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; line-height:1.5; margin:4px 0 8px; }
.wbs-node-tools { display:flex; justify-content:flex-end; gap:4px; padding:2px 0 6px; }
#prompt-projects-panel .wbs-node-tools button { width:28px; height:28px; min-height:28px; padding:5px; line-height:1; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); font-size:16px; }
.wbs-node-tools svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.wbs-children { border-left:1px solid var(--line); padding-left:12px; }
@media(max-width:480px) { .wbs-node-body { padding-left:6px; } .wbs-children { padding-left:6px; } .wbs-node > summary { flex-wrap:wrap; gap:5px; } .wbs-state { margin-left:auto; } }
.project-wbs.interactive-wbs { min-width:640px; }
.wbs-node { padding:2px 0; }
.wbs-node { --wbs-level-shade:0%; }
.wbs-node[data-wbs-key^="phase:"] { --wbs-level-shade:5%; }
.wbs-node[data-wbs-key^="task:"] { --wbs-level-shade:10%; }
.wbs-node[data-wbs-key^="action:"] { --wbs-level-shade:15%; }
.wbs-node[data-wbs-key^="operation:"] { --wbs-level-shade:20%; }
.wbs-node > summary { display:grid; grid-template-columns:10px minmax(110px,1fr) 24px 210px 28px 156px; align-items:center; gap:10px; min-height:36px; padding:3px 0; background:color-mix(in srgb,var(--panel),#000 var(--wbs-level-shade)); }
.wbs-node[data-wbs-key^="project:"] > summary { grid-template-columns:10px minmax(110px,1fr) 24px 24px 210px 28px 156px; }
.wbs-info-dialog:has([name=format]) button { width:auto; height:32px; padding:5px 12px; }
.wbs-info-dialog:has([name=format]) footer { display:flex; justify-content:flex-end; gap:8px; }
#prompt-projects-panel .wbs-diagram-button { display:grid; place-items:center; width:24px; height:28px; min-height:28px; padding:3px; border:0; border-radius:4px; background:transparent; color:var(--text); cursor:pointer; }
.wbs-diagram-button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#prompt-projects-panel .wbs-diagram-button:hover { background:color-mix(in srgb,var(--text) 10%,transparent); }
.project-diagram-picker { flex-shrink:0; padding:4px 0 8px; }
.project-diagram-picker label { display:flex; align-items:center; gap:10px; min-width:0; color:var(--text); font-size:12px; font-weight:400; }
#prompt-projects-panel .project-diagram-picker select { flex:1; width:100%; min-width:0; max-width:520px; height:32px; min-height:32px; padding:4px 8px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; font-size:12px; }
#prompt-projects-panel .wbs-info-button { display:grid; place-items:center; width:24px; height:28px; min-height:28px; padding:0; border:0; border-radius:4px; background:transparent; color:var(--text); cursor:pointer; }
.wbs-info-button span { display:grid; place-items:center; box-sizing:border-box; width:17px; height:17px; border:1px solid currentColor; border-radius:50%; font:400 12px/1 Georgia,serif; }
#prompt-projects-panel .wbs-info-button:hover { background:color-mix(in srgb,var(--text) 10%,transparent); }
.wbs-info-dialog { box-sizing:border-box; width:520px; max-width:calc(100vw - 32px); max-height:calc(100dvh - 48px); padding:18px; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--text); box-shadow:0 12px 36px #0003; }
.wbs-info-dialog::backdrop { background:#0004; }
.wbs-info-dialog header { display:flex; align-items:flex-start; gap:12px; margin-bottom:14px; }
.wbs-info-dialog h2 { flex:1; min-width:0; margin:0; font:inherit; font-size:16px; font-weight:400; overflow-wrap:anywhere; }
.wbs-info-dialog button { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; min-height:28px; padding:5px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--text); cursor:pointer; }
.wbs-info-dialog button svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.wbs-info-text { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; font-size:13px; }
#prompt-projects-panel.showing-project-registry .prompt-projects-command { display:none; }
.registry-tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:12px; }
#prompt-projects-panel .registry-tabs button { min-height:32px; padding:6px 14px; border:1px solid transparent; border-bottom:0; border-radius:4px 4px 0 0; background:transparent; color:var(--text); font:inherit; font-size:12px; font-weight:400; cursor:pointer; }
#prompt-projects-panel .registry-tabs [aria-selected="true"] { background:var(--panel); border-color:var(--line); box-shadow:inset 0 2px var(--accent); }
.project-registry { min-width:0; }
#prompt-registry-status { margin-bottom:10px; font-size:12px; color:var(--text); overflow-wrap:anywhere; }
#prompt-registry-status:empty { display:none; }
.project-registry .prompt-project-resource-form { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 0 14px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.project-registry .prompt-project-resource-form label { font-weight:400; }
.project-registry .prompt-project-resource-form :is(input,select,textarea) { box-sizing:border-box; width:100%; min-width:0; min-height:34px; padding:7px 8px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; font-size:12px; }
.project-registry .prompt-project-resource-form textarea { resize:vertical; }
.registry-form-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:8px; }
.project-registry .prompt-project-resource-form button { min-height:32px; padding:6px 12px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; font-size:12px; font-weight:400; cursor:pointer; }
.project-registry .prompt-project-resource-row { background:transparent; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.project-registry .prompt-project-resource-row > span:first-child { min-width:0; overflow-wrap:anywhere; }
.project-registry .prompt-project-resource-row b { font-weight:400; }
@media(max-width:600px) { .project-registry .prompt-project-resource-form { grid-template-columns:minmax(0,1fr); } }
.wbs-title,.wbs-description { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; margin:0; font-size:13px; }
.wbs-description { color:var(--muted); }
.wbs-state { white-space:nowrap; margin:0; }
#prompt-projects-panel .wbs-state { --wbs-status-bg:#e0e2e5; --wbs-status-text:#30363c; display:block; box-sizing:border-box; width:210px; min-width:0; height:28px; min-height:28px; padding:4px 8px; border:1px solid #0002; border-radius:4px; background:var(--wbs-status-bg); color:var(--wbs-status-text); font:inherit; font-size:11px; font-weight:400; line-height:18px; white-space:nowrap; }
#prompt-projects-panel select.wbs-state { padding-right:22px; cursor:pointer; }
#prompt-projects-panel .wbs-state { color:var(--wbs-status-text) !important; }
#prompt-projects-panel select.wbs-state:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
#prompt-projects-panel select.wbs-state:disabled { opacity:.65; cursor:wait; }
#prompt-projects-panel .wbs-state option { background:var(--panel); color:var(--text); }
#prompt-projects-panel .wbs-state[data-status="pending_approval"] { --wbs-status-bg:#f4aa55; --wbs-status-text:#442600; }
#prompt-projects-panel .wbs-state[data-status="planned"] { --wbs-status-bg:#f5dc69; --wbs-status-text:#3d3400; }
#prompt-projects-panel .wbs-state[data-status="in_progress"] { --wbs-status-bg:#d8de68; --wbs-status-text:#30380b; }
#prompt-projects-panel .wbs-state[data-status="uat_internal"] { --wbs-status-bg:#b3d570; --wbs-status-text:#26390f; }
#prompt-projects-panel .wbs-state[data-status="ready_test"] { --wbs-status-bg:#89c579; --wbs-status-text:#173b1f; }
#prompt-projects-panel .wbs-state[data-status="uat_client"] { --wbs-status-bg:#5baa70; --wbs-status-text:#102d19; }
#prompt-projects-panel .wbs-state[data-status="ready_prod"] { --wbs-status-bg:#358253; --wbs-status-text:#fff; }
#prompt-projects-panel .wbs-state[data-status="released"] { --wbs-status-bg:#236841; --wbs-status-text:#fff; }
#prompt-projects-panel .wbs-state[data-status="done"] { --wbs-status-bg:#174d32; --wbs-status-text:#fff; }
.wbs-node-tools { padding:0; justify-content:flex-end; }
.project-node-search { display:flex; align-items:center; gap:8px; padding:6px 0 10px; position:sticky; top:0; z-index:6; background:var(--bg); }
.project-node-search input,.project-node-search select { min-width:0; height:32px; padding:4px 8px; border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--text); font:inherit; font-size:12px; }
.project-node-search input { flex:1 1 180px; }
.project-node-search select { flex:1 1 200px; max-width:50%; }
.project-node-search select[hidden] { display:none; }
.project-node-search output { flex:0 0 auto; padding-right:4px; font-size:11px; color:var(--muted); white-space:nowrap; }
#prompt-projects-list.project-search-3d { display:flex; flex-direction:column; overflow:hidden; }
.project-search-3d > .project-node-search { flex-shrink:0; }
.project-search-3d > .project-three-host { flex:1; height:auto; min-height:240px; }
.wbs-search-match > summary,.operation-search-match { background:color-mix(in srgb,var(--text) 10%,transparent); outline:1px solid var(--line); outline-offset:-1px; }
.wbs-search-match > summary { background:color-mix(in srgb,#39cba3 20%,var(--bg)); outline-color:#299d84; }
.project-map-node.map-search-match { opacity:1; outline:2px solid #299d84; outline-offset:2px; box-shadow:0 0 12px #39cba355; }
.project-three-labels button.three-search-match { opacity:1; color:var(--text); outline:1px solid #299d84; outline-offset:3px; text-shadow:0 0 4px #39cba3; }
@media(max-width:480px) { .project-node-search { flex-wrap:wrap; } .project-node-search input { flex-basis:100%; } .project-node-search select { max-width:100%; } }
@media(max-width:480px) { .operation-row { flex-wrap:wrap; gap:6px; } .operation-main { flex-basis:100%; } .operation-state { flex:1; } }
@media(max-width:480px) {
  .sal-notebook { padding:8px 4px 24px 8px; }
  .sal-node-body { margin-left:6px; }
  .sal-node-body > .sal-node { padding-left:6px; }
  .sal-state { flex-basis:100%; padding-left:18px; }
  .sal-node-tools > span { flex-basis:100%; }
}
.project-progress-control { display:flex; align-items:center; gap:12px; min-width:0; }
.project-progress-control input[type=range] { flex:1; min-width:0; width:100%; height:32px; min-height:32px; padding:0; border:0; background:transparent; accent-color:var(--accent); }
.project-progress-control output { flex:0 0 44px; text-align:right; font-size:13px; font-weight:400; font-variant-numeric:tabular-nums; }
.project-dependency-field select[multiple] { min-height:96px; padding:4px; }
.project-dependency-field option { padding:5px 6px; }
.project-dependency-field small { color:var(--muted); font-size:10px; line-height:1.45; }
