/* Dashboard 2 uses the existing app shell, typography, cards and buttons.
   Only its independent charts and analysis controls are styled here. */
.dashboard2-page .toolbar {display:flex;align-items:end;gap:18px;flex-wrap:wrap;padding:24px 26px;margin-bottom:12px}
.dashboard2-page label {display:flex;flex-direction:column;gap:8px;font-size:13px;color:#43564c;font-weight:500}
.dashboard2-page select {padding:10px 13px;border:1px solid #d5dfd9;border-radius:9px;background:#fff;color:#26342f;font-size:14px;max-width:100%}
.dashboard2-page #d2-status {flex:1;font-size:12px;line-height:1.85;color:#65736b;padding-bottom:6px}
.dashboard2-page .method,.dashboard2-page .hint {font-size:12px;line-height:1.85;color:#65736b;margin:0 0 18px}
.dashboard2-page .stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}
.dashboard2-page .stat {padding:22px;background:#fff;border:1px solid var(--border-color);border-radius:var(--border-radius);box-shadow:0 3px 14px #243b2f04}
.dashboard2-page .stat strong {display:block;font-size:28px;color:var(--dark-color);margin:8px 0}
.dashboard2-page .stat span {font-size:12px;color:#65736b}
.dashboard2-page .charts {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:start}
.dashboard2-page .card {min-width:0}
.dashboard2-page .card-header>span {font-size:11px;color:#75817b}
.dashboard2-page .bar-row {display:grid;grid-template-columns:minmax(70px,110px) minmax(0,1fr) minmax(44px,max-content) 44px;gap:8px;align-items:center;margin:13px 0}
.dashboard2-page button:not(.btn):not(.ui-button):not(.bar-word):not(.view-posts) {font:inherit;cursor:pointer;color:#40564d;border:1px solid #d8e1dd;border-radius:9px;background:#fff;padding:7px 12px}
.dashboard2-page button:not(.btn):not(.ui-button):not(.bar-word):not(.view-posts):hover {background:#f0f5f2;border-color:#b4c9bf}
.dashboard2-page button:disabled {opacity:.5;cursor:wait}
.dashboard2-page .bar-word {font:inherit;color:var(--ds-brand);cursor:pointer;border:0;background:none;padding:0;text-align:left;font-size:13px;overflow-wrap:anywhere}
.dashboard2-page .bar-track {height:12px;border-radius:4px;background:#edf3ef;overflow:hidden}
.dashboard2-page .bar-fill {height:100%;background:#709a81;border-radius:4px}
.dashboard2-page .bar-count {font-size:12px;text-align:right;white-space:nowrap}
.dashboard2-page .view-posts {font:inherit;font-size:12px;padding:6px;min-height:44px;white-space:nowrap;border:1px solid var(--ds-border);border-radius:8px;background:var(--ds-surface);color:var(--ds-brand);cursor:pointer}
.dashboard2-page .word-select {display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;font-size:12px}
.dashboard2-page .word-select label {flex-direction:row;align-items:center;padding:5px 8px;background:var(--light-color);border-radius:6px;font-size:12px;gap:6px;overflow-wrap:anywhere}
.dashboard2-page input[type=checkbox] {accent-color:var(--primary-color);flex-shrink:0}
.dashboard2-page .chart {width:100%;min-height:220px}
.dashboard2-page .chart text {font-size:11px;fill:#75817b}
.dashboard2-page .chart line {stroke:#e1e8e5}
.dashboard2-page .chart path {fill:none;stroke-width:2.5}
.dashboard2-page .intents {display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.dashboard2-page .intents button {font-size:13px}
.dashboard2-page .intents strong {margin-left:12px}
.dashboard2-page .intents button.active,.dashboard2-page .d2-tabs button[aria-selected=true] {background:#f0f6f2;border-color:#81a697;color:var(--primary-color)}
.dashboard2-page .d2-tabs {display:flex;gap:8px;flex-wrap:wrap}
.dashboard2-page .d2-tabs button {font-size:13px}
.dashboard2-page .filter-row {display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;margin:12px 0}
.dashboard2-page .post {border-top:1px solid #edf1ee;padding:22px 0}
.dashboard2-page .post-head {display:flex;justify-content:space-between;gap:16px;font-size:13px;flex-wrap:wrap}
.dashboard2-page .post-text {line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0;font-size:14px}
.dashboard2-page .post-foot {display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:12px;color:#65736b}
.dashboard2-page .post a,.dashboard2-page .price-item a {color:var(--primary-color);text-decoration:underline;text-underline-offset:4px}
.dashboard2-page .tag {font-size:11px;background:#f0f6f2;padding:4px 8px;border-radius:5px}
.dashboard2-page .bio {font-size:12px;line-height:1.85;color:#65736b;background:var(--light-color);padding:12px;border-radius:9px;margin-top:12px}
.dashboard2-page .author-actions {display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.dashboard2-page .author-actions button {font-size:11px;padding:5px 9px}
.dashboard2-page .empty {padding:30px 12px;text-align:center;color:#75817b;font-size:13px;line-height:1.85}
.dashboard2-page .ideas {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.dashboard2-page .ideas p {font-size:13px;line-height:1.85;color:#65736b}
.dashboard2-page .ideas strong {display:block;color:#43564c;margin-bottom:6px}
.dashboard2-page #d2-error {background:#fff1ea;color:#964832;padding:16px;margin-bottom:24px;border-radius:9px}
.dashboard2-page dialog {margin:auto;border:1px solid var(--border-color);border-radius:18px;padding:26px;max-width:850px;width:90vw;color:inherit;box-shadow:0 20px 80px #18382b26}
.dashboard2-page dialog::backdrop {background:#11182766}
.dashboard2-page .card-title {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.dashboard2-page .card-title h2 {font-size:18px}
.dashboard2-page .price-item {padding:18px 0;border-top:1px solid var(--border-color)}
.dashboard2-page .price-item strong {font-size:22px;margin-left:16px}
.dashboard2-page .price-item p {font-size:13px;line-height:1.85;margin:12px 0}
.dashboard2-page #d2-more {display:block;margin:16px auto 0}
.dashboard2-page [hidden] {display:none!important}
@media(max-width:900px){.dashboard2-page .charts {grid-template-columns:minmax(0,1fr)}}
@media(max-width:768px){.dashboard2-page .toolbar {padding:18px}.dashboard2-page .stats {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard2-page .stat {padding:18px}.dashboard2-page select {font-size:16px}}
@media(max-width:500px){.dashboard2-page .toolbar>label {width:100%}.dashboard2-page .ideas {grid-template-columns:1fr}.dashboard2-page .stat {padding:14px}.dashboard2-page .filter-row {flex-wrap:wrap}}
.dashboard2-page .d2-user-controls {display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.dashboard2-page .opportunity-evidence {grid-column:1/-1;color:#65736b;font-size:11px;line-height:1.8;margin:0 0 8px}
/* Candidate navigation stays beside the content being explored. */
.dashboard2-page .d2-workspace {display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:24px;align-items:start}
.dashboard2-page .d2-candidates {position:sticky;top:20px;min-width:0}
.dashboard2-page .d2-candidates .card-header {flex-wrap:wrap;gap:8px;padding:20px}
.dashboard2-page .d2-candidates .card-header h3 {font-size:15px}
.dashboard2-page .d2-candidates .card-body {padding:18px;max-height:calc(100vh - 160px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.dashboard2-page .d2-candidates .bar-row {grid-template-columns:minmax(0,1fr) minmax(44px,max-content) 44px;padding:12px 8px;margin:0;border-bottom:1px solid #edf1ee;border-radius:8px;gap:8px}
.dashboard2-page .d2-candidates .bar-word {grid-column:1/-1;font-weight:600}
.dashboard2-page .d2-candidates .bar-row.selected {background:#edf5ef}
.dashboard2-page .d2-candidates .opportunity-evidence {margin:0}
.dashboard2-page .d2-main-column {min-width:0}
.dashboard2-page .d2-main-tabs {display:flex;gap:6px;padding:5px;background:#e9f0ec;border-radius:12px;margin-bottom:18px}
.dashboard2-page .d2-main-tabs button {flex:1;border:0;border-radius:8px;padding:12px;font-size:14px;font-weight:600;background:transparent}
.dashboard2-page .d2-main-tabs button[aria-selected=true] {background:#fff;color:var(--primary-color);box-shadow:0 2px 6px #243b2f0b}
.dashboard2-page .d2-main-tabs i {margin-right:6px}
.dashboard2-page button:focus-visible,.dashboard2-page summary:focus-visible {outline:2px solid #35816b;outline-offset:3px}
.dashboard2-page [role=tabpanel] {scroll-margin-top:20px}
.dashboard2-page .d2-intent-details {margin-bottom:18px}
.dashboard2-page .d2-intent-details summary {cursor:pointer;padding:16px 22px;color:#43564c;font-size:13px}
.dashboard2-page .d2-intent-details summary>span:last-child {font-size:11px;color:#75817b;margin-left:14px}
.dashboard2-page .d2-intent-details[open] summary {border-bottom:1px solid #edf1ee}
.dashboard2-page .d2-intent-details .card-body {padding:18px 22px}
@media(max-width:900px){
 .dashboard2-page .d2-workspace {grid-template-columns:minmax(0,1fr);gap:16px}
 .dashboard2-page .d2-candidates {position:static}
 .dashboard2-page .d2-candidates .card-body {max-height:300px}
 .dashboard2-page .d2-candidates .card {margin-bottom:0}
}
/* One shared metric selection controls both candidate bars and trend lines. */
.dashboard2-page .d2-user-controls #d2-status {flex-basis:100%;margin:0;padding:0}
.dashboard2-page .d2-metric-control {display:flex;flex-direction:column;gap:8px;min-width:0}
.dashboard2-page #d2-metric-label {font-size:13px;font-weight:500;color:#43564c}
.dashboard2-page .d2-metric-buttons {display:flex;flex-wrap:wrap;gap:4px;padding:4px;background:#e9f0ec;border:1px solid #dce6df;border-radius:12px}
.dashboard2-page .d2-metric-buttons button {border:0;background:transparent;padding:10px 14px;font-size:13px;min-height:42px}
.dashboard2-page .d2-metric-buttons button[aria-pressed=true] {background:#fff;color:var(--primary-color);font-weight:600;box-shadow:0 2px 6px #243b2f12}
.dashboard2-page .d2-metric-unavailable {font-size:10px;color:#75817b;margin-left:6px;font-weight:400}
@media(max-width:600px){.dashboard2-page .d2-metric-control {width:100%}.dashboard2-page .d2-metric-buttons {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard2-page .d2-metric-buttons button {padding:10px 6px}}

.dashboard2-page label.d2-promotion-control {display:flex;flex-direction:row;align-items:center;gap:8px;white-space:nowrap}
.dashboard2-page .d2-promotion-control input {width:16px;height:16px;margin:0;accent-color:#48765b}

/* Design-system pilot: bounded layout rules, not global component overrides. */
.dashboard2-page .d2-filter-card {background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-card-radius);padding:24px;margin-bottom:12px;}
.dashboard2-page .d2-filter-heading {margin-bottom:20px;}
.dashboard2-page .d2-filter-heading h3 {font-size:16px;margin:0 0 6px;}
.dashboard2-page .d2-filter-grid {display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(220px,1fr) minmax(140px,.6fr);gap:24px;align-items:start;}
.dashboard2-page .d2-filter-footer {display:flex;align-items:start;justify-content:space-between;gap:20px;border-top:1px solid var(--ds-border);padding-top:16px;margin-top:20px;}
.dashboard2-page .d2-method {max-width:560px;color:var(--ds-muted);font-size:13px;}
.dashboard2-page .d2-method summary {cursor:pointer;}
.dashboard2-page .d2-method p {margin:12px 0 0;}
.dashboard2-page .d2-collection-note {padding:0 4px 16px;overflow-wrap:anywhere;}
.dashboard2-page .d2-candidates .bar-word {font-size:14px;line-height:1.7;min-height:36px;}
.dashboard2-page .post {padding:24px 0;min-width:0;}
.dashboard2-page .post-head {gap:8px;align-items:baseline;}
.dashboard2-page .post-head a {font-weight:600;overflow-wrap:anywhere;}
.dashboard2-page .post-head>span {font-size:12px;color:var(--ds-muted);}
.dashboard2-page .post-text {margin:16px 0;line-height:1.9;}
.dashboard2-page .post-foot {gap:8px 16px;}
.dashboard2-page .post-foot>span:not(.tag) {font-variant-numeric:tabular-nums;color:var(--ds-ink);}
.dashboard2-page .post .metric-details {font-size:12px;color:var(--ds-muted);margin-top:12px;}
.dashboard2-page .post .metric-details summary {cursor:pointer;}
.dashboard2-page .post .metric-details p {margin:6px 0;overflow-wrap:anywhere;}
.dashboard2-page .post .tag {overflow-wrap:anywhere;max-width:100%;}
@media(max-width:1100px){.dashboard2-page .d2-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard2-page .d2-filter-grid>.ui-field:last-child{max-width:260px}}
@media(max-width:600px){.dashboard2-page .d2-filter-card{padding:18px}.dashboard2-page .d2-filter-grid{grid-template-columns:minmax(0,1fr);gap:20px}.dashboard2-page .d2-filter-grid>.ui-field:last-child{max-width:none}.dashboard2-page .d2-filter-footer{flex-direction:column;gap:16px}.dashboard2-page .post-head{flex-direction:column;gap:4px}.dashboard2-page .card-body{padding:18px}.dashboard2-page .card-header{padding:18px}.dashboard2-page .d2-tabs{width:100%}.dashboard2-page .d2-tabs button{flex:1;min-height:44px;}}
@media(max-width:600px){.dashboard2-page #d2-post-tab,.dashboard2-page #d2-doctor-tab{font-size:12px;padding:8px;white-space:nowrap;min-width:0}}

/* Signal accent: top candidates carry the coral; selection and navigation stay green. */
.dashboard2-page #d2-bars {counter-reset:d2rank}
.dashboard2-page .d2-candidates .bar-row {counter-increment:d2rank;border-bottom-color:#edf1ee}
.dashboard2-page .d2-candidates .bar-word::before {content:counter(d2rank);content:counter(d2rank) / "";display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:10px;border-radius:7px;background:#edf4ef;color:#245b50;font-size:12px;font-weight:700;vertical-align:1px;font-variant-numeric:tabular-nums}
.dashboard2-page .d2-candidates .bar-row:nth-child(-n+3) .bar-word::before {background:var(--ds-accent-soft);color:var(--ds-accent-ink)}
.dashboard2-page .d2-candidates .bar-row:nth-child(-n+3) .bar-fill {background:var(--ds-accent)}
.dashboard2-page .bar-track {height:8px;background:#edf1ee}
.dashboard2-page .bar-fill {background:#8fb8aa}
.dashboard2-page .d2-candidates .bar-row.selected {background:#edf5ef;box-shadow:inset 0 0 0 1px #9cc2b5}
.dashboard2-page .d2-filter-card {box-shadow:0 4px 20px #163c320d;border-radius:18px}
.dashboard2-page .tag {background:#edf4ef;color:#245b50;font-weight:600}

/* Timeline labels: intent is a color-coded category (dot); word sentiment reads at a glance, positive is blue and negative dark gray so both stand apart from the green base. */
.dashboard2-page .tag {display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:2px 9px;border-radius:6px;font-size:11px;font-weight:600;line-height:1.5;border:1px solid transparent}
.dashboard2-page [class*=intent-] {--intent:#9aa8a1}
.dashboard2-page .intent-question {--intent:#3b6fd0}
.dashboard2-page .intent-comparison {--intent:#7b5cc4}
.dashboard2-page .intent-experience {--intent:#1f8a70}
.dashboard2-page .intent-recommendation {--intent:#c24d86}
.dashboard2-page .intent-promotion {--intent:#b7791f}
.dashboard2-page .intent-education {--intent:#4a6b8a}
.dashboard2-page .intent-news {--intent:#5c7080}
.dashboard2-page .tag-intent {background:color-mix(in srgb,var(--intent) 9%,#fff);border-color:color-mix(in srgb,var(--intent) 35%,#fff);color:color-mix(in srgb,var(--intent) 70%,#1c2622)}
.dashboard2-page :is(.tag-intent,#d2-intents button)::before {content:"";width:7px;height:7px;border-radius:50%;background:var(--intent);flex-shrink:0}
.dashboard2-page #d2-intents button {display:inline-flex;align-items:center;gap:8px}
.dashboard2-page .tag-positive {background:#2563c9;border-color:#2563c9;color:#fff;font-weight:700}
.dashboard2-page .tag-negative {background:#5a626d;border-color:#5a626d;color:#fff;font-weight:600}
.dashboard2-page .tag-mixed {background:#f4f1f6;color:#5e4f6b;font-weight:500}
.dashboard2-page :is(.tag-neutral,.tag-uncertain,.tag-pending) {background:#f1f3f2;color:#5d6d65;font-weight:500}
.dashboard2-page :is(#d2-post-tab,#d2-doctor-tab)[aria-selected=true] {background:var(--ds-brand);border-color:var(--ds-brand);color:#fff;font-weight:700}
.dashboard2-page :is(#d2-post-tab,#d2-doctor-tab)[aria-selected=true]:hover {background:var(--ds-brand-hover);border-color:var(--ds-brand-hover);color:#fff}
.dashboard2-page #d2-intents button.active {background:var(--ds-brand);border-color:var(--ds-brand);color:#fff}
.dashboard2-page #d2-intents button.active::before {box-shadow:0 0 0 2px #fff}
.dashboard2-page .post-foot>span:not(.tag) {font-weight:600}
