:root {
  color-scheme: dark;
  --gf-bg: #0b0f14;
  --gf-sidebar: #0a0e13;
  --gf-panel: #10161d;
  --gf-panel-2: #141b23;
  --gf-panel-3: #18212b;
  --gf-line: rgba(255,255,255,.09);
  --gf-line-strong: rgba(255,255,255,.16);
  --gf-text: #e8edf3;
  --gf-text-2: #b8c1cd;
  --gf-muted: #758190;
  --gf-faint: #505b69;
  --gf-blue: #6ba6ff;
  --gf-green: #73d39d;
  --gf-amber: #e7b867;
  --gf-red: #ec8585;
  --gf-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --gf-mono: "Cascadia Code", "SFMono-Regular", Consolas, monospace;
  --gf-radius: 5px;
  --gf-focus: 0 0 0 2px rgba(107,166,255,.38);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--gf-bg); }
body { color: var(--gf-text); font: 400 13px/1.45 var(--gf-font); display: grid; grid-template-columns: 210px minmax(0,1fr); }
button, input, select { font: inherit; color: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: none; box-shadow: var(--gf-focus); }
a { color: inherit; }
code, pre { font-family: var(--gf-mono); }

/* Application shell */
.gf-sidebar { position: sticky; top: 0; height: 100vh; padding: 15px 12px; display: flex; flex-direction: column; gap: 18px; background: var(--gf-sidebar); border-right: 1px solid var(--gf-line); }
.gf-brand { display: flex; align-items: center; gap: 9px; padding: 4px 6px; }
.gf-brand-mark { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--gf-line-strong); border-radius: 6px; background: var(--gf-panel); font: 600 9px/1 var(--gf-mono); letter-spacing: .06em; }
.gf-brand strong { display: block; font-size: 12px; font-weight: 600; }
.gf-brand span { display: block; margin-top: 1px; color: var(--gf-muted); font-size: 10px; }
.gf-nav { display: grid; gap: 2px; }
.gf-nav button { width: 100%; min-height: 34px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent; color: var(--gf-muted); text-align: left; cursor: pointer; }
.gf-nav button:hover { color: var(--gf-text-2); background: rgba(255,255,255,.025); }
.gf-nav button[aria-current="page"] { color: var(--gf-text); background: var(--gf-panel); box-shadow: inset 2px 0 0 var(--gf-blue); }
.gf-sidebar-foot { margin-top: auto; display: grid; gap: 4px; }
.gf-signal-button, .gf-sync-button { width: 100%; min-height: 31px; border-radius: 4px; cursor: pointer; }
.gf-signal-button { display: grid; grid-template-columns: 6px 1fr auto; align-items: center; gap: 8px; padding: 0 8px; border: 0; background: transparent; color: var(--gf-muted); text-align: left; }
.gf-signal-button:hover { background: rgba(255,255,255,.025); }
.gf-signal-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gf-amber); }
.gf-signal-button b { color: var(--gf-text-2); font-size: 10px; }
.gf-sync-button { border: 1px solid var(--gf-line); background: transparent; color: var(--gf-text-2); }
.gf-sync-button:hover { border-color: var(--gf-line-strong); background: var(--gf-panel); }
.gf-sync-state { padding: 2px 8px; color: var(--gf-faint); font-size: 9px; }

