:root {
  color-scheme: light;
  --bg: #f3f4f6;
  --surface: #ffffff;
  --surface-soft: #f7f8f8;
  --ink: #191c1e;
  --muted: #5c5f60;
  --line: #e1e2e4;
  --line-strong: #c5c6c8;
  --primary: #2d5a43;
  --primary-dark: #224f39;
  --primary-soft: #e4f2e9;
  --blue: #2d67b1;
  --blue-soft: #eaf1fa;
  --amber: #9a620d;
  --amber-soft: #fff2d8;
  --red: #b33d38;
  --red-soft: #fbeceb;
  --purple: #76539a;
  --purple-soft: #f1ebf6;
  --coral: #b6523f;
  --coral-soft: #fbece8;
  --shadow: 0 12px 32px rgba(24, 38, 31, .08);
  --radius: 8px;
}

/* Desktop work lifecycle V14. Mobile keeps the existing navigation and page layout. */
.desktop-v3-only { display: none; }
.desktop-project-lifecycle-filter, .desktop-project-view-switch, .desktop-project-toolbar-break { display: none; }
.desktop-project-toolbar { display: none; }

@media (min-width: 981px) {
  #dashboard-view > .source-rail,
  #dashboard-view > .work-grid,
  #dashboard-view > .wide-block,
  #dashboard-view > .lower-grid { display: none; }
  #tasks-view > .work-ledger-tabs,
  #tasks-view > .toolbar,
  #tasks-view > .task-batch-bar,
  #tasks-view > .table-surface { display: none; }
  #projects-view > .project-group { display: none !important; }
  .desktop-v3-only { display: block; }
  #dashboard-view, #tasks-view, #projects-view, #project-detail-view { max-width: 1560px; }

  .v3-rule-strip { min-height: 64px; margin-bottom: 32px; padding: 12px 16px; border-left: 3px solid var(--blue); background: var(--blue-soft); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .v3-rule-strip strong, .v3-rule-strip span { display: block; }
  .v3-rule-strip strong { color: var(--ink); font-size: 14px; line-height: 22px; font-weight: 600; }
  .v3-rule-strip span { color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-week-section { margin-top: 32px; }
  .v3-week-section:first-child { margin-top: 0; }
  .v3-manual-section { padding-top: 24px; border-top: 2px solid var(--amber); }
  .v3-section-heading { min-height: 40px; margin-bottom: 16px; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
  .v3-section-heading h2 { margin: 0; font-size: 18px; line-height: 26px; font-weight: 600; }
  .v3-section-heading p, .v3-section-heading > span { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-group { margin-bottom: 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); overflow: hidden; }
  .v3-project-group > header { min-height: 64px; padding: 8px 16px; border-bottom: 1px solid var(--line); background: var(--surface-soft); display: grid; grid-template-columns: minmax(240px, 1fr) minmax(200px, .8fr) auto; gap: 16px; align-items: center; }
  .v3-project-group > header > div, .v3-project-group > header > p { min-width: 0; }
  .v3-project-group > header h3 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 24px; font-weight: 600; }
  .v3-project-group > header p { margin: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; }
  .v3-project-group > header > p { text-align: right; }
  .v3-task-head, .v3-task-row { display: grid; grid-template-columns: 8px minmax(200px, 1.5fr) minmax(104px, .7fr) minmax(116px, .8fr) minmax(152px, 1fr) 76px 108px 32px; gap: 12px; align-items: center; }
  .v3-task-head { min-height: 36px; padding: 0 16px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-task-row { min-height: 76px; padding: 8px 16px; border-bottom: 1px solid var(--line); }
  .v3-task-row:last-child { border-bottom: 0; }
  .v3-task-row:hover { background: #fafbfb; }
  .v3-state-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); }
  .v3-state-dot.blue { background: var(--blue); }
  .v3-state-dot.warning { background: var(--amber); }
  .v3-state-dot.success { background: var(--primary); }
  .v3-state-dot.danger { background: var(--red); }
  .v3-task-main, .v3-task-cell { min-width: 0; }
  .v3-task-main button { max-width: 100%; padding: 0; border: 0; background: transparent; color: var(--ink); display: block; text-align: left; cursor: pointer; }
  .v3-task-main button:hover { color: var(--blue); text-decoration: underline; }
  .v3-task-main strong { max-height: 44px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 14px; line-height: 22px; font-weight: 500; }
  .v3-task-main small, .v3-task-cell small, .v3-task-cell strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; }
  .v3-task-main small, .v3-task-cell small { color: var(--muted); }
  .v3-task-cell strong { font-weight: 500; }
  .v3-reply strong { max-height: 36px; white-space: normal; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .v3-task-progress strong { font-size: 14px; line-height: 20px; font-weight: 600; }
  .v3-task-progress > span { width: 56px; height: 4px; margin-top: 4px; border-radius: 2px; background: var(--line); display: block; overflow: hidden; }
  .v3-task-progress > span i { height: 100%; background: var(--blue); display: block; }
  .v3-row-open { width: 32px; height: 32px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--muted); display: grid; place-items: center; cursor: pointer; }
  .v3-row-open:hover { background: var(--surface-soft); color: var(--primary); }
  .v3-empty { min-height: 96px; padding: 32px; border-top: 1px solid var(--line); color: var(--muted); display: grid; place-items: center; font-size: 14px; }

  .v3-ledger-toolbar { min-height: 56px; margin-bottom: 24px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .v3-ledger-toolbar > div { min-width: 0; display: flex; align-items: center; gap: 8px; }
  .v3-ledger-toolbar select, .v3-search { height: 36px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); }
  .v3-ledger-toolbar select { min-width: 112px; max-width: 152px; padding: 0 28px 0 10px; color: var(--ink); font-size: 12px; }
  .v3-search { width: 236px; padding: 0 12px; display: flex; align-items: center; gap: 8px; }
  .v3-search svg { width: 18px; color: var(--muted); }
  .v3-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 12px; }
  .v3-ledger-result { min-height: 48px; padding: 0 4px 12px; border-bottom: 1px solid var(--line-strong); display: flex; align-items: end; justify-content: space-between; gap: 16px; }
  .v3-ledger-result strong { font-size: 14px; }
  .v3-ledger-result span { color: var(--muted); font-size: 12px; }
  .v3-ledger-period { margin-top: 24px; }
  .v3-ledger-period > header { min-height: 40px; padding-bottom: 8px; border-bottom: 1px solid var(--line-strong); display: flex; align-items: end; justify-content: space-between; }
  .v3-ledger-period h2 { margin: 0; font-size: 18px; line-height: 26px; font-weight: 600; }
  .v3-ledger-period header span { color: var(--muted); font-size: 12px; }
  .v3-ledger-row { min-height: 72px; padding: 8px 4px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 132px minmax(240px, 1.5fr) minmax(132px, .8fr) 104px 104px 32px; gap: 16px; align-items: center; }
  .v3-ledger-row time, .v3-ledger-row small, .v3-ledger-row > span { color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-ledger-row > div { min-width: 0; }
  .v3-ledger-row > div button { max-width: 100%; padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer; }
  .v3-ledger-row > div button:hover { color: var(--blue); text-decoration: underline; }
  .v3-ledger-row > div strong, .v3-ledger-row > div small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; }
  .v3-ledger-row > div:first-of-type strong { font-size: 14px; line-height: 22px; font-weight: 500; }

  #projects-view > .mobile-project-toolbar { display: none; }
  #projects-view > .desktop-project-toolbar { min-height: 56px; margin-bottom: 12px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; }
  .desktop-project-search { min-width: 180px; flex: 1 1 208px; height: 36px; }
  .desktop-project-control { height: 36px; min-width: 0; padding: 0 8px 0 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); display: inline-flex; align-items: center; gap: 5px; }
  .desktop-project-control > span { color: var(--muted); font-size: 12px; line-height: 18px; white-space: nowrap; }
  .desktop-project-control select { width: 100%; min-width: 0; height: 34px; padding: 0 16px 0 0; border: 0; background: transparent; color: var(--ink); font-size: 12px; outline: 0; }
  .desktop-project-lifecycle-control { width: 112px; flex: 0 0 112px; }
  .desktop-project-owner-control, .desktop-project-status-control { width: 108px; flex: 0 0 108px; }
  .desktop-project-sort-control, .desktop-project-type-control { width: 100px; flex: 0 0 100px; }
  .desktop-project-view-control { width: 78px; flex: 0 0 78px; }
  .desktop-project-view-control .desktop-project-view-switch { height: 28px; padding: 2px; border: 0; border-radius: 4px; background: var(--surface-soft); display: grid; grid-template-columns: repeat(2, 28px); gap: 2px; }
  .desktop-project-view-switch button { width: 28px; height: 24px; padding: 0; border: 0; border-radius: 4px; background: transparent; color: var(--muted); display: grid; place-items: center; cursor: pointer; }
  .desktop-project-view-switch button.active { background: var(--surface); color: var(--primary); box-shadow: 0 1px 2px rgba(20, 28, 24, .12); }
  .desktop-project-view-switch svg { width: 16px; height: 16px; }
  #projects-view > .project-toolbar { min-height: 56px; margin-bottom: 12px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
  #projects-view > .project-toolbar .project-search { min-width: 200px; flex: 1 1 250px; }
  #projects-view > .project-toolbar .project-type-filter { flex: 0 0 auto; }
  #projects-view > .project-toolbar .project-filter-field { width: 108px; flex: 0 0 108px; }
  #projects-view > .project-toolbar > [data-view-target="project-maintenance"] { width: auto; min-width: 108px; height: 40px; align-self: end; white-space: nowrap; }
  .desktop-project-lifecycle-filter, .desktop-project-view-switch { height: 40px; padding: 3px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface-soft); display: flex; align-items: center; }
  .desktop-project-lifecycle-filter button, .desktop-project-view-switch button { height: 32px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 12px; white-space: nowrap; cursor: pointer; }
  .desktop-project-lifecycle-filter button.active, .desktop-project-view-switch button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22,35,29,.10); }
  .desktop-project-view-switch button { width: 34px; padding: 0; display: grid; place-items: center; }
  .desktop-project-view-switch svg { width: 17px; height: 17px; }
  .desktop-project-toolbar-break { display: block; flex-basis: 100%; height: 0; }
  #projects-view > .project-result-bar { margin-bottom: 16px; color: var(--muted); font-size: 12px; }
  .v3-project-section { margin: 0 0 32px; }
  .v3-project-section > header { min-height: 50px; padding-bottom: 12px; border-bottom: 1px solid var(--line-strong); display: flex; align-items: end; justify-content: space-between; gap: 16px; }
  .v3-project-section > header > div { min-width: 0; }
  .v3-project-section > header h2 { margin: 0; font-size: 18px; line-height: 26px; font-weight: 600; }
  .v3-project-section > header p { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-section > header > span { color: var(--muted); font-size: 12px; line-height: 18px; white-space: nowrap; }
  .v3-project-section.delivery > header h2 { color: var(--primary-dark); }
  .v3-project-section.internal > header h2 { color: var(--purple); }
  .v3-project-section.presale > header h2 { color: var(--blue); }
  .v3-project-section.other > header h2 { color: var(--amber); }
  .v3-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .v3-project-section .v3-project-grid { margin-top: 16px; }
  .v3-project-card { min-width: 0; height: 336px; padding: 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); display: grid; grid-template-rows: auto auto minmax(76px, 1fr) auto; text-align: left; cursor: pointer; }
  .v3-project-card:hover { border-color: var(--line-strong); }
  .v3-project-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
  .v3-project-card > header > div { min-width: 0; min-height: 50px; }
  .v3-project-card h2 { margin: 0; max-height: 48px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 16px; line-height: 24px; font-weight: 600; }
  .v3-project-card header p { margin: 2px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-primary { min-height: 64px; margin-top: 16px; }
  .v3-project-primary > span { color: var(--muted); display: block; font-size: 12px; line-height: 18px; }
  .v3-project-primary > strong { margin-top: 4px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 24px; font-weight: 600; }
  .v3-project-primary > div { height: 6px; margin-top: 8px; border-radius: 3px; background: var(--line); overflow: hidden; }
  .v3-project-primary > div i { height: 100%; background: var(--primary); display: block; }
  .v3-project-details { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; align-content: start; }
  .v3-project-details div { min-width: 0; }
  .v3-project-details span, .v3-project-details strong { display: block; }
  .v3-project-details span { color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-details strong { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 22px; font-weight: 500; }
  .v3-project-card > footer { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .v3-project-card > footer > span { min-width: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
  .v3-project-card > footer > strong { color: var(--blue); display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 500; white-space: nowrap; }
  .v3-project-card > footer svg { width: 16px; }
  .v3-project-list { border-top: 1px solid var(--line-strong); }
  .v3-project-section .v3-project-list { margin-top: 16px; }
  .v3-project-list-head, .v3-project-list-row { display: grid; grid-template-columns: minmax(210px, 1.25fr) minmax(144px, .8fr) minmax(180px, 1fr) minmax(140px, .8fr) 132px 32px; gap: 16px; align-items: center; }
  .v3-project-list-head { min-height: 36px; padding: 0 12px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-list-row { width: 100%; min-height: 76px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
  .v3-project-list-row:hover { background: var(--surface-soft); }
  .v3-project-list-row > span { min-width: 0; }
  .v3-project-list-row strong, .v3-project-list-row small, .v3-project-list-row time { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .v3-project-list-row strong { font-size: 14px; line-height: 22px; font-weight: 500; }
  .v3-project-list-row small, .v3-project-list-row time { margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-list-row .project-stage-chip { min-height: 22px; margin: 0 0 4px; font-size: 11px; }
  .v3-project-list-row em { color: var(--red); font-style: normal; }
  .v3-project-list-row > svg { width: 18px; color: var(--muted); }
  .v3-project-ended { margin-top: 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
  .v3-project-ended > summary { min-height: 64px; padding: 10px 16px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; }
  .v3-project-ended > summary::-webkit-details-marker { display: none; }
  .v3-project-ended > summary span { min-width: 0; }
  .v3-project-ended > summary strong, .v3-project-ended > summary small { display: block; }
  .v3-project-ended > summary strong { font-size: 16px; line-height: 24px; font-weight: 600; }
  .v3-project-ended > summary small { margin-top: 2px; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-ended > summary > span:last-child { color: var(--muted); display: flex; align-items: center; gap: 8px; font-size: 12px; white-space: nowrap; }
  .v3-project-ended > summary svg { width: 18px; transition: transform .16s ease; }
  .v3-project-ended[open] > summary { border-bottom: 1px solid var(--line); }
  .v3-project-ended[open] > summary svg { transform: rotate(180deg); }
  .v3-project-ended-body { padding: 16px; }

  .v3-project-back { min-height: 40px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
  .v3-project-back > button:first-child { height: 32px; padding: 0; border: 0; background: transparent; color: var(--blue); display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
  .v3-project-back > button:first-child:hover { text-decoration: underline; }
  .v3-project-summary { min-height: 112px; margin-bottom: 24px; padding: 16px 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: grid; grid-template-columns: minmax(280px, 1.8fr) minmax(132px, .8fr) minmax(132px, .8fr) minmax(120px, .7fr) minmax(120px, .7fr); }
  .v3-project-summary-main { min-width: 0; padding-right: 24px; display: flex; flex-direction: column; justify-content: center; }
  .v3-project-summary-main h1 { margin: 0; max-height: 64px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; font-size: 24px; line-height: 32px; font-weight: 600; }
  .v3-project-summary-main p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-summary > div:not(:first-child), .v3-project-summary > button { min-width: 0; padding: 8px 16px; border: 0; border-left: 1px solid var(--line); background: transparent; display: flex; flex-direction: column; justify-content: center; text-align: left; }
  .v3-project-summary > button { cursor: pointer; }
  .v3-project-summary > button:hover { background: var(--surface-soft); color: var(--primary); }
  .v3-project-summary span { color: var(--muted); font-size: 12px; line-height: 18px; }
  .v3-project-summary strong { margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 24px; font-weight: 600; }
  .v3-detail-tabs { margin-bottom: 24px; border-bottom: 1px solid var(--line); display: flex; gap: 24px; }
  .v3-detail-tabs button { height: 44px; padding: 0; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); font-size: 14px; cursor: pointer; }
  .v3-detail-tabs button.active { border-bottom-color: var(--primary); color: var(--primary); font-weight: 600; }
  #project-detail-view .project-detail-panel { font-size: 14px; }
  #project-detail-view .project-detail-panel p,
  #project-detail-view .project-detail-panel small,
  #project-detail-view .project-detail-panel time,
  #project-detail-view .project-detail-panel .state-chip,
  #project-detail-view .project-detail-panel .project-selection-meta { font-size: 12px; }
  #project-detail-view .project-section-heading h2,
  #project-detail-view .project-timeline-section h2 { font-size: 18px; line-height: 26px; }
  #project-detail-view .project-timeline-marker time { font-size: 12px; }
  #project-detail-view .project-timeline-task-group h3,
  #project-detail-view .project-timeline-day-record h3 { font-size: 14px; line-height: 22px; }

  .task-status-v3 { width: min(860px, calc(100vw - 64px)); max-height: calc(100vh - 48px); border-radius: 8px; }
  .task-status-v3 form { max-height: calc(100vh - 48px); padding: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
  .task-status-v3 .modal-header { min-height: 76px; margin: 0; padding: 16px 24px; border-bottom: 1px solid var(--line); }
  .task-status-v3 .modal-header h2 { max-width: 720px; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; line-height: 24px; font-weight: 600; }
  .task-status-title-meta { margin-top: 6px; min-width: 0; display: flex; align-items: center; gap: 6px; }
  .task-status-title-meta span { min-width: 0; max-width: 330px; padding: 2px 7px; border-radius: 4px; background: var(--surface-soft); color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; }
  .task-status-title-meta #task-status-source-meta { background: var(--blue-soft); color: var(--blue); }
  .task-status-v3-body { min-height: 0; padding: 0 24px; overflow-y: auto; }
  .task-v3-section { padding: 16px 0; border-bottom: 1px solid var(--line); }
  .task-v3-section:last-of-type { border-bottom: 0; }
  .task-v3-section > h3 { margin: 0 0 12px; font-size: 14px; line-height: 22px; font-weight: 600; }
  .task-v3-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
  .task-v3-fields > div { min-width: 0; }
  .task-v3-fields .full { grid-column: 1 / -1; }
  .task-v3-fields span, .task-v3-fields strong { display: block; }
  .task-v3-fields span { color: var(--muted); font-size: 12px; line-height: 18px; }
  .task-v3-fields strong { margin-top: 4px; overflow-wrap: anywhere; font-size: 14px; line-height: 22px; font-weight: 500; }
  .task-v3-status-grid { margin-top: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
  .task-v3-status-grid .full { grid-column: 1 / -1; }
  .task-status-v3 .task-status-current { min-height: 52px; }
  .task-status-v3 .task-status-current span, .task-status-v3 .task-status-current strong,
  .task-status-v3 .task-status-field { font-size: 12px; }
  .task-status-v3 .task-status-field { margin-top: 0; }
  .task-status-v3 .task-status-field select, .task-status-v3 .task-status-field input { height: 36px; min-height: 36px; padding: 0 12px; }
  .task-status-v3 .task-status-field textarea { min-height: 72px; }
  .task-status-v3 .task-process-history { margin: 0; border: 0; background: transparent; }
  .task-status-v3 .task-process-record { min-height: 64px; padding: 8px 0; display: grid; grid-template-columns: 112px minmax(0, 1fr) 140px; gap: 16px; align-items: start; }
  .task-status-v3 .task-process-record header { display: block; }
  .task-status-v3 .task-process-record strong, .task-status-v3 .task-process-record p,
  .task-status-v3 .task-process-record small, .task-status-v3 .task-process-record time { font-size: 12px; line-height: 18px; }
  .task-status-v3 .task-process-record p { grid-column: 2; margin: 2px 0 0; }
  .task-status-v3 .task-process-record small { grid-column: 3; grid-row: 1 / span 2; margin: 0; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
  .task-status-v3 .task-history-link { margin-top: 10px; padding: 0; border: 0; background: transparent; color: var(--blue); display: inline-flex; align-items: center; gap: 4px; font-size: 12px; line-height: 18px; cursor: pointer; }
  .task-status-v3 .task-history-link:hover { text-decoration: underline; }
  .task-status-v3 .task-history-link svg { width: 14px; height: 14px; }
  .task-status-v3 .modal-actions { min-height: 68px; margin: 0; padding: 16px 24px; border-top: 1px solid var(--line); background: var(--surface); }
  .task-status-v3 .task-item-actions { justify-content: flex-end; }
}

@media (min-width: 1600px) {
  .v3-task-head, .v3-task-row { grid-template-columns: 8px minmax(260px, 1.65fr) minmax(140px, .75fr) minmax(160px, .9fr) minmax(220px, 1.2fr) 84px 132px 32px; gap: 16px; }
}

@media (max-width: 980px) {
  #projects-view > .desktop-project-toolbar { display: none; }
  .task-status-v3-body { padding: 0; }
  .task-v3-section { margin-top: 14px; }
  .task-v3-section > h3 { margin: 0 0 8px; font-size: 13px; }
  .task-v3-fields, .task-v3-status-grid { display: grid; gap: 10px; }
  .task-v3-fields span { color: var(--muted); font-size: 10px; }
  .task-v3-fields strong { display: block; margin-top: 2px; overflow-wrap: anywhere; font-size: 12px; }
}

/* Personal and intelligence V2: production desktop layout */
@media (min-width: 1280px) {
  body:has(#personal-view.active) { overflow: hidden; }
  body:has(#personal-view.active) .main-content { padding-bottom: 0; }
  #personal-view.active { height: calc(100vh - 90px); min-height: 0; max-width: none; }
  .personal-v2-dashboard { height: 100%; min-height: 0; }
  .personal-v2-utility { height: 72px; min-height: 72px; margin-bottom: 10px; padding: 0 14px; grid-template-columns: 155px minmax(260px, 1fr) 210px minmax(560px, 620px); gap: 0; overflow: hidden; }
  .personal-v2-utility > div { min-width: 0; }
  .personal-v2-utility .personal-date-block { padding-right: 14px; }
  .personal-v2-utility .personal-today-summary { height: 48px; padding: 0 16px; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
  .personal-v2-utility .personal-today-summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .personal-v2-utility .personal-water-reminder { min-width: 0; height: 48px; padding: 0 14px; border-left: 0; border-right: 1px solid var(--line); justify-content: flex-start; }
  .personal-v2-utility .personal-water-reminder .icon-button { width: 28px; height: 28px; margin-left: auto; }

  .personal-v2-player { position: relative; min-width: 0; height: 54px; padding-left: 14px; display: grid; grid-template-columns: 40px minmax(105px, 145px) minmax(150px, 1fr) auto 68px; gap: 9px; align-items: center; }
  .personal-v2-player > img { width: 40px; height: 40px; border-radius: 6px; background: var(--primary-soft); object-fit: cover; }
  .personal-v2-player .personal-track { min-width: 0; }
  .personal-v2-player .personal-track strong { font-size: 11px; }
  .personal-v2-player .personal-track small { margin-top: 3px; font-size: 8px; }
  .personal-v2-player .personal-progress { min-width: 0; display: grid; grid-template-columns: minmax(90px, 1fr) 84px; gap: 8px; align-items: center; }
  .personal-v2-player .personal-progress > div { min-width: 0; height: 4px; border-radius: 2px; background: #e6e8e7; overflow: hidden; }
  .personal-v2-player .personal-progress > div span { display: block; width: 0; height: 100%; background: var(--primary); }
  .personal-v2-player .personal-progress > small { min-width: 84px; margin: 0; display: grid; grid-template-columns: 38px 38px; gap: 8px; justify-content: start; color: var(--muted); font-size: 8px; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .personal-v2-player .personal-progress > small span { width: 38px; text-align: center; }
  .personal-v2-player .personal-player-controls { display: flex; align-items: center; gap: 4px; }
  .personal-v2-player .personal-player-controls > .icon-button { width: 28px; height: 28px; }
  .personal-v2-player .personal-playback-modes { padding: 2px; gap: 1px; }
  .personal-v2-player .personal-playback-modes .icon-button { width: 24px; height: 24px; }
  .personal-v2-player .personal-play { width: 32px; height: 32px; flex: 0 0 32px; }
  .personal-v2-player .personal-volume { min-width: 0; display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 5px; align-items: center; }
  .personal-v2-player .personal-volume svg { width: 14px; }
  .personal-v2-player .personal-volume input { width: 100%; min-width: 0; }
  .personal-v2-player > .personal-state { display: none; }
  .personal-v2-player audio { display: none; }

  .personal-v2-grid { height: calc(100% - 82px); min-height: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: minmax(0, 1.03fr) minmax(0, .97fr); gap: 10px; }
  .personal-v2-grid .personal-panel { min-width: 0; min-height: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; }
  .personal-v2-grid .personal-calendar-panel { grid-column: 1 / 7; grid-row: 1; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-focus-panel { grid-column: 7 / 10; grid-row: 1; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-news-panel { grid-column: 10 / 13; grid-row: 1; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-knowledge-panel { grid-column: 1 / 7; grid-row: 2; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-word-panel { grid-column: 7 / 10; grid-row: 2; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-operations-panel { grid-column: 10 / 13; grid-row: 2; display: flex; flex-direction: column; }
  .personal-v2-grid .personal-panel-heading { min-height: 36px; margin-bottom: 8px; }
  .personal-v2-grid .personal-panel-heading h2 { font-size: 15px; }
  .personal-v2-grid .personal-panel-heading p { font-size: 9px; }
  .personal-v2-grid .personal-state { font-size: 9px; }

  .personal-v2-grid .personal-calendar-tools { min-height: 34px; margin-bottom: 4px; }
  .personal-v2-legend { display: flex; align-items: center; gap: 14px; color: var(--muted); font-size: 9px; }
  .personal-v2-legend span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
  .personal-v2-legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--primary); }
  .personal-v2-legend i.work { background: var(--blue); }
  .personal-v2-legend b { color: inherit; font-weight: 550; }
  .personal-v2-grid .personal-calendar-weekdays span { min-height: 25px; font-size: 9px; }
  .personal-v2-grid .personal-calendar-days { border-left: 1px solid #eef0f1; border-top: 1px solid #eef0f1; }
  .personal-v2-grid .personal-day { min-height: 0; padding: 6px 7px; font-size: 10px; }

  .personal-focus-panel > .personal-calendar-selection { min-height: 0; margin: 2px 0 0; padding: 10px 0 12px; border-top: 0; border-bottom: 1px solid var(--line); display: block; }
  .personal-focus-panel .personal-calendar-selection > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 10px; }
  .personal-focus-panel .personal-calendar-selection > div:first-child strong { font-size: 19px; }
  .personal-focus-panel .personal-calendar-selection > div:first-child span { margin: 0; font-size: 9px; }
  .personal-focus-panel .personal-agenda-list { max-height: 96px; margin-top: 11px; overflow: hidden; }
  .personal-focus-panel .personal-agenda-row { min-height: 26px; grid-template-columns: 42px 7px minmax(0, 1fr); font-size: 10px; }
  .personal-focus-panel .personal-mood-panel { min-height: 0; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); display: flex; flex-direction: column; }
  .personal-focus-panel .personal-mood-heading { min-height: 30px; margin-bottom: 7px; }
  .personal-focus-panel .personal-mood-heading h2 { font-size: 12px; }
  .personal-focus-panel .personal-mood-heading .secondary-button { min-height: 28px; padding-inline: 8px; }
  .personal-focus-panel .personal-mood-score button { min-height: 31px; }
  .personal-focus-panel .personal-mood-reason { margin-top: 6px; }
  .personal-focus-panel .personal-mood-reason input { height: 30px; }
  .personal-focus-panel .personal-mood-summary { min-height: 48px; margin-top: 7px; padding: 7px 9px; }
  .personal-focus-panel .personal-mood-bars { height: 34px; }
  .personal-focus-panel .personal-mood-history { margin-top: 6px; }

  .personal-v2-grid .personal-news-tabs { min-height: 31px; margin-bottom: 2px; overflow: hidden; }
  .personal-v2-grid .personal-news-tabs button { min-height: 25px; font-size: 9px; }
  .personal-v2-grid .personal-news-list { grid-template-rows: repeat(5, minmax(0, 1fr)); }
  .personal-v2-grid .personal-news-list article { min-height: 0; padding: 7px 0; align-items: center; }
  .personal-v2-grid .personal-news-list article > span { align-self: center; font-size: 9px; text-align: center; }
  .personal-v2-grid .personal-news-title-link { font-size: 11px; }
  .personal-v2-grid .personal-news-copy small, .personal-v2-grid .personal-news-source { font-size: 9px; }

  .personal-v2-grid .personal-capture-box { padding: 5px; }
  .personal-v2-grid .personal-capture-box input { height: 31px; font-size: 10px; }
  .personal-v2-grid .personal-capture-box .primary-button { min-height: 31px; }
  .personal-v2-grid .personal-pipeline { min-height: 30px; font-size: 9px; }
  .personal-v2-grid .personal-knowledge-list { min-height: 0; flex: 1; display: block; overflow-y: auto; }
  .personal-v2-grid .personal-knowledge-row { min-height: 0; padding: 7px 0; }
  .personal-v2-grid .personal-knowledge-row:nth-child(n) { display: grid; }
  .personal-v2-grid .personal-knowledge-row:nth-child(n+4) { display: grid; }
  .personal-v2-grid .personal-knowledge-row strong { font-size: 11px; }
  .personal-v2-grid .personal-knowledge-row small, .personal-v2-grid .personal-knowledge-row > span:last-child { font-size: 9px; }

  .personal-v2-grid .personal-word-modes { margin: 2px 0 10px; }
  .personal-v2-grid .personal-word-review { justify-content: center; }
  .personal-v2-grid .personal-word-main strong { font-size: 22px; }
  .personal-v2-grid .personal-word-main span { font-size: 11px; }
  .personal-v2-grid .personal-word-answer input { height: 34px; font-size: 10px; }
  .personal-v2-grid .personal-word-meaning { min-height: 52px; }

  .personal-operation-tabs { min-height: 36px; margin: 2px 0 10px; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
  .personal-operation-tabs button { border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 9px; }
  .personal-operation-tabs button.active { background: var(--surface); color: var(--coral); box-shadow: 0 1px 3px rgba(20, 40, 30, .08); font-weight: 550; }
  .personal-operation-stages { min-height: 70px; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .personal-operation-stages > span { border-right: 1px solid var(--line); color: var(--muted); display: grid; place-items: center; align-content: center; gap: 4px; text-align: center; font-size: 9px; }
  .personal-operation-stages > span:last-child { border-right: 0; }
  .personal-operation-stages b { color: var(--ink); font-size: 17px; }
  .personal-operation-empty { min-height: 0; flex: 1; display: grid; place-items: center; color: var(--muted); text-align: center; font-size: 10px; }
  .personal-operation-empty strong, .personal-operation-empty span { display: block; }
  .personal-operation-empty strong { margin-bottom: 5px; color: var(--ink); font-size: 13px; }
  .personal-operation-links { padding-top: 9px; border-top: 1px solid var(--line); display: grid; gap: 6px; }
  .personal-operation-links div { color: var(--muted); display: flex; justify-content: space-between; font-size: 9px; }
  .personal-operation-links span { color: var(--amber); }
}

@media (min-width: 1280px) and (max-height: 900px) {
  .personal-v2-utility { height: 62px; min-height: 62px; margin-bottom: 8px; }
  .personal-v2-player { height: 48px; }
  .personal-v2-grid { height: calc(100% - 70px); gap: 8px; }
  .personal-v2-grid .personal-panel { padding: 9px 11px; }
  .personal-v2-grid .personal-panel-heading { min-height: 32px; margin-bottom: 5px; }
  .personal-focus-panel .personal-agenda-list { max-height: 70px; }
  .personal-focus-panel .personal-mood-summary { display: none; }
  .personal-v2-grid .personal-pipeline { display: none; }
}

/* Automation governance v1.0: consolidated work ledger and personal knowledge. */
.work-ledger-tabs { display: flex; gap: 2px; width: fit-content; margin-bottom: 18px; padding: 3px; border: 1px solid var(--line); background: var(--surface-soft); border-radius: 6px; }
.work-ledger-tabs button { min-height: 34px; padding: 0 16px; border: 0; background: transparent; color: var(--muted); font: inherit; cursor: pointer; border-radius: 4px; }
.work-ledger-tabs button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(24, 34, 29, .12); font-weight: 650; }
.history-result-bar, .knowledge-result-bar { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 12px; color: var(--muted); font-size: 12px; }
.history-result-bar strong, .knowledge-result-bar strong { color: var(--ink); font-size: 14px; }
.work-history-list { border-top: 1px solid var(--line); }
.work-history-row { display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 12px; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.work-history-row header { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; }
.work-history-row header strong { font-size: 14px; }
.work-history-row time, .work-history-row small { color: var(--muted); font-size: 11px; }
.work-history-row p { margin: 5px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.history-state-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #7a837e; }
.history-state-dot.blue { background: #3478c7; }
.history-state-dot.warning { background: #c78523; }
.history-state-dot.success { background: #2f855a; }
.history-state-dot.purple { background: #7654a7; }
.dashboard-empty { margin: 18px 0; color: var(--muted); font-size: 12px; text-align: center; }
.priority-list.compact .priority-row { grid-template-columns: minmax(0, 1fr) auto 16px; }
.dashboard-capture-health > button { width: 100%; min-height: 104px; display: grid; grid-template-columns: auto 1fr 16px; gap: 12px; align-items: center; border: 0; background: transparent; text-align: left; cursor: pointer; }
.dashboard-capture-health strong, .dashboard-capture-health small { display: block; }
.dashboard-capture-health small { grid-column: 2; color: var(--muted); }
.action-type-chip { display: inline-flex; margin-right: 6px; padding: 2px 5px; border-radius: 3px; font-size: 10px; font-weight: 650; }
.action-type-chip.confirmation { color: #205f8e; background: #e8f2f8; }
.action-type-chip.decision { color: #8a5415; background: #f8ecda; }
.knowledge-status-actions { display: flex; gap: 8px; }
.knowledge-toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; }
.knowledge-toolbar .search-box { flex: 1; }
.personal-knowledge-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.personal-knowledge-result { display: flex; min-height: 210px; flex-direction: column; padding: 16px; border: 1px solid var(--line); background: var(--surface); border-radius: 6px; }
.personal-knowledge-result header, .personal-knowledge-result footer { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.personal-knowledge-result time { color: var(--muted); font-size: 11px; }
.personal-knowledge-result h2 { margin: 14px 0 7px; font-size: 16px; line-height: 1.35; }
.personal-knowledge-result p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.personal-knowledge-result ul { margin: 12px 0; padding-left: 18px; color: var(--muted); font-size: 12px; }
.personal-knowledge-result footer { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.personal-knowledge-result footer span { display: flex; flex-wrap: wrap; gap: 5px; }
.personal-knowledge-result footer b { padding: 2px 5px; background: var(--surface-soft); color: var(--muted); font-size: 10px; border-radius: 3px; }
.personal-knowledge-result footer a { display: inline-flex; gap: 5px; align-items: center; color: var(--primary); font-size: 11px; text-decoration: none; }
.personal-knowledge-result footer svg { width: 13px; height: 13px; }
.personal-knowledge-result-actions { display: flex; align-items: center; gap: 5px; }
.personal-knowledge-result-actions .text-button { min-height: 30px; padding: 0 7px; font-size: 11px; }
.personal-knowledge-result-actions > a { width: 30px; height: 30px; justify-content: center; border: 1px solid var(--line); border-radius: 5px; }

.knowledge-detail-breadcrumb { min-height: 38px; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 11px; }
.knowledge-detail-breadcrumb .text-button { min-height: 34px; padding: 0; }
.knowledge-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 292px; gap: 18px; align-items: start; }
.knowledge-detail-main, .knowledge-detail-side { min-width: 0; }
.knowledge-detail-hero { padding: 24px 26px 20px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.knowledge-detail-source-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-size: 11px; }
.knowledge-source-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--coral); }
.knowledge-detail-hero h1 { max-width: 820px; margin: 13px 0 9px; font-size: 28px; font-weight: 600; line-height: 1.3; letter-spacing: 0; overflow-wrap: anywhere; }
.knowledge-detail-hero > p { max-width: 860px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; white-space: pre-wrap; }
.knowledge-detail-hero-footer { margin-top: 19px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.knowledge-detail-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.knowledge-detail-tags span, .knowledge-detail-evidence-count { padding: 3px 7px; border-radius: 4px; background: var(--surface-soft); color: var(--muted); font-size: 10px; }
.knowledge-detail-recorded { display: inline-flex; align-items: center; gap: 6px; color: var(--primary); font-size: 11px; white-space: nowrap; }
.knowledge-detail-recorded svg { width: 14px; height: 14px; }
.knowledge-detail-section { margin-top: 22px; }
.knowledge-detail-section-heading { min-height: 34px; margin-bottom: 9px; display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.knowledge-detail-section-heading h2 { margin: 0; font-size: 16px; }
.knowledge-detail-section-heading p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.knowledge-detail-takeaways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.knowledge-detail-takeaways article { min-height: 128px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.knowledge-detail-takeaways article > span { color: var(--primary); font-size: 10px; font-weight: 600; }
.knowledge-detail-takeaways h3 { margin: 8px 0 0; font-size: 13px; font-weight: 600; line-height: 1.55; }
.knowledge-detail-takeaways p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.knowledge-detail-structure { border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; }
.knowledge-detail-structure > div { min-height: 54px; padding: 10px 13px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 72px minmax(0, 1fr) 74px; gap: 10px; align-items: center; }
.knowledge-detail-structure > div:first-child { border-top: 0; }
.knowledge-detail-structure time { color: var(--blue); font-size: 10px; font-variant-numeric: tabular-nums; }
.knowledge-detail-structure strong { font-size: 12px; font-weight: 550; line-height: 1.5; }
.knowledge-detail-structure > div > span { color: var(--muted); font-size: 10px; text-align: right; }
.knowledge-detail-evidence-list { display: grid; gap: 7px; }
.knowledge-detail-evidence-list details { border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.knowledge-detail-evidence-list details[open] { border-color: var(--line-strong); }
.knowledge-detail-evidence-list summary { min-height: 52px; padding: 10px 13px; list-style: none; display: grid; grid-template-columns: 32px minmax(0, 1fr) 16px; gap: 10px; align-items: center; cursor: pointer; }
.knowledge-detail-evidence-list summary::-webkit-details-marker { display: none; }
.knowledge-detail-evidence-list summary::after { content: "+"; color: var(--muted); font-size: 17px; text-align: center; }
.knowledge-detail-evidence-list details[open] summary::after { content: "−"; }
.knowledge-detail-evidence-list summary > span { width: 32px; height: 28px; border-radius: 5px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-size: 10px; font-weight: 600; }
.knowledge-detail-evidence-list summary strong { font-size: 12px; font-weight: 550; line-height: 1.5; }
.knowledge-detail-evidence-list details > div { padding: 11px 15px 13px 55px; border-top: 1px solid var(--line); }
.knowledge-detail-evidence-list details > div b { color: var(--blue); font-size: 10px; font-weight: 600; }
.knowledge-detail-evidence-list details > div p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; white-space: pre-wrap; }
.knowledge-detail-side { display: grid; gap: 10px; }
.knowledge-detail-side-section { padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.knowledge-detail-side-section h2 { margin: 0 0 11px; font-size: 13px; }
.knowledge-detail-side-section > p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.knowledge-detail-policy { padding: 9px 10px; border-left: 3px solid var(--blue); background: var(--blue-soft); font-size: 10px; line-height: 1.6; }
.knowledge-detail-meta { margin: 12px 0 0; display: grid; gap: 8px; }
.knowledge-detail-meta div { display: grid; gap: 2px; }
.knowledge-detail-meta dt { color: var(--muted); font-size: 9px; }
.knowledge-detail-meta dd { margin: 0; font-size: 11px; overflow-wrap: anywhere; }
.knowledge-detail-source-links { margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--line); display: grid; gap: 7px; }
.knowledge-detail-source-links a { min-height: 28px; color: var(--blue); display: flex; align-items: center; gap: 7px; font-size: 11px; text-decoration: none; }
.knowledge-detail-source-links a[hidden] { display: none; }
.knowledge-detail-source-links svg { width: 14px; height: 14px; }
.knowledge-detail-model-notes { display: grid; gap: 8px; }
.knowledge-detail-model-notes p { margin: 0; padding: 9px 10px; border-left: 3px solid var(--amber); background: var(--amber-soft); font-size: 10px; line-height: 1.6; }

@media (max-width: 980px) {
  .knowledge-detail-layout { grid-template-columns: 1fr; }
  .knowledge-detail-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .knowledge-detail-side-section:last-child { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .work-ledger-tabs { width: 100%; }
  .work-ledger-tabs button { flex: 1; min-width: 0; padding: 0 8px; }
  .history-result-bar, .knowledge-result-bar { align-items: flex-start; flex-direction: column; gap: 4px; }
  .work-history-row header { align-items: flex-start; flex-direction: column; gap: 3px; }
  .knowledge-status-actions { grid-column: 1 / -1; width: 100%; }
  .knowledge-status-actions button { flex: 1; }
  .knowledge-toolbar { align-items: stretch; flex-wrap: wrap; }
  .knowledge-toolbar .search-box { flex-basis: 100%; }
  .knowledge-toolbar > button { flex: 1; }
  .personal-knowledge-results { grid-template-columns: 1fr; }
  .personal-knowledge-result { min-height: 190px; }
  .knowledge-detail-breadcrumb { align-items: flex-start; flex-direction: column-reverse; gap: 3px; }
  .knowledge-detail-hero { padding: 17px 15px 15px; }
  .knowledge-detail-hero h1 { font-size: 22px; }
  .knowledge-detail-hero > p { font-size: 12px; }
  .knowledge-detail-hero-footer { align-items: flex-start; flex-direction: column; }
  .knowledge-detail-takeaways { grid-template-columns: 1fr; }
  .knowledge-detail-takeaways article { min-height: 0; }
  .knowledge-detail-structure > div { grid-template-columns: 58px minmax(0, 1fr); padding: 10px; }
  .knowledge-detail-structure > div > span { grid-column: 2; text-align: left; }
  .knowledge-detail-section-heading { align-items: flex-start; flex-direction: column; gap: 6px; }
  .knowledge-detail-evidence-list details > div { padding-left: 13px; }
  .knowledge-detail-side { grid-template-columns: 1fr; }
  .knowledge-detail-side-section:last-child { grid-column: auto; }
}

/* Personal center: desktop single-screen dashboard */
.personal-dashboard { height: 100%; min-height: 0; }
.personal-today-strip { min-height: 50px; margin-bottom: 8px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 13px; align-items: center; }
.personal-date-block { min-width: 78px; padding-right: 13px; border-right: 1px solid var(--line); }
.personal-date-block strong, .personal-date-block span, .personal-today-summary strong, .personal-today-summary small { display: block; }
.personal-date-block strong { font-size: 18px; font-weight: 500; }
.personal-date-block span { margin-top: 2px; color: var(--muted); font-size: 8px; }
.personal-today-summary strong { font-size: 11px; font-weight: 550; }
.personal-today-summary small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.personal-holiday-inline { color: var(--amber); display: inline-flex; align-items: center; gap: 4px; }
.personal-holiday-inline svg { width: 12px; height: 12px; }
.personal-water-reminder { min-width: 260px; padding-left: 12px; border-left: 1px solid var(--line); display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.personal-water-reminder > div span, .personal-water-reminder > div strong { display: block; }
.personal-water-reminder > div span { color: var(--muted); font-size: 8px; }
.personal-water-reminder > div strong { margin-top: 1px; font-size: 14px; font-weight: 550; font-variant-numeric: tabular-nums; }
.personal-water-reminder .secondary-button { min-height: 29px; padding-inline: 8px; }
.personal-switch { width: 37px; height: 21px; padding: 2px; border: 0; border-radius: 11px; background: var(--primary); display: flex; justify-content: flex-end; align-items: center; }
.personal-switch::after { content: ""; width: 17px; height: 17px; border-radius: 50%; background: #fff; }
.personal-switch.off { justify-content: flex-start; background: #b9bdbb; }

.personal-dashboard-grid { height: calc(100% - 58px); min-height: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: minmax(0, .95fr) minmax(0, 1.05fr) minmax(226px, 1.2fr); gap: 10px; }
.personal-panel { min-width: 0; min-height: 0; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; }
.personal-calendar-panel { grid-column: 1 / 9; grid-row: 1 / span 2; display: flex; flex-direction: column; }
.personal-music-panel { grid-column: 9 / 13; grid-row: 1; display: flex; flex-direction: column; }
.personal-mood-panel { grid-column: 9 / 13; grid-row: 2; display: flex; flex-direction: column; }
.personal-knowledge-panel { grid-column: 1 / 9; grid-row: 3; display: flex; flex-direction: column; }
.personal-word-panel { display: none; }
.personal-news-panel { grid-column: 9 / 13; grid-row: 3; display: flex; flex-direction: column; }
.personal-panel-heading { min-height: 32px; margin-bottom: 6px; display: flex; align-items: center; gap: 9px; }
.personal-panel-heading > div { min-width: 0; }
.personal-panel-heading h2 { margin: 0; font-size: 12px; font-weight: 550; }
.personal-panel-heading p { margin: 3px 0 0; color: var(--muted); font-size: 8px; }
.personal-panel-heading > button, .personal-panel-heading > .personal-state { margin-left: auto; }
.personal-panel-icon { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; flex: 0 0 auto; }
.personal-panel-icon svg { width: 16px; height: 16px; }
.personal-panel-icon.green { background: var(--primary-soft); color: var(--primary); }
.personal-panel-icon.blue { background: var(--blue-soft); color: var(--blue); }
.personal-panel-icon.amber { background: var(--amber-soft); color: var(--amber); }
.personal-panel-icon.purple { background: var(--purple-soft); color: var(--purple); }
.personal-panel-icon.coral { background: var(--coral-soft); color: var(--coral); }
.personal-state { min-height: 24px; padding: 0 8px; border-radius: 12px; background: var(--surface-soft); color: var(--muted); display: inline-flex; align-items: center; gap: 4px; font-size: 8px; white-space: nowrap; }
.personal-state.live { background: var(--primary-soft); color: var(--primary); }
.personal-state.live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

.personal-calendar-tools { min-height: 29px; margin-bottom: 4px; display: flex; align-items: center; gap: 7px; }
.personal-calendar-modes, .personal-word-modes { padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: grid; grid-template-columns: 1fr 1fr; gap: 3px; }
.personal-calendar-modes button, .personal-word-modes button { min-height: 26px; padding: 0 10px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 9px; }
.personal-calendar-modes button.active, .personal-word-modes button.active { background: var(--surface); color: var(--primary); box-shadow: 0 1px 3px rgba(20, 40, 30, .08); font-weight: 550; }
.personal-month-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.personal-month-nav strong { min-width: 76px; text-align: center; font-size: 10px; font-weight: 550; }
.personal-month-nav .icon-button { width: 27px; height: 27px; }
.personal-calendar-weekdays, .personal-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.personal-calendar-weekdays { border-bottom: 1px solid var(--line); }
.personal-calendar-weekdays span { min-height: 20px; color: var(--muted); display: grid; place-items: center; font-size: 8px; }
.personal-calendar-days { min-height: 0; flex: 1; grid-template-rows: repeat(6, minmax(0, 1fr)); }
.personal-day { position: relative; min-height: 27px; padding: 4px 5px; border: 0; border-right: 1px solid #eef0f1; border-bottom: 1px solid #eef0f1; background: transparent; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; font-size: 9px; font-variant-numeric: tabular-nums; }
.personal-day:nth-child(7n) { border-right: 0; }
.personal-day.muted { color: #a7aaac; }
.personal-day.selected { background: var(--primary-soft); color: #145c41; font-weight: 650; box-shadow: inset 0 0 0 1px #b8d8c7; }
.personal-holiday-mark { position: absolute; right: 5px; top: 5px; min-width: 16px; height: 16px; border-radius: 8px; background: var(--amber-soft); color: var(--amber); display: grid; place-items: center; font-size: 7px; }
.personal-holiday-mark.workday { background: var(--red-soft); color: var(--red); }
.personal-day-dots { display: flex; gap: 3px; }
.personal-day-dots i { width: 4px; height: 4px; border-radius: 50%; background: var(--primary); }
.personal-day-dots i.work { background: var(--blue); }
.personal-calendar-selection { min-height: 54px; margin-top: 4px; padding-top: 5px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 108px minmax(0, 1fr); gap: 12px; align-items: start; }
.personal-calendar-selection > div:first-child strong, .personal-calendar-selection > div:first-child span { display: block; }
.personal-calendar-selection > div:first-child strong { font-size: 10px; font-weight: 550; }
.personal-calendar-selection > div:first-child span { margin-top: 4px; color: var(--amber); font-size: 8px; }
.personal-agenda-list { min-width: 0; display: grid; gap: 7px; }
.personal-agenda-row { min-width: 0; display: grid; grid-template-columns: 42px 7px minmax(0, 1fr); gap: 7px; align-items: center; font-size: 9px; }
.personal-agenda-row time { color: var(--muted); font-variant-numeric: tabular-nums; }
.personal-agenda-row i { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.personal-agenda-row.work i { background: var(--blue); }
.personal-agenda-row.reminder i { background: var(--amber); }
.personal-agenda-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-reminder-label { margin-right: 5px; padding: 1px 4px; border-radius: 3px; background: var(--amber-soft); color: var(--amber); font-size: 7px; font-weight: 550; }
.personal-agenda-empty { color: var(--muted); font-size: 9px; }

.personal-player { min-height: 0; flex: 1; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; grid-template-rows: auto auto auto; gap: 5px 10px; align-items: center; }
.personal-player > img { width: 52px; height: 52px; grid-row: 1 / span 2; border-radius: 6px; background: var(--primary-soft); object-fit: cover; }
.personal-track { min-width: 0; }
.personal-track strong, .personal-track small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-track strong { font-size: 11px; font-weight: 550; }
.personal-track small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.personal-player-controls { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.personal-player-controls .icon-button { width: 30px; height: 30px; }
.personal-playback-modes { padding: 2px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: flex; align-items: center; gap: 2px; }
.personal-player-controls .personal-playback-modes .icon-button { width: 26px; height: 26px; border: 0; background: transparent; }
.personal-player-controls .personal-playback-modes .icon-button.active { background: var(--primary-soft); color: var(--primary); box-shadow: inset 0 0 0 1px #b8d8c7; }
.personal-playback-modes svg { width: 14px; height: 14px; }
.personal-play { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: var(--primary); color: #fff; display: grid; place-items: center; }
.personal-play svg { width: 17px; }
.personal-progress { grid-column: 2 / 4; }
.personal-progress > div { height: 4px; border-radius: 2px; background: #e6e8e7; overflow: hidden; }
.personal-progress > div span { display: block; width: 0; height: 100%; background: var(--primary); }
.personal-progress > small { margin-top: 6px; color: var(--muted); display: flex; justify-content: space-between; font-size: 7px; font-variant-numeric: tabular-nums; }
.personal-volume { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; }
.personal-volume svg { width: 15px; }
.personal-volume input { width: 100%; accent-color: var(--primary); }

.personal-mood-score { display: grid; grid-template-columns: repeat(5, 1fr); gap: 5px; }
.personal-mood-score button { min-height: 34px; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: grid; place-items: center; gap: 1px; }
.personal-mood-score b { font-size: 13px; font-weight: 500; }
.personal-mood-score small { color: var(--muted); font-size: 7px; }
.personal-mood-score button.active { border-color: #b8d8c7; background: var(--primary-soft); color: var(--primary); }
.personal-mood-reason { margin-top: 7px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.personal-mood-reason input, .personal-capture-box input, .personal-word-answer input { min-width: 0; height: 32px; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); font-size: 9px; }
.personal-mood-summary { min-height: 54px; margin-top: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; flex: 1; }
.personal-mood-summary strong, .personal-mood-summary span { display: block; }
.personal-mood-summary strong { font-size: 18px; font-weight: 550; }
.personal-mood-summary span { margin-top: 2px; color: var(--muted); font-size: 8px; }
.personal-mood-bars { height: 44px; display: flex; align-items: end; gap: 7px; }
.personal-mood-bars i { width: 7px; min-height: 5px; border-radius: 2px 2px 0 0; background: #c9dfd2; }
.personal-mood-bars i:last-child { background: var(--primary); }
.personal-mood-history { margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--line); color: var(--muted); display: flex; gap: 10px; overflow: hidden; font-size: 8px; white-space: nowrap; }

.personal-capture-box { padding: 7px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.personal-capture-box input { background: var(--surface); }
.personal-pipeline { min-height: 29px; padding: 5px 2px; color: var(--muted); display: flex; align-items: center; gap: 5px; overflow-x: hidden; font-size: 8px; white-space: nowrap; }
.personal-pipeline b { color: var(--primary); font-weight: 550; }
.personal-pipeline svg { width: 12px; flex: 0 0 auto; }
.personal-knowledge-list { min-height: 0; flex: 1; border-top: 1px solid var(--line); display: grid; grid-template-rows: repeat(2, minmax(0, 1fr)); }
.personal-knowledge-row { width: 100%; min-height: 43px; padding: 5px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; gap: 8px; align-items: center; text-align: left; cursor: pointer; }
.personal-knowledge-row:hover { background: var(--surface-soft); }
.personal-knowledge-row:nth-child(n+3) { display: none; }
.personal-source-logo { width: 25px; height: 25px; border-radius: 5px; display: grid; place-items: center; font-size: 8px; font-weight: 650; }
.personal-source-logo.douyin { background: #f0eeee; color: #202124; }
.personal-source-logo.wechat { background: var(--primary-soft); color: var(--primary); }
.personal-source-logo.link { background: var(--blue-soft); color: var(--blue); }
.personal-knowledge-row strong, .personal-knowledge-row small { display: block; }
.personal-knowledge-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-weight: 550; }
.personal-knowledge-row small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.personal-knowledge-row small.success-text { color: var(--primary); }
.personal-knowledge-row > span:last-child { color: var(--muted); font-size: 8px; }

.personal-news-tabs { margin-bottom: 5px; display: flex; gap: 4px; overflow-x: auto; }
.personal-news-tabs button { min-height: 25px; padding: 0 7px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--muted); font-size: 8px; white-space: nowrap; }
.personal-news-tabs button.active { border-color: #b8d8c7; background: var(--primary-soft); color: var(--primary); }
.personal-news-list { min-height: 0; flex: 1; border-top: 1px solid var(--line); display: grid; grid-template-rows: repeat(3, minmax(0, 1fr)); }
.personal-news-list article { min-height: 38px; padding: 5px 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 7px; align-items: start; }
.personal-news-list article > span { color: var(--primary); font-size: 8px; font-variant-numeric: tabular-nums; }
.personal-news-copy { min-width: 0; }
.personal-news-copy small { margin-top: 2px; color: var(--muted); display: block; font-size: 7px; }
.personal-news-title-track { min-width: 0; overflow: hidden; white-space: nowrap; container-type: inline-size; }
.personal-news-title-link { min-width: max-content; color: var(--ink); display: inline-block; font-size: 8px; line-height: 1.35; font-weight: 550; text-decoration: none; }
.personal-news-title-link:hover { color: var(--primary); }
.personal-news-title-text { cursor: default; }
.personal-news-title-track.is-overflowing:hover .personal-news-title-link { animation: personal-news-title-pan 5s ease-in-out infinite alternate; }
@keyframes personal-news-title-pan { to { transform: translateX(calc(-100% + 100cqw)); } }
.personal-news-source { margin-top: 5px; color: var(--muted); display: flex; justify-content: space-between; gap: 8px; font-size: 8px; }
.personal-news-source a { color: var(--primary); text-decoration: none; }

.personal-word-modes { margin-bottom: 8px; }
.personal-word-review { min-height: 0; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.personal-word-main strong, .personal-word-main span, .personal-word-meaning strong, .personal-word-meaning span { display: block; }
.personal-word-main strong { font-size: 18px; font-weight: 600; }
.personal-word-main span { margin-top: 4px; color: var(--muted); font-size: 10px; }
.personal-word-answer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.personal-word-meaning { min-height: 44px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); }
.personal-word-meaning strong { font-size: 12px; font-weight: 550; }
.personal-word-meaning span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.personal-word-actions { margin-top: auto; display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.personal-word-actions .primary-button, .personal-word-actions .secondary-button { min-height: 30px; padding-inline: 8px; }
.personal-dialog { width: min(500px, calc(100% - 28px)); }
.personal-dialog-content { padding: 20px; }
.personal-reminder-list { border-top: 1px solid var(--line); }
.personal-reminder-list article { padding: 12px 2px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; }
.personal-reminder-list time { color: var(--amber); font-size: 12px; font-variant-numeric: tabular-nums; }
.personal-reminder-list strong { font-size: 13px; font-weight: 550; }
.personal-reminder-list p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
@media (min-width: 761px) {
  body:has(#personal-view.active) { overflow: hidden; }
  body:has(#personal-view.active) .main-content { padding-bottom: 0; }
  #personal-view.active { height: calc(100vh - 90px); min-height: 0; }
}

@media (min-width: 1600px) and (min-height: 900px) {
  .personal-dashboard-grid { grid-template-rows: minmax(0, .95fr) minmax(0, 1.05fr) minmax(226px, 320px); }
  .personal-calendar-panel { grid-column: 1 / 9; }
  .personal-music-panel, .personal-mood-panel { grid-column: 9 / 13; }
  .personal-knowledge-panel { grid-column: 1 / 5; }
  .personal-word-panel { grid-column: 5 / 9; grid-row: 3; padding: 12px 14px; display: flex; flex-direction: column; }
  .personal-news-panel { grid-column: 9 / 13; }
  .personal-panel-heading h2 { font-size: 14px; }
  .personal-panel-heading p, .personal-state { font-size: 9px; }
  .personal-knowledge-list { grid-template-rows: repeat(3, minmax(0, 1fr)); }
  .personal-knowledge-row:nth-child(n) { display: grid; }
  .personal-knowledge-row strong, .personal-news-title-link { font-size: 12px; line-height: 1.45; }
  .personal-knowledge-row small, .personal-knowledge-row > span:last-child, .personal-news-copy small, .personal-news-source { font-size: 10px; }
  .personal-news-list { grid-template-rows: repeat(5, minmax(0, 1fr)); }
  .personal-news-list article { padding-block: 7px; }
  .personal-news-list article > span { font-size: 10px; }
  .personal-pipeline { font-size: 10px; }
  .personal-capture-box input { font-size: 11px; }
}

@media (min-width: 1600px) and (min-height: 1100px) {
  .personal-dashboard-grid { grid-template-rows: minmax(220px, 1fr) minmax(250px, 1.1fr) minmax(300px, 320px); }
}

@media (max-width: 1080px) and (min-width: 761px) {
  .personal-calendar-panel { grid-column: 1 / 8; }
  .personal-music-panel, .personal-mood-panel { grid-column: 8 / 13; }
  .personal-knowledge-panel { grid-column: 1 / 8; }
  .personal-news-panel { grid-column: 8 / 13; }
}

@media (max-width: 760px) {
  .personal-dashboard { height: auto; }
  .personal-today-strip { grid-template-columns: auto minmax(0, 1fr); }
  .personal-water-reminder { grid-column: 1 / -1; min-width: 0; padding: 7px 0 0; border-left: 0; border-top: 1px solid var(--line); justify-content: flex-start; }
  .personal-dashboard-grid { height: auto; display: grid; grid-template-columns: 1fr; grid-template-rows: none; }
  .personal-calendar-panel, .personal-music-panel, .personal-mood-panel, .personal-knowledge-panel, .personal-word-panel, .personal-news-panel { grid-column: auto; grid-row: auto; min-height: 230px; }
  .personal-word-panel { display: flex; flex-direction: column; }
  .personal-calendar-panel { min-height: 520px; }
  .personal-capture-box { grid-template-columns: 1fr; }
  .personal-pipeline { overflow-x: auto; }
  .personal-news-list { grid-template-rows: repeat(5, minmax(52px, auto)); }
  .personal-knowledge-row:nth-child(n) { display: grid; }
}

* { box-sizing: border-box; }
html { font-family: Inter, "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; background: var(--bg); color: var(--ink); letter-spacing: 0; }
body { margin: 0; min-width: 320px; }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(45, 103, 177, .22); outline-offset: 2px; }
button, label, input[type="checkbox"], input[type="radio"] { cursor: pointer; }
.completed-title { color: var(--muted) !important; text-decoration-line: line-through; text-decoration-color: currentColor; text-decoration-thickness: 1.5px; text-decoration-skip-ink: auto; }
.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; }
[hidden] { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 246px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; min-height: 640px; background: #1a2f23; color: #edf4f0; padding: 18px 14px 14px; display: flex; flex-direction: column; }
.brand { display: flex; align-items: center; gap: 11px; padding: 4px 8px 18px; }
.brand-mark, .mobile-brand { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; background: #2d5a43; color: #fff; flex: 0 0 auto; }
.brand-mark svg, .mobile-brand svg { width: 19px; height: 19px; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; font-weight: 550; }
.brand small { margin-top: 3px; color: #9eb0a7; font-size: 10px; }
.mobile-brand { display: none; }

.mode-switch { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3px; margin: 0 4px 16px; padding: 3px; border: 1px solid #35413c; border-radius: 7px; background: #111a16; }
.mode-switch button { position: relative; min-width: 0; min-height: 34px; padding: 0 2px; border: 0; border-radius: 5px; background: transparent; color: #99aaa2; display: flex; align-items: center; justify-content: center; gap: 3px; font-size: 10px; }
.mode-switch button.active { background: #2b3a33; color: #fff; }
.mode-switch svg { width: 15px; height: 15px; }
.mode-switch button span { min-width: 0; white-space: nowrap; }
.mode-count { flex: 0 0 auto; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: #c77d16; color: #fff; display: none; place-items: center; font-size: 8px; line-height: 1; font-variant-numeric: tabular-nums; }
.mode-count.show { display: grid; }
.capture-space-marker { padding: 2px 10px; color: #99aaa2; }
.capture-space-marker strong { color: #edf4f0; font-size: 12px; font-weight: 600; }
.capture-space-marker p { margin: 8px 0 0; font-size: 9px; line-height: 1.55; }
.capture-space-counts { margin-top: 14px; display: flex; gap: 8px; }
.capture-space-counts span { min-height: 27px; padding: 5px 8px; border: 1px solid #35413c; border-radius: 5px; display: inline-flex; align-items: center; gap: 5px; font-size: 8px; }
.capture-space-counts b { min-width: 13px; color: #edf4f0; font-size: 10px; text-align: center; }
.capture-space-counts b.danger { color: #f3aaa3; }
.capture-space-counts b.warning { color: #f0c57b; }

.side-nav { display: grid; gap: 3px; }
.nav-label { padding: 0 10px 6px; color: #778a80; font-size: 10px; }
.nav-item { width: 100%; min-height: 40px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: #bdcbc4; display: grid; grid-template-columns: 19px 1fr auto; gap: 9px; align-items: center; text-align: left; font-size: 12px; }
.nav-item:hover { background: #25312c; color: #fff; }
.nav-item.active { background: #e8f1ec; color: #145c41; font-weight: 550; }
.nav-item svg { width: 17px; height: 17px; }
.nav-count { min-width: 21px; padding: 2px 6px; border-radius: 10px; background: #33423b; color: #c9d6d0; font-size: 10px; text-align: center; }
.nav-item.active .nav-count { background: #cce3d6; color: #145c41; }
.nav-count.warning { background: #65491f; color: #ffe0a2; }
.sidebar-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid #34403b; }
.system-health, .profile-button { width: 100%; border: 0; border-radius: 6px; background: transparent; color: #eef4f1; display: grid; align-items: center; text-align: left; }
.system-health { grid-template-columns: 9px 1fr 15px; gap: 8px; padding: 8px; margin-bottom: 4px; }
.system-health:hover, .profile-button:hover { background: #25312c; }
.system-health strong, .system-health small, .profile-button strong, .profile-button small { display: block; }
.system-health strong { font-size: 10px; font-weight: 500; }
.system-health small { margin-top: 2px; color: #8fa098; font-size: 9px; }
.system-health > svg, .profile-button > svg { width: 15px; color: #809289; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; background: #50b47e; box-shadow: 0 0 0 3px rgba(80, 180, 126, .12); }
.profile-button { grid-template-columns: 34px 1fr 15px; gap: 9px; padding: 8px; }
.profile-button strong { font-size: 12px; font-weight: 500; }
.profile-button small { margin-top: 2px; color: #8fa098; font-size: 10px; }
.avatar { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #d7eadf; color: #17583e; font-size: 12px; font-weight: 550; }

.main-content { min-width: 0; padding: 0 30px 48px; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 72px; margin-bottom: 18px; border-bottom: 1px solid var(--line); background: rgba(243, 244, 246, .96); backdrop-filter: blur(10px); display: flex; align-items: center; gap: 14px; }
.page-heading { min-width: 0; }
.page-heading h1 { margin: 0; font-size: 21px; line-height: 1.2; font-weight: 550; }
.page-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.icon-button { width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); display: grid; place-items: center; position: relative; }
.icon-button:hover { background: var(--surface-soft); border-color: var(--line-strong); }
.icon-button svg { width: 18px; height: 18px; }
.notification-dot { position: absolute; right: 8px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--red); border: 1px solid white; }
.primary-button, .secondary-button, .danger-button { min-height: 38px; border-radius: 6px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 11px; white-space: nowrap; }
.primary-button { border: 1px solid var(--primary); background: var(--primary); color: #fff; }
.primary-button:hover { background: var(--primary-dark); }
.secondary-button { border: 1px solid var(--line-strong); background: var(--surface); color: var(--ink); }
.secondary-button:hover { background: var(--surface-soft); }
.danger-button { border: 1px solid #c94545; background: #c94545; color: #fff; }
.danger-button:hover { background: #ad3434; }
.primary-button svg, .secondary-button svg, .danger-button svg { width: 15px; height: 15px; }
.full-width { width: 100%; }
.ai-entry { min-width: 180px; height: 38px; padding: 0 9px 0 12px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: #3e4944; display: grid; grid-template-columns: 17px 1fr auto; gap: 7px; align-items: center; text-align: left; font-size: 11px; }
.ai-entry:hover { border-color: #a8b6af; box-shadow: 0 3px 12px rgba(26, 40, 33, .06); }
.ai-entry svg { width: 16px; color: var(--primary); }
.ai-entry kbd { border: 1px solid var(--line); border-radius: 4px; padding: 2px 5px; color: var(--muted); background: var(--surface-soft); font: 9px/1.2 inherit; }

.view { display: none; max-width: 1440px; margin: 0 auto; }
#personal-view { max-width: none; }
.view.active { display: block; }
body[data-mode="work"] .view.active,
body[data-mode="capture"] .view.active {
  width: 100%;
  max-width: none;
  min-height: calc(100vh - 138px);
  min-height: calc(100dvh - 138px);
}
.source-rail { min-height: 60px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; }
.source-rail button { min-width: 0; border: 0; border-left: 1px solid var(--line); background: transparent; padding: 10px 14px; display: grid; grid-template-columns: 34px 1fr 15px; gap: 10px; align-items: center; text-align: left; }
.source-rail button:first-child { border-left: 0; }
.source-rail button:hover { background: var(--surface-soft); }
.source-rail button > svg { width: 15px; color: var(--muted); }
.source-rail strong, .source-rail small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.source-rail strong { font-size: 11px; font-weight: 550; }
.source-rail small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.source-icon, .widget-icon { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; flex: 0 0 auto; }
.source-icon svg, .widget-icon svg { width: 16px; height: 16px; }
.source-icon.green, .widget-icon.green { background: var(--primary-soft); color: var(--primary); }
.source-icon.blue, .widget-icon.blue { background: var(--blue-soft); color: var(--blue); }
.source-icon.amber, .widget-icon.amber { background: var(--amber-soft); color: var(--amber); }
.widget-icon.coral { background: var(--coral-soft); color: var(--coral); }
.widget-icon.red { background: var(--red-soft); color: var(--red); }
.widget-icon.purple { background: var(--purple-soft); color: var(--purple); }

.metric-strip { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: repeat(5, 1fr); overflow: hidden; }
.metric-strip button { min-width: 0; min-height: 74px; border: 0; border-left: 1px solid var(--line); padding: 12px 14px; background: transparent; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; text-align: left; align-items: end; }
.metric-strip button:first-child { border-left: 0; }
.metric-strip button:hover { background: rgba(255, 255, 255, .55); }
.metric-strip span { grid-column: 1 / -1; align-self: start; color: var(--muted); font-size: 10px; }
.metric-strip strong { font-size: 25px; line-height: 1; font-weight: 500; }
.metric-strip small { color: var(--muted); font-size: 9px; text-align: right; }
.metric-strip .danger strong, .danger-text { color: var(--red); }
.metric-strip .warning strong, .warning-text { color: var(--amber); }

.work-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, .8fr); gap: 14px; align-items: stretch; }
.lower-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 28px; }
.section-block { min-width: 0; border: 1px solid var(--line); border-radius: 7px; padding: 14px; background: var(--surface); }
.wide-block { margin-top: 28px; }
.section-heading { min-height: 34px; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.section-heading h2 { margin: 0; font-size: 14px; line-height: 1.35; font-weight: 550; }
.section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.text-button { min-height: 30px; padding: 0; border: 0; background: transparent; color: var(--primary); display: flex; align-items: center; gap: 5px; font-size: 10px; white-space: nowrap; }
.text-button svg { width: 14px; height: 14px; }
.priority-list { border-bottom: 1px solid var(--line); }
.priority-row { width: 100%; min-height: 61px; border: 0; border-top: 1px solid var(--line); padding: 9px 2px; background: transparent; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto 17px; gap: 9px; align-items: center; text-align: left; }
.priority-row:hover { background: rgba(255, 255, 255, .55); }
.priority-index { color: #99a39e; font-size: 10px; font-variant-numeric: tabular-nums; }
.priority-row strong, .priority-row small { display: block; }
.priority-row strong { font-size: 11px; font-weight: 550; }
.priority-row small { margin-top: 4px; color: var(--muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.priority-row > svg { width: 15px; color: var(--muted); }
.week-flow-block { padding: 14px; border: 1px solid var(--line); background: var(--surface); }
.week-flow-list { margin: 0 0 12px; padding: 0; list-style: none; }
.week-flow-list li { min-height: 52px; display: grid; grid-template-columns: 28px 1fr; gap: 10px; border-top: 1px solid var(--line); padding: 9px 0; align-items: start; }
.week-flow-list li:first-child { border-top: 0; }
.week-flow-list li > span { width: 25px; height: 25px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; font-size: 8px; font-variant-numeric: tabular-nums; }
.week-flow-list strong, .week-flow-list small { display: block; }
.week-flow-list strong { font-size: 11px; font-weight: 550; }
.week-flow-list small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }

.table-wrap, .table-surface { overflow-x: auto; border-bottom: 1px solid var(--line); }
.data-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.data-table th { padding: 8px; border-bottom: 1px solid var(--line-strong); color: var(--muted); font-size: 9px; font-weight: 500; text-align: left; }
.data-table td { padding: 11px 8px; border-bottom: 1px solid var(--line); font-size: 10px; vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: rgba(255, 255, 255, .62); }
.data-table td strong { font-weight: 550; }
.project-table th:first-child { width: 31%; }
.project-table th:nth-child(2) { width: 14%; }
.project-table th:nth-child(3) { width: 25%; }
.project-name-primary { display: block; font-size: 11px; font-weight: 700; line-height: 1.35; }
.project-code-secondary { display: block; margin-top: 4px; color: var(--muted); font-size: 8px; font-weight: 450; letter-spacing: 0; line-height: 1.35; }
.progress-cell { display: grid; grid-template-columns: minmax(50px, 1fr) 32px; gap: 8px; align-items: center; }
.progress-track, .load-track { height: 6px; border-radius: 3px; overflow: hidden; background: #e4e9e6; }
.progress-track span, .load-track span { display: block; height: 100%; border-radius: inherit; background: var(--primary); }
.progress-track span.warning, .load-track span.warning { background: var(--amber); }
.progress-track span.danger, .load-track span.danger { background: var(--red); }
.progress-track span.success { background: var(--primary); }
.progress-track span.neutral { background: #aeb5b1; }
.progress-cell b { color: var(--muted); font-size: 9px; font-weight: 500; }
.state-chip { display: inline-flex; min-height: 23px; padding: 0 8px; border-radius: 12px; align-items: center; justify-content: center; background: #edf0ee; color: #59645f; font-size: 9px; white-space: nowrap; }
.state-chip.blue { background: var(--blue-soft); color: var(--blue); }
.state-chip.warning { background: var(--amber-soft); color: var(--amber); }
.state-chip.danger { background: var(--red-soft); color: var(--red); }
.state-chip.success { background: var(--primary-soft); color: var(--primary); }
.state-chip.purple { background: var(--purple-soft); color: var(--purple); }
.state-chip.canceled { background: #e1e3e4; color: #3f4548; }
.task-state-badges { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.risk-badge { min-height: 23px; padding: 0 7px; border-radius: 4px; background: var(--red-soft); color: var(--red); display: inline-flex; align-items: center; gap: 4px; font-size: 9px; font-weight: 600; white-space: nowrap; }
.risk-badge svg { width: 12px; height: 12px; flex: 0 0 auto; }
.compact-presales, .compact-decisions { border-bottom: 1px solid var(--line); }
.compact-presale { width: 100%; min-height: 62px; border: 0; border-top: 1px solid var(--line); padding: 9px 2px; background: transparent; display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; gap: 9px; align-items: center; text-align: left; }
.compact-presale:first-child, .compact-decision:first-child { border-top: 0; }
.compact-presale:hover { background: rgba(255, 255, 255, .55); }
.compact-presale strong, .compact-presale small, .compact-decision strong, .compact-decision small { display: block; }
.compact-presale strong, .compact-decision strong { font-size: 11px; font-weight: 550; }
.compact-presale small, .compact-decision small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.compact-presale > svg { width: 15px; color: var(--muted); }
.compact-decision { min-height: 66px; border-top: 1px solid var(--line); padding: 9px 2px; display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.compact-decision > div { display: flex; gap: 6px; }
.small-button { min-height: 28px; padding: 0 9px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface); font-size: 9px; }
.small-button.approve { border-color: var(--primary); background: var(--primary); color: #fff; }

.toolbar { display: flex; gap: 9px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.search-box { min-width: 250px; flex: 1; position: relative; }
.search-box svg { position: absolute; left: 11px; top: 11px; width: 16px; color: var(--muted); }
.search-box input { width: 100%; height: 38px; border: 1px solid var(--line-strong); border-radius: 6px; padding: 0 12px 0 35px; background: var(--surface); color: var(--ink); }
.filter-group { display: flex; padding: 3px; border-radius: 7px; background: #e5eae7; }
.filter-button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font-size: 10px; }
.filter-button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22, 35, 29, .09); }
.table-surface { border-top: 1px solid var(--line-strong); }
.task-table th:first-child { width: 38px; }
.task-table th:nth-child(2) { width: 27%; }
.task-table th:nth-child(3) { width: 19%; }
.task-table th:nth-child(4) { width: 11%; }
.task-table th:nth-child(5) { width: 10%; }
.task-table th:nth-child(6) { width: 12%; }
.task-table th:nth-child(7) { width: 10%; }
.task-select-column { padding-left: 10px !important; padding-right: 2px !important; text-align: center !important; }
.task-select { width: 28px; height: 28px; display: inline-grid; place-items: center; cursor: pointer; }
.task-select input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.task-table tr.task-selected, .mobile-task-card.task-selected { background: var(--primary-soft); box-shadow: inset 3px 0 0 var(--primary); }
.task-batch-bar { min-height: 50px; margin-bottom: 10px; padding: 7px 9px; border: 1px solid #b9d7c9; border-radius: 6px; background: #f0f8f4; display: flex; align-items: center; gap: 10px; }
.task-batch-bar[hidden] { display: none; }
.task-batch-bar strong { min-width: 82px; color: var(--primary-dark); font-size: 11px; }
.task-batch-bar label { margin-left: auto; color: var(--muted); display: flex; align-items: center; gap: 7px; font-size: 9px; }
.task-batch-bar select { min-width: 112px; height: 34px; padding: 0 28px 0 9px; border: 1px solid var(--line-strong); border-radius: 5px; background: #fff; color: var(--ink); }
.task-batch-bar .primary-button { min-height: 34px; }
.task-title { font-weight: 550; }
.task-meta { margin-top: 4px; color: var(--muted); font-size: 9px; }
.row-menu { width: 28px; height: 28px; border: 0; border-radius: 5px; background: transparent; }
.row-menu:hover { background: #e9edeb; }
.row-menu svg { width: 15px; }
.mobile-task-list { display: none; }
.empty-state { display: none; padding: 52px 16px; text-align: center; color: var(--muted); }
.empty-state svg { width: 27px; }

.weekly-summary-strip { margin-bottom: 14px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.weekly-summary-strip > div { min-height: 72px; padding: 13px 16px; border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.weekly-summary-strip > div:first-child { border-left: 0; }
.weekly-summary-strip strong { font-size: 20px; line-height: 1; font-weight: 560; font-variant-numeric: tabular-nums; }
.weekly-summary-strip span { color: var(--muted); font-size: 9px; }
.weekly-toolbar { margin-bottom: 10px; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(190px, auto) minmax(130px, auto) auto; gap: 8px; align-items: end; }
.weekly-select { min-width: 0; display: grid; gap: 4px; }
.weekly-select > span { color: var(--muted); font-size: 8px; }
.weekly-select select { width: 100%; height: 38px; padding: 0 30px 0 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); font-size: 10px; }
.weekly-toolbar .filter-group { min-height: 38px; align-items: center; }
.weekly-result-bar { min-height: 35px; padding: 0 2px; color: var(--muted); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 9px; }
.weekly-batch-bar { margin: 0 0 10px; }
.weekly-table-surface { background: var(--surface); }
.weekly-table { min-width: 1040px; }
.weekly-table th:first-child { width: 38px; }
.weekly-table th:nth-child(2) { width: 12%; }
.weekly-table th:nth-child(3) { width: 29%; }
.weekly-table th:nth-child(4) { width: 18%; }
.weekly-table th:nth-child(5) { width: 10%; }
.weekly-table th:nth-child(6) { width: 10%; }
.weekly-table th:nth-child(7) { width: 18%; }
.weekly-table td { height: 64px; }
.weekly-select-column { width: 38px; padding-left: 10px !important; padding-right: 2px !important; text-align: center !important; }
.weekly-task-select { width: 28px; height: 28px; display: inline-grid; place-items: center; cursor: pointer; }
.weekly-task-select input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.weekly-task-select.unavailable { cursor: not-allowed; }
.weekly-task-select.unavailable input { opacity: .28; }
.weekly-table tr.weekly-selected { background: var(--primary-soft); box-shadow: inset 3px 0 0 var(--primary); }
.weekly-table td small, .weekly-table td strong { display: block; }
.weekly-table td small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.weekly-record-title { font-size: 10px; font-weight: 550; line-height: 1.55; }
.weekly-record-meta { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }
.weekly-type-chip { min-height: 21px; padding: 0 7px; border-radius: 4px; display: inline-flex; align-items: center; background: var(--primary-soft); color: var(--primary); font-size: 8px; white-space: nowrap; }
.weekly-type-chip.planned { background: var(--blue-soft); color: var(--blue); }
.weekly-type-chip.current { background: var(--blue-soft); color: var(--blue); }
.weekly-type-chip.next { background: #eef2ff; color: #4f46e5; }
.weekly-type-chip.history { background: var(--surface-soft); color: var(--muted); }
.weekly-editable-row { cursor: pointer; }
.weekly-editable-row:hover { background: var(--surface-soft); }
.weekly-status-button { min-height: 30px; padding: 0; border: 0; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.weekly-status-button > svg { width: 13px; height: 13px; }
.weekly-status-button:hover > svg { color: var(--primary); }
.weekly-record-meta .risk-badge, .weekly-mobile-card .risk-badge { min-height: 21px; font-size: 8px; }
.weekly-source-ref { color: var(--muted); display: block; overflow-wrap: anywhere; font-size: 8px; line-height: 1.5; }
.weekly-mobile-list { display: none; }
.weekly-pagination { min-height: 56px; display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.weekly-pagination button:disabled { opacity: .45; cursor: not-allowed; }

.project-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.project-group + .project-group { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line-strong); }
.project-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 17px; background: var(--surface); }
.project-card:hover { border-color: var(--line-strong); box-shadow: var(--shadow); }
.project-card header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.project-card h2 { margin: 6px 0 3px; font-size: 14px; font-weight: 550; }
.project-card p { margin: 0; color: var(--muted); font-size: 9px; }
.eyebrow { color: var(--primary); font-size: 9px; }
.project-progress { margin: 18px 0; display: grid; grid-template-columns: 1fr 36px; gap: 9px; align-items: center; }
.project-progress strong { color: var(--muted); font-size: 10px; font-weight: 500; }
.project-facts { display: grid; grid-template-columns: repeat(3, 1fr); padding-top: 12px; border-top: 1px solid var(--line); }
.project-facts div { min-width: 0; padding-left: 11px; border-left: 1px solid var(--line); }
.project-facts div:first-child { padding-left: 0; border-left: 0; }
.project-facts strong, .project-facts span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-facts strong { font-size: 12px; font-weight: 550; }
.project-facts span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.summary-strip { margin-bottom: 20px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); display: grid; grid-template-columns: repeat(4, 1fr); }
.summary-strip div { min-height: 66px; padding: 12px 16px; border-left: 1px solid var(--line); display: flex; align-items: baseline; gap: 7px; }
.summary-strip div:first-child { border-left: 0; }
.summary-strip strong { font-size: 22px; font-weight: 500; }
.summary-strip span { color: var(--muted); font-size: 9px; }
.presale-view-bar { min-height: 38px; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.presale-view-bar > span { color: var(--muted); font-size: 9px; }
.view-switch { padding: 3px; border-radius: 6px; background: #e5eae7; display: flex; }
.view-switch button { min-width: 64px; min-height: 30px; padding: 0 9px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); display: inline-flex; align-items: center; justify-content: center; gap: 5px; font-size: 9px; }
.view-switch button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22, 35, 29, .09); }
.view-switch svg { width: 14px; height: 14px; }
.presale-board { display: grid; gap: 10px; }
.presale-card { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); display: grid; grid-template-columns: minmax(0, 1fr) 208px; }
.presale-card-main { min-width: 0; padding: 16px; }
.presale-card-main header { display: flex; justify-content: space-between; gap: 10px; }
.presale-card h2 { margin: 10px 0 3px; font-size: 14px; font-weight: 550; }
.presale-opportunity { margin: 0; color: var(--muted); font-size: 9px; }
.presale-conclusion { margin: 12px 0; color: #46514c; font-size: 10px; line-height: 1.7; }
.source-line { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.source-line svg { width: 14px; }
.presale-card aside { padding: 15px; border-left: 1px solid var(--line); background: var(--surface-soft); display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; align-content: center; }
.presale-card aside span, .presale-card aside strong { display: block; }
.presale-card aside span { color: var(--muted); font-size: 9px; }
.presale-card aside strong { margin-top: 4px; font-size: 10px; font-weight: 550; }
.presale-card aside button { grid-column: 1 / -1; }
.presale-list-surface { border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); overflow-x: auto; }
.presale-list-table th:first-child { width: 42%; }
.presale-list-table th:nth-child(2) { width: 11%; }
.presale-list-table th:nth-child(3) { width: 10%; }
.presale-list-table th:nth-child(4) { width: 10%; }
.presale-list-table th:nth-child(5) { width: 11%; }
.presale-list-table th:nth-child(6) { width: 9%; }
.presale-list-table th:last-child { width: 36px; }
.presale-list-table td { height: 76px; }
.presale-list-table td:first-child strong, .presale-list-opportunity { display: block; }
.presale-list-opportunity { margin-top: 3px; color: var(--muted); font-size: 9px; }
.presale-list-table p { margin: 6px 0 0; color: #4b5651; font-size: 9px; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.presale-mobile-list { display: none; }

.meeting-pipeline { margin-bottom: 22px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); padding: 11px 4px; display: grid; grid-template-columns: 1fr 18px 1fr 18px 1fr 18px 1fr; gap: 7px; align-items: center; }
.meeting-pipeline > svg { width: 14px; color: #99a39e; }
.pipeline-step { min-width: 0; display: flex; align-items: center; gap: 9px; }
.pipeline-step > svg { width: 22px; color: #89948e; }
.pipeline-step.complete > svg { color: var(--primary); }
.pipeline-step.current > svg { color: var(--amber); }
.pipeline-step strong, .pipeline-step small { display: block; }
.pipeline-step strong { font-size: 10px; font-weight: 550; }
.pipeline-step small { margin-top: 3px; color: var(--muted); font-size: 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.meeting-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr); gap: 28px; align-items: start; }
.meeting-source, .meeting-actions { border-top-color: var(--line-strong); }
.meeting-summary h3 { margin: 18px 0 7px; font-size: 11px; font-weight: 550; }
.meeting-summary p, .meeting-summary li { color: #4b5651; font-size: 10px; line-height: 1.8; }
.meeting-summary ul { padding-left: 18px; }
.meeting-action { min-height: 56px; padding: 10px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 18px 1fr; gap: 8px; }
.meeting-action:first-child { border-top: 0; }
.meeting-action input { margin-top: 2px; }
.meeting-action strong, .meeting-action small { display: block; }
.meeting-action strong { font-size: 10px; font-weight: 550; }
.meeting-action small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.missing-field { color: var(--amber) !important; }

.team-list { border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.team-row { min-height: 58px; padding: 9px 4px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(150px, 1.25fr) minmax(100px, .8fr) minmax(170px, 1.5fr) 100px 92px; gap: 12px; align-items: center; }
.team-row:first-child { border-top: 0; }
.person-cell { display: flex; align-items: center; gap: 9px; }
.person-cell .avatar { width: 31px; height: 31px; }
.person-cell strong, .person-cell small { display: block; }
.person-cell strong { font-size: 10px; font-weight: 550; }
.person-cell small, .team-row > span, .team-row small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.load-track { margin-bottom: 4px; }

.decision-list { display: grid; gap: 10px; }
.decision-card { min-height: 124px; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; background: var(--surface); display: grid; grid-template-columns: 5px minmax(0, 1fr) auto; gap: 14px; }
.decision-accent { border-radius: 3px; background: var(--amber); }
.decision-card.cost .decision-accent { background: var(--red); }
.decision-card h2 { margin: 4px 0 0; font-size: 13px; font-weight: 550; }
.decision-card p { margin: 7px 0; color: #4e5954; font-size: 10px; line-height: 1.65; }
.decision-card small { color: var(--muted); font-size: 9px; }
.decision-actions { display: flex; align-items: center; gap: 7px; }

.personal-hero { min-height: 104px; margin-bottom: 14px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; }
.personal-hero h2 { max-width: 650px; margin: 6px 0 4px; font-size: 18px; line-height: 1.35; font-weight: 550; }
.personal-hero p { margin: 0; color: var(--muted); font-size: 10px; }
.focus-timer { min-width: 210px; display: grid; grid-template-columns: 1fr auto; gap: 5px 16px; align-items: center; }
.focus-timer > span { color: var(--muted); font-size: 9px; }
.focus-timer > strong { grid-row: span 2; font-size: 34px; font-weight: 400; font-variant-numeric: tabular-nums; }
.focus-timer > div { display: flex; gap: 6px; }
.focus-timer .icon-button { width: 32px; height: 32px; }
.personal-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 10px; }

.mobile-companion { display: none; }
.widget { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); padding: 15px; background: var(--surface); }
.widget:hover { border-color: var(--line-strong); }
.knowledge-widget { grid-column: span 6; }
.company-widget, .market-widget { grid-column: span 3; }
.content-widget { grid-column: span 6; }
.reading-widget, .life-widget { grid-column: span 3; }
.widget-heading { min-height: 34px; margin-bottom: 13px; display: flex; align-items: center; gap: 9px; }
.widget-heading > div { min-width: 0; }
.widget-heading h2 { margin: 0; font-size: 12px; font-weight: 550; }
.widget-heading p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.widget-heading .icon-button { width: 31px; height: 31px; margin-left: auto; border: 0; background: var(--surface-soft); }
.knowledge-stats { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.knowledge-stats div { padding: 12px 10px; border-left: 1px solid var(--line); }
.knowledge-stats div:first-child { border-left: 0; }
.knowledge-stats strong, .knowledge-stats span { display: block; }
.knowledge-stats strong { font-size: 19px; font-weight: 500; }
.knowledge-stats span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.simple-list { margin: 8px 0 0; padding: 0; list-style: none; }
.simple-list li { padding: 9px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 10px; }
.simple-list li:first-child { border-top: 0; }
.simple-list span { font-size: 10px; }
.simple-list small { color: var(--muted); font-size: 8px; }
.number-line, .channel-row, .market-line { min-height: 37px; border-top: 1px solid var(--line); display: grid; align-items: center; }
.number-line:first-of-type, .channel-row:first-of-type, .market-line:first-of-type { border-top: 0; }
.number-line { grid-template-columns: 1fr auto; }
.number-line span, .channel-row span, .market-line span { color: var(--muted); font-size: 9px; }
.number-line strong, .channel-row strong, .market-line strong { font-size: 12px; font-weight: 550; }
.channel-row, .market-line { grid-template-columns: 1fr 34px 55px; }
.channel-row small, .market-line small { color: var(--muted); font-size: 8px; text-align: right; }
.reading-item { margin-top: 10px; display: flex; justify-content: space-between; align-items: end; gap: 10px; }
.reading-item strong, .reading-item small { display: block; }
.reading-item strong { font-size: 10px; font-weight: 550; }
.reading-item small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.reading-item b { color: var(--muted); font-size: 9px; font-weight: 500; }
.reading-widget .progress-track { margin: 7px 0 13px; }
.life-row { min-height: 44px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 21px 1fr; gap: 8px; align-items: center; }
.life-row:first-of-type { border-top: 0; }
.life-row > svg { width: 16px; color: var(--muted); }
.life-row strong, .life-row small { display: block; }
.life-row strong { font-size: 10px; font-weight: 550; }
.life-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }

.knowledge-status { min-height: 68px; margin-bottom: 22px; padding: 10px 13px; border: 1px solid var(--line); background: var(--surface); display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; }
.knowledge-status strong, .knowledge-status small { display: block; }
.knowledge-status strong { font-size: 11px; font-weight: 550; }
.knowledge-status small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.knowledge-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.note-list, .context-list { border-bottom: 1px solid var(--line); }
.note-list button, .context-list button { width: 100%; min-height: 62px; padding: 10px 2px; border: 0; border-top: 1px solid var(--line); background: transparent; display: grid; align-items: center; text-align: left; }
.note-list button { grid-template-columns: 1fr 16px; }
.context-list button { grid-template-columns: 8px 1fr; gap: 10px; }
.note-list button:hover, .context-list button:hover { background: rgba(255, 255, 255, .55); }
.note-list strong, .note-list small, .context-list strong, .context-list small { display: block; }
.note-list strong, .context-list strong { font-size: 10px; font-weight: 550; }
.note-list small, .context-list small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.note-list svg { width: 15px; color: var(--muted); }
.context-mark { width: 7px; height: 32px; border-radius: 4px; background: var(--primary); }
.context-mark.blue { background: var(--blue); }
.context-mark.amber { background: var(--amber); }
.recent-notes { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recent-notes article { min-width: 0; padding: 14px; border-left: 1px solid var(--line); }
.recent-notes article:first-child { border-left: 0; }
.recent-notes span, .recent-notes strong, .recent-notes small { display: block; }
.recent-notes span { color: var(--primary); font-size: 8px; }
.recent-notes strong { margin: 7px 0; font-size: 10px; font-weight: 550; }
.recent-notes small { color: var(--muted); font-size: 8px; }

.briefing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.news-section { grid-row: span 2; }
.content-kanban { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.content-kanban div { padding: 12px; border-left: 1px solid var(--line); }
.content-kanban div:first-child { border-left: 0; }
.content-kanban span, .content-kanban strong { display: block; }
.content-kanban span { color: var(--muted); font-size: 9px; }
.content-kanban strong { margin-top: 8px; font-size: 20px; font-weight: 500; }
.company-todos { display: grid; gap: 10px; }
.company-todos label { display: flex; align-items: center; gap: 8px; font-size: 10px; }
.news-list article { min-height: 74px; padding: 12px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 30px 1fr; gap: 8px; }
.news-list article:first-child { border-top: 0; }
.news-list article > span { color: var(--primary); font-size: 9px; }
.news-list strong { font-size: 10px; font-weight: 550; }
.news-list p { margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.market-placeholder { min-height: 130px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.market-placeholder svg { width: 28px; }
.market-placeholder p { margin: 9px 0 0; font-size: 9px; }

.market-widget-list, .brief-market-list { border-top: 1px solid var(--line); }
.market-widget-quote { min-height: 37px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto 52px; gap: 8px; align-items: center; }
.market-widget-quote:last-child { border-bottom: 0; }
.market-widget-quote span, .market-widget-quote strong, .market-widget-quote small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-widget-quote span { color: var(--muted); font-size: 9px; }
.market-widget-quote strong { font-size: 11px; font-weight: 550; font-variant-numeric: tabular-nums; text-align: right; }
.market-widget-quote small { font-size: 8px; font-variant-numeric: tabular-nums; text-align: right; }
.market-up { color: #b33d38 !important; }
.market-down { color: #217a52 !important; }
.market-flat { color: var(--muted) !important; }

.market-commandbar { min-height: 58px; margin-bottom: 12px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: flex; align-items: center; gap: 9px; }
.market-source-state { min-width: 210px; display: grid; grid-template-columns: 9px 1fr; gap: 8px; align-items: center; }
.market-source-state strong, .market-source-state small { display: block; }
.market-source-state strong { font-size: 10px; font-weight: 550; }
.market-source-state small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.status-dot.warning { background: var(--amber); box-shadow: 0 0 0 3px rgba(154, 98, 13, .12); }
.market-provider-tags { margin-left: auto; display: flex; gap: 6px; }
.market-provider-tags span { min-height: 25px; padding: 0 8px; border: 1px solid var(--line); border-radius: 5px; color: var(--muted); background: var(--surface-soft); display: inline-flex; align-items: center; font-size: 8px; }
.market-index-strip { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; }
.market-index-card { min-width: 0; min-height: 76px; padding: 11px 13px; border: 0; border-left: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; gap: 6px; align-items: end; text-align: left; }
.market-index-card:first-child { border-left: 0; }
.market-index-card:hover, .market-index-card.active { background: var(--surface-soft); }
.market-index-card span { grid-column: 1 / -1; align-self: start; color: var(--muted); font-size: 9px; }
.market-index-card strong { min-width: 0; overflow: hidden; font-size: 17px; line-height: 1; font-weight: 550; font-variant-numeric: tabular-nums; }
.market-index-card small { font-size: 9px; font-weight: 550; font-variant-numeric: tabular-nums; text-align: right; }
.market-layout { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr); gap: 14px; align-items: stretch; }
.market-watch-panel, .market-chart-panel { min-height: 365px; }
.market-table th:first-child { width: 32%; }
.market-table th:nth-child(2) { width: 16%; }
.market-table th:nth-child(3) { width: 15%; }
.market-table th:nth-child(4) { width: 27%; }
.market-table td { height: 58px; }
.market-symbol strong, .market-symbol small { display: block; }
.market-symbol strong { font-size: 10px; font-weight: 550; }
.market-symbol small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.market-price { font-variant-numeric: tabular-nums; font-weight: 550; }
.mini-sparkline { width: 100%; min-width: 84px; height: 30px; display: block; }
.market-table .row-menu { color: var(--muted); }
.market-table tr.active { background: var(--primary-soft); }
.market-range { padding: 3px; border-radius: 6px; background: #e9eceb; display: flex; }
.market-range button { min-height: 25px; padding: 0 8px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 8px; }
.market-range button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22,35,29,.08); }
.market-quote-head { min-height: 48px; display: flex; align-items: baseline; gap: 10px; }
.market-quote-head strong { font-size: 28px; font-weight: 500; font-variant-numeric: tabular-nums; }
.market-quote-head span { font-size: 11px; font-weight: 550; font-variant-numeric: tabular-nums; }
.market-chart { height: 215px; border: 1px solid var(--line); background: var(--surface-soft); overflow: hidden; }
.market-chart svg { width: 100%; height: 100%; display: block; }
.market-chart-axis { padding-top: 6px; color: var(--muted); display: flex; justify-content: space-between; font-size: 8px; }
.market-lower-grid { margin-top: 14px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); gap: 14px; }
.market-pulse-list article { min-height: 64px; padding: 10px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 42px minmax(0, 1fr) 35px; gap: 10px; align-items: start; }
.market-pulse-list article:first-child { border-top: 0; }
.market-pulse-list strong { font-size: 10px; font-weight: 550; }
.market-pulse-list p { margin: 5px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.market-pulse-list time { color: var(--muted); font-size: 8px; text-align: right; }
.pulse-level { min-height: 22px; border-radius: 4px; background: var(--amber-soft); color: var(--amber); display: grid; place-items: center; font-size: 8px; }
.pulse-level.high { background: var(--red-soft); color: var(--red); }
.provider-row { min-height: 57px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 31px minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.provider-row:first-of-type { border-top: 0; }
.provider-row strong, .provider-row small { display: block; }
.provider-row strong { font-size: 10px; font-weight: 550; }
.provider-row small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.provider-logo { width: 31px; height: 31px; border-radius: 6px; display: grid; place-items: center; font-size: 11px; font-weight: 700; }
.provider-logo.wind { background: #e5f1eb; color: #215c40; }
.provider-logo.sp { background: #eaf1fa; color: #2d67b1; }
.market-frequency { min-height: 36px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.market-frequency span { color: var(--muted); display: flex; align-items: center; gap: 6px; font-size: 8px; }
.market-frequency svg { width: 13px; }
.market-frequency strong { font-size: 9px; font-weight: 550; }
.market-mobile-list { display: none; }
.market-modal-note { margin-top: 13px; padding: 10px; border-radius: 6px; background: var(--amber-soft); color: var(--amber); display: flex; align-items: flex-start; gap: 7px; font-size: 8px; line-height: 1.5; }
.market-modal-note svg { width: 14px; flex: 0 0 auto; }

.bottom-nav { display: none; }
.modal, .more-modal { border: 0; border-radius: var(--radius); padding: 0; background: var(--surface); box-shadow: 0 26px 80px rgba(21, 33, 27, .24); }
.modal { width: min(600px, calc(100% - 28px)); }
.modal::backdrop, .more-modal::backdrop { background: rgba(19, 28, 23, .45); }
.modal form, .presale-detail { padding: 20px; }
.modal-header { margin-bottom: 17px; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.modal-header h2 { margin: 4px 0 0; font-size: 17px; font-weight: 550; }
.modal-header p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.form-grid label, .capture-note, .ai-prompt { color: var(--muted); font-size: 9px; display: grid; gap: 6px; }
.form-grid input, .form-grid select, .form-grid textarea, .capture-note textarea, .ai-prompt textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 6px; padding: 9px 10px; background: #fff; color: var(--ink); resize: vertical; }
.form-grid input, .form-grid select { min-height: 38px; }
.full-field { grid-column: 1 / -1; }
.modal-actions { margin-top: 18px; display: flex; justify-content: flex-end; gap: 8px; }
.task-item-actions { justify-content: space-between; }
.task-item-actions > div { display: flex; gap: 8px; }
.task-status-modal { width: min(500px, calc(100% - 28px)); max-height: min(760px, calc(100dvh - 28px)); }
.task-status-modal form { max-height: min(760px, calc(100dvh - 28px)); overflow-y: auto; }
.task-status-current { min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.task-status-current span { color: var(--muted); font-size: 9px; }
.task-status-current strong { font-size: 11px; font-weight: 600; }
.task-status-current-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.task-status-field { margin-top: 14px; color: var(--muted); font-size: 9px; display: grid; grid-template-columns: auto 1fr; gap: 6px; }
.task-status-field select, .task-status-field textarea { grid-column: 1 / -1; width: 100%; border: 1px solid var(--line-strong); border-radius: 6px; padding: 9px 10px; background: #fff; color: var(--ink); }
.task-status-field select { min-height: 42px; }
.task-status-field textarea { min-height: 72px; resize: vertical; line-height: 1.55; }
.optional-label { color: var(--muted-light); text-align: right; }
.task-risk-toggle { min-height: 58px; margin-top: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: grid; grid-template-columns: 18px 30px minmax(0, 1fr); gap: 9px; align-items: center; }
.task-risk-toggle input { width: 17px; height: 17px; margin: 0; accent-color: var(--red); }
.task-risk-toggle > span:nth-of-type(1) { width: 30px; height: 30px; border-radius: 5px; background: var(--red-soft); color: var(--red); display: grid; place-items: center; }
.task-risk-toggle svg { width: 16px; }
.task-risk-toggle strong, .task-risk-toggle small { display: block; }
.task-risk-toggle strong { color: var(--ink); font-size: 10px; font-weight: 600; }
.task-risk-toggle small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.task-risk-toggle:has(input:disabled) { opacity: .58; cursor: not-allowed; }
.task-status-note { margin: 12px 0 0; color: var(--muted); display: flex; align-items: center; gap: 7px; font-size: 8px; }
.task-status-note svg { width: 14px; flex: 0 0 auto; }
.task-process-history { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.task-process-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.task-process-heading strong { font-size: 10px; font-weight: 600; }
.task-process-heading small { color: var(--muted); font-size: 8px; text-align: right; }
.task-process-record { padding: 9px 0; border-bottom: 1px solid var(--line); }
.task-process-record:last-child { border-bottom: 0; }
.task-process-record header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.task-process-record strong { font-size: 9px; font-weight: 550; }
.task-process-record time { color: var(--muted); font-size: 8px; white-space: nowrap; }
.task-process-record p { margin: 5px 0 0; color: #4f5a55; font-size: 9px; line-height: 1.55; }
.task-process-record small { margin-top: 4px; color: var(--muted); display: block; font-size: 8px; }
.task-process-empty { padding: 12px 0 2px; color: var(--muted); font-size: 9px; }
.capture-types { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.capture-types input { position: absolute; opacity: 0; pointer-events: none; }
.capture-types span { min-height: 68px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; font-size: 9px; }
.capture-types input:checked + span { border-color: #91bba5; background: var(--primary-soft); color: var(--primary); }
.capture-types svg { width: 18px; }
.file-field { min-height: 54px; margin-top: 10px; border: 1px dashed var(--line-strong); border-radius: 6px; color: var(--muted); display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 9px; position: relative; }
.file-field svg { width: 16px; }
.file-field input { position: absolute; inset: 0; opacity: 0; }
.capture-link-field { color: var(--muted); font-size: 9px; display: grid; gap: 6px; }
.capture-link-field textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 6px; padding: 9px 10px; background: #fff; color: var(--ink); resize: vertical; }
.mobile-primary-view { display: none !important; }
.mobile-personal-fold-button, .personal-music-library, .personal-mobile-mode, .personal-library-toggle { display: none; }
.personal-mobile-stock-panel { display: none; }
.project-picker { position: relative; color: var(--muted); font-size: 9px; }
.project-picker > label { margin-bottom: 6px; display: flex; justify-content: space-between; gap: 10px; }
.project-picker-input { min-height: 42px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; }
.project-picker-input:focus-within { border-color: #91bba5; box-shadow: 0 0 0 3px rgba(45, 90, 67, .08); }
.project-picker-input > svg { width: 15px; justify-self: end; color: var(--muted); }
.project-picker-input input { width: 100%; min-width: 0; height: 40px; padding: 0 9px; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 10px; }
.project-picker-input input[aria-invalid="true"] { color: var(--red); }
.project-picker-input .icon-button { width: 34px; height: 34px; margin-right: 3px; }
.project-picker-results { position: absolute; z-index: 20; top: calc(100% + 5px); right: 0; left: 0; max-height: 260px; padding: 5px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); box-shadow: 0 14px 34px rgba(21, 33, 27, .16); overflow-y: auto; display: none; }
.project-picker-results.show { display: block; }
.project-picker-results button { width: 100%; min-height: 48px; padding: 8px 9px; border: 0; border-radius: 5px; background: transparent; color: var(--ink); text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.project-picker-results button:hover, .project-picker-results button:focus-visible { background: var(--primary-soft); }
.project-picker-results button span, .project-picker-results button strong, .project-picker-results button small { min-width: 0; display: block; }
.project-picker-results button strong { font-size: 10px; font-weight: 600; }
.project-picker-results button small { margin-top: 4px; color: var(--muted); font-size: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-picker-results button svg { width: 14px; flex: 0 0 auto; }
.project-picker-results > p { margin: 0; padding: 12px 9px; color: var(--muted); text-align: center; }
.capture-upload-project { margin-bottom: 14px; }
.context-options { margin-top: 11px; display: flex; gap: 14px; flex-wrap: wrap; }
.context-options label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.presale-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.presale-detail-grid section { min-height: 118px; padding: 14px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.presale-detail-grid section:nth-child(-n+2) { border-top: 0; }
.presale-detail-grid section:nth-child(odd) { border-left: 0; }
.presale-detail-grid h3 { margin: 0 0 7px; font-size: 10px; font-weight: 550; }
.presale-detail-grid p, .presale-detail-grid li { color: #4f5a55; font-size: 9px; line-height: 1.7; }
.presale-detail-grid p { margin: 0; }
.presale-detail-grid ul { margin: 0; padding-left: 17px; }
.more-modal { width: min(420px, calc(100% - 28px)); padding: 15px; }
.more-modal-header { margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; }
.more-modal-header strong { font-size: 13px; font-weight: 550; }
.mobile-mode-switch { display: grid; grid-template-columns: repeat(2, 1fr); gap: 3px; margin-bottom: 10px; padding: 3px; border-radius: 7px; background: #e9eeeb; }
.mobile-mode-switch button { min-height: 34px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 10px; }
.mobile-mode-switch button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(20, 32, 26, .1); }
.mobile-mode-switch svg { width: 15px; }
.more-menu-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.more-menu-grid button { min-height: 70px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-soft); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; font-size: 9px; }
.more-menu-grid button:hover { border-color: #bad4c6; background: var(--primary-soft); color: var(--primary); }
.more-menu-grid svg { width: 18px; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 24px; max-width: calc(100% - 28px); padding: 10px 13px; border-radius: 6px; background: #19231f; color: #fff; box-shadow: var(--shadow); display: flex; align-items: center; gap: 7px; font-size: 10px; opacity: 0; pointer-events: none; transform: translate(-50%, 18px); transition: opacity .18s ease, transform .18s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast svg { width: 15px; color: #79d3a5; }

@media (max-width: 1080px) {
  .app-shell { grid-template-columns: 226px minmax(0, 1fr); }
  .mode-switch { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mode-switch button { font-size: 9px; }
  .mode-switch svg { display: none; }
  .main-content { padding-inline: 22px; }
  .work-grid { grid-template-columns: 1fr; gap: 24px; }
  .lower-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-row { grid-template-columns: minmax(145px, 1.2fr) minmax(140px, 1.4fr) 90px 90px; }
  .team-role { display: none; }
  .knowledge-widget, .content-widget, .reading-widget, .life-widget { grid-column: span 6; }
  .company-widget, .market-widget { grid-column: span 6; }
  .market-layout, .market-lower-grid { grid-template-columns: 1fr; }
  .weekly-toolbar { grid-template-columns: minmax(240px, 1fr) repeat(2, minmax(150px, auto)); }
  .weekly-toolbar .filter-group { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  .main-content { padding: 0 14px 92px; }
  body[data-mode="work"] .view.active,
  body[data-mode="capture"] .view.active {
    min-height: calc(100vh - 174px);
    min-height: calc(100dvh - 174px);
  }
  .topbar { min-height: 68px; margin-bottom: 14px; gap: 9px; }
  .mobile-brand { display: grid; width: 32px; height: 32px; }
  .page-heading h1 { font-size: 17px; }
  .page-heading p { max-width: 220px; }
  .topbar-actions .primary-button, .ai-entry { display: none; }
  #dashboard-view > .source-rail, #dashboard-view > .work-grid, #dashboard-view > .wide-block, #dashboard-view > .lower-grid { display: none; }
  .mobile-companion { display: grid; gap: 14px; }
  .mobile-week-panel, .mobile-capture-panel { border: 1px solid var(--line); border-radius: 7px; background: var(--surface); overflow: hidden; }
  .mobile-section-heading { min-height: 67px; padding: 13px 14px 11px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
  .mobile-section-heading h2 { margin: 5px 0 0; font-size: 14px; font-weight: 550; }
  .mobile-kicker { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
  .mobile-kicker svg, .sync-label svg { width: 13px; height: 13px; }
  .sync-label { min-height: 23px; padding: 0 8px; border-radius: 12px; background: var(--primary-soft); color: var(--primary); display: inline-flex; align-items: center; gap: 4px; font-size: 8px; white-space: nowrap; }
  .mobile-week-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
  .mobile-week-links button { min-width: 0; min-height: 80px; padding: 12px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: 26px minmax(0, 1fr) 14px; gap: 8px; align-items: center; text-align: left; }
  .mobile-week-links button:nth-child(even) { border-right: 0; }
  .mobile-week-links button:nth-last-child(-n+2) { border-bottom: 0; }
  .mobile-week-links button:active { background: var(--surface-soft); }
  .mobile-week-links button > svg:first-child { width: 20px; color: var(--primary); }
  .mobile-week-links button > svg:last-child { width: 13px; color: var(--muted); }
  .mobile-week-links strong, .mobile-week-links small { display: block; }
  .mobile-week-links strong { font-size: 10px; font-weight: 550; }
  .mobile-week-links small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.4; }
  .mobile-capture-panel { background: var(--primary); border-color: var(--primary); color: #fff; }
  .mobile-capture-panel .mobile-kicker, .mobile-capture-panel .mobile-section-heading h2 { color: #fff; }
  .mobile-capture-panel .mobile-kicker { opacity: .7; }
  .mobile-capture-panel .sync-label { background: rgba(255,255,255,.13); color: #fff; }
  .mobile-capture-grid { padding: 0 13px 13px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; }
  .mobile-capture-grid button { min-height: 70px; border: 1px solid rgba(255,255,255,.16); border-radius: 0; background: rgba(255,255,255,.06); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; font-size: 9px; }
  .mobile-capture-grid button:active { background: rgba(255,255,255,.14); }
  .mobile-capture-grid svg { width: 21px; height: 21px; }
  .capture-hint { margin: 0; padding: 10px 13px; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.74); display: flex; align-items: center; gap: 6px; font-size: 8px; line-height: 1.5; }
  .capture-hint svg { width: 14px; flex: 0 0 auto; }
  .fragment-list article { min-height: 67px; padding: 10px 13px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 30px minmax(0, 1fr) 32px; gap: 9px; align-items: center; }
  .fragment-list strong, .fragment-list small { display: block; }
  .fragment-list strong { font-size: 10px; font-weight: 550; }
  .fragment-list small { margin-top: 4px; color: var(--muted); font-size: 8px; }
  .fragment-icon { width: 30px; height: 30px; border-radius: 6px; background: var(--surface-soft); color: var(--primary); display: grid; place-items: center; }
  .fragment-icon svg { width: 15px; }
  .fragment-list article > button { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--primary); display: grid; place-items: center; }
  .fragment-list article > button svg { width: 15px; }
  .source-rail { grid-template-columns: 1fr; }
  .source-rail button { min-height: 54px; border-left: 0; border-top: 1px solid var(--line); }
  .source-rail button:first-child { border-top: 0; }
  .metric-strip { grid-template-columns: repeat(2, 1fr); }
  .metric-strip button { min-height: 68px; border-top: 1px solid var(--line); }
  .metric-strip button:nth-child(odd) { border-left: 0; }
  .metric-strip button:nth-child(-n+2) { border-top: 0; }
  .metric-strip button:last-child { grid-column: 1 / -1; }
  .work-grid, .lower-grid { grid-template-columns: 1fr; gap: 22px; }
  .section-heading { min-height: auto; }
  .priority-row { grid-template-columns: 25px minmax(0, 1fr) auto; }
  .priority-row > svg { display: none; }
  .weekly-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .weekly-summary-strip > div { min-height: 62px; padding: 11px 12px; border-top: 1px solid var(--line); }
  .weekly-summary-strip > div:nth-child(odd) { border-left: 0; }
  .weekly-summary-strip > div:nth-child(-n+2) { border-top: 0; }
  .weekly-summary-strip strong { font-size: 17px; }
  .weekly-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .weekly-toolbar .search-box { min-width: 0; }
  .weekly-toolbar .filter-group { grid-column: auto; width: 100%; overflow-x: auto; }
  .weekly-toolbar .filter-button { flex: 1; white-space: nowrap; }
  .weekly-result-bar { min-height: 40px; }
  .weekly-batch-bar { display: none !important; }
  .weekly-table { display: none; }
  .weekly-table-surface { border-top: 1px solid var(--line-strong); background: transparent; overflow: visible; }
  .weekly-mobile-list { display: grid; gap: 8px; padding-top: 10px; }
  .weekly-mobile-card { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
  .weekly-mobile-card header { min-height: 23px; display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
  .weekly-mobile-card header > span:first-child { margin-right: auto; font-variant-numeric: tabular-nums; }
  .weekly-mobile-card h2 { margin: 9px 0 0; font-size: 11px; line-height: 1.55; font-weight: 560; }
  .weekly-mobile-card p { margin: 6px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
  .weekly-mobile-card footer { margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--line); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; }
  .weekly-mobile-card footer small { color: var(--muted); overflow-wrap: anywhere; font-size: 7px; line-height: 1.5; text-align: right; }
  .weekly-mobile-card .weekly-status-button { justify-self: start; }
  .weekly-pagination { justify-content: stretch; }
  .weekly-pagination button { flex: 1; }
  .project-table th:nth-child(2), .project-table td:nth-child(2), .project-table th:nth-child(4), .project-table td:nth-child(4) { display: none; }
  .project-table th:first-child { width: 45%; }
  .project-table th:nth-child(3) { width: 34%; }
  .bottom-nav { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; min-height: 68px; padding: 6px 8px max(6px, env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255, 255, 255, .97); display: grid; grid-template-columns: repeat(5, 1fr); align-items: end; }
  .bottom-nav button { position: relative; min-height: 50px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font-size: 9px; }
  .bottom-nav button.active { color: var(--primary); }
  .bottom-nav svg { width: 18px; height: 18px; }
  .bottom-nav b { position: absolute; top: 3px; right: calc(50% - 17px); min-width: 15px; height: 15px; border-radius: 8px; background: var(--red); color: #fff; font-size: 8px; line-height: 15px; }
  .bottom-nav .quick-capture { width: 48px; min-height: 48px; margin-top: -18px; align-self: center; justify-self: center; border-radius: 50%; background: var(--primary); color: #fff; box-shadow: 0 7px 18px rgba(23, 107, 74, .25); }
  .toolbar { align-items: stretch; }
  .search-box { min-width: 100%; }
  .filter-group { flex: 1; overflow-x: auto; }
  .filter-button { flex: 1; white-space: nowrap; }
  #export-button { width: 38px; padding: 0; }
  #export-button span { display: none; }
  .task-table { display: none; }
  .mobile-task-list { display: grid; }
  .task-batch-bar { position: sticky; z-index: 5; top: 0; padding: 8px; flex-wrap: wrap; }
  .task-batch-bar strong { flex: 1; }
  .task-batch-bar label { width: 100%; margin-left: 0; order: 3; }
  .task-batch-bar label select { flex: 1; }
  .task-batch-bar .primary-button { flex: 1; }
  .mobile-task-card { min-height: 122px; padding: 13px 2px 13px 38px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; gap: 10px; position: relative; }
  .mobile-task-select { position: absolute; left: 3px; top: 12px; }
  .mobile-task-card .task-state-badges { max-width: 96px; justify-content: flex-end; align-content: start; }
  .mobile-task-card h2 { margin: 7px 0 4px; font-size: 11px; font-weight: 550; }
  .mobile-task-card p { margin: 0; color: var(--muted); font-size: 9px; }
  .mobile-task-card footer { grid-column: 1 / -1; display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
  .task-risk-toggle { grid-template-columns: 18px 30px minmax(0, 1fr); padding: 10px; }
  .task-item-actions { align-items: stretch; flex-direction: column-reverse; }
  .task-item-actions > div { display: grid; grid-template-columns: 1fr 1fr; }
  .project-board { grid-template-columns: 1fr; }
  .summary-strip { grid-template-columns: repeat(2, 1fr); }
  .summary-strip div:nth-child(odd) { border-left: 0; }
  .summary-strip div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .presale-view-bar { margin-bottom: 8px; }
  .view-switch button { min-width: 52px; padding: 0 7px; }
  .presale-card { grid-template-columns: 1fr; }
  .presale-card aside { border-left: 0; border-top: 1px solid var(--line); grid-template-columns: repeat(3, 1fr); }
  .presale-list-table { display: none; }
  .presale-list-surface { overflow: visible; }
  .presale-mobile-list { display: grid; }
  .presale-list-row { width: 100%; min-height: 142px; padding: 13px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: grid; gap: 8px; text-align: left; }
  .presale-list-row:last-child { border-bottom: 0; }
  .presale-list-row-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
  .presale-list-row-head strong, .presale-list-row-head small { display: block; }
  .presale-list-row-head strong { font-size: 11px; font-weight: 550; }
  .presale-list-row-head small { margin-top: 4px; color: var(--muted); font-size: 9px; }
  .presale-list-row-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; color: var(--muted); font-size: 8px; }
  .presale-list-row-conclusion { color: #4b5651; font-size: 9px; line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
  .presale-list-row-foot { color: var(--muted); display: flex; align-items: center; justify-content: space-between; font-size: 8px; }
  .presale-list-row-foot svg { width: 14px; height: 14px; }
  .meeting-pipeline { grid-template-columns: repeat(4, 1fr); }
  .meeting-pipeline > svg { display: none; }
  .pipeline-step { display: grid; justify-items: center; text-align: center; }
  .pipeline-step small { display: none; }
  .meeting-layout { grid-template-columns: 1fr; gap: 22px; }
  .team-row { grid-template-columns: minmax(125px, 1fr) minmax(115px, 1.15fr) 80px; padding-inline: 2px; }
  .team-role, .team-project { display: none; }
  .decision-card { grid-template-columns: 5px 1fr; }
  .decision-card .decision-actions { grid-column: 2; justify-content: flex-end; }
  .personal-hero { grid-template-columns: 1fr; gap: 20px; }
  .personal-hero h2 { font-size: 20px; }
  .focus-timer { min-width: 0; }
  .personal-grid { grid-template-columns: 1fr; }
  .knowledge-widget, .company-widget, .content-widget, .market-widget, .reading-widget, .life-widget { grid-column: auto; }
  .knowledge-layout, .briefing-grid { grid-template-columns: 1fr; gap: 22px; }
  .market-commandbar { align-items: stretch; flex-wrap: wrap; }
  .market-source-state { min-width: 0; flex: 1; }
  .market-provider-tags { width: 100%; margin-left: 0; order: 3; overflow-x: auto; }
  .market-provider-tags span { flex: 1; justify-content: center; white-space: nowrap; }
  .market-commandbar .primary-button span { display: none; }
  .market-commandbar .primary-button { width: 38px; padding: 0; }
  .market-index-strip { grid-template-columns: repeat(2, 1fr); }
  .market-index-card:nth-child(odd) { border-left: 0; }
  .market-index-card:nth-child(n+3) { border-top: 1px solid var(--line); }
  .market-layout, .market-lower-grid { grid-template-columns: 1fr; gap: 12px; }
  .market-watch-panel, .market-chart-panel { min-height: 0; }
  .market-watch-panel .table-wrap { display: none; }
  .market-mobile-list { display: grid; }
  .market-mobile-row { min-height: 66px; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto 58px 28px; gap: 8px; align-items: center; }
  .market-mobile-row:first-child { border-top: 0; }
  .market-mobile-row > button { width: 28px; height: 28px; border: 0; border-radius: 5px; background: var(--surface-soft); color: var(--muted); display: grid; place-items: center; }
  .market-mobile-row > button svg { width: 14px; }
  .market-mobile-row .mini-sparkline { min-width: 58px; }
  .market-chart { height: 190px; }
  .market-pulse-list article { grid-template-columns: 40px minmax(0, 1fr); }
  .market-pulse-list time { display: none; }
  .knowledge-status { grid-template-columns: 34px 1fr; }
  .knowledge-status button { grid-column: 1 / -1; }
  .recent-notes { grid-template-columns: 1fr; }
  .recent-notes article { border-left: 0; border-top: 1px solid var(--line); }
  .recent-notes article:first-child { border-top: 0; }
  .content-kanban { grid-template-columns: repeat(2, 1fr); }
  .content-kanban div:nth-child(odd) { border-left: 0; }
  .content-kanban div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .form-grid { grid-template-columns: 1fr; }
  .full-field { grid-column: auto; }
  .capture-types { grid-template-columns: repeat(2, 1fr); }
  .presale-detail-grid { grid-template-columns: 1fr; }
  .presale-detail-grid section, .presale-detail-grid section:nth-child(-n+2) { border-left: 0; border-top: 1px solid var(--line); }
  .presale-detail-grid section:first-child { border-top: 0; }
  .more-modal { position: fixed; inset: auto 14px calc(82px + env(safe-area-inset-bottom)) 14px; width: auto; margin: 0; }
  .toast { bottom: 84px; }
}

/* Project detail */
.project-card { width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.project-detail-view, #project-detail-root, .project-detail-panel { min-width: 0; max-width: 100%; }
.project-detail-head { padding: 0 16px; border: 1px solid var(--line); border-radius: 6px 6px 0 0; background: var(--surface); overflow: hidden; }
.project-back-button { min-height: 32px; padding: 0; border: 0; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; font-size: 9px; }
.project-back-button:hover { color: var(--ink); }
.project-back-button svg { width: 15px; height: 15px; }
.project-title-row { min-height: 62px; padding: 2px 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.project-title-main { min-width: 0; }
.project-title-line { margin-top: 5px; display: flex; align-items: center; gap: 10px; }
.project-title-line h1 { min-width: 0; margin: 0; overflow: hidden; font-size: 20px; font-weight: 580; text-overflow: ellipsis; white-space: nowrap; }
.project-title-main > p { margin: 5px 0 0; color: var(--muted); font-size: 8px; }
.project-detail-code { margin-top: 5px; font-size: 9px; }
.project-modal-code { display: block; margin-top: 5px; color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.4; }
.project-title-line .state-chip { flex: 0 0 auto; }
.project-title-row > .secondary-button { flex: 0 0 auto; }
.project-progress-fields label:first-child { position: relative; }
.project-progress-fields label:first-child input { padding-right: 30px; }
.project-progress-fields .field-suffix { position: absolute; right: 12px; bottom: 12px; color: var(--muted); font-size: 10px; }
.project-detail-facts { margin: 0 -16px; padding: 0 16px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.project-detail-facts > div { min-width: 0; min-height: 58px; padding: 9px 13px; border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.project-detail-facts div:first-child { border-left: 0; }
.project-detail-facts span { color: var(--muted); font-size: 9px; }
.project-detail-facts strong { overflow: hidden; color: var(--ink); font-size: 11px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.project-detail-facts .progress-track { width: 100%; max-width: 120px; height: 4px; }
.project-detail-tabs { min-height: 48px; border-bottom: 1px solid var(--line-strong); display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; }
.project-detail-tabs::-webkit-scrollbar { display: none; }
.project-detail-tabs button { position: relative; min-height: 48px; padding: 0 2px; border: 0; background: transparent; color: var(--muted); font-size: 10px; white-space: nowrap; }
.project-detail-tabs button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
.project-detail-tabs button.active { color: var(--ink); font-weight: 600; }
.project-detail-tabs button.active::after { background: var(--primary); }
.project-detail-panel { padding-top: 14px; }
.project-detail-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr); gap: 24px; }
.project-detail-section { min-width: 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); }
.project-timeline-section { min-width: 0; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); overflow: hidden; }

/* V1.3 data collection and project master */
.capture-mode-badges { display: inline-flex; gap: 3px; }
.capture-mode-badges b, .capture-mobile-badges b { min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; color: #fff; display: inline-grid; place-items: center; font-size: 8px; line-height: 16px; font-variant-numeric: tabular-nums; }
.capture-mode-badges b.danger, .capture-mobile-badges b.danger { background: var(--red); }
.capture-mode-badges b.warning, .capture-mobile-badges b.warning { background: var(--amber); }
.capture-mode-badges b:empty, .capture-mobile-badges b:empty { display: none; }
.capture-governance-tabs { min-height: 44px; margin-bottom: 12px; border-bottom: 1px solid var(--line-strong); display: flex; gap: 22px; overflow-x: auto; scrollbar-width: none; }
.capture-governance-tabs::-webkit-scrollbar { display: none; }
.capture-governance-tabs button { position: relative; min-height: 44px; padding: 0 2px; border: 0; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; font-size: 10px; white-space: nowrap; }
.capture-governance-tabs button::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: transparent; }
.capture-governance-tabs button.active { color: var(--ink); font-weight: 650; }
.capture-governance-tabs button.active::after { background: var(--primary); }
.capture-governance-tabs button.danger-tab.active, .capture-governance-tabs button.danger-tab b { color: var(--red); }
.capture-governance-tabs b { min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--surface-soft); color: var(--muted); display: inline-grid; place-items: center; font-size: 8px; font-variant-numeric: tabular-nums; }
.capture-summary-strip { margin-bottom: 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); overflow: hidden; }
.capture-summary-strip button, .capture-summary-strip article { min-width: 0; min-height: 66px; margin: 0; padding: 10px 12px; border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--muted); display: grid; align-content: center; gap: 4px; text-align: left; }
.capture-summary-strip button:first-child, .capture-summary-strip article:first-child { border-left: 0; }
.capture-summary-strip button.active { background: var(--primary-soft); color: var(--primary); }
.capture-summary-strip strong { color: var(--ink); font-size: 18px; font-weight: 600; }
.capture-summary-strip span { font-size: 9px; }
.capture-summary-strip article.danger strong { color: var(--red); }
.capture-summary-strip article.warning strong { color: var(--amber); }
.capture-summary-strip article.blue strong { color: #376c9d; }
.capture-summary-strip article.success strong { color: var(--primary); }
.capture-connector-band { min-height: 58px; margin-bottom: 12px; padding: 10px 12px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); display: grid; grid-template-columns: minmax(230px, 1fr) auto auto; gap: 14px; align-items: center; }
.capture-connector-band > div:first-child { min-width: 0; display: flex; align-items: center; gap: 10px; }
.capture-connector-band > div:first-child > span:last-child { min-width: 0; }
.capture-connector-band strong, .capture-connector-band small { display: block; }
.capture-connector-band strong { overflow: hidden; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.capture-connector-band small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.capture-connector-metrics { display: flex; gap: 14px; }
.capture-connector-metrics span { min-width: 42px; color: var(--muted); display: grid; gap: 3px; font-size: 8px; text-align: right; }
.capture-connector-metrics b { color: var(--ink); font-size: 11px; font-weight: 650; }
.capture-governance-tabs { min-height: 48px; margin-bottom: 16px; border-bottom: 1px solid var(--line); display: flex; align-items: end; gap: 24px; }
.capture-governance-tabs button { min-height: 48px; padding: 0 2px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.capture-governance-tabs button.active { border-bottom-color: var(--primary); color: var(--ink); }
.capture-governance-tabs b { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px; background: var(--surface-soft); color: var(--muted); display: inline-grid; place-items: center; font-size: 12px; font-weight: 650; }
.capture-governance-tabs button.active b { background: var(--primary-soft); color: var(--primary); }
.capture-attention { min-height: 44px; margin-bottom: 12px; border: 1px solid #ead8b6; background: #fffaf0; display: flex; align-items: stretch; }
.capture-attention[hidden] { display: none; }
.capture-attention button { min-height: 44px; padding: 0 14px; border: 0; border-right: 1px solid #ead8b6; background: transparent; color: #715018; display: flex; align-items: center; gap: 8px; font-size: 14px; }
.capture-attention button.incident { color: var(--red); }
.capture-attention button.capture-return { border-right-color: #e6c9c6; color: var(--red); font-weight: 650; }
.capture-attention button svg { width: 16px; height: 16px; }
.capture-attention button svg:last-child { margin-left: auto; }
.capture-attention-context { min-height: 44px; padding: 0 14px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; font-size: 13px; }
.capture-attention-context svg { width: 16px; height: 16px; color: var(--red); }
.capture-secondary-entry { min-height: 40px; margin-bottom: 12px; display: flex; justify-content: flex-end; align-items: center; }
.capture-secondary-entry .secondary-button { min-height: 36px; font-size: 12px; }
.capture-toolbar, .master-toolbar { margin-bottom: 10px; display: grid; grid-template-columns: minmax(240px, 1fr) repeat(4, minmax(120px, auto)); gap: 8px; align-items: end; }
.capture-toolbar.incident-only { grid-template-columns: minmax(240px, 1fr); }
.capture-toolbar.incident-only .compact-select { display: none; }
.master-toolbar { grid-template-columns: minmax(260px, 1fr) minmax(130px, auto) auto auto; }
.compact-select { min-width: 0; color: var(--muted); display: grid; gap: 5px; font-size: 12px; }
.compact-select select { min-width: 0; height: 38px; padding: 0 28px 0 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); font-size: 14px; }
.capture-result-bar, .master-result-bar { min-height: 40px; color: var(--muted); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; }
.capture-table { table-layout: fixed; }
.capture-table th:first-child { width: 22%; }
.capture-table th:nth-child(2) { width: 20%; }
.capture-table th:nth-child(3) { width: 17%; }
.capture-table th:nth-child(4) { width: 15%; }
.capture-table th:nth-child(5) { width: 11%; }
.capture-table th:nth-child(6) { width: 10%; }
.capture-table th:last-child { width: 48px; }
.capture-table th { font-size: 12px; }
.capture-table td, .master-table td { vertical-align: middle; }
.capture-table td { height: 64px; font-size: 14px; }
.capture-table .state-chip { min-height: 24px; padding: 4px 8px; font-size: 12px; }
.capture-table td strong, .capture-table td small, .master-table td strong, .master-table td small { display: block; }
.capture-table td strong { max-height: 40px; overflow: hidden; line-height: 1.4; }
.capture-table td small, .master-table td small { max-width: 290px; margin-top: 4px; color: var(--muted); overflow: hidden; font-size: 12px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.capture-table .capture-row-result { font-weight: 600; }
.capture-record-row.has-incident td:first-child { border-left: 3px solid var(--red); }
.capture-table td .danger-text { color: var(--red); }
.confirmation-kind { width: max-content; max-width: 100%; min-height: 23px; padding: 4px 7px; border-radius: 5px; background: var(--blue-soft); color: var(--blue); display: inline-flex; align-items: center; font-size: 8px; font-weight: 600; }
.confirmation-kind.meeting_review { background: var(--primary-soft); color: var(--primary); }
.confirmation-kind.field_conflict { background: var(--amber-soft); color: var(--amber); }
.master-table th:first-child { width: 17%; }
.master-table th:nth-child(5) { width: 15%; }
.capture-mobile-list, .master-mobile-list { display: none; }
.capture-pagination { min-height: 48px; display: flex; justify-content: flex-end; align-items: center; gap: 9px; color: var(--muted); font-size: 12px; }
.capture-incident-row td:first-child { border-left: 3px solid var(--red); }
.incident-state { font-weight: 650; }
.incident-state.open { color: var(--red); }
.incident-state.retrying { color: var(--amber); }
.incident-state.resolved, .incident-state.manually_closed { color: var(--muted); }
.incident-alert { border-left: 3px solid var(--red); background: var(--red-soft); display: flex; align-items: flex-start; gap: 10px; }
.incident-alert h3 { color: var(--red); }
.incident-alert p { margin: 5px 0 0; color: var(--red); overflow-wrap: anywhere; font-size: 9px; line-height: 1.6; }
.incident-close-form { display: grid; gap: 10px; }
.incident-close-form > p { margin: 0; color: var(--muted); font-size: 9px; }
.incident-close-form label { color: var(--muted); display: grid; gap: 6px; font-size: 9px; }
.incident-close-form input, .incident-close-form textarea { width: 100%; min-height: 38px; padding: 9px 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: #fff; color: var(--ink); resize: vertical; }
.capture-connector-dialog { width: min(980px, calc(100% - 28px)); }
.capture-connector-dialog .modal-card { padding: 20px; }
.capture-connector-mobile { display: none; }
.master-directory { display: grid; gap: 18px; }
.master-project-group { min-width: 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: var(--surface); }
.master-project-group > header { min-height: 62px; padding: 10px 14px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 11px; align-items: center; }
.master-project-group > header > div { min-width: 0; }
.master-project-group > header h2 { margin: 0; color: var(--ink); font-size: 13px; font-weight: 700; line-height: 1.35; }
.master-project-group > header p { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.master-project-group > header > strong { min-width: 28px; color: var(--muted); font-size: 14px; font-weight: 650; text-align: right; font-variant-numeric: tabular-nums; }
.master-group-icon { width: 34px; height: 34px; border-radius: 6px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.master-group-icon svg { width: 17px; height: 17px; }
.master-project-list { border-top: 1px solid var(--line); }
.master-project-row { width: 100%; min-width: 0; min-height: 68px; padding: 10px 14px; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--ink); display: grid; grid-template-columns: minmax(240px, 2fr) 88px minmax(110px, .8fr) minmax(110px, .8fr) minmax(100px, .7fr) 18px; gap: 14px; align-items: center; text-align: left; }
.master-project-row:first-child { border-top: 0; }
.master-project-row:hover { background: #f7faf8; }
.master-project-row:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--primary); outline-offset: -2px; }
.master-project-row > svg { width: 16px; height: 16px; color: var(--muted); }
.master-project-identity { min-width: 0; }
.master-project-identity strong, .master-project-identity small { display: block; }
.master-project-identity strong { color: var(--ink); overflow-wrap: anywhere; font-size: 13px; font-weight: 700; line-height: 1.4; }
.master-project-identity small { margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.project-stage-chip { width: max-content; max-width: 100%; min-height: 25px; padding: 5px 8px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; font-size: 8px; font-weight: 650; white-space: nowrap; }
.project-stage-chip.delivery { background: #e6f3ec; color: #256445; }
.project-stage-chip.internal { background: #eeeafa; color: #6550a0; }
.project-stage-chip.operations { background: #fff1d8; color: #8a5b16; }
.project-stage-chip.presale { background: #e8f0fa; color: #315f91; }
.project-stage-chip.presale-closed { background: #f5e8e7; color: #8b4741; }
.project-stage-chip.completed { background: #edf0ef; color: #65706b; }
.master-project-fact { min-width: 0; }
.master-project-fact small, .master-project-fact strong { display: block; }
.master-project-fact small { color: var(--muted); font-size: 8px; line-height: 1.3; }
.master-project-fact strong { margin-top: 5px; overflow: hidden; font-size: 9px; font-weight: 600; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.master-group-empty { min-height: 58px; padding: 18px 14px; color: var(--muted); font-size: 9px; text-align: center; }
.side-drawer { width: min(640px, 100vw); max-width: none; height: 100vh; max-height: none; margin: 0 0 0 auto; padding: 0; border: 0; border-left: 1px solid var(--line); background: var(--surface); color: var(--ink); box-shadow: var(--shadow); display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.side-drawer:not([open]) { display: none; }
.side-drawer::backdrop { background: rgba(14, 22, 18, .36); }
.side-drawer > form { height: 100%; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.drawer-header { min-height: 112px; padding: 20px 24px; border-bottom: 1px solid var(--line); background: var(--surface); display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.drawer-header h2 { max-width: 500px; margin: 4px 0 0; overflow-wrap: anywhere; font-size: 18px; font-weight: 650; line-height: 1.4; }
.drawer-header p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.capture-detail-header-tags { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.drawer-body { min-height: 0; padding: 0 24px 24px; overflow-y: auto; }
.drawer-section { padding: 20px 0; border-bottom: 1px solid var(--line); }
.drawer-section h3 { margin: 0 0 12px; font-size: 16px; font-weight: 650; }
.capture-result-section > h3 { margin: 6px 0 10px; font-size: 18px; line-height: 1.45; }
.capture-result-links { display: flex; flex-wrap: wrap; gap: 8px; }
.capture-result-links span, .capture-result-links button { min-height: 32px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); color: var(--ink); display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.capture-result-links button { cursor: pointer; }
.capture-result-links svg { width: 15px; height: 15px; color: var(--primary); }
.capture-next-step { margin: 12px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.capture-file-heading { margin-bottom: 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.capture-file-heading h3 { margin: 0; }
.capture-project-heading { margin-bottom: 12px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.capture-project-heading h3 { margin: 0 0 5px; }
.capture-project-heading p { max-width: 370px; margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.capture-project-heading .state-chip { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.capture-project-save { min-height: 36px; margin-top: 10px; }
.capture-file-row { min-width: 0; min-height: 54px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.capture-file-icon { width: 36px; height: 36px; border-radius: 6px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; }
.capture-file-icon svg { width: 17px; height: 17px; }
.capture-file-name { min-width: 0; }
.capture-file-name strong, .capture-file-name small { display: block; }
.capture-file-name strong { overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.capture-file-name small { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.capture-file-actions { display: flex; align-items: center; gap: 6px; }
.capture-file-actions .secondary-button { min-height: 36px; padding-inline: 10px; }
.capture-file-actions .icon-button { width: 36px; height: 36px; }
.capture-source-audio { width: 100%; height: 38px; margin-top: 12px; display: block; }
.capture-source-audio[hidden] { display: none; }
.capture-structured-heading { margin-bottom: 4px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.capture-structured-heading h3 { margin: 0; }
.capture-structured-actions { display: flex; align-items: center; gap: 6px; }
.capture-structured-actions .secondary-button { min-height: 34px; padding-inline: 9px; }
.capture-structured-actions .icon-button { width: 34px; height: 34px; }
.capture-policy-note { margin: 10px 0 0; padding: 10px 12px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: var(--text); font-size: 12px; line-height: 1.6; }
.capture-structured-block { padding-top: 14px; }
.capture-structured-block + .capture-structured-block { margin-top: 14px; border-top: 1px solid var(--line); }
.capture-structured-block h4 { margin: 0 0 9px; color: var(--muted); font-size: 9px; font-weight: 600; }
.capture-structured-block h4 span { margin-left: 5px; color: var(--primary); font-variant-numeric: tabular-nums; }
.capture-summary-lines { display: grid; gap: 7px; }
.capture-summary-lines p { margin: 0; color: #37423c; font-size: 14px; line-height: 1.65; }
.capture-structured-list { display: grid; }
.capture-structured-list article { min-width: 0; padding: 10px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; }
.capture-structured-list article:first-child { border-top: 0; }
.capture-structured-index { width: 28px; height: 24px; border-radius: 5px; background: var(--primary-soft); color: var(--primary); display: grid; place-items: center; font-size: 8px; font-weight: 650; font-variant-numeric: tabular-nums; }
.capture-structured-index.decision { background: var(--blue-soft); color: var(--blue); }
.capture-structured-list strong, .capture-structured-list small, .capture-structured-list p { display: block; }
.capture-structured-list strong { font-size: 14px; font-weight: 600; line-height: 1.55; }
.capture-structured-list small { margin-top: 5px; color: var(--muted); font-size: 12px; }
.capture-structured-list p { margin: 6px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.capture-structured-list p b { margin-right: 6px; color: var(--amber); font-weight: 600; }
.drawer-actions { min-height: 68px; padding: 12px 24px; border-top: 1px solid var(--line); background: var(--surface); display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.confirmation-overview p { margin: 11px 0 0; color: #3f4b45; overflow-wrap: anywhere; font-size: 9px; line-height: 1.65; }
.confirmation-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.confirmation-source-text { max-height: 260px; margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); color: #3c4842; overflow: auto; white-space: pre-wrap; font-size: 9px; line-height: 1.7; }
.confirmation-section-heading { margin-bottom: 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.confirmation-section-heading h3 { margin-bottom: 5px; }
.confirmation-section-heading p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.confirmation-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.confirmation-form-grid > label, .confirmation-note { min-width: 0; color: var(--muted); display: grid; gap: 6px; font-size: 8px; }
.confirmation-form-grid .wide { grid-column: 1 / -1; }
.confirmation-form-grid input, .confirmation-form-grid select, .confirmation-form-grid textarea, .confirmation-note textarea { width: 100%; min-height: 36px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--surface); color: var(--ink); resize: vertical; font-size: 10px; }
.confirmation-flags { min-height: 32px; display: flex; align-items: center; gap: 18px; }
.confirmation-flags label { color: var(--ink); display: inline-flex; align-items: center; gap: 6px; font-size: 9px; }
.confirmation-payload-section dd { overflow-wrap: anywhere; white-space: pre-wrap; }
.confirmation-actions .danger-button { margin-right: auto; color: var(--red); }
.team-member-actions #team-member-delete { margin-right: auto; }
.capture-step-list { display: grid; gap: 12px; }
.capture-step-list article { min-width: 0; display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: 10px; align-items: start; }
.capture-step-list .status-dot { margin-top: 4px; }
.capture-step-list strong, .capture-step-list p, .capture-step-list small { display: block; }
.capture-step-list strong { font-size: 14px; font-weight: 600; }
.capture-step-list p { margin: 4px 0 0; color: #47514c; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.capture-step-list small { margin-top: 3px; color: var(--muted); font-size: 12px; }
.capture-failure { margin: 0; padding: 12px; border-left: 3px solid var(--red); background: var(--red-soft); color: var(--red); overflow-wrap: anywhere; font-size: 14px; line-height: 1.6; }
.detail-list { margin: 0; display: grid; }
.detail-list > div { min-width: 0; padding: 8px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
.detail-list > div:first-child { border-top: 0; }
.detail-list dt { color: var(--muted); font-size: 12px; }
.detail-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 14px; }
.capture-collapsible { display: block; }
.capture-collapsible summary { min-height: 44px; list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 16px; font-weight: 650; }
.capture-collapsible summary::-webkit-details-marker { display: none; }
.capture-collapsible summary svg { width: 18px; height: 18px; transition: transform .18s ease; }
.capture-collapsible[open] summary svg { transform: rotate(180deg); }
.capture-collapsible-body { padding-top: 12px; }
.ledger-results { display: flex; flex-wrap: wrap; gap: 6px; }
.master-form-grid { padding-top: 17px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.master-form-grid label { min-width: 0; color: var(--muted); display: grid; gap: 6px; font-size: 9px; }
.master-form-grid input, .master-form-grid select, .master-form-grid textarea { width: 100%; min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); resize: vertical; }
.master-form-grid .full-field { grid-column: 1 / -1; }
.master-progress-field { position: relative; }
.master-progress-field input { padding-right: 30px; }
.master-progress-field .field-suffix { position: absolute; right: 12px; bottom: 11px; color: var(--muted); font-size: 10px; pointer-events: none; }
.master-finance-fields { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.master-finance-fields label { min-width: 0; }
.master-form-grid .check-field { min-height: 38px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; display: flex; align-items: center; gap: 8px; }
.master-form-grid .check-field input { width: 16px; min-height: 16px; margin: 0; }
.import-preview { min-height: 54px; margin-top: 12px; color: var(--muted); font-size: 9px; }
.import-summary { min-height: 38px; padding: 8px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.import-row { min-height: 38px; padding: 7px 0; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; }
.import-row span { color: var(--ink); }
.import-row small { color: var(--muted); text-align: right; }

@media (max-width: 1180px) {
  .capture-toolbar { grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(130px, auto)); }
  .capture-toolbar .compact-select:nth-last-child(-n+2) { grid-row: 2; }
  .master-toolbar { grid-template-columns: minmax(220px, 1fr) minmax(120px, auto) auto auto; }
  .master-toolbar > button { grid-row: 2; }
  .master-project-row { grid-template-columns: minmax(210px, 1.7fr) 82px minmax(100px, .8fr) minmax(100px, .8fr) 18px; }
  .master-project-row .master-project-fact:last-of-type { display: none; }
}

@media (max-width: 760px) {
  .capture-mode-badges { position: absolute; top: -4px; right: -5px; }
  .capture-governance-tabs { gap: 17px; }
  .capture-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capture-summary-strip button, .capture-summary-strip article { min-height: 58px; border-top: 1px solid var(--line); }
  .capture-summary-strip button:nth-child(2n + 1), .capture-summary-strip article:nth-child(2n + 1) { border-left: 0; }
  .capture-summary-strip button:nth-child(-n + 2), .capture-summary-strip article:nth-child(-n + 2) { border-top: 0; }
  .capture-summary-strip strong { font-size: 15px; }
  .capture-connector-band { grid-template-columns: 1fr auto; gap: 9px; }
  .capture-connector-metrics { grid-column: 1 / -1; justify-content: space-between; }
  .capture-connector-metrics span { text-align: left; }
  .capture-toolbar, .master-toolbar { grid-template-columns: 1fr 1fr; align-items: stretch; }
  .capture-toolbar .search-box, .master-toolbar .search-box { grid-column: 1 / -1; }
  .capture-toolbar .compact-select:nth-last-child(-n+2), .master-toolbar > button { grid-row: auto; }
  .master-toolbar > button { min-width: 0; padding-inline: 8px; }
  .capture-table, .master-table { display: none; }
  .capture-table-surface, .master-table-surface { border: 0; background: transparent; overflow: visible; }
  .capture-mobile-list, .master-mobile-list { display: grid; gap: 8px; }
  .capture-mobile-row, .master-mobile-row { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--ink); display: grid; grid-template-columns: minmax(0, 1fr) auto 14px; gap: 8px; align-items: center; text-align: left; }
  .capture-mobile-row > small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; }
  .capture-mobile-row strong, .capture-mobile-row span > small, .master-mobile-row strong, .master-mobile-row span > small { display: block; }
  .capture-mobile-row strong, .master-mobile-row strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
  .capture-mobile-row span > small, .master-mobile-row span > small { margin-top: 4px; color: var(--muted); font-size: 8px; }
  .capture-mobile-row > svg, .master-mobile-row > svg { width: 14px; }
  .capture-pagination { justify-content: center; }
  .capture-connector-dialog .data-table { display: none; }
  .capture-connector-mobile { display: grid; gap: 8px; }
  .capture-connector-mobile article { padding: 11px; border: 1px solid var(--line); border-radius: 6px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
  .capture-connector-mobile strong, .capture-connector-mobile small { display: block; }
  .capture-connector-mobile small { margin-top: 4px; color: var(--muted); font-size: 8px; }
  .capture-mobile-badges { position: absolute; top: 2px; right: calc(50% - 25px); display: inline-flex; gap: 2px; }
  .bottom-nav .capture-mobile-badges b { position: static; min-width: 14px; height: 14px; padding: 0 3px; line-height: 14px; }
  .master-directory { gap: 14px; }
  .master-project-group > header { min-height: 58px; padding: 9px 11px; }
  .master-project-group > header p { display: none; }
  .master-project-row { min-height: 96px; padding: 11px; grid-template-columns: repeat(3, minmax(0, 1fr)) 18px; grid-template-rows: auto auto; gap: 10px 8px; }
  .master-project-identity { grid-column: 1 / 4; }
  .master-project-identity strong { font-size: 12px; white-space: normal; }
  .master-project-identity small { font-size: 8px; }
  .project-stage-chip { grid-column: 4; grid-row: 1; align-self: start; justify-self: end; }
  .master-project-fact { grid-row: 2; }
  .master-project-row .master-project-fact:last-of-type { display: block; }
  .master-project-row > svg { grid-column: 4; grid-row: 2; align-self: center; justify-self: end; }
  .side-drawer { width: 100%; border-left: 0; }
  .drawer-header { min-height: 76px; padding: 14px; }
  .drawer-body { padding: 0 14px 20px; }
  .capture-file-row { grid-template-columns: 36px minmax(0, 1fr); }
  .capture-file-actions { grid-column: 1 / -1; }
  .capture-file-actions .secondary-button { flex: 1; justify-content: center; }
  .capture-structured-heading { align-items: flex-start; flex-direction: column; }
  .capture-structured-actions { width: 100%; }
  .capture-structured-actions .secondary-button { flex: 1; justify-content: center; }
  .drawer-actions { padding: 10px 14px max(10px, env(safe-area-inset-bottom)); }
  .drawer-actions button { flex: 1; }
  .confirmation-form-grid { grid-template-columns: 1fr; }
  .confirmation-form-grid .wide { grid-column: auto; }
  .confirmation-source-text { max-height: 220px; }
  .team-member-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-member-actions #team-member-delete { margin-right: 0; }
  .master-form-grid { grid-template-columns: 1fr; }
  .master-form-grid .full-field { grid-column: auto; }
  .master-finance-fields { grid-template-columns: 1fr; }
}
.project-section-heading { min-height: 60px; padding: 11px 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.project-section-heading h2 { margin: 0; font-size: 13px; font-weight: 580; }
.project-section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 9px; }
.project-detail-list, .project-activity-list { border-top: 1px solid var(--line); }
.project-detail-list > button, .project-activity-list > button { width: 100%; min-height: 61px; padding: 9px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.project-activity-list > button { justify-content: flex-start; }
.project-detail-list > button:last-child, .project-activity-list > button:last-child { border-bottom: 0; }
.project-detail-list > button:hover, .project-activity-list > button:hover { background: var(--surface-soft); }
.project-detail-list strong, .project-detail-list small, .project-activity-list strong, .project-activity-list small { display: block; }
.project-detail-list strong, .project-activity-list strong { font-size: 10px; font-weight: 560; }
.project-detail-list small, .project-activity-list small { margin-top: 5px; color: var(--muted); font-size: 8px; }
.project-activity-icon, .project-file-icon { width: 31px; height: 31px; flex: 0 0 auto; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; }
.project-activity-icon[data-type="meeting"] { background: var(--purple-soft); color: var(--purple); }
.project-activity-icon[data-type="risk"] { background: var(--red-soft); color: var(--red); }
.project-activity-icon[data-type="client"] { background: var(--amber-soft); color: var(--amber); }
.project-activity-icon[data-type="file"] { background: var(--primary-soft); color: var(--primary); }
.project-activity-icon svg, .project-file-icon svg { width: 15px; height: 15px; }
.project-activity-group { border-bottom: 1px solid var(--line); }
.project-activity-group:last-child { border-bottom: 0; }
.project-activity-group > summary { min-height: 76px; padding: 12px 16px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; align-items: center; cursor: pointer; list-style: none; }
.project-activity-group > summary::-webkit-details-marker { display: none; }
.project-activity-group > summary:hover { background: var(--surface-soft); }
.project-activity-summary { min-width: 0; }
.project-activity-summary strong, .project-activity-summary small { display: block; }
.project-activity-summary strong { overflow: hidden; font-size: 14px; line-height: 1.45; font-weight: 560; text-overflow: ellipsis; white-space: nowrap; }
.project-activity-summary small { margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.project-activity-end { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.project-activity-end > svg { width: 15px; height: 15px; color: var(--muted); transition: transform .16s ease; }
.project-activity-group[open] .project-activity-end > svg { transform: rotate(180deg); }
.project-activity-events { padding: 0 16px 10px 64px; background: var(--surface-soft); border-top: 1px solid var(--line); }
.project-activity-events > button { width: 100%; min-height: 58px; padding: 9px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; display: grid; grid-template-columns: 86px minmax(0, 1fr) 16px; gap: 10px; align-items: center; text-align: left; }
.project-activity-events > button:last-child { border-bottom: 0; }
.project-activity-events > button:hover strong { color: var(--primary); }
.project-activity-events time { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.project-activity-events strong, .project-activity-events small { display: block; }
.project-activity-events strong { font-size: 12px; font-weight: 580; }
.project-activity-events small { margin-top: 4px; color: var(--muted); display: -webkit-box; overflow: hidden; font-size: 11px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.project-activity-events > button > svg { width: 14px; height: 14px; color: var(--muted); }
.project-empty { min-height: 110px; padding: 30px 16px; color: var(--muted); display: grid; place-items: center; font-size: 9px; text-align: center; }
.project-timeline-range { color: var(--muted); font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.project-timeline-tools { min-height: 52px; padding: 8px 14px; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 10px; }
.project-timeline-tools .search-box { min-width: 230px; max-width: 390px; }
.project-timeline-tools .search-box input { height: 34px; }
.project-timeline-tools .search-box svg { top: 9px; }
.project-timeline-filters { margin-left: auto; padding: 3px; background: #e5eae7; display: flex; overflow-x: auto; }
.project-timeline-filters button { min-height: 28px; padding: 0 9px; border: 0; background: transparent; color: var(--muted); font-size: 9px; white-space: nowrap; }
.project-timeline-filters button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22,35,29,.09); }
.project-timeline-scroll { max-width: 100%; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); background: #fbfcfc; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: #aab5af #eef1ef; scrollbar-width: thin; }
.project-timeline-canvas { position: relative; min-width: 980px; height: 198px; }
.project-timeline-period { position: absolute; left: 48px; right: 48px; top: 18px; color: var(--muted); display: flex; justify-content: space-between; font-size: 8px; }
.project-timeline-axis { position: absolute; left: 48px; right: 48px; top: 102px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, var(--primary), #7ca492 72%, var(--line-strong)); }
.project-timeline-tick { position: absolute; top: 87px; left: var(--x); width: 1px; height: 35px; background: var(--line-strong); }
.project-timeline-tick span { position: absolute; top: 67px; left: 50%; transform: translateX(-50%); color: var(--muted); font-size: 8px; white-space: nowrap; }
.project-timeline-marker { position: absolute; z-index: 2; left: var(--x); top: 82px; width: 42px; height: 42px; padding: 0; transform: translateX(-50%); border: 4px solid #fbfcfc; border-radius: 50%; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; box-shadow: 0 0 0 1px var(--line-strong); }
.project-timeline-marker:hover { transform: translateX(-50%) translateY(-2px); }
.project-timeline-marker.active { color: #fff; background: var(--primary); box-shadow: 0 0 0 3px rgba(45,90,67,.22); }
.project-timeline-marker[data-type="meeting"] { background: var(--purple-soft); color: var(--purple); }
.project-timeline-marker[data-type="risk"] { background: var(--red-soft); color: var(--red); }
.project-timeline-marker[data-type="client"] { background: var(--amber-soft); color: var(--amber); }
.project-timeline-marker[data-type="file"] { background: var(--primary-soft); color: var(--primary); }
.project-timeline-marker[data-type="milestone"] { background: var(--surface); color: var(--blue); border-style: dashed; }
.project-timeline-marker.active[data-type] { color: #fff; background: var(--primary); border-style: solid; }
.project-timeline-marker svg { width: 15px; height: 15px; }
.project-timeline-marker b { position: absolute; right: -7px; top: -7px; min-width: 19px; height: 19px; padding: 0 5px; border: 2px solid #fbfcfc; border-radius: 10px; background: var(--ink); color: #fff; display: grid; place-items: center; font-size: 8px; font-weight: 600; }
.project-timeline-marker time { position: absolute; top: 48px; left: 50%; min-height: 18px; padding: 2px 5px; transform: translateX(-50%); color: var(--muted); font-size: 8px; font-weight: 500; white-space: nowrap; pointer-events: none; }
.project-timeline-marker.active time { color: var(--primary); font-weight: 650; }
.project-timeline-selection { min-height: 150px; border-top: 1px solid var(--line-strong); }
.project-timeline-day-head { min-height: 64px; padding: 11px 16px; background: var(--surface-soft); display: grid; grid-template-columns: minmax(170px,.35fr) minmax(0,1fr); gap: 20px; align-items: center; }
.project-timeline-day-head > div { min-width: 0; }
.project-timeline-day-head span, .project-timeline-day-head strong { display: block; }
.project-timeline-day-head span { margin-top: 3px; color: var(--muted); font-size: 8px; }
.project-timeline-day-head strong { color: var(--ink); font-size: 11px; font-weight: 580; }
.project-timeline-day-list { border-top: 1px solid var(--line); }
.project-timeline-day-record { min-height: 96px; padding: 13px 16px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 11px; align-items: start; }
.project-timeline-day-record:last-child { border-bottom: 0; }
.project-timeline-day-record > div { min-width: 0; }
.project-timeline-task-group { border-bottom: 1px solid var(--line); }
.project-timeline-task-group:last-child { border-bottom: 0; }
.project-timeline-task-group > summary { min-height: 70px; padding: 12px 16px; background: var(--surface-soft); display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
.project-timeline-task-group > summary::-webkit-details-marker { display: none; }
.project-timeline-task-group > summary > span:first-child { min-width: 0; }
.project-timeline-task-group > summary strong, .project-timeline-task-group > summary small { display: block; }
.project-timeline-task-group > summary strong { overflow: hidden; font-size: 13px; line-height: 1.45; font-weight: 580; text-overflow: ellipsis; white-space: nowrap; }
.project-timeline-task-group > summary small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.project-timeline-task-group > summary > span:last-child { display: flex; align-items: center; gap: 9px; }
.project-timeline-task-group > summary > span:last-child > svg { width: 15px; height: 15px; color: var(--muted); transition: transform .16s ease; }
.project-timeline-task-group[open] > summary > span:last-child > svg { transform: rotate(180deg); }
.project-timeline-task-group > div { padding-left: 28px; }
.project-timeline-task-group .project-timeline-day-record { border-left: 2px solid var(--line-strong); }
.project-timeline-day-record header { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.project-timeline-day-record h3 { min-width: 0; margin: 0; font-size: 11px; line-height: 1.5; font-weight: 580; }
.project-timeline-day-record p { margin: 6px 0 0; color: #4c5652; font-size: 9px; line-height: 1.65; }
.project-selection-meta { margin-top: 11px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 11px; font-size: 8px; }
.project-selection-meta span { display: inline-flex; align-items: center; gap: 4px; }
.project-selection-meta svg { width: 13px; height: 13px; }
.project-selection-meta span:last-child { min-width: 0; overflow-wrap: anywhere; }
.project-timeline-empty { min-height: 172px; }
.project-items-table { border-top: 1px solid var(--line); overflow-x: auto; }
.project-items-table table { min-width: 680px; }
.project-items-table th:first-child { width: 48%; }
.project-items-table td small { margin-top: 4px; color: var(--muted); display: block; font-size: 8px; }
.project-items-table tbody tr { cursor: pointer; }
.project-record-list, .project-file-list { border-top: 1px solid var(--line); }
.project-record-list article { min-height: 112px; padding: 14px 2px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.project-record-list article:last-child, .project-file-list article:last-child { border-bottom: 0; }
.project-record-list h3 { margin: 7px 0 0; font-size: 11px; font-weight: 580; }
.project-record-list p { max-width: 820px; margin: 7px 0; color: #4c5652; font-size: 9px; line-height: 1.65; }
.project-record-list small { color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
.project-file-list article { min-height: 72px; padding: 11px 2px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.project-file-list strong, .project-file-list small, .project-file-list em { display: block; }
.project-file-list strong { font-size: 10px; font-weight: 560; }
.project-file-list small { margin-top: 4px; color: var(--muted); font-size: 8px; }
.project-file-list em { margin-top: 5px; color: var(--muted); font-size: 8px; font-style: normal; overflow-wrap: anywhere; }

@media (max-width: 1080px) {
  .project-detail-grid { grid-template-columns: 1fr; }
  .project-detail-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .project-detail-facts div:nth-child(4) { border-left: 0; }
  .project-detail-facts div:nth-child(n+4) { border-top: 1px solid var(--line); }
}

@media (max-width: 760px) {
  .project-detail-view { overflow: visible; }
  .project-detail-head { padding: 0 12px; }
  .project-back-button { min-height: 34px; }
  .project-title-row { min-height: 66px; padding-bottom: 10px; }
  .project-title-line { align-items: flex-start; flex-direction: column; gap: 6px; }
  .project-title-line h1 { max-width: 100%; font-size: 16px; line-height: 1.4; white-space: normal; }
  .project-title-main > p { line-height: 1.5; }
  .project-title-row > .secondary-button { width: 38px; padding: 0; }
  .project-title-row > .secondary-button span { display: none; }
  .project-detail-facts { margin: 0 -12px; padding: 0 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-detail-facts > div { min-height: 56px; padding: 9px 10px; }
  .project-detail-facts > div:nth-child(odd) { border-left: 0; }
  .project-detail-facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .project-detail-tabs { gap: 18px; }
  .project-detail-panel { padding-top: 13px; }
  .project-detail-grid { gap: 16px; }
  .project-timeline-tools { align-items: stretch; flex-direction: column; }
  .project-timeline-tools .search-box { width: 100%; max-width: none; min-width: 0; }
  .project-timeline-filters { width: 100%; margin-left: 0; }
  .project-timeline-filters button { flex: 1; }
  .project-timeline-range { display: none; }
  .project-timeline-scroll { width: 100%; max-width: 100%; margin-left: 0; }
  .project-timeline-canvas { height: 184px; }
  .project-timeline-day-head { grid-template-columns: 1fr; gap: 7px; }
  .project-timeline-day-record { padding: 12px; }
  .project-timeline-day-record header { flex-direction: column; gap: 7px; }
  .project-selection-meta { align-items: flex-start; flex-direction: column; gap: 6px; }
  .project-record-list article { grid-template-columns: 1fr; gap: 8px; }
  .project-record-list article > .state-chip { justify-self: start; }
  .project-file-list article { grid-template-columns: 31px minmax(0, 1fr); }
  .project-file-list article > .state-chip { grid-column: 2; justify-self: start; }
}

/* Project center responsive refresh */
.project-toolbar { margin-bottom: 8px; display: grid; grid-template-columns: minmax(230px, 1fr) auto repeat(3, minmax(128px, auto)); gap: 8px; align-items: end; }
.project-toolbar .search-box { min-width: 0; }
.project-toolbar .search-box input { height: 40px; font-size: 13px; }
.project-toolbar .search-box svg { top: 12px; }
.project-type-filter { height: 40px; padding: 3px; border-radius: 7px; background: #e5eae7; display: flex; }
.project-type-filter button { min-width: 54px; min-height: 34px; padding: 0 10px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font-size: 12px; }
.project-type-filter button.active { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(22,35,29,.09); }
.project-filter-field { min-width: 0; display: grid; gap: 4px; }
.project-filter-field > span { color: var(--muted); font-size: 11px; }
.project-filter-field select { min-width: 0; width: 100%; height: 40px; padding: 0 30px 0 10px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); font-size: 12px; }
.project-result-bar { min-height: 34px; margin-bottom: 8px; color: var(--muted); display: flex; align-items: center; font-size: 12px; }
.project-board { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.project-card { min-height: 236px; padding: 16px; border-radius: 6px; display: flex; flex-direction: column; }
.project-card-top { min-height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.project-card-top time { color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.project-card .state-chip { min-height: 26px; font-size: 11px; }
.project-card-main { min-width: 0; flex: 1; }
.project-card h2 { margin: 14px 0 6px; font-size: 16px; line-height: 1.45; font-weight: 600; }
.project-card p { margin: 0; color: var(--muted); display: flex; align-items: center; gap: 5px; font-size: 13px; }
.project-card p svg { width: 14px; height: 14px; }
.project-progress { margin: 15px 0 11px; grid-template-columns: minmax(0, 1fr) 42px; gap: 10px; }
.project-progress strong { font-size: 12px; text-align: right; }
.project-alerts { min-height: 26px; display: flex; flex-wrap: wrap; gap: 6px; }
.project-alert-badge { min-height: 25px; padding: 0 8px; border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; }
.project-alert-badge svg { width: 13px; height: 13px; }
.project-alert-badge.risk { background: var(--red-soft); color: var(--red); }
.project-alert-badge.waiting { background: var(--amber-soft); color: var(--amber); }
.project-next { position: relative; min-height: 64px; margin: 13px -16px -16px; padding: 11px 42px 12px 16px; border-top: 1px solid var(--line); background: var(--surface-soft); display: grid; gap: 4px; align-content: center; }
.project-next span { color: var(--muted); font-size: 11px; }
.project-next strong { min-width: 0; overflow: hidden; display: -webkit-box; font-size: 13px; line-height: 1.45; font-weight: 580; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.project-next > svg { position: absolute; right: 16px; top: 50%; width: 16px; height: 16px; color: var(--muted); transform: translateY(-50%); }
.internal-board .project-card:only-child { grid-column: 1 / -1; }

.project-title-main > p, .project-detail-facts span { font-size: 12px; }
.project-detail-facts strong { font-size: 14px; }
.project-detail-facts .progress-track { flex: 0 0 6px; min-height: 6px; max-height: 6px; height: 6px; overflow: hidden; }
.project-detail-tabs button { min-height: 48px; font-size: 13px; }
.project-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.project-detail-section { height: 100%; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.project-section-heading { min-height: 78px; padding: 14px 16px; }
.project-section-heading h2 { font-size: 15px; }
.project-section-heading p { margin-top: 6px; font-size: 12px; line-height: 1.45; }
.project-section-heading .text-button { min-height: 40px; font-size: 12px; }
.project-detail-list > button, .project-activity-list > button { min-height: 76px; padding: 12px 16px; }
.project-detail-list > button > span:first-child, .project-activity-list > button > span:nth-child(2) { min-width: 0; }
.project-detail-list strong, .project-activity-list strong { overflow: hidden; font-size: 14px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.project-detail-list small, .project-activity-list small { margin-top: 6px; font-size: 12px; line-height: 1.45; }
.project-activity-icon, .project-file-icon { width: 36px; height: 36px; }
.project-empty { font-size: 13px; }
.project-timeline-range { font-size: 12px; }
.project-timeline-tools { min-height: 64px; padding: 10px 14px; }
.project-timeline-tools .search-box input { height: 40px; font-size: 13px; }
.project-timeline-tools .search-box svg { top: 12px; }
.project-timeline-filters button { min-height: 40px; padding: 0 11px; font-size: 12px; }
.mobile-filter-label, .project-timeline-mobile { display: none; }
.project-timeline-day-head span { font-size: 12px; }
.project-timeline-day-head strong { font-size: 14px; }
.project-timeline-day-record { min-height: 108px; padding: 16px; }
.project-timeline-day-record h3 { font-size: 14px; }
.project-timeline-day-record p { font-size: 13px; }
.project-selection-meta { font-size: 12px; }
.project-source-button, .project-record-source > span, .project-file-list article > span:nth-child(2) > span { min-width: 0; padding: 0; border: 0; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; font: inherit; font-size: 12px; text-align: left; }
.project-source-button { cursor: pointer; }
.project-source-button span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-source-button svg, .project-record-source svg { width: 14px; height: 14px; flex: 0 0 auto; }
.project-source-button svg:last-child { color: var(--primary); }
.project-record-list, .project-file-list, .project-items-table { border-top: 1px solid var(--line); }
.project-record-list article { min-height: 128px; padding: 16px; }
.project-record-list h3 { font-size: 14px; }
.project-record-list p { font-size: 13px; }
.project-record-list small, .project-record-source { margin-top: 8px; font-size: 12px; }
.project-file-list article { min-height: 84px; padding: 14px 16px; }
.project-file-list strong { font-size: 14px; }
.project-file-list small { margin-top: 5px; font-size: 12px; }
.project-file-list .project-source-button { margin-top: 7px; }
.project-items-table td, .project-items-table th { font-size: 13px; }
.project-items-table td small { font-size: 12px; }
.project-source-modal { width: min(640px, calc(100% - 28px)); }
.project-source-dialog { padding: 18px; }
.project-source-dialog code { max-height: 180px; margin: 4px 0 18px; padding: 14px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: block; overflow: auto; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }

@media (min-width: 1200px) {
  .internal-board .project-card:only-child { min-height: 132px; display: grid; grid-template-columns: minmax(180px,.55fr) minmax(300px,1.2fr) minmax(260px,1fr); align-items: stretch; }
  .internal-board .project-card:only-child .project-card-top { padding-right: 16px; flex-direction: column; align-items: flex-start; justify-content: center; }
  .internal-board .project-card:only-child .project-card-main { padding: 0 20px; border-left: 1px solid var(--line); display: grid; grid-template-columns: minmax(0,1fr) minmax(170px,.7fr); grid-template-rows: auto auto; align-content: center; column-gap: 20px; }
  .internal-board .project-card:only-child h2 { margin: 0 0 6px; }
  .internal-board .project-card:only-child .project-progress { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
  .internal-board .project-card:only-child .project-alerts { grid-column: 1 / -1; margin-top: 8px; }
  .internal-board .project-card:only-child .project-next { min-height: 100%; margin: 0 -16px 0 0; border-top: 0; border-left: 1px solid var(--line); }
}

@media (max-width: 1199px) {
  .project-toolbar { grid-template-columns: minmax(240px, 1fr) auto repeat(3, minmax(118px, .45fr)); }
  .project-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  .project-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .project-toolbar .project-search { grid-column: span 2; }
  .project-type-filter { grid-column: span 1; }
  .project-type-filter button { min-width: 0; flex: 1; }
  .project-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .project-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .project-toolbar .project-search, .project-type-filter { grid-column: 1 / -1; }
  .project-type-filter button { flex: 1; }
  .project-filter-field:last-child { grid-column: 1 / -1; }
  .project-result-bar { min-height: 30px; }
  .project-board { grid-template-columns: 1fr; }
  .project-card { min-height: 224px; }
  .project-detail-facts .progress-track { flex: 0 0 6px; min-height: 6px; max-height: 6px; height: 6px; }
  .project-section-heading { min-height: 74px; }
  .project-detail-list > button, .project-activity-list > button { padding: 12px; }
  .project-detail-list strong, .project-activity-list strong { white-space: normal; }
  .project-timeline-tools { gap: 8px; }
  .project-timeline-filters { padding: 0; gap: 6px; background: transparent; overflow: visible; }
  .project-timeline-filters button { min-width: 0; min-height: 40px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
  .project-timeline-filters button.active { border-color: var(--primary); background: var(--primary-soft); color: var(--primary); box-shadow: none; }
  .project-timeline-filters .mobile-extra-filter { display: none; }
  .desktop-filter-label { display: none; }
  .mobile-filter-label { display: inline; }
  .project-timeline-desktop { display: none; }
  .project-timeline-mobile { border-top: 1px solid var(--line); display: block; }
  .project-mobile-month { border-bottom: 1px solid var(--line); }
  .project-mobile-month:last-child { border-bottom: 0; }
  .project-mobile-month > summary { min-height: 48px; padding: 0 14px; cursor: pointer; list-style: none; display: grid; grid-template-columns: minmax(0,1fr) auto 18px; gap: 8px; align-items: center; }
  .project-mobile-month > summary::-webkit-details-marker { display: none; }
  .project-mobile-month > summary span { font-size: 14px; font-weight: 600; }
  .project-mobile-month > summary strong { color: var(--muted); font-size: 12px; font-weight: 500; }
  .project-mobile-month > summary svg { width: 16px; height: 16px; color: var(--muted); transition: transform .18s ease; }
  .project-mobile-month[open] > summary svg { transform: rotate(180deg); }
  .project-mobile-month-body { border-top: 1px solid var(--line); }
  .project-mobile-day > header { min-height: 42px; padding: 8px 14px; background: var(--surface-soft); display: flex; align-items: center; justify-content: space-between; }
  .project-mobile-day > header time { font-size: 13px; font-weight: 600; }
  .project-mobile-day > header span { color: var(--muted); font-size: 11px; }
  .project-mobile-day .project-timeline-day-record { min-height: 0; padding: 14px; }
  .project-source-button { max-width: 100%; min-height: 32px; }
  .project-source-dialog { padding: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Team member master data and structured assignment controls. */
.team-member-row { width: 100%; border-right: 0; border-bottom: 0; border-left: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.team-member-row:hover { background: var(--surface-soft); }
.team-commandbar { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.team-toolbar { margin-bottom: 10px; display: grid; grid-template-columns: minmax(260px, 1fr) repeat(4, minmax(120px, auto)); gap: 8px; align-items: end; }
.team-result-bar { min-height: 36px; padding: 0 4px; border-bottom: 1px solid var(--line-strong); color: var(--muted); display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 9px; }
.team-mobile-list, .team-capacity-mobile { display: none; }
.capacity-table th:first-child { width: 20%; }
.capacity-table td small { margin-top: 4px; color: var(--muted); display: block; }
.member-detail-section { border-top: 1px solid var(--line-strong); }
.member-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); }
.member-detail-grid > div { min-width: 0; min-height: 58px; padding: 10px; border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 5px; align-content: center; }
.member-detail-grid > div:nth-child(odd) { border-left: 0; }
.member-detail-grid > div:nth-child(-n+2) { border-top: 0; }
.member-detail-grid span, .member-detail-block span { color: var(--muted); font-size: 9px; }
.member-detail-grid strong { overflow-wrap: anywhere; font-size: 10px; }
.member-detail-block { margin-top: 16px; }
.member-detail-block h3 { margin: 0 0 6px; font-size: 10px; }
.member-detail-block p { margin: 0; min-height: 44px; padding: 8px 2px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.member-detail-block p strong { min-width: 0; font-size: 9px; }
.member-detail-block p span { text-align: right; }
.project-team-editor { padding: 14px 0; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line); }
.project-team-editor-heading { margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.project-team-editor-heading strong, .project-team-editor-heading span { display: block; }
.project-team-editor-heading strong { color: var(--ink); font-size: 11px; }
.project-team-editor-heading span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.project-team-rows { display: grid; gap: 8px; }
.project-team-row { min-width: 0; padding: 9px; border: 1px solid var(--line); display: grid; grid-template-columns: minmax(130px, 1.25fr) minmax(110px, 1fr) 72px 118px 118px 88px 36px; gap: 7px; align-items: end; }
.project-team-row label { min-width: 0; }
.project-team-row input, .project-team-row select { min-height: 36px; }
.project-owner-check { min-height: 36px; padding: 8px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink) !important; display: grid !important; grid-template-columns: 16px 1fr; align-items: center; }
.project-owner-check input { width: 16px; min-height: 16px; margin: 0; }
.project-team-warning { margin: 10px 0 0; padding: 9px 10px; border-left: 3px solid var(--red); background: var(--red-soft); color: var(--red); font-size: 9px; line-height: 1.55; }
.task-assignment-editor { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line-strong); }
.task-assignment-editor h3 { margin: 0 0 10px; font-size: 11px; }
.form-grid select[multiple] { min-height: 78px; }
.capture-person-match { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.capture-person-match label { color: var(--muted); font-size: 9px; display: grid; gap: 5px; }
.capture-person-match select { min-height: 34px; padding: 6px 8px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); color: var(--ink); }
.capture-person-match p { margin: 6px 0 0 !important; color: var(--muted); font-size: 8px !important; line-height: 1.55; }

@media (max-width: 760px) {
  .team-commandbar { align-items: stretch; }
  .team-commandbar .view-switch { min-width: 0; flex: 1; }
  .team-commandbar .view-switch button { flex: 1; }
  .team-commandbar .primary-button { width: 40px; padding: 0; }
  .team-commandbar .primary-button span { display: none; }
  .team-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-toolbar .search-box { grid-column: 1 / -1; min-width: 0; }
  .team-toolbar .compact-select:last-child { grid-column: 1 / -1; }
  .team-result-bar { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 8px; }
  .team-list, .capacity-table { display: none; }
  .team-mobile-list, .team-capacity-mobile { display: grid; }
  .team-mobile-row { min-width: 0; min-height: 76px; padding: 10px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 16px; gap: 9px; align-items: center; text-align: left; }
  .team-mobile-row > span:nth-child(2) { min-width: 0; }
  .team-mobile-row strong, .team-mobile-row small, .team-mobile-row em { display: block; }
  .team-mobile-row strong { font-size: 11px; }
  .team-mobile-row small, .team-mobile-row em { margin-top: 4px; color: var(--muted); font-size: 8px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .team-mobile-row > svg { width: 15px; color: var(--muted); }
  .team-capacity-card { min-width: 0; padding: 12px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; text-align: left; }
  .team-capacity-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .team-capacity-card header strong, .team-capacity-card header small { display: block; }
  .team-capacity-card header small { margin-top: 4px; color: var(--muted); font-size: 8px; }
  .team-capacity-card dl { margin: 10px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
  .team-capacity-card dl div { padding: 8px; border-left: 1px solid var(--line); }
  .team-capacity-card dl div:nth-child(3n+1) { border-left: 0; }
  .team-capacity-card dt { color: var(--muted); font-size: 8px; }
  .team-capacity-card dd { margin: 4px 0 0; font-size: 11px; font-weight: 600; }
  .project-team-row { grid-template-columns: minmax(0, 1fr) 88px 36px; align-items: end; }
  .project-team-row label:nth-child(1), .project-team-row label:nth-child(2) { grid-column: span 3; }
  .project-team-row label:nth-child(3), .project-team-row label:nth-child(4), .project-team-row label:nth-child(5) { grid-column: span 1; }
  .project-team-row .project-owner-check { grid-column: span 2; }
  .project-team-editor-heading { align-items: flex-start; }
}

/* Market workspace */
.market-commandbar { min-height: 62px; }
.market-commandbar .primary-button, .market-commandbar .secondary-button, .market-commandbar .icon-button { min-height: 40px; }
.market-source-state strong { font-size: 13px; }
.market-source-state small { font-size: 11px; line-height: 1.45; }
.market-provider-tags span { min-height: 30px; font-size: 11px; }
.market-section-nav { position: sticky; top: 0; z-index: 12; min-height: 48px; margin-bottom: 12px; padding: 5px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.96); box-shadow: 0 5px 14px rgba(22,35,29,.06); backdrop-filter: blur(8px); display: flex; align-items: center; gap: 3px; }
.market-section-nav button { min-height: 36px; padding: 0 15px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 600; }
.market-section-nav button:hover { background: var(--surface-soft); color: var(--ink); }
.market-section-nav button.active { background: var(--primary-soft); color: var(--primary); }
.market-section-nav svg { width: 15px; height: 15px; }
#market-overview, #market-fund-flow, #market-trading { scroll-margin-top: 60px; }
.market-overview-grid { display: grid; grid-template-columns: minmax(0, 1.62fr) minmax(320px, .78fr); gap: 12px; align-items: stretch; }
.market-index-panel, .market-news-panel { min-height: 0; }
.market-news-panel { display: flex; flex-direction: column; overflow: hidden; contain: size; }
.market-index-panel .state-chip, .market-news-panel .state-chip, .market-watch-panel .state-chip { min-height: 28px; font-size: 11px; }
.market-index-tabs { margin-top: 4px; padding: 3px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.market-index-tab { min-width: 0; min-height: 62px; padding: 8px 11px; border: 0; border-left: 1px solid var(--line); background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
.market-index-tab:first-child { border-left: 0; }
.market-index-tab:hover { background: #f5f8f6; }
.market-index-tab.active { border-radius: 4px; background: var(--surface); box-shadow: inset 0 -3px 0 var(--primary), 0 1px 3px rgba(22,35,29,.08); }
.market-index-tab span, .market-index-tab strong, .market-index-tab small, .market-index-tab b, .market-index-tab em { min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-index-tab strong { font-size: 13px; font-weight: 650; }
.market-index-tab small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.market-index-tab > span:last-child { text-align: right; }
.market-index-tab b { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.market-index-tab b.market-up, .market-index-tab em.market-up { color: #b33d38; }
.market-index-tab b.market-down, .market-index-tab em.market-down { color: #217a52; }
.market-index-tab em { margin-top: 4px; font-size: 11px; font-style: normal; font-weight: 600; }
.market-index-focus-head { min-height: 50px; padding-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.market-index-focus-head > div:first-child { min-width: 0; }
.market-index-focus-head strong, .market-index-focus-head small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.market-index-focus-head strong { font-size: 14px; }
.market-index-focus-head small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.market-index-quote { min-height: 40px; display: flex; align-items: baseline; gap: 10px; }
.market-index-quote strong { font-size: 32px; font-weight: 700; font-variant-numeric: tabular-nums; }
.market-index-quote span { padding-left: 10px; border-left: 1px solid var(--line); font-size: 12px; font-weight: 600; }
.market-index-range { flex-wrap: wrap; background: #f1f4f7; }
.market-index-range button { min-height: 34px; padding: 0 9px; font-size: 11px; }
.market-index-range button.active { color: var(--primary); }
.market-index-range button:disabled { color: #aab3bb; opacity: 1; cursor: not-allowed; }
.market-index-summary { margin: 8px 0 10px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 18px; }
.market-index-summary span { min-height: 28px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.market-index-summary small { color: var(--muted); font-size: 11px; }
.market-index-summary strong { font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
.market-index-chart { position: relative; height: 280px; border: 1px solid var(--line); background: #fafcfb; overflow: hidden; }
.market-index-chart.is-empty { background: var(--surface-soft); }
.market-index-chart svg, .market-chart svg { width: 100%; height: 100%; display: block; }
.market-chart-canvas { --market-hover-x: 50%; --market-hover-y: 50%; --market-tooltip-y: 50%; position: relative; width: 100%; height: 100%; cursor: crosshair; touch-action: pan-y; user-select: none; }
.market-chart-canvas:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.market-chart-canvas .market-y-tick text { font-variant-numeric: tabular-nums; }
.market-axis-mobile { display: none; }
.market-chart-crosshair, .market-chart-hover-dot, .market-chart-tooltip { position: absolute; z-index: 3; opacity: 0; pointer-events: none; }
.market-chart-crosshair { border-color: rgba(75, 89, 82, .58); border-style: dashed; }
.market-chart-crosshair.vertical { top: 4.762%; bottom: 4.762%; left: var(--market-hover-x); border-width: 0 0 0 1px; }
.market-chart-crosshair.horizontal { top: var(--market-hover-y); right: 8.667%; left: 8.667%; border-width: 1px 0 0; }
.market-chart-hover-dot { top: var(--market-hover-y); left: var(--market-hover-x); width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #1683ff; box-shadow: 0 0 0 1px #1683ff; transform: translate(-50%, -50%); }
.market-chart-tooltip { top: var(--market-tooltip-y); left: var(--market-hover-x); min-width: 132px; padding: 8px 10px; border: 1px solid rgba(29, 43, 36, .16); border-radius: 5px; background: rgba(255, 255, 255, .97); box-shadow: 0 6px 18px rgba(22, 35, 29, .14); display: grid; gap: 3px; transform: translate(12px, -50%); }
.market-chart-canvas.tooltip-left .market-chart-tooltip { transform: translate(calc(-100% - 12px), -50%); }
.market-chart-tooltip time { color: var(--muted); font-size: 10px; font-variant-numeric: tabular-nums; }
.market-chart-tooltip strong { color: var(--ink); font-size: 12px; font-weight: 650; font-variant-numeric: tabular-nums; }
.market-chart-tooltip span { font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.market-chart-canvas.show-hover .market-chart-crosshair, .market-chart-canvas.show-hover .market-chart-hover-dot, .market-chart-canvas.show-hover .market-chart-tooltip { opacity: 1; }
.market-chart-axis { position: relative; min-height: 18px; color: var(--muted); display: block; font-size: 10px; font-variant-numeric: tabular-nums; }
.market-chart-axis span { position: absolute; transform: translateX(-50%); white-space: nowrap; }
.market-chart-axis span:first-child { transform: translateX(0); }
.market-chart-axis span:last-child { transform: translateX(-100%); }
.market-freshness { color: var(--muted); font-size: inherit; font-style: normal; font-weight: 600; }
.market-freshness.current { color: var(--primary); }
.market-freshness.stale { color: var(--amber); }
.market-sparkline-empty { width: 100%; height: 100%; color: var(--muted); display: grid; place-items: center; font-size: 11px; }
.market-breadth { padding-top: 12px; }
.market-breadth-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.market-breadth-head span { display: flex; align-items: baseline; gap: 7px; }
.market-breadth-head strong { font-size: 13px; }
.market-breadth-head small, .market-breadth-head time { color: var(--muted); font-size: 11px; }
.market-breadth-bar { height: 8px; margin: 10px 0; background: #e4e8e6; display: flex; overflow: hidden; }
.market-breadth-bar span { min-width: 2px; }
.market-breadth-bar .up { background: #c84c46; }
.market-breadth-bar .flat { background: #aeb5b1; }
.market-breadth-bar .down { background: #2d8a60; }
.market-breadth-values { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--line); }
.market-breadth-values span { min-height: 48px; padding: 8px 6px; border-left: 1px solid var(--line); color: var(--muted); display: flex; flex-direction: column; gap: 5px; font-size: 11px; text-align: center; }
.market-breadth-values span:first-child { border-left: 0; }
.market-breadth-values strong { color: var(--ink); font-size: 13px; font-variant-numeric: tabular-nums; }
.market-breadth-values .market-up, .market-breadth-values .market-up strong { color: #b33d38; }
.market-breadth-values .market-down, .market-breadth-values .market-down strong { color: #217a52; }
.market-breadth-values .market-limit-up, .market-breadth-values .market-limit-up strong { color: #8f2825; }
.market-breadth-values .market-limit-down, .market-breadth-values .market-limit-down strong { color: #155d3c; }
.market-module-state { min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: flex; align-items: center; gap: 12px; }
.market-module-state strong { flex: 0 0 auto; font-size: 13px; }
.market-module-state span { color: var(--muted); font-size: 12px; }
.market-module-state.warning { border-color: #ead9b8; background: var(--amber-soft); }
.market-news-list { min-height: 0; max-height: none; padding-right: 12px; overflow-y: auto; flex: 1 1 auto; scrollbar-gutter: stable; }
.market-news-list article { min-height: 78px; border-top: 1px solid var(--line); }
.market-news-list article:first-child { border-top: 0; }
.market-news-item { position: relative; min-height: 78px; padding: 12px 26px 12px 4px; color: inherit; display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 12px; text-decoration: none; }
.market-news-link { border-radius: 4px; transition: background .15s ease; }
.market-news-link:hover { background: var(--surface-soft); }
.market-news-link:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.market-news-link > svg { position: absolute; top: 50%; right: 5px; width: 14px; height: 14px; color: var(--muted); transform: translateY(-50%); }
.market-news-list time { color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.market-news-list strong, .market-news-list p, .market-news-list small { display: block; }
.market-news-list strong { overflow: hidden; font-size: 13px; line-height: 1.45; font-weight: 600; }
.market-news-list p { margin: 5px 0; color: var(--muted); display: -webkit-box; overflow: hidden; font-size: 12px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.market-news-list small { color: var(--muted); font-size: 11px; }
.market-empty { min-height: 72px; color: var(--muted); display: grid; place-items: center; font-size: 12px; }
.market-flow-panel { margin-top: 12px; padding: 16px; }
.market-flow-heading { align-items: flex-start; }
.market-flow-heading-actions { display: flex; align-items: center; gap: 9px; }
.market-flow-source { color: var(--muted); display: flex; align-items: center; gap: 6px; font-size: 11px; white-space: nowrap; }
.market-flow-source .status-dot { width: 7px; height: 7px; }
.market-flow-toolbar { min-height: 50px; margin: 12px 0; padding: 5px 6px 5px 12px; border: 1px solid var(--line); background: var(--surface-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.market-flow-toolbar-meta { min-width: 0; color: var(--muted); display: flex; align-items: center; gap: 12px; font-size: 11px; }
.market-flow-toolbar-meta strong { color: var(--ink); font-size: 12px; font-weight: 600; }
.market-flow-period { padding: 3px; border-radius: 5px; background: #e9eceb; display: flex; gap: 2px; }
.market-flow-period button, .market-flow-mode button { min-width: 52px; min-height: 40px; padding: 0 11px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 12px; }
.market-flow-period button.active, .market-flow-mode button.active { background: var(--surface); color: var(--primary); box-shadow: 0 1px 4px rgba(22,35,29,.08); font-weight: 650; }
.market-flow-period button:focus-visible, .market-flow-mode button:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.market-flow-metrics { border: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.market-flow-metric { min-width: 0; min-height: 76px; padding: 12px 14px; border-left: 1px solid var(--line); display: grid; gap: 7px; }
.market-flow-metric:first-child { border-left: 0; }
.market-flow-metric small { color: var(--muted); font-size: 11px; }
.market-flow-metric strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; font-weight: 680; }
.market-flow-metric span { font-size: 11px; font-variant-numeric: tabular-nums; }
.market-flow-grid { margin-top: 12px; border: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.market-flow-column { min-width: 0; padding: 0 15px 11px; border-left: 1px solid var(--line); }
.market-flow-column:first-child { border-left: 0; }
.market-flow-column-head { min-height: 62px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 9px; }
.market-flow-column-head > div:first-child { min-width: 0; }
.market-flow-column-head h3 { margin: 0; display: flex; align-items: center; gap: 7px; font-size: 14px; }
.market-flow-column-head h3 svg { width: 16px; color: var(--primary); }
.market-flow-column-head p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.market-flow-mode { flex: 0 0 auto; padding: 2px; border-radius: 5px; background: #eef0ef; display: flex; }
.market-flow-mode button { min-width: 44px; min-height: 34px; padding: 0 8px; font-size: 11px; }
.market-flow-list { min-height: 321px; }
.market-flow-row { min-height: 64px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 9px; align-items: center; }
.market-flow-row:last-child { border-bottom: 0; }
.market-flow-rank { width: 22px; height: 22px; border-radius: 4px; background: var(--surface-soft); color: var(--muted); display: grid; place-items: center; font-size: 11px; font-weight: 650; }
.market-flow-row:nth-child(-n+3) .market-flow-rank { background: var(--red-soft); color: var(--red); }
.market-flow-column.cold .market-flow-row:nth-child(-n+3) .market-flow-rank { background: #eef0ef; color: #646b68; }
.market-flow-name { min-width: 0; }
.market-flow-name strong, .market-flow-name small { display: block; }
.market-flow-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.market-flow-name small { margin-top: 5px; color: var(--muted); font-size: 11px; }
.market-flow-value { min-width: 76px; text-align: right; }
.market-flow-value strong, .market-flow-value small { display: block; font-variant-numeric: tabular-nums; }
.market-flow-value strong { font-size: 13px; }
.market-flow-value small { margin-top: 5px; font-size: 11px; }
.market-flow-bar { grid-column: 2 / 4; height: 3px; margin: -9px 0 7px; background: #eef0ef; overflow: hidden; }
.market-flow-bar span { display: block; height: 100%; background: #c84c46; }
.market-flow-column.cold .market-flow-bar span { background: #87918c; }
.market-flow-column.weak .market-flow-bar span { background: #2d8a60; }
.market-flow-note { margin: 11px 2px 0; color: var(--muted); display: flex; align-items: flex-start; gap: 7px; font-size: 11px; line-height: 1.55; }
.market-flow-note svg { width: 14px; flex: 0 0 auto; margin-top: 1px; }
.market-flow-loading { min-height: 76px; grid-column: 1 / -1; color: var(--muted); display: grid; place-items: center; font-size: 12px; }
.market-trading-grid { margin-top: 12px; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(350px, .7fr); gap: 12px; align-items: stretch; }
.market-watch-panel, .market-chart-panel { min-height: 410px; height: 100%; }
.market-chart-panel { position: static; }
.market-watch-heading-actions { display: flex; align-items: center; gap: 8px; }
.market-watch-add { min-height: 40px; padding: 0 12px; white-space: nowrap; }
.market-table { width: 100%; table-layout: fixed; }
.market-watch-panel .table-wrap { max-height: 430px; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; }
.market-table th { position: sticky; top: 0; z-index: 2; background: var(--surface); font-size: 11px; }
.market-table th:first-child { width: 23%; }
.market-table th:nth-child(2), .market-table th:nth-child(3), .market-table th:nth-child(4) { width: 10.5%; }
.market-table th:nth-child(5) { width: 11%; }
.market-table th:nth-child(6) { width: 13%; }
.market-table th:nth-child(7) { width: 14%; }
.market-table th:nth-child(8) { width: 7.5%; }
.market-table td { height: 64px; font-size: 12px; }
.market-table tr { cursor: pointer; }
.market-table tr:hover { background: var(--surface-soft); }
.market-table tr.active { background: #eef5f1; box-shadow: inset 3px 0 0 var(--primary); }
.market-table tr:focus-visible, .market-mobile-row:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.market-table .row-menu { width: 40px; height: 40px; }
.market-watch-panel .market-symbol strong { font-size: 13px; }
.market-watch-panel .market-symbol small { margin-top: 4px; font-size: 11px; }
.market-watch-panel .market-symbol .market-quote-meta { font-size: 10px; }
.market-data-value { font-size: 12px; font-variant-numeric: tabular-nums; }
.market-watch-empty td { height: 160px; color: var(--muted); text-align: center; cursor: default; }
.market-quote-date { color: var(--muted); display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-variant-numeric: tabular-nums; }
.market-quote-date small { font-size: 10px; }
.market-quote-head { gap: 10px; }
.market-quote-head span { padding-left: 10px; border-left: 1px solid var(--line); font-size: 12px; }
.market-range button { min-height: 40px; padding: 0 12px; font-size: 12px; }
.market-range button:disabled { cursor: not-allowed; opacity: .45; }
.market-chart { position: relative; height: 280px; background: #fafcfb; overflow: hidden; }
.market-chart + .market-chart-axis { margin-bottom: 0; }
.market-chart.is-empty { background: var(--surface-soft); }
.market-chart-empty { height: 100%; padding: 20px; color: var(--muted); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; text-align: center; }
.market-chart-empty strong { color: var(--ink); font-size: 14px; }
.market-chart-empty span { font-size: 12px; }
.market-chart-axis { font-size: 11px; }
.market-detail-meta { margin-top: 14px; border: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.market-detail-meta span { min-height: 56px; padding: 9px; border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 6px; }
.market-detail-meta span:first-child { border-left: 0; }
.market-detail-meta small { color: var(--muted); font-size: 11px; }
.market-detail-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 550; }
.market-disclaimer { margin: 10px 2px 0; color: var(--muted); font-size: 11px; text-align: right; }
.market-index-options { max-height: 430px; margin-top: 14px; border: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow-y: auto; }
.market-index-options label { min-height: 62px; padding: 10px 12px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 9px; align-items: center; cursor: pointer; }
.market-index-options label:nth-child(odd) { border-right: 1px solid var(--line); }
.market-index-options strong, .market-index-options small { display: block; }
.market-index-options strong { font-size: 13px; }
.market-index-options small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.market-stock-search-field { margin-top: 14px; color: var(--muted); display: grid; gap: 7px; font-size: 12px; }
.market-stock-search-field > span { min-height: 44px; border: 1px solid var(--line-strong); border-radius: 6px; background: var(--surface); display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; }
.market-stock-search-field svg { width: 16px; justify-self: center; color: var(--muted); }
.market-stock-search-field input { min-width: 0; height: 42px; padding: 0 10px 0 0; border: 0; outline: 0; background: transparent; font-size: 13px; }
.market-search-state { min-height: 32px; color: var(--muted); display: flex; align-items: center; font-size: 11px; }
.market-selected-stocks { min-height: 42px; max-height: 102px; margin-bottom: 10px; padding: 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-soft); display: flex; flex-wrap: wrap; align-content: flex-start; gap: 6px; overflow-y: auto; }
.market-selected-stocks.is-empty { align-items: center; }
.market-selected-stocks > span { padding: 0 5px; color: var(--muted); font-size: 11px; }
.market-selected-stocks button { min-height: 30px; padding: 0 7px 0 9px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); color: var(--ink); display: flex; align-items: center; gap: 5px; }
.market-selected-stocks button span { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.market-selected-stocks button small { color: var(--muted); font-size: 10px; }
.market-selected-stocks button svg { width: 13px; color: var(--muted); }
.market-search-results { min-height: 190px; max-height: 280px; border: 1px solid var(--line); border-radius: 6px; overflow-y: auto; }
.market-search-results:empty { background: var(--surface-soft); }
.market-search-result { width: 100%; min-height: 58px; padding: 9px 11px; border: 0; border-top: 1px solid var(--line); background: var(--surface); display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; }
.market-search-result:first-child { border-top: 0; }
.market-search-result:hover, .market-search-result.selected { background: var(--primary-soft); }
.market-search-result.existing { cursor: default; opacity: .68; }
.market-search-result span, .market-search-result strong, .market-search-result small { min-width: 0; display: block; }
.market-search-result strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.market-search-result small { margin-top: 4px; color: var(--muted); font-size: 11px; }
.market-search-result svg { width: 16px; flex: 0 0 auto; color: var(--primary); }
.market-search-action { color: var(--muted); display: flex !important; align-items: center; gap: 6px; font-size: 11px; white-space: nowrap; }
.market-mobile-list { display: none; }

@media (max-width: 1200px) {
  .market-overview-grid { grid-template-columns: 1fr; }
  .market-news-panel { display: block; overflow: visible; contain: none; }
  .market-news-list { max-height: 320px; padding-right: 8px; }
  .market-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-flow-column:nth-child(3) { grid-column: 1 / -1; border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 1080px) {
  .market-trading-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .market-watch-panel, .market-chart-panel { min-height: 0; }
  .market-watch-panel .table-wrap { display: none; }
  .market-mobile-list { display: grid; }
  .market-mobile-list:not(.expanded) .market-mobile-row:nth-of-type(n+7) { display: none; }
  .market-mobile-row { min-height: 112px; padding: 9px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: minmax(0, 1fr) 82px 40px; gap: 8px; align-items: center; }
  .market-mobile-row:first-child { border-top: 0; }
  .market-mobile-row.active { background: #eef5f1; box-shadow: inset 3px 0 0 var(--primary); }
  .market-mobile-quote strong, .market-mobile-quote small { display: block; text-align: right; }
  .market-mobile-quote strong { font-size: 13px; }
  .market-mobile-quote small { margin-top: 4px; font-size: 11px; }
  .market-mobile-row > button { width: 40px; height: 40px; border: 0; border-radius: 5px; background: var(--surface-soft); color: var(--muted); display: grid; place-items: center; }
  .market-mobile-row > button svg { width: 16px; }
  .market-mobile-data { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; color: var(--muted); }
  .market-mobile-data > span { min-width: 0; padding: 5px 8px; border-left: 1px solid var(--line); display: flex; flex-direction: column; gap: 4px; }
  .market-mobile-data > span:first-child { border-left: 0; padding-left: 0; }
  .market-mobile-data small { font-size: 11px; }
  .market-mobile-data strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 12px; font-weight: 550; font-variant-numeric: tabular-nums; }
  .market-mobile-expand { min-height: 44px; margin-top: 4px; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--primary); display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 12px; }
  .market-mobile-expand svg { width: 15px; }
}

@media (max-width: 760px) {
  .market-section-nav { display: none; }
  .market-flow-panel { padding: 13px; }
  .market-flow-heading { gap: 8px; }
  .market-flow-heading-actions { align-items: flex-end; flex-direction: column; }
  .market-flow-toolbar { align-items: stretch; flex-direction: column; padding: 10px; }
  .market-flow-toolbar-meta { justify-content: space-between; }
  .market-flow-toolbar-meta span { display: none; }
  .market-flow-period { width: 100%; overflow-x: auto; }
  .market-flow-period button { flex: 1 0 52px; }
  .market-flow-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-flow-metric:nth-child(odd) { border-left: 0; }
  .market-flow-metric:nth-child(n+3) { border-top: 1px solid var(--line); }
  .market-flow-grid { grid-template-columns: 1fr; }
  .market-flow-column, .market-flow-column:nth-child(3) { grid-column: auto; border-top: 1px solid var(--line); border-left: 0; }
  .market-flow-column:first-child { border-top: 0; }
  .market-flow-list { min-height: 0; }
  .market-commandbar { padding: 9px; gap: 7px; flex-wrap: wrap; }
  .market-source-state { width: 100%; }
  .market-provider-tags { display: none; }
  .market-commandbar [data-open-index-modal] { width: 40px; padding: 0; }
  .market-commandbar [data-open-index-modal] span { display: none; }
  .market-watch-add { width: 44px; min-height: 44px; padding: 0; }
  .market-watch-add span { display: none; }
  .market-trading-grid { gap: 10px; }
  .market-index-panel, .market-news-panel, .market-watch-panel, .market-chart-panel { min-height: 0; padding: 13px; }
  .market-index-panel .state-chip, .market-news-panel .state-chip, .market-watch-panel .state-chip { font-size: 10px; }
  .market-index-tabs { display: flex; overflow-x: auto; }
  .market-index-tab { flex: 0 0 145px; }
  .market-index-focus-head { align-items: flex-end; }
  .market-index-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
  .market-index-chart { height: 220px; }
  .market-axis-desktop { display: none; }
  .market-axis-mobile { display: inline; }
  .market-chart-axis span:nth-child(even) { display: none; }
  .market-chart-tooltip { min-width: 118px; padding: 7px 8px; }
  .market-index-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-index-metrics span:nth-child(odd) { border-left: 0; }
  .market-index-metrics span:nth-child(n+3) { border-top: 1px solid var(--line); }
  .market-breadth-values { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-breadth-values span:nth-child(4) { border-left: 0; }
  .market-breadth-values span:nth-child(n+4) { border-top: 1px solid var(--line); }
  .market-module-state { align-items: flex-start; flex-direction: column; gap: 4px; }
  .market-news-list { max-height: 320px; }
  .market-mobile-row { grid-template-columns: minmax(0, 1fr) 76px 40px; gap: 6px; }
  .market-chart { height: 240px; }
  .market-detail-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-detail-meta span:nth-child(odd) { border-left: 0; }
  .market-detail-meta span:nth-child(n+3) { border-top: 1px solid var(--line); }
  .market-index-options { grid-template-columns: 1fr; }
  .market-index-options label:nth-child(odd) { border-right: 0; }
  .market-disclaimer { text-align: left; line-height: 1.5; }
}

@media (min-width: 1280px) {
  #personal-view.active { height: calc(100vh - 108px); }
  .personal-today-strip.personal-v2-utility { height: 72px; min-height: 72px; margin-bottom: 10px; padding: 0 14px; grid-template-columns: 155px minmax(260px, 1fr) 210px minmax(560px, 620px); gap: 0; overflow: hidden; }
  .personal-dashboard-grid.personal-v2-grid { height: calc(100% - 82px); min-height: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: minmax(0, 1.03fr) minmax(0, .97fr); gap: 10px; }
  .personal-v2-player .personal-progress, .personal-v2-player .personal-volume { grid-column: auto; grid-row: auto; }
}

@media (min-width: 1280px) and (max-height: 900px) {
  .personal-today-strip.personal-v2-utility { height: 62px; min-height: 62px; margin-bottom: 8px; }
  .personal-dashboard-grid.personal-v2-grid { height: calc(100% - 70px); gap: 8px; }
}

/* Personal knowledge and market center: match the desktop viewport shell. */
@media (min-width: 761px) {
  body:has(#knowledge-view.active),
  body:has(#knowledge-detail-view.active),
  body:has(#market-view.active) { overflow: hidden; }
  body:has(#knowledge-view.active) .main-content,
  body:has(#knowledge-detail-view.active) .main-content,
  body:has(#market-view.active) .main-content { padding-bottom: 0; }

  #knowledge-view.active,
  #knowledge-detail-view.active,
  #market-view.active {
    width: 100%;
    max-width: none;
    height: calc(100vh - 90px);
    min-height: 0;
  }

  #knowledge-view.active { display: flex; flex-direction: column; overflow: hidden; }
  #knowledge-view.active .knowledge-status { flex: 0 0 auto; margin-bottom: 12px; }
  #knowledge-view.active .knowledge-toolbar { flex: 0 0 auto; margin-bottom: 10px; }
  #knowledge-view.active .knowledge-result-bar { flex: 0 0 auto; }
  #knowledge-view.active .personal-knowledge-results {
    min-height: 0;
    flex: 1 1 auto;
    align-content: start;
    padding-right: 4px;
    overflow-y: auto;
    scrollbar-gutter: stable;
  }
  #knowledge-view.active .personal-knowledge-results > .dashboard-empty {
    min-height: 100%;
    margin: 0;
    grid-column: 1 / -1;
    display: grid;
    place-items: center;
  }

  #knowledge-detail-view.active {
    display: block;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
    scrollbar-gutter: stable;
  }

  #market-view.active {
    display: block;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
  }
}

@media (min-width: 1280px) {
  #knowledge-view.active,
  #knowledge-detail-view.active,
  #market-view.active { height: calc(100vh - 108px); }

}

@media (min-width: 1600px) {
  #knowledge-view.active .personal-knowledge-results {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .project-activity-group > summary { min-height: 72px; padding: 11px 12px; grid-template-columns: 31px minmax(0, 1fr); gap: 10px; }
  .project-activity-summary strong { font-size: 13px; white-space: normal; }
  .project-activity-summary small { font-size: 11px; }
  .project-activity-end { grid-column: 2; justify-content: flex-start; }
  .project-activity-events { padding: 0 12px 8px 53px; }
  .project-activity-events > button { grid-template-columns: 1fr 14px; gap: 5px 9px; }
  .project-activity-events time { grid-column: 1; }
  .project-activity-events > button > span { grid-column: 1; }
  .project-activity-events > button > svg { grid-column: 2; grid-row: 1 / span 2; }
  .project-timeline-task-group > summary { align-items: flex-start; flex-direction: column; gap: 9px; }
  .project-timeline-task-group > summary strong { white-space: normal; }
  .project-timeline-task-group > div { padding-left: 12px; }
}

/* Mobile workbench V2: capture first, weekly work second, personal tools third. */
@media (max-width: 760px) {
  .main-content { padding: 0 12px calc(80px + env(safe-area-inset-bottom)); }
  .topbar { min-height: 56px; margin-bottom: 8px; }
  .topbar .page-heading { display: none; }
  .topbar .mobile-brand { display: grid; }
  .topbar-actions { margin-left: auto; }
  .mobile-primary-view.active { display: block !important; }
  .mobile-primary-heading { min-height: 65px; padding: 8px 1px 13px; border-bottom: 1px solid var(--line); display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
  .mobile-primary-heading h1 { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.35; }
  .mobile-primary-heading p { max-width: 235px; margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
  .mobile-primary-heading time { padding-top: 4px; color: var(--muted); font-size: 10px; white-space: nowrap; }
  .mobile-auto-route { margin-top: 11px; padding: 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 9px; align-items: center; }
  .mobile-auto-route > svg { width: 34px; height: 34px; padding: 8px; border-radius: 7px; background: var(--primary-soft); color: var(--primary); }
  .mobile-auto-route strong, .mobile-auto-route small { display: block; }
  .mobile-auto-route strong { font-size: 11px; }
  .mobile-auto-route small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.5; }
  .mobile-source-grid { margin-top: 9px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
  .mobile-source-grid button { min-width: 0; min-height: 104px; padding: 11px 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
  .mobile-source-grid button > svg { width: 31px; height: 31px; margin-bottom: 11px; padding: 7px; border-radius: 7px; background: var(--primary-soft); color: var(--primary); }
  .mobile-source-grid strong, .mobile-source-grid small { display: block; }
  .mobile-source-grid strong { font-size: 10px; }
  .mobile-source-grid small { margin-top: 4px; color: var(--muted); font-size: 8px; line-height: 1.45; overflow-wrap: anywhere; }
  .mobile-recent-section { margin-top: 20px; }
  .mobile-section-title { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
  .mobile-section-title h2 { margin: 0; font-size: 15px; }
  .mobile-section-title span { color: var(--muted); font-size: 10px; }
  .mobile-recent-list { border-top: 1px solid var(--line); }
  .mobile-recent-row { width: 100%; min-height: 64px; padding: 8px 1px; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 8px; align-items: center; text-align: left; }
  .mobile-recent-row > svg { width: 34px; height: 34px; padding: 8px; border-radius: 7px; background: var(--primary-soft); color: var(--primary); }
  .mobile-recent-row > span:nth-child(2) { min-width: 0; }
  .mobile-recent-row strong, .mobile-recent-row small { display: block; }
  .mobile-recent-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
  .mobile-recent-row small { margin-top: 4px; color: var(--muted); font-size: 8px; }
  .mobile-recent-row .state-chip { font-size: 8px; white-space: nowrap; }
  .mobile-primary-empty { margin: 0; padding: 18px 4px; color: var(--muted); font-size: 10px; text-align: center; }
  .mobile-week-summary { margin-top: 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--line); overflow: hidden; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; }
  .mobile-week-summary span { padding: 10px 3px; background: var(--surface); text-align: center; font-size: 9px; }
  .mobile-week-summary strong { margin-bottom: 3px; display: block; font-size: 17px; }
  .mobile-week-module { margin-top: 15px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .mobile-week-module > summary { min-height: 56px; padding: 8px 1px; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; }
  .mobile-week-module > summary::-webkit-details-marker { display: none; }
  .mobile-week-module summary strong, .mobile-week-module summary small { display: block; }
  .mobile-week-module summary strong { font-size: 13px; }
  .mobile-week-module summary small { margin-top: 3px; color: var(--muted); font-size: 9px; }
  .mobile-week-module[open] > summary > svg { transform: rotate(180deg); }
  .mobile-week-task { width: 100%; min-height: 57px; padding: 7px 1px 7px 10px; border: 0; border-top: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: 7px minmax(0, 1fr) auto; gap: 8px; align-items: center; text-align: left; }
  .mobile-week-task > i { width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
  .mobile-week-task > i.risk { background: var(--amber); }
  .mobile-week-task strong, .mobile-week-task small { display: block; }
  .mobile-week-task strong { font-size: 10px; line-height: 1.45; }
  .mobile-week-task small { margin-top: 3px; color: var(--muted); font-size: 8px; }
  .mobile-week-task .state-chip { font-size: 8px; white-space: nowrap; }
  .mobile-running-project { width: 100%; min-height: 60px; padding: 7px 1px; border: 0; border-top: 1px solid var(--line); background: transparent; display: grid; grid-template-columns: minmax(0, 1fr) 62px 31px; gap: 7px; align-items: center; text-align: left; }
  .mobile-running-project strong, .mobile-running-project small { display: block; }
  .mobile-running-project strong { font-size: 10px; }
  .mobile-running-project small { margin-top: 3px; color: var(--muted); font-size: 8px; }
  .mobile-project-progress { height: 5px; border-radius: 999px; background: var(--line); overflow: hidden; }
  .mobile-project-progress i { height: 100%; display: block; border-radius: inherit; background: var(--primary); }
  .mobile-running-project em { color: var(--muted); font-size: 9px; font-style: normal; text-align: right; }
  .bottom-nav { min-height: 66px; grid-template-columns: repeat(3, 1fr); padding: 5px 22px max(6px, env(safe-area-inset-bottom)); }
  .bottom-nav button { min-height: 49px; font-size: 10px; }
  .bottom-nav button > svg { width: 19px; height: 19px; }
  .bottom-nav b { right: calc(50% - 20px); }
  .capture-modal { width: min(94vw, 430px); }
  .capture-types { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .capture-types span { min-height: 62px; padding: 6px; }
  .capture-upload-project { display: none; }
  .file-field { min-height: 64px; padding: 8px; text-align: center; }
  #personal-view.active { min-height: 0; }
  #personal-view .personal-dashboard { height: auto; }
  #personal-view .personal-today-strip.personal-v2-utility { height: auto; min-height: 0; margin-bottom: 8px; padding: 8px 9px; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 8px; overflow: visible; }
  #personal-view .personal-date-block { min-width: 0; padding-right: 8px; }
  #personal-view .personal-date-block strong { font-size: 16px; }
  #personal-view .personal-date-block span { font-size: 7px; line-height: 1.35; }
  #personal-view .personal-today-summary { min-width: 0; }
  #personal-view .personal-today-summary strong { font-size: 9px; line-height: 1.4; }
  #personal-view .personal-today-summary small { margin-top: 2px; font-size: 7px; }
  #personal-view .personal-water-reminder { grid-column: auto; min-width: 0; padding-left: 8px; border-left: 1px solid var(--line); border-top: 0; gap: 5px; }
  #personal-view .personal-water-reminder > .personal-panel-icon { display: none; }
  #personal-view .personal-water-reminder > div span { font-size: 7px; white-space: nowrap; }
  #personal-view .personal-water-reminder > div strong { font-size: 11px; }
  #personal-view .personal-water-reminder .icon-button { width: 27px; height: 27px; margin-left: 2px; }
  #personal-view .personal-switch { width: 32px; height: 18px; padding: 2px; }
  #personal-view .personal-switch::after { width: 14px; height: 14px; }
  #personal-view .personal-v2-player { grid-column: 1 / -1; width: 100%; height: auto; padding: 8px 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; grid-template-rows: auto auto auto; gap: 6px 8px; }
  #personal-view .personal-v2-player > img { grid-column: 1; grid-row: 1; width: 54px; height: 54px; border-radius: 6px; }
  #personal-view .personal-v2-player .personal-track { grid-column: 2; grid-row: 1; align-self: center; }
  #personal-view .personal-v2-player .personal-track strong { font-size: 11px; }
  #personal-view .personal-v2-player .personal-track small { margin-top: 3px; font-size: 8px; }
  #personal-view .personal-v2-player .personal-progress { grid-column: 1 / -1; grid-row: 2; grid-template-columns: minmax(0, 1fr) 72px; gap: 6px; }
  #personal-view .personal-v2-player .personal-progress > small { min-width: 72px; grid-template-columns: 32px 32px; gap: 8px; }
  #personal-view .personal-v2-player .personal-progress > small span { width: 32px; }
  #personal-view .personal-v2-player .personal-player-controls { grid-column: 3; grid-row: 1; justify-content: flex-end; gap: 2px; }
  #personal-view .personal-v2-player .personal-player-controls > .icon-button { width: 27px; height: 27px; }
  #personal-view .personal-v2-player .personal-playback-modes { display: none; }
  #personal-view .personal-v2-player .personal-mobile-mode { display: grid; }
  #personal-view .personal-v2-player .personal-play { width: 34px; height: 34px; flex-basis: 34px; }
  #personal-view .personal-v2-player .personal-volume { display: none; }
  #personal-view .personal-v2-player > .personal-state { grid-column: 1 / 3; grid-row: 3; justify-self: start; }
  #personal-view .personal-library-toggle { grid-column: 3; grid-row: 3; min-height: 28px; padding: 0 6px; border: 0; border-radius: 5px; background: var(--surface-soft); color: var(--primary); display: inline-flex; align-items: center; justify-content: center; gap: 3px; font-size: 8px; }
  #personal-view .personal-library-toggle svg { width: 12px; height: 12px; }
  #personal-view .personal-library-toggle svg:last-child { transition: transform .18s ease; }
  #personal-view .personal-library-toggle[aria-expanded="true"] svg:last-child { transform: rotate(180deg); }
  #personal-view .personal-dashboard-grid.personal-v2-grid { height: auto; display: grid; grid-template-columns: 1fr; grid-template-rows: none; gap: 8px; }
  #personal-view .personal-v2-grid > .personal-panel { grid-column: auto; grid-row: auto; min-height: 0; padding: 0 9px 9px; overflow: visible; }
  #personal-view .personal-v2-grid > .personal-panel.mobile-collapsed { padding-bottom: 0; }
  #personal-view .personal-panel.mobile-collapsed > :not(.personal-panel-heading) { display: none !important; }
  #personal-view .personal-panel-heading { min-height: 48px; margin: 0; }
  #personal-view .personal-panel-heading h2 { font-size: 13px; }
  #personal-view .personal-panel-icon { width: 30px; height: 30px; }
  #personal-view .personal-panel-heading p { display: none; }
  #personal-view .personal-panel-heading > .personal-state { max-width: 105px; margin-left: auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  #personal-view .mobile-personal-fold-button { width: 32px; height: 32px; margin-left: 4px; padding: 0; border: 0; background: transparent; color: var(--muted); display: grid; place-items: center; }
  #personal-view .mobile-personal-fold-button svg { transition: transform .18s ease; }
  #personal-view .personal-panel:not(.mobile-collapsed) .mobile-personal-fold-button svg { transform: rotate(180deg); }
  #personal-view .personal-word-panel { display: none !important; }
  #personal-view .personal-mobile-stock-panel { display: block; }
  #personal-view .personal-calendar-panel { min-height: 0; }
  #personal-view .personal-calendar-tools { min-height: 32px; margin-bottom: 3px; justify-content: space-between; }
  #personal-view .personal-v2-legend { gap: 9px; font-size: 8px; }
  #personal-view .personal-v2-legend span + span::before { content: "·"; margin-right: 2px; color: var(--muted); }
  #personal-view .personal-month-nav { margin-left: 0; }
  #personal-view .personal-calendar-weekdays span { min-height: 23px; font-size: 8px; }
  #personal-view .personal-calendar-days { flex: none; grid-template-rows: repeat(6, 38px); }
  #personal-view .personal-day { min-height: 38px; padding: 4px; font-size: 10px; }
  #personal-view .personal-calendar-selection { min-height: 0; margin-top: 0; padding: 7px 0 9px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  #personal-view .personal-selected-date-heading { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
  #personal-view .personal-selected-date-heading > div > strong, #personal-view .personal-selected-date-heading > div > span { display: block; }
  #personal-view .personal-selected-date-heading > div { min-width: 0; }
  #personal-view .personal-selected-date-heading > div > span { color: var(--muted); white-space: normal; }
  #personal-view #personal-add-record-mobile { min-height: 34px; padding: 0 8px; font-size: 9px; }
  #personal-view .personal-agenda-list { gap: 5px; }
  #personal-view .personal-agenda-empty { padding: 5px 0; }
  #personal-view .personal-focus-panel .personal-mood-panel { min-height: 0; margin-top: 0; padding-top: 9px; }
  #personal-view .personal-focus-panel .personal-mood-heading { min-height: 34px; margin-bottom: 6px; }
  #personal-view .personal-focus-panel .personal-mood-score button { min-height: 38px; }
  #personal-view .personal-focus-panel .personal-mood-reason { margin-top: 6px; }
  #personal-view .personal-focus-panel .personal-mood-summary { min-height: 54px; margin-top: 7px; padding: 8px 10px; flex: none; }
  #personal-view .personal-focus-panel .personal-mood-bars { height: 34px; }
  #personal-view .personal-news-list { grid-template-rows: none; }
  #personal-view .personal-news-tabs { overflow: visible; display: grid; grid-template-columns: repeat(4, 1fr); }
  #personal-view .personal-news-tabs button { min-width: 0; }
  #personal-view .personal-pipeline { font-size: 8px; }
  #personal-view .personal-music-library { grid-column: 1 / -1; grid-row: 4; display: none; }
  #personal-view .personal-music-library.is-open { display: block; }
  #personal-view .personal-music-library > label { min-height: 36px; margin-top: 2px; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; display: flex; align-items: center; gap: 6px; }
  #personal-view .personal-music-library > label svg { width: 14px; color: var(--muted); }
  #personal-view .personal-music-library input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 10px; }
  #personal-view .personal-mini-playlist { max-height: 138px; margin-top: 6px; border-top: 1px solid var(--line); overflow-y: auto; }
  #personal-view .personal-mini-playlist > span { padding: 12px 4px; color: var(--muted); display: block; font-size: 9px; text-align: center; }
  #personal-view .personal-mini-playlist button { width: 100%; min-height: 42px; padding: 6px 3px; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
  #personal-view .personal-mini-playlist button.active { color: var(--primary); background: var(--primary-soft); }
  #personal-view .personal-mini-playlist strong, #personal-view .personal-mini-playlist small { display: block; }
  #personal-view .personal-mini-playlist strong { font-size: 10px; }
  #personal-view .personal-mini-playlist small { margin-top: 2px; color: var(--muted); font-size: 8px; }
  #personal-view .personal-mini-playlist button > svg { width: 14px; }
  #personal-view .personal-mobile-stock-list { border-top: 1px solid var(--line); }
  #personal-view .personal-mobile-stock-list button { width: 100%; min-height: 50px; padding: 7px 2px; border: 0; border-bottom: 1px solid var(--line); background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
  #personal-view .personal-mobile-stock-list button > span:last-child { text-align: right; }
  #personal-view .personal-mobile-stock-list strong, #personal-view .personal-mobile-stock-list small { display: block; }
  #personal-view .personal-mobile-stock-list strong { font-size: 10px; }
  #personal-view .personal-mobile-stock-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
  #personal-view .personal-mobile-stock-more { width: 100%; min-height: 38px; border: 0; background: transparent; color: var(--primary); display: flex; align-items: center; justify-content: center; gap: 4px; font-size: 9px; }
}

@media (max-width: 350px) {
  .mobile-source-grid { grid-template-columns: 1fr; }
  .mobile-source-grid button { min-height: 68px; display: grid; grid-template-columns: 31px 1fr; grid-template-rows: auto auto; column-gap: 9px; }
  .mobile-source-grid button > svg { grid-row: 1 / 3; margin: 0; }
}
