:root{--bg: var(--tg-bg, #ffffff);--bg2: var(--tg-secondary-bg, #f1f2f5);--section: var(--tg-section-bg, var(--bg));--text: var(--tg-text, #111418);--hint: var(--tg-hint, #6b7280);--link: var(--tg-link, #2563eb);--button: var(--tg-button, #2481cc);--button-text: var(--tg-button-text, #ffffff);--danger: var(--tg-destructive, #d14343);--accent: var(--tg-accent, var(--link));--safe-top: max(var(--tg-safe-top, var(--tg-safe-area-inset-top, 0px)), env(safe-area-inset-top, 0px));--safe-bottom: max(var(--tg-safe-bottom, var(--tg-safe-area-inset-bottom, 0px)), env(safe-area-inset-bottom, 0px));--safe-left: max(var(--tg-safe-left, var(--tg-safe-area-inset-left, 0px)), env(safe-area-inset-left, 0px));--safe-right: max(var(--tg-safe-right, var(--tg-safe-area-inset-right, 0px)), env(safe-area-inset-right, 0px));--content-top: var(--tg-content-safe-top, var(--tg-content-safe-area-inset-top, 0px));--content-bottom: var(--tg-content-safe-bottom, var(--tg-content-safe-area-inset-bottom, 0px));--content-left: var(--tg-content-safe-left, var(--tg-content-safe-area-inset-left, 0px));--content-right: var(--tg-content-safe-right, var(--tg-content-safe-area-inset-right, 0px));--inset-top: calc(var(--safe-top) + var(--content-top));--inset-bottom: calc(var(--safe-bottom) + var(--content-bottom));--inset-left: calc(var(--safe-left) + var(--content-left));--inset-right: calc(var(--safe-right) + var(--content-right));--vh: var(--tg-viewport-stable-height, 100dvh);--radius: 12px;color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}:root[data-scheme=dark]{--bg: var(--tg-bg, #17212b);--bg2: var(--tg-secondary-bg, #0e1621);--text: var(--tg-text, #f5f5f5);--hint: var(--tg-hint, #8f9ba8);--link: var(--tg-link, #6ab3f3);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-scheme]){--bg: #17212b;--bg2: #0e1621;--text: #f5f5f5;--hint: #8f9ba8;--link: #6ab3f3;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg2);color:var(--text)}body{min-height:var(--vh);overscroll-behavior:none}a{color:var(--link)}button{font:inherit;cursor:pointer;border-radius:10px;border:0;padding:8px 14px;min-height:40px}button:disabled{opacity:.5;cursor:default}button:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.primary{background:var(--button);color:var(--button-text)}.secondary{background:var(--bg2);color:var(--text)}.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.link-button{background:none;color:var(--link);padding:0 6px;min-height:auto}.icon-button{background:none;color:var(--text);font-size:20px;padding:4px 10px}.hint{color:var(--hint);font-size:13px}.notice{margin:8px 12px;padding:10px 12px;border-radius:var(--radius);background:var(--section);color:var(--hint)}.notice.offline{color:var(--danger)}.empty,.loading{color:var(--hint);text-align:center;padding:32px 16px}.test-banner{position:sticky;top:0;z-index:50;background:#b91c1c;color:#fff;text-align:center;font-weight:700;padding:4px;letter-spacing:.04em}.screen{min-height:var(--vh);padding:calc(24px + var(--inset-top)) calc(20px + var(--inset-right)) calc(24px + var(--inset-bottom)) calc(20px + var(--inset-left))}.center{display:flex;flex-direction:column;justify-content:center;max-width:520px;margin:0 auto}.shell{display:flex;flex-direction:column;height:var(--vh)}.shell>.test-banner{position:static}.app{display:grid;grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,1fr);flex:1;min-height:0;padding:var(--inset-top) var(--inset-right) 0 var(--inset-left)}.topbar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg)}.topbar h1{font-size:17px;margin:0;flex:1}.conn{width:10px;height:10px;border-radius:50%;background:var(--hint)}.conn-stream{background:#22a35a}.conn-polling{background:#d4a017}.conn-offline{background:var(--danger)}.tabs{display:flex;gap:4px;padding:6px 8px;background:var(--bg);border-bottom:1px solid var(--bg2);overflow-x:auto;scrollbar-width:none}.tab{flex:1 0 auto;background:none;color:var(--hint);padding:8px 10px;white-space:nowrap}.tab.active{background:var(--bg2);color:var(--text);font-weight:600}.count{display:inline-block;margin-left:6px;min-width:20px;padding:0 6px;border-radius:10px;background:var(--danger);color:#fff;font-size:12px}.main{overflow:hidden;display:flex;min-height:0;grid-row:4}.app>.notice.offline{grid-row:3}.view{flex:1;min-width:0;overflow-y:auto;padding:8px 12px calc(12px + var(--inset-bottom));-webkit-overflow-scrolling:touch}.dialogue{display:flex;flex-direction:column;padding:0;overflow:hidden}.context-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--section);border-bottom:1px solid var(--bg2)}.context-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.context-title{background:none;color:var(--text);font-weight:600;padding:0;min-height:auto;text-align:left;overflow-wrap:anywhere}.context-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.timeline{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:85%;padding:8px 12px;border-radius:14px;background:var(--bg);overflow-wrap:anywhere}.bubble.own{margin-left:auto;background:var(--button);color:var(--button-text)}.bubble.own .delivery{font-size:12px;opacity:.85;margin-top:4px}.bubble.own .link-button{color:inherit;text-decoration:underline}.bubble.own.status-rejected,.bubble.own.status-refused{background:var(--bg);color:var(--text);border:1px solid var(--danger)}.bubble.own.status-uncertain{opacity:.85}.own-text{white-space:pre-wrap}.bubble.decision{border-left:3px solid var(--danger)}.system-line{align-self:center;color:var(--hint);font-size:12px}.job-summary{background:var(--bg);border-radius:var(--radius);padding:10px 12px}.job-summary h3{margin:0 0 4px;font-size:13px;color:var(--hint);font-weight:500}.composer{padding:8px 12px calc(8px + var(--inset-bottom));background:var(--bg);border-top:1px solid var(--bg2)}.composer-note{margin:0 0 6px;font-size:13px;color:var(--hint)}.composer-row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;resize:none;font:inherit;color:var(--text);background:var(--bg2);border:0;border-radius:12px;padding:10px 12px;min-height:42px;max-height:200px}.job-card{background:var(--bg);border-radius:var(--radius);padding:12px;margin:8px 0}.job-card header,.details header{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.job-card h3,.details h2{margin:0;font-size:16px;overflow-wrap:anywhere}.job-card footer,.details footer{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.view h2{font-size:13px;text-transform:uppercase;color:var(--hint);margin:16px 4px 4px;font-weight:600}.badge{flex-shrink:0;font-size:12px;padding:2px 8px;border-radius:10px;background:var(--bg2);color:var(--hint);white-space:nowrap}.badge-running,.badge-accepted{color:var(--link)}.badge-awaiting_owner,.badge-cancel_requested{color:#b7791f}.badge-succeeded{color:#22a35a}.badge-failed,.badge-unknown{color:var(--danger)}.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:8px 0 0;font-size:14px}.facts dt{color:var(--hint)}.facts dd{margin:0;overflow-wrap:anywhere}.facts .rich p{margin:0}.blocker{color:var(--danger)}.result-card{margin-top:8px;padding:8px 10px;border-left:3px solid #22a35a;background:var(--bg2);border-radius:8px}.result-card h4{margin:0 0 4px}.evidence{list-style:none;padding:0;margin:6px 0 0;font-size:14px}.evidence li{padding:2px 0;overflow-wrap:anywhere}.evidence-kind{color:var(--hint)}.stop-status{font-size:13px;color:#b7791f}.stop-status.stop-unknown,.stop-status.stop-rejected,.stop-status.stop-refused{color:var(--danger)}.problem{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:var(--radius);background:var(--bg);border-left:3px solid var(--danger);margin:8px 0}.problem.compact{flex-direction:row;flex-wrap:wrap;align-items:center;font-size:14px}.rich p{margin:0 0 6px}.rich p:last-child{margin-bottom:0}.rich pre{overflow-x:auto;background:var(--bg2);padding:8px;border-radius:8px}.rich code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.rich ul,.rich ol{margin:4px 0;padding-left:20px}.overlay{position:fixed;inset:0;z-index:20;overflow-y:auto;background:var(--bg2);padding:calc(12px + var(--inset-top)) calc(12px + var(--inset-right)) calc(16px + var(--inset-bottom)) calc(12px + var(--inset-left))}.overlay-close{position:absolute;right:calc(8px + var(--inset-right));top:calc(8px + var(--inset-top));background:none;color:var(--hint);font-size:18px}.details{background:var(--bg);border-radius:var(--radius);padding:14px 40px 14px 14px}.details h3{font-size:13px;color:var(--hint);margin:14px 0 4px;font-weight:600}.activity{padding-left:18px;font-size:14px}.activity li{margin-bottom:6px}@media(max-width:420px){.tabs{gap:2px;padding:6px 4px}.tab{padding:8px 7px;font-size:14px}.count{margin-left:4px;min-width:18px;padding:0 5px}}@media(max-width:520px){.facts{grid-template-columns:1fr;gap:0}.facts dt{margin-top:6px;font-size:13px}}@media(min-width:760px){.app{grid-template-columns:200px 1fr;grid-template-rows:auto auto 1fr}.app.has-overlay{grid-template-columns:200px 1fr minmax(320px,40%)}.topbar{grid-column:1 / -1}.tabs{grid-row:2 / span 2;flex-direction:column;border-bottom:0;border-right:1px solid var(--bg2)}.tab{flex:0;text-align:left}.app>.notice.offline{grid-column:2;grid-row:2}.main{grid-column:2;grid-row:3}.overlay{position:static;grid-column:3;grid-row:2 / span 2;border-left:1px solid var(--bg);padding:12px 12px calc(16px + var(--inset-bottom))}.overlay-close{top:8px;right:8px}.bubble{max-width:70%}.tabs .web-brand{display:block;padding:4px 10px 12px;font-weight:700;font-size:18px;letter-spacing:.02em;color:var(--text)}}@media(min-width:1100px){.app{width:100%;max-width:1400px;margin:0 auto}}.devices{margin-bottom:12px;display:flex;flex-direction:column;gap:8px}.devices h3{margin:6px 0 0}.device-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.device-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:14px}.device-name{overflow-wrap:anywhere;min-width:0}.device-confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.enroll-link{display:flex;flex-direction:column;gap:6px}.enroll-link .hint{margin:0}.enroll-url{display:block;padding:8px;border-radius:8px;background:var(--bg2);font-size:13px;overflow-wrap:anywhere;user-select:all}.web-brand{display:none}.welcome{display:flex;align-items:center;justify-content:center}.welcome-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;padding:28px 24px;background:var(--bg);border-radius:16px;box-shadow:0 8px 30px #00000014}.welcome-card h1{margin:0;font-size:24px;line-height:1.25}.welcome-lead{margin:0;color:var(--hint);line-height:1.45}.welcome-button{min-height:52px;font-size:17px;font-weight:600;border-radius:12px}.welcome-notice{margin:0;padding:10px 12px;border-radius:10px;background:var(--bg2);color:var(--danger)}.welcome-card .hint{margin:0}.welcome-field{display:flex;flex-direction:column;gap:6px;color:var(--hint);font-size:14px}.welcome-field input{font:inherit;font-size:16px;color:var(--text);background:var(--bg2);border:1px solid var(--hint);border-radius:10px;padding:10px 12px;min-height:44px}.welcome-field input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.binding-panel,.binding-picker{display:flex;flex-direction:column;gap:10px;min-width:0}.binding-panel{margin-top:12px}.binding-project{display:flex;flex-direction:column;gap:6px;min-width:0}.binding-project select{width:100%;min-width:0;min-height:40px;padding:8px;font:inherit;color:var(--text);background:var(--bg2);border:1px solid var(--hint);border-radius:10px}.binding-picker fieldset{min-width:0;margin:0;padding:8px;border:1px solid var(--hint);border-radius:10px}.binding-option{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 0;overflow-wrap:anywhere}.binding-option input{flex-shrink:0}.binding-option span{min-width:0}.binding-option:has(input:disabled){color:var(--hint)}.binding-receipt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;overflow-wrap:anywhere}.binding-project select:focus-visible,.binding-option input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details.bubble.result{border-left:3px solid #22a35a}details.bubble.result summary{cursor:pointer;color:var(--hint);font-size:13px}details.bubble.result[open] summary{margin-bottom:6px}.tab{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.view-header h2{margin:0}.project-card{background:var(--bg);border-radius:var(--radius);padding:10px 12px;margin:8px 0}.project-card>summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;cursor:pointer;list-style:none}.project-card>summary::-webkit-details-marker{display:none}.project-title{font-weight:600;overflow-wrap:anywhere}.project-counts{flex-basis:100%}.status-active{color:#22a35a}.status-paused,.status-held{color:#b7791f}.status-unavailable{color:var(--danger)}.task-list{list-style:none;margin:8px 0 0;padding:0}.task-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 8px;padding:8px 0;border-top:1px solid var(--bg2)}.task-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 60%}.task-title{overflow-wrap:anywhere}.task-question .task-title:before{content:"? ";color:#b7791f;font-weight:700}.task-question-text{margin:2px 0 0;font-size:14px}.task-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.confirm-hint,.launch-status{flex-basis:100%;margin:0}.launch-refused,.launch-failed{color:var(--danger)}.launch-accepted{color:#22a35a}.approvals{margin:0;padding-left:18px}.answer-controls,.approve-controls{flex-basis:100%;display:flex;flex-direction:column;gap:6px;margin-top:4px}.answer-comment{display:flex;flex-direction:column;gap:4px}.answer-comment textarea{resize:vertical;font:inherit;color:var(--text);background:var(--bg2);border:0;border-radius:10px;padding:8px 10px;min-height:42px}.run-approval{display:flex;flex-direction:column;gap:8px}.run-approval-question{display:flex;flex-direction:column;gap:4px}.run-approval-command{margin:0;padding:8px;border-radius:8px;background:var(--tg-theme-secondary-bg-color, rgba(127, 127, 127, .12));white-space:pre-wrap;overflow-wrap:anywhere;max-height:9em;overflow:auto;font-size:.85em}.continue-approval{display:flex;flex-direction:column;gap:8px;padding:8px 0}.project-footer{display:flex;justify-content:flex-end;margin-top:8px}.back-button{font-size:15px}.project-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:10px 4px 4px}.view .project-page-title{margin:0;font-size:20px;text-transform:none;color:var(--text);font-weight:700;overflow-wrap:anywhere}.project-goal{margin:6px 4px;overflow-wrap:anywhere}.roadmap-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 4px}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;border-radius:12px;background:var(--bg)}.seg{background:none;color:var(--hint);min-height:36px;padding:6px 12px}.seg.active{background:var(--button);color:var(--button-text);font-weight:600;opacity:1}.roadmap-confirm{flex-basis:100%;display:flex;flex-direction:column;gap:6px}.roadmap-board{display:flex;flex-direction:column;gap:10px;margin:10px 0;min-width:0}.roadmap-slot{min-width:0}.roadmap-column{background:var(--bg);border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px;min-width:0;border-top:3px solid var(--bg2)}.roadmap-column.milestone-active{border-top-color:var(--link)}.roadmap-column.milestone-done{border-top-color:#22a35a}.roadmap-column.milestone-none{border-top-style:dashed;border-top-color:var(--hint)}.roadmap-new{justify-content:center;border-top-style:dashed}.roadmap-column-head{display:flex;flex-direction:column;gap:4px}.roadmap-column-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.roadmap-column-title h3{margin:0;font-size:16px;overflow-wrap:anywhere}.chip-planned{color:var(--hint)}.chip-active,.chip-current{color:var(--link)}.chip-done{color:#22a35a}.roadmap-goal{margin:0;overflow-wrap:anywhere}.roadmap-progress{display:flex;align-items:center;gap:8px}.roadmap-progress progress{flex:1;min-width:0;height:8px;appearance:none;-webkit-appearance:none;border:0;border-radius:4px;background:var(--bg2);overflow:hidden;accent-color:#22a35a}.roadmap-progress progress::-webkit-progress-bar{background:var(--bg2);border-radius:4px}.roadmap-progress progress::-webkit-progress-value{background:#22a35a;border-radius:4px}.roadmap-progress progress::-moz-progress-bar{background:#22a35a;border-radius:4px}.milestone-actions{display:flex;flex-wrap:wrap;gap:2px 4px}.milestone-actions .link-button{min-height:32px;font-size:14px}.milestone-actions .arrow{font-size:18px;min-width:36px}.danger-link{color:var(--danger)}.job-link{flex-basis:100%;text-align:left;padding:0;min-height:28px}.roadmap-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.roadmap-task{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:10px;background:var(--bg2);min-width:0}.roadmap-task.task-done .task-title{text-decoration:line-through;color:var(--hint)}.roadmap-task .task-actions .secondary{background:var(--bg);min-height:34px;padding:4px 10px;font-size:14px}.needs-human{color:#b7791f;font-weight:600}.roadmap-select{min-width:0;max-width:100%;min-height:34px;padding:4px 8px;font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--hint);border-radius:8px}.roadmap-empty{margin:0}.roadmap-add{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.roadmap-add .link-button{min-height:32px;padding:0}.roadmap-form{display:flex;flex-direction:column;gap:8px;width:100%}.roadmap-field{display:flex;flex-direction:column;gap:4px}.roadmap-field input,.roadmap-field textarea{font:inherit;color:var(--text);background:var(--bg2);border:1px solid var(--hint);border-radius:8px;padding:8px 10px;min-height:40px;min-width:0;width:100%}.roadmap-field textarea{resize:vertical}.roadmap-select:focus-visible,.roadmap-field input:focus-visible,.roadmap-field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(min-width:960px){.roadmap-board{flex-direction:row;align-items:flex-start;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}.roadmap-slot{flex:0 0 300px;scroll-snap-align:start}}.question-context{white-space:pre-wrap}.answered-questions{margin-block:1rem}.control-overview,.roadmaps-overview,.projects{padding-top:14px}.control-overview>.view-header,.roadmaps-overview>.view-header,.projects>.view-header{margin-bottom:14px}.overview-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.overview-tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:7px;min-width:0;padding:14px;background:var(--bg);color:var(--text);border-radius:var(--radius);text-align:left;overflow-wrap:anywhere}.overview-tile>span:first-child{color:var(--hint);font-size:13px}.overview-tile strong{font-size:20px;line-height:1.2}.overview-tile .hint,.overview-tile a{font-size:12px}.overview-tile.ci-success strong{color:#22a35a}.overview-tile.ci-failure strong,.overview-tile.ci-timed_out strong,.overview-tile.ci-startup_failure strong{color:var(--danger)}.overview-tile.ci-pending strong,.overview-tile.ci-action_required strong{color:#b7791f}.overview-columns{display:grid;gap:18px;margin-top:20px}.overview-section{min-width:0}.overview-section>.view-header{flex-wrap:wrap;margin-bottom:10px}.overview-section>.view-header .link-button{padding:0;min-height:32px;text-align:left}.overview-section .job-card h3{font-size:15px;margin-top:0}.overview-section .job-card header{flex-wrap:wrap}.overview-section .job-card header h3{flex:1 1 150px}.compact-job p{font-size:14px;overflow-wrap:anywhere}.project-task-actions{margin:14px 0;padding:10px 12px;border-radius:var(--radius);background:var(--bg)}.control-incidents{display:flex;flex-direction:column;gap:8px;padding:12px 14px;list-style:none;border-left:3px solid var(--danger);border-radius:8px;background:var(--bg)}.control-incidents li{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:14px;overflow-wrap:anywhere}.control-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin:12px 0}.control-filters label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--hint);min-width:0;max-width:100%}.control-filters select{font:inherit;font-size:14px;max-width:100%;min-height:40px;color:var(--text);background:var(--bg);border:1px solid var(--hint);border-radius:8px;padding:8px 10px}.control-filters select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.control-filters .project-mobile-sort{font-size:13px}.project-table-wrap{display:none}.project-compact-list{display:flex;flex-direction:column;gap:8px}.project-compact{border-radius:var(--radius);background:var(--bg);padding:12px;min-width:0}.project-compact header,.roadmap-strip-project>header{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;min-width:0}.project-compact .project-title,.roadmap-strip-project .project-title{text-align:left;min-height:36px;padding:0}.project-compact .project-status,.roadmap-strip-project .project-status{white-space:normal}.project-compact p{margin:8px 0;overflow-wrap:anywhere}.summary-progress{min-width:85px;flex-wrap:wrap;gap:4px 8px}.summary-progress progress{flex-basis:65px}.summary-progress .hint{white-space:nowrap}.compact-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0 0}.compact-counts dt{color:var(--hint);font-size:12px;overflow-wrap:anywhere}.compact-counts dd{margin:3px 0 0;font-weight:600}.roadmap-strip-project{margin:12px 0;padding:12px;border-radius:var(--radius);background:var(--bg);min-width:0}.roadmap-strip{display:flex;gap:10px;padding:10px 0 6px;margin:0;overflow-x:auto;list-style:none;scroll-snap-type:x proximity;cursor:pointer}.roadmap-strip-stage{flex:0 0 220px;min-width:0;padding:12px;border:1px solid var(--bg2);border-top:3px solid var(--hint);border-radius:10px;background:var(--bg2);scroll-snap-align:start}.roadmap-strip-stage.current{border-color:var(--link)}.roadmap-strip-stage.milestone-done{border-top-color:#22a35a}.roadmap-strip-stage h3{font-size:15px;line-height:1.4;margin:8px 0 12px;overflow-wrap:anywhere}.roadmap-strip-stage p{margin:8px 0 0}.roadmap-strip-stage .roadmap-progress progress{background:var(--bg)}.roadmap-strip-stage .roadmap-progress progress::-webkit-progress-bar{background:var(--bg)}.batch-decisions{margin:12px 0 20px}.batch-group{margin:10px 0;padding:10px 12px;min-width:0;border:1px solid var(--hint);border-radius:var(--radius);background:var(--bg)}.batch-group legend{padding:0 6px;font-size:14px}.batch-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 0;min-height:44px;overflow-wrap:anywhere}.batch-choice input{width:18px;height:18px;flex-shrink:0;accent-color:var(--button);margin:2px 0 0}.batch-choice input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.batch-choice span{min-width:0}.batch-group:disabled .batch-choice{color:var(--hint)}.batch-receipts{list-style:none;margin:12px 0;padding:0}.batch-receipts li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--bg2);background:var(--bg);overflow-wrap:anywhere}.batch-receipts li>span:first-child{flex:1 1 180px}.batch-receipts button{min-height:40px}@media(min-width:960px){.overview-tiles{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-tile{padding:14px 12px}.overview-columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.project-compact-list,.control-filters .project-mobile-sort{display:none}.project-table-wrap{display:block;overflow-x:auto;border-radius:var(--radius);background:var(--bg)}.project-table{width:100%;border-collapse:collapse;font-size:13px}.project-table th,.project-table td{padding:10px 8px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--bg2);overflow-wrap:anywhere}.project-table thead th{color:var(--hint);font-weight:500}.project-table thead button{background:none;color:inherit;font-size:12px;text-align:left;padding:0;min-height:36px}.project-table tbody tr{cursor:pointer}.project-table tbody tr:hover,.project-table tbody tr:focus-within{background:var(--section)}.project-table tbody th{min-width:110px}.project-table tbody th button{padding:0;min-height:40px;text-align:left;font-weight:600}.project-table .badge{white-space:normal;display:inline-block}.project-table .summary-progress{min-width:90px}.project-table .summary-progress progress{flex-basis:100%}}.finished-jobs{margin:12px 0}.finished-jobs>summary{cursor:pointer;font-size:13px;text-transform:uppercase;color:var(--hint);font-weight:600;min-height:40px;display:flex;align-items:center;margin:0 4px}.finished-jobs>button{margin:8px 0}.task-close{margin-top:10px;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.task-close p{margin:0;overflow-wrap:anywhere}.idea-text{white-space:pre-wrap;overflow-wrap:anywhere}.idea-list{list-style:none;padding:0}:root{--viz-ok: #2f9e62;--viz-warn: #c98a12;--viz-bad: var(--danger);--viz-unknown: var(--hint);--viz-radius: 16px;--viz-line: rgba(127, 127, 127, .16)}.view.home{padding:6px 14px calc(28px + var(--inset-bottom))}.view.home>*{max-width:1120px;margin-left:auto;margin-right:auto}.view.home>.loading,.view.home>.empty{padding:40px 16px}.dashboard{container-type:inline-size;margin:0 auto 30px}.view .dashboard-title,.dashboard-title{margin:18px 2px 2px;font-size:20px;font-weight:650;letter-spacing:-.01em;color:var(--text);text-transform:none}.dashboard-subtitle{margin:0 2px 14px;color:var(--hint);font-size:13px}.dashboard-head{margin-bottom:12px}.viz-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}@container (min-width: 540px){.viz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.viz-grid>.span-2,.viz-grid>.span-3,.viz-grid>.span-4{grid-column:span 2}}@container (min-width: 880px){.viz-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.viz-grid>.span-1{grid-column:span 1}.viz-grid>.span-2{grid-column:span 2}.viz-grid>.span-3{grid-column:span 3}.viz-grid>.span-4{grid-column:span 4}}.panel{display:flex;flex-direction:column;gap:10px;min-width:0;background:var(--section);border-radius:var(--viz-radius);padding:14px 16px 16px;border:1px solid var(--viz-line)}.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.panel-title{background:none;padding:0;min-height:auto;border-radius:4px;text-align:left;color:var(--text);font-size:14px;font-weight:600;overflow-wrap:anywhere}.panel-title:hover,.panel-title[aria-expanded=true]{color:var(--accent)}.panel-meta{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;color:var(--hint);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.stale{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;color:var(--viz-warn);background:#c98a121f;font-weight:600}.stale:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.panel.is-stale .stat-value,.panel.is-stale .chart-box{opacity:.6}.panel-empty,.panel-loading{margin:0;padding:22px 0;text-align:center;color:var(--hint);font-size:13px}.panel-note,.panel-more{margin:0;color:var(--hint);font-size:12px}.panel .problem{margin:0}.provenance{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:0;padding:10px 12px;border-radius:12px;background:var(--bg2);font-size:12.5px}.provenance dt{color:var(--hint)}.provenance dd{margin:0;overflow-wrap:anywhere}.stat{display:flex;flex-direction:column;gap:6px;padding:2px 0 4px}.stat-value{align-self:flex-start;background:none;padding:0;min-height:auto;border-radius:6px;color:var(--text);font-size:42px;line-height:1.05;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;text-align:left}.stat-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}.stat-label{color:var(--hint);font-size:13px}.delta{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.delta-up{color:var(--accent)}.delta-down,.delta-flat{color:var(--hint)}.chart-box{min-width:0}svg.chart{display:block;width:100%;height:auto;overflow:visible}.chart .grid{stroke:var(--viz-line);stroke-width:1}.chart .axis,.motion-stage .axis{stroke:var(--hint);stroke-opacity:.45;stroke-width:1}.motion-stage .grid{stroke:var(--viz-line);stroke-width:2}.tick,.xlabel{fill:var(--hint);font-variant-numeric:tabular-nums}.bar-value{fill:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.bar.series-0,.swatch.series-0{fill:var(--accent);background:var(--accent)}.bar.series-1,.swatch.series-1{fill:var(--accent);fill-opacity:.5;background:var(--accent);opacity:.9}.bar.series-2,.swatch.series-2{fill:var(--hint);fill-opacity:.7;background:var(--hint)}.bar.series-3,.swatch.series-3{fill:var(--text);fill-opacity:.35;background:var(--text)}.bar.series-4,.swatch.series-4{fill:var(--accent);fill-opacity:.25;background:var(--accent)}.swatch.series-1{opacity:.5}.swatch.series-3{opacity:.35}.swatch.series-4{opacity:.25}.line{fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.motion-stage .line{stroke-width:5}.line.series-0{stroke:var(--accent)}.line.series-1{stroke:var(--accent);stroke-opacity:.5}.line.series-2{stroke:var(--hint)}.line.series-3{stroke:var(--text);stroke-opacity:.4}.line.series-4{stroke:var(--accent);stroke-opacity:.3;stroke-dasharray:4 4}.area{fill:var(--accent);fill-opacity:.09}.dot{fill:var(--section);stroke:var(--accent);stroke-width:2}.dot.series-2{stroke:var(--hint)}.dot-last{fill:var(--accent)}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;list-style:none;color:var(--hint);font-size:12px}.legend li{display:inline-flex;align-items:center;gap:6px}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px}.chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;background:var(--bg2);color:var(--text);font-size:13px;max-width:100%;overflow-wrap:anywhere}.dot-plain,.chip>.dot,.viz-list .dot{display:inline-block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--viz-unknown)}.chip.tone-ok>.dot,.viz-list .dot.tone-ok{background:var(--viz-ok)}.chip.tone-warn>.dot,.viz-list .dot.tone-warn{background:var(--viz-warn)}.chip.tone-bad>.dot,.viz-list .dot.tone-bad{background:var(--viz-bad)}.chip.tone-bad{box-shadow:inset 0 0 0 1px #d1434359}.chip.tone-unknown{color:var(--hint)}.status-summary{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;color:var(--hint);font-size:12px}.summary-bad{color:var(--viz-bad);font-weight:600}.summary-warn{color:var(--viz-warn)}.status-grid{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.viz-list{margin:0;padding:0;list-style:none}.viz-list li{display:grid;grid-template-columns:8px minmax(0,1fr);align-items:baseline;gap:2px 10px;padding:9px 0;border-top:1px solid var(--viz-line)}.viz-list li:first-child{border-top:0;padding-top:2px}.viz-list li.no-dot{grid-template-columns:minmax(0,1fr)}.viz-list .dot{align-self:center}.list-main{font-size:14.5px;overflow-wrap:anywhere}.list-meta{grid-column:-2 / -1;color:var(--hint);font-size:12.5px;overflow-wrap:anywhere}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;scrollbar-width:thin}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.table-scroll table{width:100%;border-collapse:collapse;font-size:13.5px}.table-scroll th{padding:6px 10px 8px;text-align:left;color:var(--hint);font-size:12px;font-weight:600;white-space:nowrap;border-bottom:1px solid var(--viz-line)}.table-scroll td{padding:8px 10px;border-bottom:1px solid var(--viz-line);vertical-align:top;white-space:nowrap}.table-scroll td:first-child{white-space:normal;min-width:11em}.table-scroll tr:last-child td{border-bottom:0}.table-scroll th:first-child,.table-scroll td:first-child{padding-left:0}.table-scroll .col-number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.table-scroll .col-time{white-space:nowrap;color:var(--hint);font-variant-numeric:tabular-nums}.table-scroll td .chip{padding:2px 9px;font-size:12px;white-space:nowrap}.recent{margin-top:6px}.artifact-list{margin:12px 0 0;padding:0;list-style:none;background:var(--section);border-radius:var(--viz-radius);border:1px solid var(--viz-line);overflow:hidden}.artifact-list li+li{border-top:1px solid var(--viz-line)}.artifact-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:0;background:none;color:var(--text);text-align:left}.artifact-row:hover{background:var(--bg2)}.artifact-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);font-size:15px}.artifact-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.artifact-title{font-size:15px;font-weight:550;overflow-wrap:anywhere}.artifact-meta{color:var(--hint);font-size:12.5px}.artifact-chevron{color:var(--hint);font-size:22px;line-height:1}.overlay.viz-overlay{position:fixed;inset:0;z-index:30;grid-column:auto;grid-row:auto;border-left:0;padding:calc(14px + var(--inset-top)) calc(14px + var(--inset-right)) calc(24px + var(--inset-bottom)) calc(14px + var(--inset-left))}.overlay.viz-overlay .overlay-close{top:calc(8px + var(--inset-top));right:calc(8px + var(--inset-right));z-index:1}.artifact-view{max-width:1120px;margin:0 auto;padding-top:4px}.artifact-kicker{margin:4px 44px 0 2px;color:var(--hint);font-size:12.5px}.motion-player{display:flex;flex-direction:column;gap:12px;margin-top:12px;max-width:960px}.stage-frame{border-radius:20px;overflow:hidden;border:1px solid var(--viz-line);background:var(--section)}svg.motion-stage{display:block;width:100%;height:auto;aspect-ratio:16 / 9}.stage-bg{fill:var(--section)}.m-text{fill:var(--text);font-weight:500}.m-text.size-xl{font-weight:700;letter-spacing:-.02em}.m-text.size-l{font-weight:650;letter-spacing:-.01em}.m-text.size-s{fill:var(--hint)}.m-text.emph{fill:var(--accent);font-weight:650}.m-number{fill:var(--text);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.m-unit,.m-label{fill:var(--hint);font-weight:500}.m-shape{fill:var(--bg2);stroke:var(--viz-line);stroke-width:2}.m-shape.tone-accent{fill:var(--accent);stroke:none}.m-shape.tone-good{fill:var(--viz-ok);fill-opacity:.14;stroke:var(--viz-ok);stroke-opacity:.5}.m-shape.tone-warn{fill:var(--viz-warn);fill-opacity:.14;stroke:var(--viz-warn);stroke-opacity:.5}.m-shape.tone-bad{fill:var(--viz-bad);fill-opacity:.12;stroke:var(--viz-bad);stroke-opacity:.5}.m-shape-label{fill:var(--text);font-weight:600}.m-shape-label.tone-accent{fill:var(--button-text)}.m-arrow-line,.m-arrow-head{stroke:var(--hint);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.m-arrow-label{fill:var(--hint)}.m-chart-bg{fill:var(--bg2);fill-opacity:.55}.motion-caption{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 2px}.scene-title{font-size:15px;font-weight:600}.scene-count{color:var(--hint);font-size:12px;white-space:nowrap}.scene-dots{display:flex;gap:6px}.scene-dot{position:relative;flex:1;min-height:20px;padding:0;border-radius:4px;background:none}.scene-dot:after{content:"";position:absolute;left:0;right:0;top:8px;height:4px;border-radius:2px;background:var(--hint);opacity:.25}.scene-dot.done:after,.scene-dot.active:after{background:var(--accent);opacity:1}.motion-controls{display:flex;align-items:center;gap:6px}.ctl{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;background:var(--bg2);color:var(--text);font-size:15px}.ctl-main{width:48px;height:48px;background:var(--accent);color:var(--button-text)}.scrubber{flex:1;min-width:60px;accent-color:var(--accent)}.time{color:var(--hint);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.motion-reduced{margin:0}.motion-sources h3{margin:6px 2px 4px;color:var(--hint);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.motion-sources ul{margin:0;padding-left:18px;color:var(--hint);font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(max-width:420px){.stat-value{font-size:36px}.motion-controls{flex-wrap:wrap}.scrubber{order:10;flex-basis:100%}}@media(prefers-reduced-motion:reduce){.artifact-row,.panel-title{transition:none}}