.gf-main { min-width: 0; width: 100%; max-width: 1660px; margin: 0 auto; padding: 24px 32px 70px; }
.gf-topbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; min-height: 60px; margin-bottom: 18px; }
.gf-eyebrow { margin: 0 0 2px; color: var(--gf-muted); font-size: 9px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.gf-title { margin: 0; font-size: 25px; line-height: 1.15; font-weight: 560; letter-spacing: -.025em; }
.gf-command-trigger { width: min(380px, 38vw); min-height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--gf-line); border-radius: 5px; background: transparent; color: var(--gf-muted); cursor: text; }
.gf-command-trigger:hover { border-color: var(--gf-line-strong); background: rgba(255,255,255,.015); }
.gf-command-trigger kbd { margin-left: auto; color: var(--gf-faint); font: 9px var(--gf-mono); }
.gf-main.workbench-mode { max-width: none; height: 100vh; padding: 0; margin: 0; overflow: hidden; display: flex; flex-direction: column; }
.gf-main.workbench-mode .gf-topbar { min-height: 48px; height: 48px; margin: 0; padding: 8px 14px 7px; align-items: center; border-bottom: 1px solid var(--gf-line); background: var(--gf-sidebar); }
.gf-main.workbench-mode .gf-eyebrow { display: none; }
.gf-main.workbench-mode .gf-title { font-size: 14px; font-weight: 600; }
.gf-main.workbench-mode .gf-command-trigger { width: 300px; min-height: 30px; }
.gf-main.workbench-mode #app { flex: 1; min-height: 0; }

