@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  color-scheme: dark;
  --bg: #080d14;
  --surface: #0c131d;
  --surface-raised: #101a27;
  --surface-hover: #152232;
  --line: #1c2938;
  --line-soft: rgba(132, 159, 190, .12);
  --text: #e6edf5;
  --muted: #8291a4;
  --dim: #536276;
  --blue: #69c8ff;
  --teal: #72dcc8;
  --violet: #aaa0ff;
  --amber: #efc27c;
  --red: #f08e93;
  font-family: 'DM Sans', 'Segoe UI', sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  background: var(--bg);
  color: var(--text);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 760px; min-height: 100vh; background: var(--bg); }
button, input, select { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.app-shell { min-height: 100vh; zoom: var(--app-zoom, 1.05); }
.side-rail { width: 84px; position: fixed; inset: 0 auto 0 0; z-index: 10; display: flex; flex-direction: column; align-items: center; background: #080d13; border-right: 1px solid var(--line); }
.brand-mark { margin: 20px 0 18px; color: #e6edf5; text-decoration: none; font-size: 25px; font-weight: 700; letter-spacing: -2px; }
.brand-mark span { color: var(--blue); }
.rail-divider { width: 100%; height: 1px; background: var(--line); }
.rail-nav { display: grid; gap: 7px; width: 100%; padding-top: 18px; }
.rail-link { position: relative; min-height: 68px; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 0; background: transparent; color: #718096; cursor: pointer; font-size: 9px; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; transition: color .18s, background .18s; }
.rail-link svg { width: 22px; height: 22px; }
.rail-link:hover { background: rgba(102, 183, 235, .05); color: #c4d3e5; }
.rail-link.is-active { color: var(--blue); background: linear-gradient(90deg, rgba(84, 173, 230, .12), transparent 88%); }
.rail-link.is-active::before { content: ''; position: absolute; inset: 8px auto 8px 0; width: 2px; background: var(--blue); box-shadow: 0 0 12px #69c8ff; }
.rail-bottom { width: 100%; margin-top: auto; padding-bottom: 18px; display: flex; flex-direction: column; align-items: center; gap: 15px; }
.profile-dot { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #293a52; color: #c8dcf0; border: 1px solid #465b77; font-size: 10px; font-weight: 700; }
.profile-dot.small { width: 28px; height: 28px; font-size: 9px; }
.app-main { min-height: 100vh; margin-left: 84px; }
.topbar { height: 62px; padding: 0 30px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(10, 15, 22, .92); }
.workspace-select, .topbar-right { display: flex; align-items: center; gap: 11px; color: #bac7d5; font-size: 12px; }
.workspace-symbol { color: var(--blue); font-size: 20px; }
.workspace-select select { max-width: min(280px, 28vw); min-width: 145px; height: 34px; padding: 0 9px; border: 1px solid #27384b; border-radius: 5px; background: #0c141e; color: #dce8f3; font-weight: 600; cursor: pointer; }
.project-create-button { width: 32px; height: 32px; border: 1px solid #2c4055; border-radius: 6px; background: #101a27; color: var(--blue); font-size: 19px; line-height: 1; cursor: pointer; }
.project-create-button:hover { background: #162536; border-color: #45627e; }
.display-size-controls { display: flex; gap: 3px; padding: 3px; border: 1px solid #243346; border-radius: 6px; background: #0b121a; }
.display-size-controls button { min-width: 29px; height: 25px; padding: 0 4px; border: 0; border-radius: 4px; background: transparent; color: #9dafc1; font-size: 10px; font-weight: 700; cursor: pointer; }
.display-size-controls button:hover { background: #172637; color: var(--blue); }
.chevron { color: #687990; font-size: 16px; }
.topbar-right { gap: 15px; }
.local-pill { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #263549; border-radius: 20px; padding: 6px 10px; color: #9eacc0; font-size: 10px; }
.local-pill i { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 8px rgba(114, 220, 200, .8); }
.icon-button { width: 34px; height: 34px; display: inline-grid; place-items: center; border: 1px solid transparent; border-radius: 7px; background: transparent; color: #91a2b7; cursor: pointer; }
.icon-button:hover { border-color: var(--line); background: var(--surface-hover); color: var(--text); }
.icon-button svg { width: 18px; height: 18px; }
main { max-width: 1800px; margin: 0 auto; padding: 28px 30px 44px; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 24px; }
.eyebrow { display: flex; align-items: center; gap: 8px; color: #6e8096; font: 500 9px 'DM Mono', monospace; letter-spacing: .11em; }
.eyebrow-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--blue); }
h1 { margin: 9px 0 6px; font-size: clamp(24px, 2.4vw, 31px); line-height: 1.15; letter-spacing: -.04em; font-weight: 600; }
.page-heading p { margin: 0; color: var(--muted); font-size: 13px; }
.heading-actions { display: flex; gap: 9px; flex-shrink: 0; }
.button { min-height: 37px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border: 1px solid var(--line); border-radius: 6px; background: #0d1520; color: #bdcada; font-size: 11px; font-weight: 600; cursor: pointer; transition: .18s ease; }
.button svg { width: 15px; height: 15px; }
.button:hover { background: var(--surface-hover); border-color: #354a61; }
.button-primary { background: #7dd0fa; color: #07111a; border-color: #7dd0fa; }
.button-primary:hover { background: #a5e0ff; border-color: #a5e0ff; color: #07111a; }
.button-primary span { font-size: 17px; line-height: 0; font-weight: 400; }
.button-secondary { background: #0d141d; }
.summary-strip { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); gap: 10px; margin-bottom: 17px; }
.summary-card { min-height: 72px; padding: 12px 15px; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 7px; background: linear-gradient(135deg, #101925, #0c131c); }
.summary-label { display: block; color: var(--muted); font-size: 10px; }
.summary-value { display: block; margin-top: 4px; font: 500 18px 'DM Mono', monospace; color: #e3edf8; }
.summary-mark { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid #314359; border-radius: 7px; color: var(--blue); background: rgba(91, 169, 222, .07); font: 12px 'DM Mono', monospace; }
.board { overflow: hidden; border: 1px solid #202e3d; border-radius: 8px; background: #0a1119; box-shadow: 0 15px 45px rgba(0, 0, 0, .12); }
.board-topline { min-height: 53px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 17px; border-bottom: 1px solid var(--line); }
.view-tabs { display: flex; align-self: stretch; gap: 3px; }
.view-tab { position: relative; min-width: 120px; padding: 0 18px; border: 0; background: transparent; color: #78899f; cursor: pointer; font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.view-tab.is-active { color: #e6f1fa; }
.view-tab.is-active::after { position: absolute; content: ''; height: 2px; left: 12px; right: 12px; bottom: 0; background: var(--blue); box-shadow: 0 0 10px rgba(105, 200, 255, .5); }
.board-meta { display: flex; align-items: center; gap: 8px; color: #718198; font: 10px 'DM Mono', monospace; }
.source-chip { padding: 5px 8px; border: 1px solid #243346; border-radius: 4px; color: #90a3b9; font: 9px 'DM Mono', monospace; }
.toolbar { min-height: 58px; padding: 9px 16px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); background: #0b121a; }
.search-wrap { width: min(245px, 24vw); position: relative; }
.search-wrap svg { width: 14px; height: 14px; position: absolute; top: 10px; left: 10px; color: #66788e; }
.search-input { width: 100%; height: 34px; padding: 0 10px 0 31px; outline: 0; border: 1px solid #273649; border-radius: 5px; color: #dbe6f1; background: #080e15; font-size: 11px; }
.search-input::placeholder { color: #6b7a8e; }
.search-input:focus { border-color: #569bc4; box-shadow: 0 0 0 2px rgba(90, 170, 220, .1); }
.filter-button { height: 34px; width: 36px; display: grid; place-items: center; border: 1px solid #273649; border-radius: 5px; background: #080e15; color: #8496ab; cursor: pointer; }
.filter-button svg { width: 15px; height: 15px; }
.toolbar-spacer { flex: 1; }
.scale-group { height: 34px; padding: 3px; display: flex; gap: 2px; border: 1px solid #263649; border-radius: 5px; background: #080e15; }
.scale-button { padding: 0 10px; border: 0; border-radius: 3px; background: transparent; color: #8291a4; cursor: pointer; font: 10px 'DM Mono', monospace; white-space: nowrap; }
.scale-button:hover { color: #dbe8f4; background: #172332; }
.scale-button.is-active { background: #9bdcff; color: #07121b; font-weight: 700; }
.toolbar-divider { height: 27px; width: 1px; margin: 0 3px; background: var(--line); }
.export-button { white-space: nowrap; }
.export-button svg { width: 14px; height: 14px; }
.export-wrap { position: relative; }
.export-menu { position: absolute; z-index: 8; top: calc(100% + 6px); right: 0; min-width: 205px; padding: 5px; border: 1px solid #2a3e53; border-radius: 6px; background: #101925; box-shadow: 0 10px 25px #0008; }
.export-menu[hidden] { display: none; }
.export-menu button { width: 100%; padding: 9px 10px; border: 0; border-radius: 4px; background: transparent; color: #bbcad8; cursor: pointer; text-align: left; font-size: 10px; }
.export-menu button:hover { background: #1a2a3a; color: #e5f0f9; }
.timeline-shell { overflow: hidden; }
.timeline-scroll { overflow-x: auto; scrollbar-color: #32475e #0a1119; scrollbar-width: thin; }
.timeline-inner { min-width: 950px; }
.axis-row, .task-row { display: grid; grid-template-columns: 292px minmax(0, 1fr); }
.axis-row { min-height: 66px; background: linear-gradient(180deg, #111c29, #0e1823); border-bottom: 1px solid #27384a; }
.axis-label { padding: 14px 16px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid #293a4e; }
.axis-label strong { color: #a8b8ca; font-size: 9px; letter-spacing: .11em; text-transform: uppercase; }
.axis-label span { color: #6e8299; font: 9px 'DM Mono', monospace; }
.axis-track { position: relative; min-width: 0; overflow: hidden; background-image: repeating-linear-gradient(to right, transparent 0, transparent calc(100% / var(--ticks) - 1px), rgba(145, 171, 202, .12) calc(100% / var(--ticks) - 1px), rgba(145, 171, 202, .12) calc(100% / var(--ticks))); }
.axis-ticks { height: 100%; display: grid; grid-template-columns: repeat(var(--ticks), minmax(0, 1fr)); }
.axis-tick { padding: 10px 8px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid rgba(145, 171, 202, .08); color: #9aaabc; font: 9px 'DM Mono', monospace; }
.axis-tick small { color: #65778d; font-size: 8px; }
.today-marker { position: absolute; z-index: 2; inset: 0 auto 0 var(--marker); width: 1px; background: rgba(123, 211, 255, .6); pointer-events: none; }
.today-marker::before { content: 'AHORA'; position: absolute; top: 0; left: 4px; color: #86d3fb; font: 8px 'DM Mono', monospace; }
.group-heading { min-height: 37px; display: flex; align-items: center; gap: 9px; padding: 0 15px; border-bottom: 1px solid rgba(42, 59, 77, .65); background: #111a25; color: #dae5f0; }
.group-heading button { width: 15px; height: 20px; padding: 0; border: 0; background: transparent; color: #8da0b7; cursor: pointer; font-size: 12px; }
.group-heading strong { overflow: hidden; color: #d0dce8; font-size: 9px; font-weight: 700; letter-spacing: .055em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.group-progress { margin-left: auto; color: #7890a8; font: 9px 'DM Mono', monospace; white-space: nowrap; }
.group-progress i { display: inline-block; width: 35px; height: 3px; margin: 0 7px 2px 0; overflow: hidden; border-radius: 4px; background: #24364a; vertical-align: middle; }
.group-progress b { display: block; height: 100%; border-radius: inherit; background: #7dccf3; }
.phase-ai-running { flex: 0 0 auto; padding: 3px 5px; border: 1px solid rgba(105, 200, 255, .26); border-radius: 4px; color: #8cc8e8; font: 7px 'DM Mono', monospace; }
.board-ai-progress { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; padding: 9px 12px; border: 1px solid rgba(105, 200, 255, .22); border-radius: 6px; background: rgba(105, 200, 255, .05); color: #9cb5c8; font-size: 9px; line-height: 1.45; }
.board-ai-progress i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #7dccf3; box-shadow: 0 0 8px rgba(105, 200, 255, .6); animation: ai-pulse 1s ease-in-out infinite alternate; }
.board-ai-progress strong { color: #d5e9f6; }
.sprint-actions { display: flex; flex: 0 0 auto; gap: 4px; margin-left: 6px; }
.group-heading .sprint-actions button { width: auto; min-height: 23px; padding: 0 7px; border: 1px solid #2a3e52; border-radius: 4px; background: #0d1721; color: #91bbd4; cursor: pointer; font: 8px Inter, 'Segoe UI', sans-serif; white-space: nowrap; }
.group-heading .sprint-actions button:hover { border-color: #4d8eb3; background: #122433; color: #d0e9f7; }
.task-row { min-height: 39px; border-bottom: 1px solid rgba(36, 53, 71, .52); }
.task-label { min-width: 0; padding: 0 15px 0 37px; display: flex; align-items: center; gap: 9px; border-right: 1px solid #243346; }
.task-type { flex: 0 0 auto; width: 6px; height: 6px; border-radius: 2px; background: var(--task-color, var(--blue)); box-shadow: 0 0 7px color-mix(in srgb, var(--task-color, var(--blue)) 42%, transparent); }
.task-name { overflow: hidden; color: #c5d1de; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.task-team { overflow: hidden; margin-left: auto; color: #61748b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.task-track { position: relative; min-width: 0; overflow: hidden; background-image: repeating-linear-gradient(to right, transparent 0, transparent calc(100% / var(--ticks) - 1px), rgba(117, 146, 178, .08) calc(100% / var(--ticks) - 1px), rgba(117, 146, 178, .08) calc(100% / var(--ticks))); }
.task-bar { position: absolute; top: 8px; height: 22px; min-width: 5px; overflow: hidden; padding: 0 7px; border: 1px solid color-mix(in srgb, var(--task-color, var(--blue)) 60%, transparent); border-radius: 4px; background: color-mix(in srgb, var(--task-color, var(--blue)) 17%, #0c1520); color: #cce6f6; cursor: pointer; text-align: left; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; line-height: 20px; transition: filter .15s, box-shadow .15s; }
.task-bar:hover { filter: brightness(1.25); box-shadow: 0 0 12px color-mix(in srgb, var(--task-color, var(--blue)) 25%, transparent); }
.task-bar.status-done { border-style: solid; background: color-mix(in srgb, var(--task-color, var(--blue)) 28%, #0b141d); }
.task-bar.status-blocked { border-color: rgba(240, 142, 147, .75); background: rgba(155, 55, 63, .22); color: #ffd6d8; }
.empty-track { min-height: 35px; }
.timeline-footer { min-height: 39px; padding: 0 15px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: #677a90; font-size: 9px; }
.timeline-footer strong { color: #96aac0; font-weight: 500; }
.range-controls { display: flex; align-items: center; gap: 2px; }
.range-controls button { height: 26px; min-width: 31px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #8395aa; cursor: pointer; }
.range-controls button:hover { border-color: #29394d; background: #111c29; color: #d4e0ed; }
.range-controls .today-button { min-width: 56px; font-size: 9px; }
.notice { margin-top: 11px; color: #718399; font-size: 10px; }
.notice strong { color: #9bacc0; font-weight: 500; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.toast { position: fixed; z-index: 50; right: 24px; bottom: 22px; max-width: min(430px, calc(100vw - 40px)); padding: 12px 16px; border: 1px solid #32465d; border-radius: 6px; background: #101c29; box-shadow: 0 14px 32px #0008; color: #d8e5f1; font-size: 12px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: .2s; }
.toast.is-visible { opacity: 1; transform: translateY(0); }
.modal { width: min(520px, calc(100vw - 32px)); max-height: calc(100vh - 40px); padding: 0; overflow: auto; border: 1px solid #2b3e53; border-radius: 10px; background: #0c141e; color: var(--text); box-shadow: 0 25px 90px #000a; }
.modal::backdrop { background: rgba(2, 6, 10, .72); backdrop-filter: blur(3px); }
.modal form, .detail-content { padding: 23px; }
.modal-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 19px; }
.modal-heading h2 { margin: 6px 0 0; font-size: 20px; letter-spacing: -.03em; }
.field-label { display: grid; gap: 7px; margin: 13px 0; color: #9bacc0; font-size: 10px; }
.field-label input, .field-label select { min-width: 0; height: 38px; padding: 0 10px; border: 1px solid #283a4e; border-radius: 5px; outline: 0; background: #080e15; color: #dce6ef; font-size: 12px; }
.field-label input:focus, .field-label select:focus { border-color: #559ec8; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.detail-modal { width: min(440px, calc(100vw - 32px)); }
.detail-top { display: flex; align-items: flex-start; justify-content: space-between; }
.detail-title { margin: 11px 0 15px; font-size: 21px; line-height: 1.3; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.detail-cell { padding: 11px; border: 1px solid #1f2f41; border-radius: 6px; background: #0a1119; }
.detail-cell small { display: block; margin-bottom: 6px; color: #70839a; font-size: 9px; text-transform: uppercase; letter-spacing: .07em; }
.detail-cell strong { color: #c9d6e4; font-size: 11px; font-weight: 500; }
.detail-section { padding: 11px 0 0; }
.detail-section h3 { margin: 0 0 5px; color: #8598ad; font: 500 9px 'DM Mono', monospace; letter-spacing: .06em; text-transform: uppercase; }
.detail-section p { margin: 0; color: #c5d2df; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.status-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 20px; background: #1b2938; color: #b8c8d8; font-size: 9px; }
.status-pill::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.status-pill.done { color: var(--teal); background: rgba(74, 162, 143, .12); }
.status-pill.active { color: var(--blue); background: rgba(70, 151, 194, .12); }
.status-pill.blocked { color: var(--red); background: rgba(155, 55, 63, .16); }
.status-pill.planned { color: var(--amber); background: rgba(180, 129, 60, .13); }
.page-card-grid { display: grid; grid-template-columns: repeat(3, minmax(200px, 1fr)); gap: 12px; }
.page-card { min-height: 156px; padding: 17px; border: 1px solid var(--line); border-radius: 7px; background: linear-gradient(145deg, #101a26, #0b121b); }
.page-card-icon { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #2d4056; border-radius: 7px; color: var(--blue); font-size: 14px; }
.page-card h3 { margin: 13px 0 5px; color: #d9e4ef; font-size: 13px; }
.page-card p { margin: 0; color: #8091a5; font-size: 10px; line-height: 1.6; }
.card-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 15px; color: #778ba1; font: 9px 'DM Mono', monospace; }
.card-foot .ready { color: var(--teal); }
.card-foot .planned { color: #c2a46e; }
.text-action { border: 0; background: transparent; color: var(--blue); cursor: pointer; font: 10px 'DM Mono', monospace; }
.subpage-intro { display: flex; align-items: flex-end; justify-content: space-between; margin: 4px 0 16px; }
.subpage-intro h2 { margin: 0; font-size: 15px; font-weight: 600; }
.subpage-intro p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.connector-note { padding: 13px 15px; margin-bottom: 15px; border: 1px solid #2b3947; border-left: 2px solid var(--amber); border-radius: 5px; background: rgba(239, 194, 124, .045); color: #a4b1c0; font-size: 10px; line-height: 1.65; }
.connector-note strong { color: #e2c38f; font-weight: 600; }
.analysis-intro-card, .analysis-source-card, .analysis-results, .analysis-empty { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 8px; background: linear-gradient(145deg, #101925, #0b121b); }
.analysis-intro-card { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; }
.analysis-intro-card h2, .analysis-results-heading h2 { margin: 8px 0 6px; color: #e0eaf4; font-size: 19px; letter-spacing: -.025em; }
.analysis-intro-card p, .analysis-results-heading p { max-width: 780px; margin: 0; color: #8b9cb0; font-size: 11px; line-height: 1.65; }
.analysis-shield { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #2d4056; border-radius: 12px; background: rgba(105, 200, 255, .06); color: var(--blue); font-size: 24px; }
.analysis-source-card { padding: 19px 22px; }
.analysis-form label, .analysis-zip-row strong { display: block; margin-bottom: 8px; color: #c5d2df; font-size: 11px; font-weight: 600; }
.analysis-input-row { display: flex; gap: 8px; }
.analysis-input-row input { min-width: 0; height: 39px; flex: 1; padding: 0 11px; border: 1px solid #293a4d; border-radius: 5px; outline: 0; background: #080e15; color: #e0eaf4; font-size: 11px; }
.analysis-input-row input:focus { border-color: #579dc7; box-shadow: 0 0 0 2px rgba(90, 170, 220, .1); }
.analysis-input-row input::placeholder { color: #65778c; }
.analysis-source-divider { height: 28px; display: flex; align-items: center; gap: 10px; color: #66788e; font: 9px 'DM Mono', monospace; }
.analysis-source-divider::before, .analysis-source-divider::after { height: 1px; flex: 1; background: var(--line); content: ''; }
.analysis-zip-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.analysis-zip-row strong { margin: 0 0 4px; }
.analysis-zip-row p, .analysis-footnote { margin: 0; color: #788ba1; font-size: 10px; line-height: 1.6; }
.analysis-footnote { padding-top: 12px; }
.analysis-status { margin: 13px 0 0; padding: 10px 12px; border: 1px solid rgba(240, 142, 147, .28); border-radius: 5px; background: rgba(155, 55, 63, .1); color: #f0adb1; font-size: 10px; line-height: 1.55; }
.analysis-status.is-busy { border-color: rgba(105, 200, 255, .25); background: rgba(105, 200, 255, .06); color: #a8dfff; }
.analysis-status.is-success { border-color: rgba(114, 220, 200, .28); background: rgba(114, 220, 200, .08); color: #8de1d1; }
.analysis-results { padding: 20px 22px; }
.analysis-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 15px; }
.analysis-results-heading h2 { overflow-wrap: anywhere; }
.analysis-results-heading .eyebrow { margin-bottom: 5px; }
.analysis-warning { padding: 10px 12px; margin: 10px 0; border: 1px solid rgba(239, 194, 124, .28); border-radius: 5px; background: rgba(239, 194, 124, .06); color: #c9b18a; font-size: 10px; line-height: 1.5; }
.analysis-warning strong { color: #efd19c; }
.analysis-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(115px, 1fr)); gap: 8px; margin: 14px 0; }
.analysis-stat-grid article { min-height: 65px; padding: 11px 13px; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .56); }
.analysis-stat-grid span, .analysis-profile span { display: block; margin-bottom: 6px; color: #7d8ea3; font-size: 9px; }
.analysis-stat-grid strong { color: #dce7f2; font: 500 19px 'DM Mono', monospace; }
.analysis-stat-grid small { color: #708299; font-size: 11px; }
.analysis-stat-grid .level-strong strong { color: var(--teal); }
.analysis-stat-grid .level-partial strong { color: var(--amber); }
.analysis-profile { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 13px; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .42); }
.analysis-profile strong { color: #c7d4e2; font-size: 10px; font-weight: 500; overflow-wrap: anywhere; }
.analysis-profile > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.analysis-lifecycle { margin: 14px 0 18px; padding: 13px; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .3); }
.analysis-lifecycle-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.analysis-lifecycle-grid article { min-width: 0; padding: 10px; border: 1px solid #202f40; border-radius: 5px; background: rgba(16, 25, 37, .6); }
.analysis-lifecycle-grid article.has-signals { border-color: rgba(105, 200, 255, .28); }
.analysis-lifecycle-grid article > div:first-child { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.analysis-lifecycle-grid strong { color: #c7d4e2; font-size: 10px; }
.analysis-lifecycle-grid span, .analysis-lifecycle-grid small, .analysis-lifecycle > p { color: #7d8ea3; font-size: 9px; line-height: 1.5; }
.analysis-lifecycle-grid .analysis-path-list { gap: 4px; }
.analysis-lifecycle > p { margin: 10px 0 0; }
.analysis-path-list { display: flex; flex-wrap: wrap; gap: 5px; }
.analysis-path-list code, .analysis-evidence code { padding: 3px 5px; border: 1px solid #25374a; border-radius: 4px; background: #0a1119; color: #9db4cb; font: 9px 'DM Mono', monospace; overflow-wrap: anywhere; }
.analysis-roadmap-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 21px 0 9px; }
.analysis-roadmap-heading h3 { margin: 0; color: #d5e0eb; font-size: 12px; }
.analysis-roadmap-heading span { color: #71849a; font-size: 9px; }
.analysis-phase { margin-top: 8px; overflow: hidden; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .34); }
.analysis-phase > header { min-height: 37px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 11px; border-bottom: 1px solid #202f40; background: #101a26; }
.analysis-phase > header strong { overflow: hidden; color: #cdd9e6; font-size: 9px; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.analysis-phase > header span { flex: 0 0 auto; color: #73859a; font: 9px 'DM Mono', monospace; }
.analysis-task { display: grid; grid-template-columns: minmax(180px, 1fr) auto; align-items: center; gap: 6px 12px; padding: 9px 11px; border-bottom: 1px solid rgba(36, 53, 71, .52); }
.analysis-task:last-child { border-bottom: 0; }
.analysis-task-title { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 0; border: 0; background: transparent; color: #cad7e4; cursor: pointer; text-align: left; font-size: 10px; }
.analysis-task-title:hover { color: var(--blue); }
.analysis-level { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #596a7e; }
.analysis-level.level-strong { background: var(--teal); box-shadow: 0 0 7px rgba(114, 220, 200, .35); }
.analysis-level.level-partial { background: var(--amber); }
.analysis-level-label { color: #72849a; font-size: 9px; white-space: nowrap; }
.analysis-evidence { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding-left: 15px; }
.analysis-evidence > span { color: #74879c; font-size: 9px; }
.analysis-evidence.no-evidence { color: #65788f; font-size: 9px; }
.analysis-disclaimer { margin: 12px 0 0; color: #718399; font-size: 9px; line-height: 1.65; }
.analysis-empty { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 25px; text-align: center; }
.analysis-empty > span { color: #8acff3; font-size: 29px; }
.analysis-empty h3 { margin: 10px 0 5px; color: #d7e2ee; font-size: 13px; }
.analysis-empty p { margin: 0; color: #8091a5; font-size: 10px; }
.analysis-source-card button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 1050px) {
  main { padding-right: 18px; padding-left: 18px; }
  .topbar { padding: 0 19px; }
  .axis-row, .task-row { grid-template-columns: 245px minmax(0, 1fr); }
  .toolbar { flex-wrap: wrap; }
  .toolbar-spacer { min-width: 10px; }
  .summary-strip { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .page-card-grid { grid-template-columns: repeat(2, minmax(190px, 1fr)); }
  .analysis-stat-grid { grid-template-columns: repeat(2, minmax(115px, 1fr)); }
}
@media (max-width: 760px) {
  body { min-width: 360px; }
  .side-rail { width: 58px; }
  .rail-link { min-height: 58px; font-size: 7px; }
  .rail-link svg { width: 19px; height: 19px; }
  .brand-mark { margin: 16px 0; font-size: 21px; }
  .app-main { margin-left: 58px; }
  .topbar { height: 52px; padding: 0 12px; }
  .workspace-select { gap: 6px; font-size: 10px; }
  .workspace-select select { max-width: 33vw; min-width: 95px; height: 31px; padding: 0 5px; font-size: 10px; }
  .project-create-button { width: 28px; height: 28px; }
  .topbar-right { gap: 6px; }
  .topbar #open-ai-connections, .topbar-right > .icon-button { display: none; }
  .local-pill { display: none; }
  main { padding: 21px 12px 32px; }
  .page-heading { align-items: flex-start; flex-direction: column; margin-bottom: 17px; }
  .heading-actions { width: 100%; }
  .heading-actions .button { flex: 1; padding: 0 7px; font-size: 10px; }
  .summary-strip { gap: 7px; }
  .summary-card { min-height: 62px; padding: 9px; }
  .summary-label { font-size: 9px; }
  .summary-value { font-size: 15px; }
  .board-topline { padding: 0 8px; }
  .view-tab { min-width: 102px; padding: 0 10px; font-size: 9px; }
  .board-meta { display: none; }
  .toolbar { padding: 9px; gap: 6px; }
  .search-wrap { flex: 1 1 135px; width: auto; }
  .scale-group { order: 5; width: 100%; justify-content: space-between; }
  .scale-button { flex: 1; padding: 0 3px; font-size: 9px; }
  .export-button { flex: 0 1 auto; }
  .axis-row, .task-row { grid-template-columns: 205px minmax(0, 1fr); }
  .task-label { padding-left: 18px; }
  .task-team { display: none; }
  .page-card-grid { grid-template-columns: 1fr; }
  .analysis-intro-card, .analysis-results { padding: 16px; }
  .analysis-source-card { padding: 15px; }
  .analysis-shield { width: 38px; height: 38px; }
  .analysis-input-row { align-items: stretch; flex-direction: column; }
  .analysis-zip-row { align-items: flex-start; flex-direction: column; }
  .analysis-results-heading { align-items: flex-start; flex-direction: column; }
  .analysis-profile { grid-template-columns: 1fr; }
  .analysis-profile > div:last-child:nth-child(odd) { grid-column: auto; }
  .analysis-phase > header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .analysis-task { grid-template-columns: minmax(0, 1fr); }
  .analysis-level-label { padding-left: 15px; }
  .analysis-roadmap-heading { align-items: flex-start; flex-direction: column; }
}

/* Code analysis reuses the roadmap timeline so evidence can be read beside dates. */
.analysis-roadmap-warning { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.analysis-roadmap-warning .button { flex: 0 0 auto; }
.analysis-stat-grid span, .analysis-profile span { font-size: 10px; }
.analysis-profile strong { font-size: 11px; }
.analysis-roadmap-heading { margin-top: 22px; }
.analysis-roadmap-heading h3 { font-size: 14px; }
.analysis-roadmap-heading span, .analysis-disclaimer { font-size: 10px; }
.analysis-meaning { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 17px; margin: -5px 0 12px; padding: 10px 12px; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .42); color: #9aabbd; font-size: 10px; line-height: 1.45; }
.analysis-meaning > strong { width: 100%; color: #d0dce8; font-size: 11px; }
.analysis-meaning > span { display: inline-flex; align-items: center; gap: 5px; }
.analysis-meaning b { color: #c5d2df; }
.analysis-meaning .analysis-level { width: 7px; height: 7px; }
.analysis-legend { display: flex; flex-wrap: wrap; gap: 9px 19px; margin: 10px 0 13px; padding: 10px 12px; border: 1px solid #202f40; border-radius: 6px; background: rgba(7, 13, 20, .42); color: #a2b2c4; font-size: 10px; }
.analysis-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.legend-roadmap-mark { width: 15px; height: 7px; border: 1px solid rgba(105, 200, 255, .7); border-radius: 3px; background: rgba(105, 200, 255, .22); }
.analysis-board .timeline-inner { min-width: 1120px; }
.analysis-board .axis-row, .analysis-board .task-row { grid-template-columns: 420px minmax(0, 1fr); }
.analysis-board .group-heading { min-height: 42px; }
.analysis-board .group-heading strong { font-size: 10px; }
.analysis-board .group-progress { font-size: 10px; }
.analysis-task-row { min-height: 91px; }
.analysis-task-label { align-items: flex-start; padding: 10px 13px 9px 22px; gap: 9px; }
.analysis-task-label > .task-type { margin-top: 4px; }
.analysis-task-copy { min-width: 0; width: 100%; display: grid; gap: 5px; }
.analysis-task-name { width: fit-content; max-width: 100%; padding: 0; border: 0; background: transparent; color: #d4e0ec; cursor: pointer; text-align: left; font-size: 11px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.analysis-task-name:hover { color: var(--blue); }
.analysis-task-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 7px; }
.analysis-task-badges .status-pill, .analysis-evidence-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 6px; border: 1px solid #2b3b4d; border-radius: 4px; background: #111b26; color: #adbac8; font-size: 9px; font-weight: 600; line-height: 1.2; }
.analysis-task-badges .status-pill.done { border-color: rgba(114, 220, 200, .27); color: #89d7c8; }
.analysis-task-badges .status-pill.active { border-color: rgba(105, 200, 255, .3); color: #9edaff; }
.analysis-task-badges .status-pill.blocked { border-color: rgba(239, 142, 147, .3); color: #e7a3a8; }
.analysis-evidence-badge.level-strong { border-color: rgba(114, 220, 200, .32); background: rgba(114, 220, 200, .08); color: #82d9c6; }
.analysis-evidence-badge.level-partial { border-color: rgba(239, 194, 124, .34); background: rgba(239, 194, 124, .08); color: #edc479; }
.analysis-evidence-badge.level-none { border-color: #2b3b4d; color: #94a2b1; }
.analysis-team { color: #8091a4; font-size: 9px; }
.analysis-evidence-line { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; color: #8fa0b2; font-size: 9px; line-height: 1.4; }
.analysis-evidence-line code { max-width: 100%; color: #a9c4dc; font-size: 9px; }
.analysis-file-caption, .analysis-match-caption, .analysis-more-files { color: #8294a9; }
.analysis-match-caption { margin-left: 3px; }
.analysis-no-match { color: #8a98a8; }
.analysis-task-row .task-bar { top: calc(50% - 11px); }
.analysis-board .timeline-footer > span { max-width: calc(100% - 135px); color: #8598ad; font-size: 10px; line-height: 1.45; }
.detail-code-evidence ul { margin: 7px 0 11px; padding-left: 18px; color: #b6c4d2; }
.detail-code-evidence li { margin: 5px 0; overflow-wrap: anywhere; }
.detail-code-evidence code { color: #a9c4dc; font: 10px 'DM Mono', monospace; }
@media (max-width: 1050px) {
  .analysis-board .axis-row, .analysis-board .task-row { grid-template-columns: 360px minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .analysis-roadmap-warning { align-items: flex-start; flex-direction: column; }
  .analysis-board .timeline-inner { min-width: 970px; }
  .analysis-board .axis-row, .analysis-board .task-row { grid-template-columns: 310px minmax(0, 1fr); }
  .analysis-task-label { padding-left: 16px; }
  .analysis-board .timeline-footer { align-items: flex-start; }
  .analysis-board .timeline-footer > span { max-width: calc(100% - 118px); }
}

.ai-workspace { min-height: min(760px, calc(100vh - 215px)); display: grid; grid-template-columns: 235px minmax(0, 1fr); overflow: hidden; border: 1px solid #202e3d; border-radius: 9px; background: #0a1119; box-shadow: 0 15px 45px rgba(0, 0, 0, .12); }
.ai-chat-sidebar { min-width: 0; display: flex; flex-direction: column; border-right: 1px solid #202e3d; background: #0c141e; }
.ai-sidebar-heading { min-height: 73px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 13px; border-bottom: 1px solid #202e3d; }
.ai-sidebar-heading .eyebrow { font-size: 8px; }
.ai-sidebar-heading h2 { margin: 4px 0 0; color: #d9e5f1; font-size: 13px; }
.ai-sidebar-heading .button { min-height: 31px; width: 34px; padding: 0; font-size: 18px; }
.ai-conversation-list { flex: 1; overflow-y: auto; padding: 8px; }
.ai-conversation-item { width: 100%; display: grid; gap: 5px; padding: 10px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #bdcad7; cursor: pointer; text-align: left; }
.ai-conversation-item:hover { background: #111c28; }
.ai-conversation-item.is-active { border-color: #2c4258; background: #132131; color: #e0ecf7; }
.ai-conversation-item strong { overflow: hidden; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.ai-conversation-item span { overflow: hidden; color: #8294a8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.ai-sidebar-foot { padding: 11px; border-top: 1px solid #202e3d; color: #728399; font-size: 9px; line-height: 1.5; }
.ai-chat-panel { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.ai-chat-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 20px 13px; border-bottom: 1px solid #202e3d; }
.ai-chat-header h2 { margin: 5px 0 4px; color: #dbe6f1; font-size: 16px; overflow-wrap: anywhere; }
.ai-chat-header p { margin: 0; color: #8192a6; font-size: 10px; }
.ai-chat-selectors { display: flex; align-items: flex-end; gap: 8px; }
.ai-chat-selectors label { display: grid; gap: 5px; color: #91a2b5; font-size: 9px; }
.ai-chat-selectors select { max-width: 220px; min-width: 145px; height: 34px; padding: 0 9px; border: 1px solid #2a3b4e; border-radius: 5px; background: #0c141e; color: #d4e1ee; font-size: 10px; }
.ai-chat-selectors select:focus { outline: 1px solid #579dc7; }
.ai-refresh-models { width: 33px; height: 34px; padding: 0; font-size: 17px; }
.ai-context-transfer-note { padding: 7px 20px; border-bottom: 1px solid rgba(32, 46, 61, .75); background: rgba(239, 194, 124, .045); color: #ae9c7e; font-size: 9px; line-height: 1.45; }
.ai-provider-status { display: flex; flex-wrap: wrap; gap: 6px; padding: 9px 20px; border-bottom: 1px solid rgba(32, 46, 61, .75); }
.ai-provider-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 7px; border: 1px solid #293847; border-radius: 20px; color: #8292a3; font-size: 9px; }
.ai-provider-chip i { width: 6px; height: 6px; border-radius: 50%; background: #68798b; }
.ai-provider-chip.is-connected { border-color: rgba(114, 220, 200, .25); color: #9dcfc4; }
.ai-provider-chip.is-connected i { background: var(--teal); box-shadow: 0 0 7px rgba(114, 220, 200, .4); }
.ai-repository-panel { margin: 8px 18px 0; border: 1px solid rgba(114, 220, 200, .2); border-radius: 7px; background: rgba(114, 220, 200, .035); }
.ai-repository-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; color: #a9d5c9; cursor: pointer; list-style: none; }
.ai-repository-panel summary::-webkit-details-marker { display: none; }
.ai-repository-panel summary::after { content: '＋'; color: #7cae9f; font-size: 12px; }
.ai-repository-panel[open] summary::after { content: '−'; }
.ai-repository-panel summary strong { font-size: 9px; font-weight: 600; }
.ai-repository-panel summary span { margin-left: auto; color: #758f87; font-size: 8px; text-align: right; }
.ai-repository-content { padding: 0 11px 10px; }
.ai-repository-content > p { margin: 0 0 8px; color: #7f948d; font-size: 9px; line-height: 1.5; }
.ai-repository-content form > label { display: block; margin-bottom: 5px; color: #9bb4a9; font-size: 9px; }
.ai-repository-content form + form { margin-top: 9px; padding-top: 8px; border-top: 1px solid rgba(114, 220, 200, .12); }
.ai-repo-input-row { display: flex; gap: 7px; }
.ai-repo-input-row input { min-width: 0; height: 32px; flex: 1; padding: 0 9px; border: 1px solid #2a3e42; border-radius: 5px; outline: 0; background: #080f14; color: #dce6ef; font-size: 10px; }
.ai-repo-input-row input[type="file"] { height: 34px; padding: 4px; }
.ai-repo-input-row input[type="file"]::file-selector-button { margin-right: 8px; padding: 4px 7px; border: 1px solid #35524c; border-radius: 4px; background: #12221f; color: #b7d5ca; font-size: 9px; cursor: pointer; }
.ai-repo-input-row input:focus { border-color: #559e8b; }
.ai-repo-input-row .button { min-height: 32px; white-space: nowrap; }
.ai-repo-attached-files { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 8px; }
.ai-repo-attached-files > span { width: 100%; color: #73958a; font: 8px 'DM Mono', monospace; letter-spacing: .06em; }
.ai-repo-attached-files code { max-width: 100%; overflow: hidden; padding: 4px 6px; border: 1px solid #293e40; border-radius: 4px; color: #a4c8ba; font: 8px 'DM Mono', monospace; text-overflow: ellipsis; white-space: nowrap; }
.ai-repo-status { margin-top: 8px !important; }
.ai-repo-status.is-busy { color: #9bc9e2; }
.ai-repo-status.is-success { color: #8fd3bc; }
.ai-repo-status.is-error { color: #e6a7ac; }
.ai-job-progress { display: flex; align-items: center; gap: 8px; margin: 8px 18px 0; padding: 8px 11px; border: 1px solid rgba(105, 200, 255, .22); border-radius: 6px; background: rgba(105, 200, 255, .055); color: #a3bdd0; font-size: 9px; line-height: 1.45; }
.ai-job-progress i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #7dccf3; box-shadow: 0 0 8px rgba(105, 200, 255, .6); animation: ai-pulse 1s ease-in-out infinite alternate; }
.ai-job-progress strong { color: #d5e9f6; }
.ai-job-progress.is-queued { border-color: #3a3940; background: rgba(239, 194, 124, .04); color: #c0aa82; }
.ai-knowledge-panel { margin: 8px 18px 0; border: 1px solid rgba(105, 200, 255, .19); border-radius: 7px; background: rgba(105, 200, 255, .035); }
.ai-knowledge-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; color: #a9c9dc; cursor: pointer; list-style: none; }
.ai-knowledge-panel summary::-webkit-details-marker { display: none; }
.ai-knowledge-panel summary::after { content: '＋'; color: #7caac4; font-size: 12px; }
.ai-knowledge-panel[open] summary::after { content: '−'; }
.ai-knowledge-panel summary strong { font-size: 9px; font-weight: 600; }
.ai-knowledge-panel summary span { margin-left: auto; color: #758ba0; font-size: 8px; text-align: right; }
.ai-knowledge-content { padding: 0 11px 10px; }
.ai-knowledge-content > p { margin: 0 0 8px; color: #7f94a8; font-size: 9px; line-height: 1.5; }
.ai-methodology-picker { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.ai-methodology-picker label { color: #92a5b9; font-size: 9px; }
.ai-methodology-picker select, .ai-methodology-picker input { min-width: 130px; height: 28px; padding: 0 8px; border: 1px solid #2a3b4e; border-radius: 5px; background: #0a121b; color: #c9d9e7; font-size: 9px; }
.ai-methodology-picker input { flex: 1; }
.ai-knowledge-list { display: flex; flex-wrap: wrap; gap: 5px; max-height: 60px; overflow-y: auto; }
.ai-knowledge-chip { padding: 4px 6px; border: 1px solid #25384a; border-radius: 4px; color: #a3b8ca; font-size: 8px; }
.ai-knowledge-chip.is-custom { border-color: rgba(114, 220, 200, .24); color: #9accc1; }
.ai-knowledge-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; color: #718399; font-size: 8px; }
.ai-knowledge-actions .button { min-height: 27px; padding: 0 9px; font-size: 8px; }
.ai-knowledge-format-note { display: block; margin-top: 7px; color: #718399; font-size: 8px; line-height: 1.5; }
.ai-setup-banner { margin: 10px 18px 0; padding: 10px 12px; border: 1px solid rgba(105, 200, 255, .23); border-radius: 6px; background: rgba(105, 200, 255, .06); color: #a7bfd3; font-size: 10px; line-height: 1.6; }
.ai-setup-banner strong { color: #d6e9f7; }
.ai-setup-banner code { color: #b5d8ef; font: 9px 'DM Mono', monospace; }
.ai-chatgpt-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 9px; }
.ai-chatgpt-actions button:disabled { opacity: .55; cursor: wait; }
.ai-setup-banner.is-error { border-color: rgba(239, 142, 147, .3); background: rgba(155, 55, 63, .09); color: #e3adb0; }
.ai-messages { min-height: 310px; max-height: min(66vh, 640px); flex: 1; overflow-y: auto; display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding: 19px 20px; scrollbar-color: #32475e #0a1119; scrollbar-width: thin; }
.ai-message { width: min(820px, 92%); padding: 12px 14px; border: 1px solid #273647; border-radius: 9px; background: #0e1823; color: #c8d4e1; }
.ai-message.from-user { align-self: flex-end; border-color: rgba(105, 200, 255, .27); background: #122130; }
.ai-message.from-assistant { align-self: flex-start; }
.ai-message-author { margin-bottom: 7px; color: #7890a8; font: 8px 'DM Mono', monospace; letter-spacing: .08em; text-transform: uppercase; }
.ai-message.from-user .ai-message-author { color: #83c5e8; }
.ai-message-body { font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.ai-message-body > :first-child { margin-top: 0; }
.ai-message-body > :last-child { margin-bottom: 0; }
.ai-message-body p { margin: 0 0 10px; }
.ai-message-body h1, .ai-message-body h2, .ai-message-body h3, .ai-message-body h4 { margin: 13px 0 6px; color: #e2edf7; line-height: 1.35; }
.ai-message-body h1, .ai-message-body h2 { font-size: 16px; }
.ai-message-body h3, .ai-message-body h4 { font-size: 14px; }
.ai-message-body ul, .ai-message-body ol { display: grid; gap: 5px; margin: 5px 0 11px; padding-left: 22px; }
.ai-message-body li { padding-left: 2px; }
.ai-message-body blockquote { margin: 8px 0; padding: 3px 0 3px 11px; border-left: 2px solid #4a7896; color: #9fb4c8; }
.ai-message-body code { padding: 1px 4px; border: 1px solid #293b4e; border-radius: 4px; background: #09111a; color: #a9d9f1; font: 11px 'DM Mono', monospace; }
.ai-message-body pre { overflow-x: auto; margin: 8px 0; padding: 10px; border: 1px solid #293b4e; border-radius: 6px; background: #09111a; }
.ai-message-body pre code { padding: 0; border: 0; background: transparent; white-space: pre; }
.ai-message-body a { color: #8ed6ff; text-decoration: underline; text-underline-offset: 2px; }
.ai-message-body hr { height: 1px; margin: 12px 0; border: 0; background: #293b4e; }
.ai-message-sources { display: grid; gap: 6px; margin-top: 10px; padding-top: 8px; border-top: 1px solid #263646; }
.ai-message-sources > span { color: #71889d; font: 8px 'DM Mono', monospace; letter-spacing: .07em; }
.ai-message-sources > div { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 2px 6px; color: #93c9e5; font-size: 9px; }
.ai-message-sources > div > b { color: #71c6ef; font: 8px 'DM Mono', monospace; }
.ai-message-sources a, .ai-message-sources strong { color: #a9d8ef; font-size: 9px; font-weight: 500; text-decoration: none; }
.ai-message-sources a:hover { text-decoration: underline; }
.ai-message-sources small { grid-column: 2; color: #74889c; font-size: 8px; }
.ai-chat-empty { min-height: 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; color: #8b9caf; text-align: center; }
.ai-chat-empty > span { color: #94dafd; font-size: 24px; }
.ai-chat-empty h3 { margin: 9px 0 5px; color: #d4e0ec; font-size: 14px; }
.ai-chat-empty p { max-width: 380px; margin: 0; font-size: 10px; line-height: 1.6; }
.ai-starter-prompts { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; max-width: 610px; margin-top: 14px; }
.ai-starter-prompts button { padding: 7px 9px; border: 1px solid #2b4053; border-radius: 6px; background: #101b27; color: #9fc0d3; font: 9px Inter, 'Segoe UI', sans-serif; cursor: pointer; }
.ai-starter-prompts button:hover { border-color: #4e8eaf; background: #132331; color: #d1e9f6; }
.ai-typing { display: flex; align-items: center; gap: 5px; color: #8a9daf; font-size: 10px; }
.ai-typing i { width: 5px; height: 5px; border-radius: 50%; background: #77c9f1; animation: ai-pulse 1s ease-in-out infinite alternate; }
.ai-typing i:nth-child(2) { animation-delay: .2s; }
.ai-typing i:nth-child(3) { margin-right: 4px; animation-delay: .4s; }
@keyframes ai-pulse { from { opacity: .35; transform: translateY(1px); } to { opacity: 1; transform: translateY(-2px); } }
.ai-composer { margin: 0 18px 17px; padding: 9px; border: 1px solid #2b3b4d; border-radius: 8px; background: #0d151f; }
.ai-composer textarea { width: 100%; min-height: 64px; max-height: 180px; resize: vertical; padding: 7px 8px; border: 0; outline: 0; background: transparent; color: #dce6f0; font: 11px/1.6 Inter, 'Segoe UI', sans-serif; }
.ai-composer textarea::placeholder { color: #718299; }
.ai-composer textarea:disabled { cursor: not-allowed; opacity: .5; }
.ai-composer-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 5px 6px 1px; border-top: 1px solid #202e3d; }
.ai-composer-footer > span { color: #708297; font-size: 9px; line-height: 1.45; }
.ai-composer-footer .button { flex: 0 0 auto; min-height: 31px; }
.ai-composer .button:disabled { cursor: not-allowed; filter: grayscale(.5); opacity: .48; }
.ai-provider-footnote { margin: 11px 1px 0; color: #718399; font-size: 9px; line-height: 1.6; }
.ai-provider-footnote strong { color: #a2b2c3; }
.sprint-modal { width: min(560px, calc(100vw - 32px)); }
.sprint-modal form, .sprint-reminder-modal > div { padding: 23px; }
.sprint-modal-copy { color: #8799ac; font-size: 10px; line-height: 1.6; }
.sprint-schedule-existing { min-height: 18px; color: #8093a7; font-size: 9px; }
.existing-sprint-reminder { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px; border: 1px solid #263748; border-radius: 5px; }
.sprint-reminder-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 15px; }
.sprint-reminder-actions .button { min-height: 36px; font-size: 10px; }
.sprint-reminder-actions .button:first-child { grid-column: 1 / -1; }
.sprint-reminder-actions button:disabled { cursor: not-allowed; opacity: .45; }
.sprint-reminder-modal .modal-actions { align-items: center; justify-content: space-between; }
.project-modal { max-width: 470px; }
.project-modal form { padding: 22px; }
.project-modal-copy { color: #8fa1b5; font-size: 12px; line-height: 1.6; }
@media (max-width: 1100px) {
  .ai-workspace { grid-template-columns: 205px minmax(0, 1fr); }
  .ai-chat-header { align-items: flex-start; flex-direction: column; }
  .ai-chat-selectors { width: 100%; }
  .ai-chat-selectors label { flex: 1; }
  .ai-chat-selectors select { width: 100%; max-width: none; }
}
@media (max-width: 760px) {
  .sprint-actions { flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
  .group-heading { flex-wrap: wrap; padding-top: 5px; padding-bottom: 5px; }
  .group-heading strong { max-width: 42%; }
  .sprint-modal form, .sprint-reminder-modal > div { padding: 16px; }
  .sprint-reminder-actions { grid-template-columns: 1fr; }
  .sprint-reminder-actions .button:first-child { grid-column: auto; }
  .ai-repository-panel, .ai-job-progress { margin-right: 10px; margin-left: 10px; }
  .ai-repo-input-row { align-items: stretch; flex-direction: column; }
  .ai-methodology-picker { align-items: stretch; flex-direction: column; }
  .ai-methodology-picker select, .ai-methodology-picker input { width: 100%; }
  .ai-workspace { min-height: 720px; grid-template-columns: 1fr; }
  .ai-chat-sidebar { max-height: 160px; border-right: 0; border-bottom: 1px solid #202e3d; }
  .ai-sidebar-heading { min-height: 55px; }
  .ai-conversation-list { display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; }
  .ai-conversation-item { width: 190px; flex: 0 0 190px; }
  .ai-sidebar-foot { display: none; }
  .ai-chat-header { gap: 12px; padding: 14px 12px 10px; }
  .ai-chat-selectors { gap: 5px; }
  .ai-chat-selectors select { min-width: 0; font-size: 9px; }
  .ai-chat-selectors label { min-width: 0; }
  .ai-chat-selectors label:first-child { flex: .8; }
  .ai-chat-selectors label:nth-child(2) { flex: 1.2; }
  .ai-context-transfer-note { padding-right: 12px; padding-left: 12px; }
  .ai-provider-status { padding: 8px 12px; }
  .ai-knowledge-panel { margin-right: 10px; margin-left: 10px; }
  .ai-setup-banner { margin-right: 10px; margin-left: 10px; }
  .ai-messages { min-height: 250px; padding: 13px 10px; }
  .ai-message { width: 96%; padding: 10px; }
  .ai-composer { margin: 0 9px 10px; }
  .ai-composer-footer { align-items: flex-end; }
}

/* Context controls and a clearer reading hierarchy for project conversations. */
.ai-chat-panel { min-width: 0; }
.ai-chat-header { background: linear-gradient(120deg, rgba(105, 200, 255, .07), rgba(114, 220, 200, .02)); }
.ai-budget-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 14px 18px 8px; padding: 12px 14px; border: 1px solid #31465b; border-radius: 10px; background: linear-gradient(120deg, #152738, #101e2c); }
.ai-budget-bar strong { display: block; font-size: 12px; color: #def2ff; }
.ai-budget-bar span { display: block; margin-top: 4px; color: #a3b7cc; font-size: 11px; line-height: 1.5; }
.ai-budget-bar label { display: grid; gap: 4px; color: #a3b7cc; font-size: 10px; }
.ai-budget-bar select { padding: 6px 9px; border: 1px solid #415a70; border-radius: 6px; background: #101b28; color: #e6edf5; }
.ai-agent-flow { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0 18px 12px; color: #a0b3c7; font-size: 10px; }
.ai-agent-flow span { display: inline-flex; align-items: center; gap: 6px; }
.ai-agent-flow b { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #344a60; border-radius: 50%; color: #8ed9ff; }
.ai-agent-flow small { flex-basis: 100%; font-size: 10px; line-height: 1.5; color: #8d9fb4; }
.ai-token-usage { margin-top: 10px; padding-top: 8px; border-top: 1px solid #304254; color: #9cb3c8; font: 10px/1.5 'DM Mono', monospace; }
.ai-message-author { font-size: 10px; }
.ai-message { border-radius: 12px; }
.ai-composer { border-radius: 12px; }
.ai-composer:focus-within { border-color: #69c8ff; box-shadow: 0 0 0 2px rgba(105, 200, 255, .08); }
.ai-composer textarea { font-size: 13px; }
@media (max-width: 760px) {
  .ai-budget-bar { margin: 10px; padding: 10px; align-items: flex-start; }
  .ai-budget-bar span { font-size: 10px; }
  .ai-agent-flow { margin-right: 10px; margin-left: 10px; gap: 8px 12px; }
  .ai-message-body { font-size: 12px; }
}

/* Connection discovery and transparent activity records. */
.file-mode-notice, .connection-discovery, .process-overview { margin-bottom: 18px; padding: 16px; border: 1px solid #31475c; border-radius: 12px; background: linear-gradient(120deg, #142536, #0d1824); }
.hosted-demo-notice { margin-bottom: 18px; padding: 14px 16px; border: 1px solid #4a7188; border-radius: 10px; background: linear-gradient(120deg, #102334, #0c1722); color: #c1d7e8; font-size: 12px; line-height: 1.6; }
.hosted-demo-notice[hidden] { display: none; }
.hosted-demo-notice strong { color: #8bd8ff; }
.hosted-demo-notice p { margin: 4px 0 8px; color: #a9bbcd; }
.file-mode-notice { border-color: #76613a; }
.file-mode-notice p, .connection-discovery p, .process-overview p { color: #a9bbcd; font-size: 12px; line-height: 1.6; }
.file-mode-notice > div, .connection-discovery, .process-overview > header, .process-overview > header > div:last-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.file-mode-notice > div { justify-content: flex-start; flex-wrap: wrap; }
a.button { text-decoration: none; }
.connection-discovery h2, .process-overview h2 { margin: 0; font-size: 16px; }
.process-overview > header { margin-bottom: 12px; }
.process-overview > header p { margin: 5px 0 0; }
.process-list { display: grid; gap: 14px; }
.process-card { min-width: 0; margin-top: 10px; padding: 15px; border: 1px solid #2a3d50; border-radius: 10px; background: #0c1621; color: #bacbdd; }
.process-card.active { border-color: #427d9f; }
.process-card.completed { border-color: #315e54; }
.process-card.failed, .process-card.interrupted { border-color: #684048; }
.process-card > header { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; }
.process-card h3 { margin: 6px 0 9px; color: #e0edf7; font-size: 14px; overflow-wrap: anywhere; }
.process-kind { color: #91acc2; font-size: 10px; }
.process-timing { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 16px; font-size: 11px; color: #97adc1; }
.process-timing strong { color: #9ce2ff; font: 15px 'DM Mono', monospace; }
.process-card p { font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.process-stage { color: #a9d5eb; }
.process-meta { color: #93a7ba; }
.process-result { padding-top: 10px; border-top: 1px solid #24394c; }
.process-card footer { display: flex; gap: 15px; flex-wrap: wrap; justify-content: flex-end; margin-top: 12px; }
.process-modal, .connections-modal { width: min(660px, calc(100vw - 24px)); }
.process-modal form, .process-detail, .connection-content { padding: 22px; }
.process-modal textarea { width: 100%; padding: 10px; resize: vertical; background: #080e15; color: #dce6ef; border: 1px solid #30465b; border-radius: 6px; font: inherit; font-size: 13px; line-height: 1.6; }
.process-form-error, #api-connect-status { color: #f0aeb2; font-size: 12px; }
.process-checkbox { display: flex; gap: 9px; align-items: center; margin: 15px 0; font-size: 12px; line-height: 1.6; }
.process-events { display: grid; gap: 12px; padding-left: 20px; }
.process-events time { display: block; color: #9db5c9; font-size: 10px; }
.process-events span { display: block; margin-top: 4px; font-size: 12px; }
.connection-option { display: flex; gap: 18px; align-items: center; justify-content: space-between; padding: 16px; border: 1px solid #395c73; border-radius: 10px; background: #122536; }
.connection-option h3 { margin: 0 0 8px; }
.connection-option p, .connection-api-form p, .workspace-backup-controls p { color: #a2b8cd; font-size: 12px; line-height: 1.6; }
.connection-option > button { flex-shrink: 0; }
.connection-option span { color: #a3cbdc; font-size: 11px; }
.google-ai-studio-connection { margin-top: 16px; padding: 17px; border: 1px solid #31536a; border-radius: 9px; background: linear-gradient(135deg, rgba(26, 53, 73, .72), rgba(13, 23, 35, .96)); }
.google-ai-studio-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.google-ai-studio-heading h3 { margin: 5px 0 0; font-size: 15px; }
.google-ai-studio-connection > p { color: #a2b8cd; font-size: 11px; line-height: 1.6; }
.google-ai-studio-connection a { color: var(--blue); }
.google-ai-studio-connection .field-label { margin-bottom: 7px; }
.google-ai-studio-connection > input[name="key"] { width: 100%; height: 39px; padding: 0 11px; border: 1px solid #30475c; border-radius: 5px; background: #080e15; color: var(--text); font-size: 12px; }
.google-ai-studio-connection > input[name="key"]:focus { outline: 2px solid rgba(105, 200, 255, .45); border-color: var(--blue); }
.google-ai-studio-connection .google-ai-studio-privacy { margin: 9px 0 12px; color: #8196aa; font-size: 10px; }
.google-ai-studio-state { padding: 5px 8px; border: 1px solid #405066; border-radius: 20px; color: #a6b5c5; font-size: 10px; white-space: nowrap; }
.google-ai-studio-state.is-connected { border-color: #2d6658; color: #80dbc5; }
.connection-api-form, .workspace-backup-controls { margin-top: 18px; padding-top: 10px; border-top: 1px solid #2d4358; }
.connection-content h3 { font-size: 14px; }
.task-name-button { padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.task-name-button:hover { color: var(--blue); text-decoration: underline; }
.topbar #open-ai-connections { font-size: 11px; }
@media (max-width: 760px) {
  .process-overview > header, .connection-discovery, .connection-option { align-items: stretch; flex-direction: column; }
  .process-overview > header > div:last-child { flex-wrap: wrap; justify-content: flex-start; }
  .process-modal form, .process-detail, .connection-content { padding: 16px; }
  .process-timing { gap: 8px; }
  .side-rail .rail-nav { gap: 2px; padding-top: 8px; }
  .side-rail .rail-link { min-height: 51px; }
}

/* Persistent phase reviews generated by the AI action in the roadmap. */
.phase-review-overview { margin: 0 0 14px; border: 1px solid #2d4357; border-radius: 9px; background: #0e1a27; }
.phase-review-overview > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 14px; color: #91a8bc; cursor: pointer; list-style: none; }
.phase-review-overview > summary::-webkit-details-marker { display: none; }
.phase-review-overview > summary > span:first-child { display: grid; gap: 3px; }
.phase-review-overview > summary strong { color: #c2dfef; font-size: 12px; }
.phase-review-overview > summary small, .phase-review-overview > summary > span:last-child { color: #8199ae; font-size: 10px; }
.phase-review-overview[open] > summary { border-bottom: 1px solid #283d51; }
.phase-review-list { padding: 0 10px 8px; }
.phase-review-badge { padding: 4px 7px; border: 1px solid #42657d; border-radius: 5px; color: #9bd8f4; font-size: 9px; letter-spacing: .05em; white-space: nowrap; }
.phase-review-card { border-bottom: 1px solid #26394b; background: linear-gradient(90deg, rgba(20, 39, 56, .68), rgba(12, 22, 33, .7)); }
.phase-review-card > summary { display: grid; grid-template-columns: minmax(170px, .55fr) minmax(0, 1.5fr) auto; align-items: center; gap: 12px; padding: 10px 15px 10px 44px; color: #bfd0df; cursor: pointer; list-style: none; }
.phase-review-card > summary::-webkit-details-marker { display: none; }
.phase-review-card > summary > span:first-child { display: grid; gap: 3px; }
.phase-review-card > summary strong { color: #a8dcf3; font-size: 11px; }
.phase-review-card > summary small { color: #8096aa; font-size: 9px; }
.phase-review-summary { display: -webkit-box; overflow: hidden; color: #b3c4d3; font-size: 11px; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.phase-review-toggle { color: #79c9f2; font-size: 10px; white-space: nowrap; }
.phase-review-card[open] > summary { border-bottom: 1px solid #24384a; }
.phase-review-body { padding: 12px 16px 16px 44px; color: #b8c9d7; }
.phase-review-body > p { max-width: 1100px; margin: 4px 0 10px; font-size: 12px; line-height: 1.6; }
.phase-review-deliverables { margin: 10px 0; padding: 10px 12px; border: 1px solid #283d50; border-radius: 7px; background: rgba(6, 14, 22, .55); }
.phase-review-deliverables > strong { color: #c1d8e7; font-size: 10px; }
.phase-review-deliverables > ul { display: grid; gap: 8px; margin: 8px 0; padding: 0; list-style: none; }
.phase-review-deliverables > ul > li { display: grid; gap: 4px; padding-bottom: 8px; border-bottom: 1px solid #24384a; }
.phase-review-deliverables > ul > li:last-child { padding-bottom: 0; border-bottom: 0; }
.phase-review-deliverables > ul > li > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; font-size: 10px; }
.phase-review-deliverables > ul > li > div > b { color: #d5e3ef; font-size: 11px; }
.phase-review-deliverables > ul > li > small, .phase-review-deliverables > small { color: #8399ad; font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.phase-review-deliverables code { color: #9bc9e4; }
.phase-review-source { margin: 10px 0; padding: 10px 12px; border: 1px solid #283d50; border-radius: 7px; background: rgba(6, 14, 22, .55); }
.phase-review-source > strong { color: #9bb7ca; font-size: 10px; }
.phase-review-source ul, .phase-review-citations { display: grid; gap: 5px; margin: 7px 0 0; padding: 0; list-style: none; }
.phase-review-source li, .phase-review-citations li { display: grid; gap: 2px; font-size: 11px; overflow-wrap: anywhere; }
.phase-review-source li small, .phase-review-citations li small { color: #8298ab; font-size: 9px; }
.phase-review-source a, .phase-review-citations a { color: #8dd5fa; }
.phase-review-body .phase-review-stale { color: #efc27c; }
.phase-review-body .phase-review-disclaimer { color: #8499ac; font-size: 10px; }
.phase-review-full { margin: 10px 0; border-top: 1px solid #293c4e; border-bottom: 1px solid #293c4e; }
.phase-review-full > summary { padding: 9px 0; color: #96d7f4; font-size: 11px; cursor: pointer; }
.phase-review-full .ai-message-body { padding: 0 8px 10px 0; }
.phase-review-full .ai-message-body h1, .phase-review-full .ai-message-body h2, .phase-review-full .ai-message-body h3, .phase-review-full .ai-message-body h4 { margin-top: 12px; }
.phase-review-open-chat { min-height: 30px; font-size: 10px; }
@media (max-width: 760px) {
  .phase-review-overview > summary { align-items: flex-start; flex-direction: column; gap: 5px; }
  .phase-review-list { padding-right: 6px; padding-left: 6px; }
  .phase-review-badge { display: none; }
  .phase-review-card > summary { grid-template-columns: 1fr auto; gap: 5px 10px; padding: 10px 12px 10px 30px; }
  .phase-review-card > summary > span:first-child { grid-column: 1 / 2; }
  .phase-review-summary { grid-column: 1 / 2; }
  .phase-review-toggle { grid-column: 2; grid-row: 1 / 3; }
  .phase-review-body { padding: 10px 12px 14px 30px; }
}

/* AI roadmap proposals stay editable until the user saves them. */
.roadmap-generator-modal { width: min(900px, calc(100vw - 28px)); }
.roadmap-generator-form, .roadmap-draft-review { padding: 22px; }
.roadmap-generator-intro { margin: 0 0 16px; color: #b7c9d9; font-size: 13px; line-height: 1.65; }
.roadmap-generator-provider, .roadmap-generator-privacy { padding: 11px 13px; border: 1px solid #293e51; border-radius: 7px; background: #0b1722; color: #a0b5c8; font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
.roadmap-generator-provider strong { color: #d1e6f2; }
.roadmap-generator-privacy { border-color: #574c35; color: #c2b18e; }
.field-label textarea { width: 100%; min-width: 0; padding: 10px; resize: vertical; border: 1px solid #283a4e; border-radius: 5px; outline: 0; background: #080e15; color: #dce6ef; font: 12px/1.55 Inter, 'Segoe UI', sans-serif; }
.field-label textarea:focus { border-color: #559ec8; }
.field-label textarea::placeholder { color: #718299; }
.button-danger { min-height: 30px; padding: 0 10px; border: 1px solid #68434a; border-radius: 5px; background: #21151a; color: #e7a9ad; font-size: 10px; cursor: pointer; }
.button-danger:hover { border-color: #a75e65; background: #321a20; color: #ffd0d2; }
.roadmap-generator-error { padding: 10px 12px; border: 1px solid #77474e; border-radius: 6px; background: #29171b; color: #ffc3c7; font-size: 12px; line-height: 1.55; }
.roadmap-generator-loading { padding: 12px; border: 1px solid #31536a; border-radius: 6px; background: #102131; color: #a4dcf6; font-size: 12px; }
.roadmap-draft-review { display: grid; gap: 13px; }
.roadmap-draft-review > .modal-heading, .roadmap-draft-review > p { margin-bottom: 0; }
.roadmap-draft-phase-list { display: grid; gap: 13px; }
.roadmap-draft-phase { padding: 15px; border: 1px solid #2b4054; border-radius: 8px; background: linear-gradient(140deg, #111e2b, #0b141e); }
.roadmap-draft-phase > header > div, .roadmap-draft-task-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.roadmap-draft-phase > header > .field-label:first-of-type { margin-top: 15px; }
.roadmap-draft-deliverables { display: grid; gap: 10px; margin-top: 14px; padding-top: 13px; border-top: 1px solid #26394b; }
.roadmap-draft-task { padding: 13px; border: 1px solid #263a4d; border-radius: 7px; background: rgba(5, 12, 19, .55); }
.roadmap-draft-task-heading { margin-bottom: 6px; color: #c7d8e5; font-size: 11px; }
.roadmap-draft-task .field-row { gap: 10px; }
.roadmap-add-phase { justify-self: start; }
.roadmap-apply-choice { max-width: 430px; }
.roadmap-draft-notes { padding: 11px 14px; border-left: 2px solid #6585a0; background: #0d1822; }
.roadmap-draft-notes h3 { margin: 0 0 7px; color: #c7d8e5; font-size: 11px; }
.roadmap-draft-notes ul { display: grid; gap: 5px; margin: 0; padding-left: 18px; color: #9db1c3; font-size: 11px; line-height: 1.55; }
.roadmap-draft-review .modal-actions { position: sticky; bottom: -22px; margin: 0 -22px -22px; padding: 12px 22px 18px; border-top: 1px solid #26394b; background: rgba(12, 20, 30, .97); }
@media (max-width: 760px) {
  .roadmap-generator-form, .roadmap-draft-review { padding: 15px; }
  .roadmap-draft-phase { padding: 11px; }
  .roadmap-draft-task { padding: 10px; }
  .roadmap-draft-task .field-row { grid-template-columns: 1fr; gap: 0; }
  .roadmap-draft-review .modal-actions { bottom: -15px; margin: 0 -15px -15px; padding: 10px 15px 14px; }
  .roadmap-draft-review .modal-actions .button { flex: 1; padding: 0 7px; font-size: 10px; }
}

/* Keep onboarding separate from an empty search result. */
.empty-state {
  box-sizing: border-box;
  width: 100%;
  min-height: 220px;
  padding: 28px clamp(20px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-bottom: 1px solid #202e3d;
  background: radial-gradient(ellipse at 50% 0%, rgba(46, 92, 122, .16), transparent 62%);
  color: #9aadc0;
  text-align: center;
}
.empty-state-symbol {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #31536a;
  border-radius: 10px;
  background: #102131;
  color: #87d5fb;
  font-size: 19px;
}
.empty-state-copy { max-width: 590px; }
.empty-state-eyebrow { display: block; margin-bottom: 6px; color: #79a8c5; font: 9px 'DM Mono', monospace; letter-spacing: .1em; }
.empty-state h3 { margin: 0; color: #dce8f2; font-size: 15px; line-height: 1.4; }
.empty-state p { margin: 6px 0 0; color: #92a5b8; font-size: 11px; line-height: 1.6; }
.empty-state-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.empty-state--filtered { min-height: 160px; padding-top: 22px; padding-bottom: 22px; background: rgba(9, 17, 26, .68); }
.empty-state--filtered .empty-state-symbol { width: 32px; height: 32px; font-size: 18px; }
@media (max-width: 600px) {
  .empty-state { min-height: 205px; padding: 22px 16px; }
  .empty-state h3 { font-size: 14px; }
  .empty-state-actions { width: 100%; }
  .empty-state-actions .button { width: 100%; }
}
