/* ver11 — consistent field geometry and focus states within scrolling surfaces. */
:root {
  --v10-accent:#00865a;
  --v10-accent-strong:#006d49;
  --v10-accent-soft:#e6f7ef;
  --v10-ink:#172f28;
  --v10-muted:#52665e;
  --v10-border:#d9e3de;
  --v10-surface:#fff;
  --bg:#f5f7f8;
  --ink:var(--v10-ink);
  --muted:var(--v10-muted);
  --green:var(--v10-accent);
  --line:var(--v10-border);
  --soft:#edf3f0;
  --v10-shadow:0 2px 5px #17372b04,0 8px 24px #17372b05;
}
body { background:var(--bg); color:var(--v10-ink); }
::selection { background:#b8efd7; color:#064a34; }
button,a,input,textarea,summary { touch-action:manipulation; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid #20b486; outline-offset:3px; }
input:focus,textarea:focus,select:focus { outline:2px solid var(--v10-accent); outline-offset:-2px; }
button:disabled { opacity:.48; }
input,textarea { caret-color:var(--v10-accent); }
input::placeholder,textarea::placeholder { color:#7a8b83!important; opacity:1; }
button,.task-card,.team-member-row { transition-duration:.16s; }
.icon-button { color:#49675a; }
.icon-button:hover { background:#e3f4ec; color:#006d49; }
.button { min-height:40px; border-radius:9px; font-weight:650; letter-spacing:-.12px; }
.button-primary,.instruction-add { background:var(--v10-accent); color:white; border-color:var(--v10-accent); box-shadow:0 3px 8px #00865a1f; }
.button-primary:hover,.instruction-add:hover { background:var(--v10-accent-strong); border-color:var(--v10-accent-strong); box-shadow:0 5px 14px #00865a24; }
.button-primary:active,.instruction-add:active { background:#005d3e; transform:translateY(0); }
.button-white { background:white; color:#365348; border-color:#ccd9d2; box-shadow:0 1px 2px #17372b04; }
.button-white:hover { color:#006d49; background:#f0faf5; border-color:#80bfa4; }
.text-button { color:#526b5e; }
.text-button:hover { color:#006d49; }
.delete-button { color:#b84636; }
.delete-button:hover { color:#8d241a; }

/* A calm canvas makes the active location and primary actions easy to find. */
.sidebar { background:#fff; border-right-color:#dce5df; }
.brand { color:#143c2c; }
.brand-period { color:var(--v10-accent); }
.brand-symbol i { background:#00865a; }
.brand-symbol i:nth-child(2) { background:#24b880; }
.brand-symbol i:nth-child(3) { background:#a3e6ca; }
.brand-caption { color:#667a70; }
.sidebar-toggle { background:#f1f6f3; color:#526c5e; border-color:#d8e5dd; width:30px; height:30px; }
.sidebar-toggle:hover { background:#e3f6ec; border-color:#98d3b8; color:#006d49; }
.workspace-label { border-color:#e1e9e4; }
.workspace-icon { color:#00784e; background:#e2f7ec; border-color:#bee6d2; font-weight:750; }
.workspace-copy { color:#3b5549; font-size:12px; }
.workspace-label small { color:#7a8c81; font-size:8px; }
.nav-caption { color:#7c8e83; font-size:9px; letter-spacing:1.5px; }
.workspace-nav { gap:8px; }
.workspace-nav-item { color:#4d6659; min-height:61px; border-radius:12px; }
.workspace-nav-item:hover { color:#00744d; background:#edf8f2; border-color:#e0f1e8; }
.workspace-nav-item.active { background:var(--v10-accent); border-color:var(--v10-accent); color:#fff; box-shadow:0 5px 13px #00865a24; }
.nav-icon { color:#698476; }
.workspace-nav-item.active .nav-icon { color:#fff; }
.nav-copy strong { font-size:13px; font-weight:650; letter-spacing:-.3px; }
.nav-copy small { color:#75897d; font-size:10px; }
.workspace-nav-item.active .nav-copy small { color:#d7f8e8; }
.nav-team-count { color:#436b56; background:#e7f1eb; font-size:10px; }
.workspace-nav-item.active .nav-team-count { background:#ffffff24; color:white; }
.sidebar-collapsed .workspace-nav-item.active:after { background:#00865a; }
.sidebar-bottom p { color:#486251; }
.sidebar-bottom p small,.sidebar-bottom .version { color:#748678; }
.little-plant span { background:#138359; }
.little-plant i { background:#b1e3c8; }
.little-plant b { background:#32ae7a; }
.topbar { background:#ffffffec; border-bottom-color:#e0e7e3; }
.breadcrumb { color:#657d70; font-size:12px; }
.breadcrumb svg { color:#789b88; }
.breadcrumb strong { color:#263f34; font-weight:650; }
.topbar .button { border-radius:8px; min-height:35px; }
.topbar .text-button { color:#506a5b; font-size:11px; }
.team-avatar { background:#d6f1e3; color:#04724a; border-color:#fff; box-shadow:0 0 0 1px #cce3d7; }
.top-separator { background:#dce5df; }
.eyebrow,.deadline-eyebrow,.team-eyebrow,.team-form-eyebrow,.instructions-eyebrow { color:#008358; font-weight:700; }
.eyebrow span { background:#0bab70; }
h1,.workspace-page-header h1,.team-shell.is-inline .team-heading h2 { color:#183b2b; font-weight:750; }
.heading-soft,.workspace-page-header h1>span { color:#00865a; font-weight:600; }
.hero p,.workspace-page-header p,.team-shell.is-inline .team-description,.team-description { color:#63786b; }
.board-footer,.board-footer .text-button { color:#6b8071; font-size:10px; }
.save-state i { background:#00a36e; }
.save-state.error,.save-state.error button { color:#b53e28; }
.save-state.error i { background:#d95336; }
.tiny-brand { color:#087e54; }
.toast { background:#124d35; color:white; border:1px solid #246447; border-radius:11px; box-shadow:0 8px 30px #19372b30; font-weight:500; }
.demo-banner { background:#e3f7ee; color:#287152; border-color:#bce4d2; }
.demo-banner b,.demo-banner .text-button { color:#006c46; }

/* Shared metrics, project cards, and calendar controls. */
.project-overview { gap:14px; }
.project-overview>div { background:white; border-color:#dce5df; border-radius:12px; padding:20px 22px; box-shadow:var(--v10-shadow); position:relative; overflow:hidden; }
.project-overview>div:before { content:''; position:absolute; top:0; bottom:0; left:0; width:3px; background:#00865a; }
.project-overview>div:nth-child(2):before { background:#2d6cdf; }
.project-overview>div:nth-child(3):before { background:#e48a18; }
.project-overview>div:nth-child(4):before { background:#8a5adc; }
.project-overview>div>span { color:#5d7266; font-size:12px; }
.project-overview>div>strong { color:#204e37; font-size:29px; font-weight:700; }
.project-overview>div:nth-child(2)>strong { color:#245dbd; }
.project-overview>div:nth-child(3)>strong { color:#b66909; }
.project-overview>div:nth-child(4)>strong { color:#7542c0; }
.project-overview strong small { color:#788b7e; font-size:11px; }
.project-tools { border-color:#dae4dc; padding-bottom:19px; }
.project-search-label,.project-status-label,.search-box,.assignee-filter,.team-search,.team-rank-filter { background:white; border-color:#d0ddd4; border-radius:9px; color:#526c5c; }
.project-search-label:focus-within,.search-box:focus-within,.team-search:focus-within { border-color:#10a770; box-shadow:0 0 0 3px #00865a12; }
.project-search-label input:focus,.search-box input:focus,.team-search input:focus { outline:none; }
.project-search-label>span,.project-status-label,#projectResultCount { color:#627768; font-size:11px; }
.project-search-label input,.search-box input,.team-search input { color:#294d38; font-size:12px; }
#projectResultCount { font-variant-numeric:tabular-nums; }
.search-box { height:38px; }
.search-box svg { color:#667f70; }
.search-box kbd { color:#688574; border-color:#d6e3da; background:#f5f8f6; }
.assignee-filter { height:38px; }
.task-card,.project-grid>.task-card,.project-list-card,.project-grid>.project-card { background:#fff; border-color:#d8e3dc; border-radius:11px; box-shadow:var(--v10-shadow); }
.task-card:hover,.project-grid .task-card:hover,.project-list-card:hover,.project-grid>.project-card:hover { border-color:#72b695; box-shadow:0 3px 8px #1f4a3310,0 10px 22px #1f4a330c; }
.task-card:focus-visible { outline:3px solid #10a774; outline-offset:3px; }
.task-card h3 { color:#223f2f; font-weight:700; font-size:13px; }
.project-grid .task-card h3 { color:#1d3f2b; font-weight:700; font-size:18px; }
.task-card p,.project-grid .task-card p { color:#607463; }
.project-grid .task-card p { font-size:12px; line-height:1.85; }
.card-footer { border-top-color:#e6ede7; }
.card-more { color:#789383; }
.assignee,.task-date,.project-grid .assignee,.project-grid .task-date { color:#5b7363; }
.avatar { background:#dcf0e4; color:#087747; font-weight:650; border:1px solid #cce5d6; }
.avatar.unassigned { color:#7c8c81; background:#f0f4f1; border-color:#e1e8e3; }
.project-pm,.project-participants { color:#577260; border-top-color:#dce8df; }
.project-participants b { color:#647b6b; font-weight:550; }
.status-tag { border-radius:5px; font-size:9px; font-weight:650; padding:4px 7px; }
.status-todo { color:#245dbc; background:#e8f0ff; }
.status-doing { color:#9e5300; background:#fff0da; }
.status-review { color:#7840ba; background:#f1e8ff; }
.status-done { color:#087846; background:#dff6e8; }
.status-dot.doing { background:#ec921a; }
.status-dot.done { background:#08a267; }
.overview { background:#fff; border-color:#dbe6de; border-radius:12px; box-shadow:var(--v10-shadow); }
.overview-icon { color:#04834d; border-color:#c7e9d6; background:#e5f7ee; }
.overview-intro { border-color:#e0e9e3; }
.overview-intro small,.stat>span,.stat strong small,.progress-stat>div>span,.progress-stat strong span { color:#67806e; }
.stat strong { color:#244f33; font-weight:700; }
.progress-track { background:#e2ede7; height:6px; }
.progress-track span { background:#0ca56c; }
.progress-stat strong { color:#038456; font-weight:700; }
.view-tabs,.scope-controls { background:#eaf0ec; border-color:#d6e2d9; border-radius:9px; }
.view-tab,.scope-button { color:#627969; }
.view-tab.active,.scope-button.active { color:#00794d; background:#fff; box-shadow:0 2px 5px #143b2012; font-weight:700; }
.view-tab:hover,.scope-button:hover { color:#006c43; }
.bordered,.today-button,.month-picker-label input { background:white; border-color:#ccddd0; color:#3b6850; }
.today-button:hover { background:#e5f7ed; border-color:#8bc6a7; }
.month-picker-label input { color:#365e45; font-weight:500; }
.scope-notice,.filter-notice { background:#ecf8f1; border-color:#cae8d7; color:#4b775c; }
.scope-notice.showing-all { background:#f0f5f2; }
.scope-range { color:#0a7747; }
.scope-range:before { background:#05a66b; }
.board-hint { color:#718774; }
.board { scrollbar-color:#abc9b8 transparent; }
.column { background:#edf2ef; border-color:#dce6df; border-radius:12px; }
.column.current { background:#e5f4eb; border-color:#aad6bc; }
.column.drag-over { background:#d5f3e2; border:1px dashed #079b5e; }
.column-heading h2 { color:#345940; font-size:12px; }
.column-date { color:#67836e; font-size:10px; }
.column-count { background:#dbe8df; color:#4b785a; font-weight:650; }
.current .column-count { background:#c3e7d1; color:#13793f; }
.current-label { color:#007947; background:#d2efdf; border-color:#aadbbf; font-size:8px; font-weight:700; }
.column-heading>.icon-button { color:#588269; }
.status-column .column-heading h2>i { background:#3971d7; }
.status-column[data-target=doing] h2>i { background:#e38a11; }
.status-column[data-target=review] h2>i { background:#935bdd; }
.status-column[data-target=done] h2>i { background:#079c5b; }
.add-card { background:#ffffff70; border-color:#cadbd0; color:#578166; font-size:10px; }
.add-card:hover { background:#e0f5e9; border-color:#68b78d; color:#087344; }
.empty-column { border-color:#cfded3; color:#6e8b76; background:#ffffff40; }
.empty-column .empty-number { color:#b7cebf; }
.empty-column p,.empty-column button { color:#6c8974; }
.project-empty,.project-grid>.empty-state,.urgency-empty { background:#eef8f2; border-color:#badcc9; color:#5a7d65; }
.project-empty h2,.project-empty strong,.project-grid>.empty-state strong { color:#1b6940; }
.project-empty p { color:#668670; }
.annual-task { border-radius:8px; }
.annual-task h3 { font-weight:650; }
.ongoing-badge { background:#e5f4ff; color:#1367a5; border-color:#bcdbf4; font-weight:650; }
.ongoing-board-lane { background:#eaf5fd; border-color:#c7def0; }
.ongoing-lane-heading,.ongoing-lane-heading h2 { color:#246d9e; }
.ongoing-lane-heading p,.ongoing-lane-heading>span { color:#5e7d91; }

/* Deadline colors communicate urgency without taking over the canvas. */
.deadline-eyebrow { color:#077d50; }
.deadline-context,.deadline-context span:last-child { color:#687d6e; }
.urgency-select { color:#4d6b56; }
.urgency-card { --urgency-bg:#fff; --urgency-line:#cce4d5; --urgency-ink:#008955; border-left:3px solid var(--urgency-ink); box-shadow:var(--v10-shadow); }
.urgency-card.is-near { --urgency-bg:#fffcf6; --urgency-line:#f0d7b6; --urgency-ink:#c16e00; }
.urgency-card.is-overdue { --urgency-bg:#fff8f6; --urgency-line:#efd0c7; --urgency-ink:#c64d2f; }
.urgency-card:hover { box-shadow:0 7px 22px #25422f10; }
.urgency-day { font-weight:750; letter-spacing:-1px; }
.urgency-title { color:#2b4531; font-weight:700; }
.urgency-foot { color:#6a7f6d; }

/* The detail view shares one form rhythm and a clear split between plan and conversation. */
dialog { background:#fff; border-color:#d9e5de; box-shadow:0 24px 100px #0a2e2438; border-radius:18px; }
dialog::backdrop { background:#0e292653; backdrop-filter:blur(5px); }
.dialog-eyebrow { color:#008454; font-size:9px; font-weight:650; letter-spacing:1.55px; }
dialog h2 { color:#183b28; font-weight:750; }
.dialog-description,.project-detail-dialog>.dialog-description,.small-dialog p { color:#657c6a; }
.project-detail-dialog>h2 { font-size:29px; letter-spacing:-1.1px; }
.project-detail-dialog>.dialog-top .icon-button { background:#edf6f0; color:#427251; width:34px; height:34px; border-radius:9px; }
.project-detail-dialog>.dialog-top .icon-button:hover { background:#d8f2e3; color:#006d42; }
.project-detail-layout>.instructions-panel { border-color:#dfe9e2; scrollbar-color:#aac9b7 transparent; }
.project-detail-layout>#taskForm { scrollbar-color:#aac9b7 transparent; }
.field,.project-detail-dialog .field,.assignment-heading,.team-member-form .field { color:#345940; font-weight:650; }
.field-optional { color:#758b79; font-size:10px; }
.required-dot { color:#08a96a; }
.field input,.field textarea,.assignment-field>select,.instruction-composer textarea { border-color:#cbdccf; color:#294e34; background:#fff; border-radius:9px; box-shadow:0 1px 2px #1f412803; }
.field input:hover,.field textarea:hover,.instruction-composer textarea:hover { border-color:#a7c4b0; }
.field input:disabled,.field textarea:disabled { background:#f1f5f2; color:#7e9283; }
.date-help,.assignment-field .date-help,.character-count { color:#708772; }
.pm-assignment-field { background:#f1faf5; border-color:#cbe6d6; border-radius:11px; }
.pm-context-tag { background:#d9f1e3; color:#167342; border-radius:5px; padding:3px 6px; font-size:9px; font-weight:550; }
.ongoing-choice { background:#f1f8fc; border-color:#cbdfea; color:#397692; }
.ongoing-choice:has(input:checked) { background:#e9f5ff; border-color:#6eadd4; }
.ongoing-choice input { accent-color:#00865a; width:18px; height:18px; }
.ongoing-choice strong { color:#286282; }
.ongoing-choice small { color:#637f8c; }
.ongoing-symbol { color:#2b8aba; }
.dialog-actions { border-color:#dae6de; }
.form-error,.team-form-error { color:#b64429; border:1px solid #f1cdbf; background:#fff2ed; }
.move-current,.move-destination { border-color:#d1e6d8; background:#f2f8f4; }
.move-help,.move-project { color:#5d7b64; }
.share-icon { background:#dff5e8; color:#047b46; }
.backup-help,.backup-row small,.backup-empty { color:#67826c; }
.backup-restore { color:#137643; border-color:#bfdbc9; background:#f3faf5; }
.backup-restore:hover { background:#e3f5e9; }

/* Participant selection: visible search, comfortable hit areas, and a clear selection state. */
.participant-picker { background:#fff; border-color:#d3e2d7; border-radius:11px; }
.participant-chip { background:#e1f5e9; border-color:#b9e3cc; color:#087544; border-radius:7px; font-weight:550; padding:6px 8px 6px 10px; }
.participant-chip button { color:#398a5d; border-radius:4px; min-height:20px; min-width:20px; }
.participant-chip button:hover { color:#005b31; background:#bce7ce; }
.participant-empty { color:#6f8a77; }
.participant-details { border-top:1px solid #e4ece6; }
.participant-details>summary { color:#087a47; padding:12px 2px; font-weight:650; display:flex; align-items:center; gap:8px; list-style:none; }
.participant-details>summary::-webkit-details-marker { display:none; }
.participant-details>summary:after { content:''; margin-left:auto; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); transition:transform .16s; margin-right:4px; margin-top:-3px; }
.participant-details[open]>summary:after { transform:rotate(225deg); margin-top:3px; }
.participant-summary-count { padding:3px 6px; border-radius:5px; color:#167948; background:#e5f5ec; font-size:10px; }
.participant-search-wrap { position:relative; display:flex; align-items:center; gap:8px; min-width:0; }
.participant-search-wrap>svg { position:absolute; left:11px; top:14px; color:#678b72; width:16px; height:16px; pointer-events:none; }
.participant-search-wrap:has(>svg) .participant-search { padding-left:34px; }
.participant-search { color:#284f34; border-color:#bdd8c6; border-radius:8px; margin:2px 0 7px; min-height:40px; }
.participant-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 1px 10px; }
.participant-result-count,.participant-selection-count { font-size:10px; line-height:1.7; color:#64836c; }
.participant-clear-search { padding:3px 0; color:#167c49; font-size:10px; text-decoration:underline; text-underline-offset:3px; }
.participant-options { scrollbar-color:#a8cdb7 transparent; gap:5px; }
.participant-option { border:1px solid #e0ebe3; background:#f7faf8; border-radius:8px; padding:10px 9px; min-height:53px; }
.participant-option:hover { background:#edf9f2; border-color:#a8d5b9; }
.participant-option:has(input:checked),.participant-option.is-selected { background:#e3f6eb; border-color:#94d5ae; }
.participant-option input { width:15px; height:15px; margin:0; accent-color:#008c50; }
.participant-identity b { color:#2b5337; font-weight:650; }
.participant-identity small { color:#63826c; }
.participant-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #dce9e0; padding:10px 0 0; margin-top:10px; background:white; }
.participant-done { color:white; background:#00865a; border:1px solid #00865a; padding:7px 13px; border-radius:7px; font-size:11px; font-weight:600; }
.participant-done:hover { background:#006d49; }
.participant-notice { color:#9c660e; }

/* Team management is visually consistent whether it lives in the page or a modal. */
.team-status,.team-shell.is-inline .team-status { color:#6a836f; }
.team-status.is-error,.team-shell.is-inline .team-status.is-error { color:#b3442c; }
.team-role-summary,.team-shell.is-inline .team-role-summary { border-color:#dbe7de; }
.team-role-chip,.team-shell.is-inline .team-role-chip { color:#567961; border-color:#d3e3d8; background:#fff; border-radius:8px; font-weight:550; }
.team-role-chip:hover { background:#eaf8ef; border-color:#90cba6; color:#137044; }
.team-role-chip.is-selected,.team-shell.is-inline .team-role-chip.is-selected { color:#fff; background:#00865a; border-color:#00865a; }
.team-role-count { opacity:1; }
.team-total { background:#dff5e8; color:#157a42; }
.team-shell.is-inline .team-roster-panel { background:#fff; border-color:#d8e5dd; border-radius:13px; box-shadow:var(--v10-shadow); }
.team-search>span,.team-rank-filter { color:#62816b; }
.team-roster { scrollbar-color:#adceb9 transparent; }
.team-member-row,.team-shell.is-inline .team-member-row { border-color:#dbe7df; background:white; border-radius:9px; }
.team-member-row:hover { border-color:#a9cbb5; background:#fbfdfb; }
.team-member-row.is-editing { border-color:#24a267; background:#edf9f2; box-shadow:0 0 0 1px #24a26712; }
.team-member-avatar { background:#e0f5e7; color:#0f8748; }
.team-member-avatar[data-role='1'] { background:#e3efff; color:#306ab4; }
.team-member-avatar[data-role='2'] { background:#fff0d5; color:#ae7909; }
.team-member-avatar[data-role='3'] { background:#f0e6ff; color:#8051b1; }
.team-member-avatar[data-role='4'] { background:#ffe8df; color:#b76c46; }
.team-member-name { color:#264b33; font-weight:650; }
.team-member-rank { color:#587563; background:#edf4ef; border:1px solid #dce9df; }
.team-member-pm { color:#2165a1; background:#e7f2fd; }
.team-member-meta,.team-member-role,.team-member-work { color:#698670; }
.team-row-button { color:#087d43; border-color:#c8e2d0; background:#f3faf5; border-radius:5px; }
.team-row-button:hover { color:#056235; border-color:#96c7a5; background:#e2f4e8; }
.team-row-archive { color:#819485; background:transparent; border-color:transparent; }
.team-row-archive:hover { color:#a55932; background:#fff1e8; border-color:#f0d5c4; }
.team-member-form,.team-shell.is-inline .team-member-form { background:#fff; border-color:#d5e6dc; border-radius:13px; box-shadow:var(--v10-shadow); }
.team-member-form h3 { color:#215336; }
.team-form-description,.team-shell.is-inline .team-form-description,.team-form-hint { color:#6b8470; }
.team-pm-note,.team-shell.is-inline .team-pm-note { background:#eef8f2; border-color:#d3e9da; color:#548163; border-radius:8px; }
.team-archive-toggle { color:#62876e; border-color:#d8e7dc; }
.team-archive-toggle:hover { color:#057c43; }
.team-archive-note,.team-archive-empty { color:#718b78; }
.team-empty { background:#f4faf6; border-color:#c8e3d2; }
.team-empty-symbol { background:#e0f3e7; color:#629a73; }
.team-empty strong { color:#3b7750; }
.team-empty p { color:#6f8d77; }

/* Personal instructions: person headers, message bubbles, and status actions stay distinct. */
.instructions-heading h3 { color:#214d31; font-weight:750; }
.instructions-heading p,.instructions-notice { color:#6a846e; }
.instructions-total { background:#ddf4e6; color:#167a40; font-weight:700; }
.instructions-filter { color:#607d68; border-color:#dbe7df; font-size:11px; padding:8px 12px; }
.instructions-filter.is-selected { color:#047444; background:#def5e8; border-color:#94cdae; }
.instructions-filter-count { opacity:1; }
.instructions-filter:hover { border-color:#a9ccb6; background:#eff9f3; }
.instructions-empty { background:#f4faf6; border-color:#c7e2d0; color:#6a8b73; }
.instruction-person { border-color:#d5e5dc; border-radius:13px; background:#fff; }
.instruction-person-heading { background:#f0f8f3; border-bottom-color:#dfece4; padding:16px 17px; }
.instruction-person-avatar { background:#d3efde; color:#127745; border:1px solid #c0e4cf; font-weight:700; }
.instruction-person-name-line strong { color:#284f34; font-size:13px; font-weight:700; }
.instruction-person-rank { color:#637f6d; background:#e8f1eb; border-color:#d4e3d9; }
.instruction-person-role { color:#708d78; font-size:10px; margin-top:5px; }
.instruction-person-count { color:#147c43; background:#dff4e6; font-weight:550; }
.instruction-thread-empty { color:#7b9482; }
.instruction-item { border-color:#dae7df; border-radius:9px; background:#fff; }
.instruction-item.is-done { background:#f3fbf6; border-color:#cfe8d9; }
.instruction-item.is-cancelled { background:#f5f7f6; border-color:#e0e7e2; }
.instruction-body { color:#34543e; font-size:12px; }
.instruction-item.is-cancelled .instruction-body { color:#7a8d80; }
.instruction-status { color:#a15d05; background:#fff0d9; font-weight:650; }
.instruction-status.is-done { color:#087942; background:#def4e6; }
.instruction-status.is-cancelled { color:#637769; background:#e9efeb; }
.instruction-time { color:#7a9180; }
.instruction-status-button { color:#6c8574; border-color:#e2ebe5; background:white; padding:5px 8px; }
.instruction-status-button:hover { background:#eaf8ef; border-color:#b9dcc5; }
.instruction-status-button.is-selected { color:#047642; background:#ddf4e6; border-color:#b3dfc3; }
.instruction-status-button[data-status=doing].is-selected { color:#a76608; background:#fff0d9; border-color:#ecd2ad; }
.instruction-status-button[data-status=cancelled].is-selected { color:#607c69; background:#eaf0ec; border-color:#d3ded7; }
.instruction-composer textarea { min-height:82px; color:#32583c; border-radius:9px; }
.instruction-composer-hint,.instruction-person-historical { color:#75907c; }
.instruction-add { font-weight:650; min-height:34px; border-radius:8px; }
.instructions-notice.is-error { color:#b1452a; background:#fff2ec; border-color:#edcbbc; }
.instructions-retry { color:#087744; }

/* A readable timeline, with the same semantic palette as cards. */
.board.gantt-board { border-color:#d1e2d7; box-shadow:var(--v10-shadow); }
.gantt-caption { background:#f0f8f4; border-color:#d6e7dc; }
.gantt-summary strong { color:#2a593a; }
.gantt-summary>span,.gantt-legend { color:#668b72; }
.gantt-today-key:before { border-color:#0ba361; }
.gantt-weekend-key:before { background:#eff4f1; border-color:#d6e2da; }
.gantt-scroll { scrollbar-color:#a9cdb7 #f2f7f4; }
.gantt-axis { background:#fff; border-color:#d6e6dc; }
.gantt-axis-label { color:#50775e; background:#f2f8f4; border-color:#cfe1d6; }
.gantt-day { border-color:#e6ede8; }
.gantt-day strong { color:#496d53; }
.gantt-day>span { color:#708d79; }
.gantt-day.is-weekend,.gantt-cell.is-weekend { background:#f2f5f3; }
.gantt-day.is-weekend strong { color:#809586; }
.gantt-day.is-today { background:#def4e7; }
.gantt-day.is-today strong { background:#00865a; color:white; font-weight:700; }
.gantt-day.is-today>span { color:#00804a; }
.gantt-row { border-color:#e0eae4; }
.gantt-task-info { border-color:#d1e3d8; }
.gantt-task-title { color:#2c5338; font-weight:650; }
.gantt-assignee,.gantt-task-dates,.gantt-ongoing .gantt-task-dates,.gantt-participants { color:#64836f; }
.gantt-status { color:#285daf; background:#e5efff; font-weight:650; }
.gantt-cell { border-color:#e6eee9; }
.gantt-cell.is-today { background:#eefaf3; }
.gantt-cell.is-today:before { border-color:#009858; opacity:.7; }
.gantt-bar { --bar-bg:#dceaff; --bar-ink:#275bac; --bar-border:#afcff5; height:31px; box-shadow:0 2px 4px #1d5a3510; }
.gantt-bar-label { font-weight:650; }
.gantt-status-doing .gantt-bar { --bar-bg:#ffecc8; --bar-ink:#a5640b; --bar-border:#edc68a; }
.gantt-status-doing .gantt-status { color:#a86606; background:#fff0d6; }
.gantt-status-review .gantt-bar { --bar-bg:#eddeff; --bar-ink:#7e43b3; --bar-border:#d3b4ed; }
.gantt-status-review .gantt-status { color:#7e43b3; background:#f2e9ff; }
.gantt-status-done .gantt-bar { --bar-bg:#d5f2df; --bar-ink:#167b45; --bar-border:#9cd9b5; }
.gantt-status-done .gantt-status { color:#127d45; background:#def5e7; }
.gantt-status-done .gantt-task-title { color:#588b66; }
.gantt-row:hover .gantt-task-info { background:#eef9f2; }
.gantt-footnote { background:#f8fbf9; border-color:#dce9e1; color:#64856f; }
.gantt-empty { color:#578266; }
.gantt-empty span { color:#789782; }

@media(min-width:951px) {
  .project-detail-layout>#taskForm>.dialog-actions { background:#fff; border-color:#dce7df; box-shadow:0 -12px 18px #fffffff0; }
}
@media(max-width:950px) {
  .project-detail-dialog>.dialog-top { background:#fff; box-shadow:0 8px 12px #fffffff0; }
}
@media(max-width:760px) {
  .sidebar { background:white; box-shadow:16px 0 35px #12392714; }
  .sidebar-collapsed .sidebar { box-shadow:none; }
  .sidebar-collapsed .workspace-nav-item { min-height:48px; }
  .content { padding-left:15px; padding-right:15px; }
  .workspace-page-header .eyebrow,.team-shell.is-inline .team-eyebrow { font-size:8px; letter-spacing:1.1px; }
  .workspace-page-header h1,.team-shell.is-inline .team-heading h2 { font-size:27px; letter-spacing:-1.25px; }
  .workspace-page-header p,.team-shell.is-inline .team-description { color:#617969; }
  .project-overview { gap:9px; }
  .project-overview>div { padding:15px 13px 14px; border-radius:10px; gap:8px; }
  .project-overview>div>span { font-size:11px; }
  .project-overview>div>strong { font-size:27px; }
  .project-search-label input,.team-search input,.team-shell.is-inline .team-search input { font-size:16px; }
  .project-grid .task-card h3 { font-size:17px; }
  .project-grid .task-card p { font-size:12px; }
  .project-grid .project-pm,.project-grid .project-participants { font-size:11px; }
  .project-grid .task-date,.project-grid .assignee { font-size:10px; }
  .topbar .text-button { font-size:10px; }
  .topbar .button { min-height:33px; }
  .deadline-context { font-size:9px; }
  .urgency-day { font-size:23px; }
  .urgency-card { padding-left:12px; }
  .urgency-title { font-size:13px; }
  .view-tab { min-height:33px; }
  .project-detail-dialog .dialog-actions .button { min-height:43px; font-size:12px; }
  .project-detail-dialog .field input,.project-detail-dialog .field textarea,.instruction-composer textarea { font-size:16px; }
  .project-detail-dialog .participant-picker { padding:13px; }
  .participant-summary-label { font-size:11px; }
  .participant-option { min-height:55px; }
  .participant-identity b { font-size:12px; }
  .participant-identity small { font-size:10px; }
  .participant-done { min-height:36px; }
  .instructions-filter { font-size:11px; padding:8px 10px; }
  .instruction-body { font-size:12px; }
  .instruction-person-role { font-size:10px; }
  .instruction-add { min-height:38px; font-size:11px; }
  .instruction-status-button { min-height:30px; font-size:10px; }
  .team-shell.is-inline .team-member-name { font-size:13px; }
  .team-shell.is-inline .team-member-meta { font-size:10px; }
  .team-shell.is-inline .team-row-button { font-size:10px; min-height:28px; }
  .team-shell.is-inline .team-role-chip { font-size:11px; min-height:33px; }
  .team-shell.is-inline .team-form-actions .button { min-height:43px; font-size:12px; }
  .gantt-legend { flex-wrap:wrap; justify-content:flex-end; }
}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after { scroll-behavior:auto!important; transition-duration:0s!important; animation-duration:0s!important; }
}

/* Legible secondary information remains useful at normal browser zoom. */
.nav-copy small { font-size:11px; }
.workspace-label small,.sidebar-bottom .version { font-size:9px; }
.sidebar-bottom p small { font-size:10px; }
.hero p,.workspace-page-header p,.team-description,.team-shell.is-inline .team-description { font-size:13px; line-height:1.85; color:var(--v10-muted); }
.task-card p,.project-grid .task-card p { font-size:13px; line-height:1.8; color:var(--v10-muted); }
.assignee,.task-date,.project-grid .assignee,.project-grid .task-date,.annual-task .assignee,.annual-task .task-date { font-size:11px; color:var(--v10-muted); }
.project-pm,.project-participants,.project-grid .project-pm,.project-grid .project-participants,.annual-task .project-pm,.annual-task .project-participants { font-size:11px; line-height:1.8; color:var(--v10-muted); }
.status-tag,.annual-task .status-tag { font-size:10px; }
.project-participants b,.column-date,.scope-notice,.board-hint,.board-footer,.board-footer .text-button,.overview-intro small,.stat>span,.progress-stat>div>span,.deadline-context,.deadline-context span:last-child,.urgency-date,.urgency-foot { font-size:11px; color:var(--v10-muted); }
.dialog-description,.project-detail-dialog>.dialog-description,.date-help,.assignment-field .date-help,.ongoing-choice small { font-size:12px; color:var(--v10-muted); line-height:1.7; }
.field-optional,.character-count,.pm-context-tag { font-size:11px; }
.field input::placeholder,.field textarea::placeholder { font-size:inherit; }
.participant-empty,.participant-result-count,.participant-selection-count,.participant-clear-search,.participant-notice,.participant-identity small { font-size:11px; color:var(--v10-muted); }
.participant-identity b,.project-detail-dialog .participant-identity b { font-size:13px; }
.participant-details>summary,.project-detail-dialog .assignment-heading { font-size:13px; }
.team-status,.team-shell.is-inline .team-status,.team-form-description,.team-shell.is-inline .team-form-description,.team-form-hint,.team-member-meta,.team-member-role,.team-member-work,.team-shell.is-inline .team-member-meta,.team-shell.is-inline .team-member-work,.team-archive-note,.team-archive-empty,.team-pm-note,.team-shell.is-inline .team-pm-note { font-size:11px; line-height:1.75; color:var(--v10-muted); }
.team-member-rank,.team-member-pm,.team-archived-badge { font-size:10px; }
.team-row-button,.team-shell.is-inline .team-row-button { font-size:11px; }
.instructions-heading p,.instructions-notice,.instruction-composer-hint,.instruction-person-role,.instruction-person-historical,.instruction-thread-empty,.instruction-time { font-size:11px; line-height:1.7; color:var(--v10-muted); }
.instruction-body { font-size:13px; line-height:1.8; }
.instruction-status,.instruction-status-button,.instruction-person-count,.instruction-person-rank { font-size:10px; }
.instruction-composer textarea { font-size:13px; line-height:1.8; }
.gantt-summary>span,.gantt-legend,.gantt-assignee,.gantt-task-dates,.gantt-participants,.gantt-footnote,.gantt-ongoing .gantt-task-dates { font-size:11px; color:var(--v10-muted); }
.gantt-status,.gantt-bar-label { font-size:10px; }
.gantt-day>span { font-size:10px; }
.gantt-task-title { font-size:13px; }
.gantt-task-info { gap:8px; }
.gantt-table { --gantt-label:244px; }
.backup-help,.backup-row small,.backup-empty,.share-note { font-size:12px!important; color:var(--v10-muted); }
@media(max-width:760px) {
  .hero p,.workspace-page-header p,.team-shell.is-inline .team-description { font-size:12px; }
  .task-card p,.project-grid .task-card p { font-size:13px; }
  .project-detail-dialog .field input,.project-detail-dialog .field textarea,.instruction-composer textarea { font-size:16px; }
  .board-footer { align-items:flex-start; }
  .board-footer>div { flex-wrap:wrap; gap:9px; }
  .board-hint,.deadline-context span:last-child { display:none; }
  .gantt-table { --gantt-label:156px; }
  .gantt-task-title { font-size:12px; }
  .gantt-task-meta { flex-wrap:wrap; }
  .gantt-task-dates { font-size:10px; line-height:1.65; }
  .gantt-legend { font-size:10px; }
  .gantt-summary>span { font-size:11px; line-height:1.7; }
  .team-shell.is-inline .team-member-work { white-space:normal; }
  .participant-identity b,.project-detail-dialog .participant-identity b { font-size:12px; }
}

/* Search fields share one border; compact labels never split into separate lines. */
:root{--v10-soft:#ecf9f2;--v10-focus:#00865a20;--v10-selected:#dcf7e8;--v10-scrollbar:#a2c9b5}
.project-overview>div:nth-child(3):before{background:#8450d6}.project-overview>div:nth-child(3)>strong{color:#7542c0}
.project-overview>div:nth-child(4):before{background:#00865a}.project-overview>div:nth-child(4)>strong{color:#00774e}
.project-tools,.filter-tools{align-items:flex-start}
.project-status-label:has(.search-select),.team-rank-filter:has(.search-select),.urgency-select:has(.search-select),.assignee-filter:has(.search-select){height:auto;min-height:44px;display:flex;align-items:flex-start;gap:9px;padding:0;border:0;background:transparent;white-space:nowrap;line-height:44px;box-shadow:none}
.project-status-label:has(.search-select){flex:0 0 224px;max-width:100%}
.team-rank-filter:has(.search-select){flex:1;min-width:180px}
.urgency-select:has(.search-select){min-width:130px}
.assignee-filter:has(.search-select){width:220px;min-width:200px;max-width:100%}
.assignee-filter:has(.search-select)>span{display:none}
.project-status-label .search-select,.team-rank-filter .search-select,.assignee-filter .search-select{width:auto;flex:1;min-width:0;white-space:normal;line-height:1.5}
.urgency-select .search-select{width:105px;min-width:105px;white-space:normal;line-height:1.5}

.assignee-filter .search-select-trigger,.urgency-select .search-select-trigger,.project-status-label .search-select-trigger,.team-rank-filter .search-select-trigger{min-height:44px;padding:10px 12px;border:1px solid var(--v10-border);background:#fff;font-size:12px}
.search-select-count,.search-select-person-meta{font-size:11px}.search-select-person-name,.search-select-option{font-size:13px}
.search-select-panel .search-select-search{min-height:40px;font-size:13px}
.search-select-search-icon{font-size:22px}.search-select-option-label{line-height:1.6}
.project-tools #projectResultCount{padding-top:13px}
@media(max-width:760px){.assignee-filter:has(.search-select){width:100%;min-width:0}.filter-tools{align-items:flex-start}.project-status-label:has(.search-select){flex:1;min-width:185px}.team-rank-filter:has(.search-select){width:100%;min-width:0}.urgency-select:has(.search-select){font-size:11px}.search-select-panel .search-select-search{font-size:16px}.project-tools #projectResultCount{padding-top:0}.search-select-option{min-height:44px}.search-select-person-meta{font-size:11px}}

/* Toolbar menus float below their field without moving the board content. */
.project-tools .search-select.is-open,.filter-tools .search-select.is-open,.urgency-select .search-select.is-open,.team-roster-filters .search-select.is-open{z-index:40}
.project-tools .search-select-panel,.filter-tools .search-select-panel,.urgency-select .search-select-panel,.team-roster-filters .search-select-panel{position:absolute;top:100%;left:0;right:auto;bottom:auto;min-width:220px;width:max(100%,220px);margin-top:7px}
.urgency-select:has(.is-open) .search-select{width:105px}.urgency-select .search-select-panel{left:auto;right:0}
@media(max-width:760px){.project-tools .search-select-panel,.filter-tools .search-select-panel,.team-roster-filters .search-select-panel{min-width:0;width:100%}.urgency-select .search-select-panel{min-width:180px;width:180px}}

@media(max-width:760px){
 .filter-tools{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:9px;margin:0}
 .filter-tools .search-box{width:100%;min-height:44px;margin:0;padding:10px 12px}
 .filter-tools .search-box input{font-size:14px;width:100%}
 .filter-tools .assignee-filter:has(.search-select){width:100%;max-width:none;min-width:0;margin:0}
 .view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;gap:3px}
 .view-tab{white-space:nowrap;min-height:37px;font-size:11px;padding:8px 10px}
 .deadline-heading{flex-wrap:wrap;gap:14px}.deadline-controls{flex-direction:row;align-items:center;justify-content:space-between;width:100%}
}

/* Focus is drawn inside each field, so scrolling never cuts off a side. */
.field input:focus,.field textarea:focus,.participant-search:focus,.instruction-composer textarea:focus,.month-picker-label input:focus {
  border-color:var(--v10-accent); outline:2px solid var(--v10-accent); outline-offset:-2px; box-shadow:none;
}
.search-select-trigger:focus-visible,.search-select.is-open>.search-select-trigger {
  border-color:var(--v10-accent); outline:2px solid var(--v10-accent); outline-offset:-2px; box-shadow:none;
}
.search-select.is-invalid .search-select-trigger { border-color:#c73b50; outline:2px solid #c73b50; outline-offset:-2px; box-shadow:none; }
.project-search-label:focus-within,.search-box:focus-within,.team-search:focus-within,.search-select-search-row:focus-within {
  border-color:var(--v10-accent); outline:2px solid var(--v10-accent); outline-offset:-2px; box-shadow:none;
}
.project-search-label input:focus,.search-box input:focus,.team-search input:focus { outline:none; box-shadow:none; }
.project-detail-dialog .field input,.project-detail-dialog .field textarea,.team-member-form .field input,.instruction-composer textarea,.participant-search,.search-select-trigger {
  border-radius:10px; padding-left:12px; padding-right:12px;
}
.field>.search-select { margin-top:8px; }
/* Tight scroll regions use internal keyboard rings as well. */
:is(.year-task-list,.team-roster,.backup-list,.project-detail-layout) :is(button,a,summary):focus-visible {
  outline:2px solid var(--v10-accent); outline-offset:-2px;
}
@media(min-width:951px) {
  .project-detail-dialog>.project-detail-layout { padding-top:4px; }
  .project-detail-layout>#taskForm { padding-bottom:6px; }
}
/* Search and rank stay on one 46px baseline instead of stretching each other. */
.team-roster-filters,.team-shell.is-inline .team-roster-filters {
  display:grid; grid-template-columns:minmax(0,1fr) 216px; align-items:center; gap:12px; margin-bottom:16px;
}
.team-search,.team-shell.is-inline .team-search {
  display:flex; align-items:center; gap:12px; height:46px; min-height:46px; min-width:0; width:100%; margin:0; padding:0 14px; border-radius:10px;
}
.team-search>span,.team-shell.is-inline .team-search>span { display:block; flex-shrink:0; font-size:12px; line-height:1.5; white-space:nowrap; }
.team-search input,.team-shell.is-inline .team-search input { min-height:0; height:100%; padding:0; font-size:14px; line-height:1.5; }
.team-rank-filter:has(.search-select),.team-shell.is-inline .team-rank-filter:has(.search-select) {
  display:flex; flex-direction:row; align-items:center; justify-content:flex-start; gap:10px; width:100%; min-width:0; height:46px; min-height:46px; margin:0; padding:0;
  font-size:12px; line-height:1.5; white-space:nowrap; background:transparent; border:0;
}
.team-rank-filter .search-select,.team-shell.is-inline .team-rank-filter .search-select {
  flex:1; align-self:center; width:100%; min-width:0; line-height:1.5;
}
.team-rank-filter .search-select-trigger,.team-shell.is-inline .team-rank-filter .search-select-trigger {
  height:46px; min-height:46px; padding:10px 12px; font-size:14px; line-height:1.5;
}
.team-roster-filters .search-select-panel { left:auto; right:0; min-width:0; width:max(100%,216px); }
.team-member-form .field,.team-shell.is-inline .team-member-form .field { font-size:13px; line-height:1.5; margin:18px 0; }
.team-member-form .field input,.team-shell.is-inline .team-member-form .field input,.team-member-form .search-select-trigger {
  height:46px; min-height:46px; font-size:14px; line-height:1.5;
}
.team-member-name,.team-shell.is-inline .team-member-name { font-size:14px; }
.team-member-meta,.team-shell.is-inline .team-member-meta { font-size:12px; }
.team-member-row,.team-shell.is-inline .team-member-row { padding:14px; gap:12px; min-height:78px; }
.team-row-button,.team-shell.is-inline .team-row-button { min-height:30px; font-size:12px; padding:6px 10px; }
.team-member-actions,.team-shell.is-inline .team-member-actions { gap:6px; }
@media(max-width:1150px) and (min-width:951px) {
  .team-roster-filters,.team-shell.is-inline .team-roster-filters { grid-template-columns:minmax(0,1fr) 180px; gap:10px; }
  .team-search>span,.team-shell.is-inline .team-search>span { display:none; }
}
@media(max-width:640px) {
  .team-roster-filters,.team-shell.is-inline .team-roster-filters { grid-template-columns:minmax(0,1fr); gap:10px; }
  .team-rank-filter .search-select,.team-shell.is-inline .team-rank-filter .search-select { width:auto; }
  .team-roster-filters .search-select-panel { width:100%; }
  .team-member-form .field input,.team-shell.is-inline .team-member-form .field input,.team-search input,.team-shell.is-inline .team-search input { font-size:16px; }
  .team-member-row,.team-shell.is-inline .team-member-row { padding:12px 10px; gap:9px; }
  .team-member-meta,.team-shell.is-inline .team-member-meta { font-size:11px; }
}

@media(max-width:760px) {
  .project-tools .search-select.is-open,.filter-tools .search-select.is-open,.urgency-select .search-select.is-open,.team-roster-filters .search-select.is-open { z-index:10; }
}

/* People links keep the surrounding project card typography. */
.member-name-link{display:inline;padding:0;border:0;background:none;color:inherit;font:inherit;line-height:inherit;text-align:left;text-underline-offset:3px;cursor:pointer;border-radius:3px}.member-name-link:hover{color:var(--v10-accent);text-decoration:underline}.instruction-person-name-line .member-name-link{font-weight:700;font-size:13px}.assignee[data-open-member]{cursor:pointer;border-radius:5px}.assignee[data-open-member]:hover .assignee-name{color:var(--v10-accent);text-decoration:underline;text-underline-offset:3px}

/* ver14: quieter copy, consistent density, keyboard-accessible contextual help. */
.help-tip{position:relative;display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:1px solid #bdd5c7;border-radius:50%;background:#fff;color:#5b7c69;font-size:11px;cursor:help}
.help-tip::after{content:attr(data-tip);display:none;position:absolute;right:0;top:27px;width:230px;padding:10px 12px;border-radius:8px;background:#173e2c;color:white;font-size:12px;font-weight:400;line-height:1.6;z-index:20;box-shadow:0 4px 16px #173e2c22}
.help-tip:hover::after,.help-tip:focus-visible::after{display:block}
.workspace-nav-item{min-height:48px!important}
.team-heading{margin-bottom:20px!important}
.team-member-form h3{margin-bottom:24px}
.team-form-actions{margin-top:22px}
.instructions-heading{margin-bottom:18px}
.instructions-status:empty,.instruction-composer-hint:empty,.participant-picker .date-help:empty,.date-help:empty{display:none}
.dialog-top{min-height:24px}
.task-dialog>h2{margin-bottom:24px}
.project-detail-layout{padding-top:0}
.search-select-panel .search-select-search-row:focus-within{box-shadow:inset 0 0 0 1px #00865a}

:is(.project-tools,.filter-tools,.urgency-select,.team-roster-filters,.levels-shell,.project-detail-dialog) .search-select .search-select-panel{position:fixed;right:auto;bottom:auto;min-width:0;margin:0}

.team-status:empty{display:none}