/* Shared semantic primitives */
.gf-region-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.gf-region-head > div > span, .gf-pane-label > span, .gf-taskboard-toolbar > div:first-child > span, .gf-task-inspector > section > span, .gf-task-inspector header > div > span:first-child { color: var(--gf-muted); font-size: 9px; font-weight: 650; letter-spacing: .075em; text-transform: uppercase; }
.gf-region-head h2 { margin: 2px 0 0; font-size: 15px; line-height: 1.2; font-weight: 600; letter-spacing: -.01em; }
.gf-region-head small { color: var(--gf-muted); font-size: 10px; }
.gf-intent { display: inline-flex; align-items: center; min-height: 20px; padding: 0 6px; border: 1px solid var(--gf-line); border-radius: 4px; color: var(--gf-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .03em; }
.gf-intent.primary { color: var(--gf-blue); border-color: rgba(107,166,255,.26); }
.gf-intent.success { color: var(--gf-green); border-color: rgba(115,211,157,.26); }
.gf-intent.warning { color: var(--gf-amber); border-color: rgba(231,184,103,.26); }
.gf-intent.danger { color: var(--gf-red); border-color: rgba(236,133,133,.26); }
.gf-button { min-height: 31px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid var(--gf-line); border-radius: 4px; background: transparent; color: var(--gf-text-2); text-decoration: none; cursor: pointer; }
.gf-button:hover { border-color: var(--gf-line-strong); background: rgba(255,255,255,.025); }
.gf-button.primary { color: #dcebff; border-color: rgba(107,166,255,.34); background: rgba(107,166,255,.08); }
.gf-text-action, .gf-back-link { border: 0; background: transparent; color: var(--gf-muted); padding: 0; cursor: pointer; font-size: 11px; text-decoration: none; }
.gf-text-action:hover, .gf-back-link:hover { color: var(--gf-text); }
.gf-muted-copy { margin: 8px 0; color: var(--gf-muted); font-size: 11px; }
.gf-empty { min-height: 130px; display: grid; place-items: center; align-content: center; padding: 24px; color: var(--gf-muted); text-align: center; }
.gf-empty strong { color: var(--gf-text-2); font-weight: 550; }
.gf-empty p { max-width: 460px; margin: 5px 0 0; }

/* Today: cockpit, not a database listing */
.gf-cockpit-summary { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 10px 0 13px; margin-bottom: 22px; border-top: 1px solid var(--gf-line); border-bottom: 1px solid var(--gf-line); color: var(--gf-muted); font-size: 11px; }
.gf-cockpit-summary strong { margin-right: 4px; color: var(--gf-text); font-weight: 600; }
.gf-today-cockpit { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(260px,.55fr); grid-template-areas: "current awareness" "movement awareness" "landscape landscape"; gap: 28px 32px; align-items: start; }
.gf-cockpit-current { grid-area: current; }
.gf-cockpit-awareness { grid-area: awareness; min-width: 0; }
.gf-cockpit-movement { grid-area: movement; }
.gf-cockpit-landscape { grid-area: landscape; }
.gf-primary-work { width: 100%; min-height: 210px; padding: 22px 24px 18px; border: 1px solid var(--gf-line-strong); border-radius: 7px; background: linear-gradient(135deg, var(--gf-panel-2), var(--gf-panel)); color: inherit; text-align: left; cursor: pointer; }
.gf-primary-work:hover { border-color: rgba(107,166,255,.38); }
.gf-primary-work-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--gf-muted); font-size: 10px; }
.gf-primary-work h3 { max-width: 760px; margin: 28px 0 8px; font-size: 24px; line-height: 1.15; font-weight: 560; letter-spacing: -.025em; }
.gf-primary-work > p { max-width: 760px; margin: 0; color: var(--gf-text-2); font-size: 14px; }
.gf-primary-work footer { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; margin-top: 34px; padding-top: 12px; border-top: 1px solid var(--gf-line); color: var(--gf-muted); font-size: 10px; }
.gf-primary-work footer strong { color: var(--gf-text-2); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gf-secondary-work-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 8px; }
.gf-secondary-work { min-width: 0; min-height: 118px; padding: 12px 13px; border: 1px solid var(--gf-line); border-radius: 5px; background: var(--gf-panel); text-align: left; cursor: pointer; }
.gf-secondary-work:hover { border-color: var(--gf-line-strong); background: var(--gf-panel-2); }
.gf-secondary-work > span, .gf-secondary-work small { color: var(--gf-muted); font-size: 9px; }
.gf-secondary-work strong { display: block; margin-top: 8px; font-size: 12px; font-weight: 600; }
.gf-secondary-work p { margin: 4px 0 12px; color: var(--gf-text-2); font-size: 11px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.gf-awareness-stack { border-top: 1px solid var(--gf-line); }
.gf-awareness-item { width: 100%; display: grid; grid-template-columns: 7px minmax(0,1fr); gap: 9px; align-items: start; padding: 10px 2px; border: 0; border-bottom: 1px solid var(--gf-line); background: transparent; text-align: left; cursor: pointer; }
.gf-awareness-item:hover strong { color: var(--gf-text); }
.gf-awareness-mark { width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: var(--gf-muted); }
.gf-awareness-mark.primary { background: var(--gf-blue); }.gf-awareness-mark.warning { background: var(--gf-amber); }.gf-awareness-mark.danger { background: var(--gf-red); }.gf-awareness-mark.success { background: var(--gf-green); }
.gf-awareness-item strong { display: block; color: var(--gf-text-2); font-size: 11px; font-weight: 500; }
.gf-awareness-item small { display: block; margin-top: 2px; color: var(--gf-muted); font-size: 9px; }
.gf-cockpit-awareness .gf-text-action { margin-top: 10px; }
.gf-movement-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--gf-line); }
.gf-movement-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; padding: 9px 4px; border: 0; border-bottom: 1px solid var(--gf-line); background: transparent; text-align: left; cursor: pointer; }
.gf-movement-item:nth-child(odd) { padding-right: 14px; border-right: 1px solid var(--gf-line); }
.gf-movement-item:nth-child(even) { padding-left: 14px; }
.gf-movement-item strong { font-size: 11px; font-weight: 560; }
.gf-movement-item span, .gf-movement-item small { color: var(--gf-muted); font-size: 9px; }
.gf-landscape-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 7px; }
.gf-landscape-item { position: relative; min-width: 0; min-height: 72px; padding: 11px 12px 14px; border: 1px solid var(--gf-line); border-radius: 5px; background: var(--gf-panel); text-align: left; cursor: pointer; overflow: hidden; }
.gf-landscape-item:hover { border-color: var(--gf-line-strong); }
.gf-landscape-item strong { display: block; font-size: 11px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gf-landscape-item span { display: block; margin-top: 4px; color: var(--gf-muted); font-size: 9px; }
.gf-landscape-item i { position: absolute; left: 0; bottom: 0; width: calc(var(--strength) * 100%); height: 2px; background: var(--gf-blue); opacity: .65; }

/* Repository browser: GitHub-familiar, semantically richer */
.gf-repositories-browser { max-width: 1180px; }
.gf-repository-list { border-top: 1px solid var(--gf-line); }
.gf-repository-item { width: 100%; display: grid; grid-template-columns: minmax(280px,1.5fr) minmax(220px,.8fr) 190px; gap: 24px; align-items: center; min-height: 92px; padding: 14px 4px; border: 0; border-bottom: 1px solid var(--gf-line); background: transparent; text-align: left; cursor: pointer; }
.gf-repository-item:hover { background: rgba(255,255,255,.018); }
.gf-repository-identity strong { display: inline-block; color: #a9ccff; font-size: 14px; font-weight: 600; }
.gf-repository-identity > span { margin-left: 7px; color: var(--gf-muted); font-size: 10px; }
.gf-repository-identity p { margin: 7px 0 0; color: var(--gf-text-2); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gf-repository-facts { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--gf-muted); font-size: 10px; }
.gf-repository-facts b { color: var(--gf-text-2); font-weight: 600; }
.gf-repository-facts .review { color: var(--gf-amber); }
.gf-repository-ref { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; justify-items: end; color: var(--gf-muted); font-size: 9px; }
.gf-repository-ref code { color: var(--gf-text-2); font-size: 10px; }
.gf-repository-ref small { grid-column: 1 / -1; }

/* Lisa-derived Work Taskboard */
.gf-taskboard-shell { min-width: 0; }
.gf-taskboard-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.gf-taskboard-toolbar h2 { margin: 3px 0 2px; font-size: 18px; font-weight: 600; }
.gf-taskboard-toolbar p { margin: 0; color: var(--gf-muted); font-size: 10px; }
.gf-taskboard-controls { display: flex; align-items: center; gap: 8px; }
.gf-taskboard-controls select { min-height: 32px; max-width: 220px; padding: 0 28px 0 9px; border: 1px solid var(--gf-line); border-radius: 4px; background: var(--gf-panel); color: var(--gf-text-2); font-size: 10px; }
.gf-mode-switch { display: flex; gap: 2px; padding: 2px; border: 1px solid var(--gf-line); border-radius: 5px; background: var(--gf-panel); }
.gf-mode-switch button { min-height: 26px; padding: 0 9px; border: 0; border-radius: 3px; background: transparent; color: var(--gf-muted); cursor: pointer; font-size: 9px; }
.gf-mode-switch button[aria-pressed="true"] { background: var(--gf-panel-3); color: var(--gf-text); }
.gf-taskboard-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px,280px); gap: 8px; padding: 10px 0 18px; overflow-x: auto; overscroll-behavior-x: contain; }
.gf-taskboard-column { min-width: 0; border: 1px solid var(--gf-line); border-radius: 6px; background: var(--gf-panel); overflow: hidden; }
.gf-taskboard-column > header { display: flex; align-items: center; justify-content: space-between; padding: 9px 10px; border-bottom: 1px solid var(--gf-line); }
.gf-taskboard-column > header span { color: var(--gf-text-2); font-size: 9px; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.gf-taskboard-column > header small { min-width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid var(--gf-line); border-radius: 10px; color: var(--gf-muted); font-size: 8px; }
.gf-taskboard-column > div { display: flex; flex-direction: column; gap: 6px; padding: 7px; }
.gf-column-empty { margin: 0; padding: 14px 4px; color: var(--gf-faint); text-align: center; font-size: 9px; }
.gf-task-card { width: 100%; min-height: 110px; padding: 10px; border: 1px solid var(--gf-line); border-radius: 5px; background: var(--gf-panel-2); text-align: left; cursor: pointer; }
.gf-task-card:hover { border-color: var(--gf-line-strong); background: var(--gf-panel-3); }
.gf-task-card.current { border-color: rgba(107,166,255,.36); box-shadow: inset 2px 0 0 var(--gf-blue); }
.gf-task-card-key { display: flex; justify-content: space-between; gap: 8px; color: var(--gf-muted); font-size: 8px; text-transform: uppercase; letter-spacing: .03em; }
.gf-task-card-key b { color: var(--gf-blue); font-weight: 650; }
.gf-task-card > strong { display: block; margin-top: 8px; font-size: 11px; line-height: 1.35; font-weight: 580; }
.gf-task-card > p { margin: 5px 0 12px; color: var(--gf-muted); font-size: 9px; }
.gf-task-card footer { display: flex; justify-content: space-between; gap: 8px; color: var(--gf-faint); font-size: 8px; }
.gf-task-list { max-width: 940px; display: grid; gap: 7px; }
.gf-task-list .gf-task-card { min-height: 90px; }
.gf-task-inspector { width: min(100%,820px); margin: 0 auto; padding: 12px 0 32px; }
.gf-task-inspector > header { padding: 18px 0; border-bottom: 1px solid var(--gf-line); }
.gf-task-inspector > header > div { display: flex; align-items: center; gap: 8px; }
.gf-task-inspector h2 { margin: 9px 0 4px; font-size: 22px; line-height: 1.2; font-weight: 570; }
.gf-task-inspector header > p { margin: 0; color: var(--gf-muted); }
.gf-task-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; padding: 12px 0; }
.gf-task-facts > div { padding: 10px; border: 1px solid var(--gf-line); border-radius: 4px; background: var(--gf-panel); }
.gf-task-facts span { display: block; color: var(--gf-muted); font-size: 8px; text-transform: uppercase; }
.gf-task-facts strong { display: block; margin-top: 3px; font-size: 10px; font-weight: 550; }
.gf-task-inspector > section { padding: 13px 0; border-top: 1px solid var(--gf-line); }
.gf-task-inspector > section p { margin: 6px 0 0; color: var(--gf-text-2); }
.gf-task-inspector dl { margin: 7px 0 0; }
.gf-task-inspector dl > div { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 12px; padding: 5px 0; }
.gf-task-inspector dt { color: var(--gf-muted); }
.gf-task-inspector dd { margin: 0; overflow-wrap: anywhere; }
.gf-task-inspector-actions { display: flex; gap: 7px; margin-top: 14px; }

/* Taskboard library mirrors Lisa's board selection surface without importing Lisa authority. */
.gf-taskboard-library { max-width: 1280px; }
.gf-taskboard-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.gf-taskboard-library-card { min-width: 0; min-height: 178px; display: flex; flex-direction: column; padding: 14px 15px; border: 1px solid var(--gf-line); border-radius: 6px; background: var(--gf-panel); text-align: left; cursor: pointer; }
.gf-taskboard-library-card:hover { border-color: var(--gf-line-strong); background: var(--gf-panel-2); }
.gf-taskboard-library-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--gf-muted); font-size: 9px; }
.gf-taskboard-library-card h3 { margin: 16px 0 7px; font-size: 14px; font-weight: 580; }
.gf-taskboard-library-current { margin-top: auto; padding: 9px 10px; border-left: 2px solid var(--gf-blue); background: rgba(107,166,255,.055); }
.gf-taskboard-library-current span { display: block; color: var(--gf-muted); font-size: 8px; }
.gf-taskboard-library-current strong { display: block; margin-top: 3px; color: var(--gf-text-2); font-size: 9px; font-weight: 520; }
.gf-taskboard-library-card > footer { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 12px; color: var(--gf-muted); font-size: 9px; }
.gf-taskboard-library-card > footer b { color: var(--gf-text-2); font-weight: 600; }
@media (max-width:1180px){.gf-taskboard-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:700px){.gf-taskboard-library-grid{grid-template-columns:1fr;}}
