* {
  box-sizing:border-box}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:14px/1.65 var(--font);
  -webkit-font-smoothing:antialiased}
button,input,select {
  font:inherit}
button {
  color:inherit;
  cursor:pointer}
button:disabled {
  opacity:.55;
  cursor:not-allowed}
button,a,input,select,summary {
  -webkit-tap-highlight-color:transparent}
button {
  border:0;
  background:none}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px}
button,input,select {
  min-height:44px}
h1,h2,h3,p {
  margin:0}
h1 {
  font-size:29px;
  line-height:1.35;
  letter-spacing:-.5px}
h2 {
  font-size:18px;
  line-height:1.5}
h3 {
  font-size:16px;
  line-height:1.5}
p {
  margin:10px 0;
  color:var(--muted)}
small {
  font-size:12px}
b,strong,.numeric,.large-number {
  font-variant-numeric:tabular-nums}
input,select {
  background:var(--surface);
  color:var(--text);
  border:1px solid var(--line);
  border-radius:9px;
  padding:10px 12px;
  max-width:100%;
  width:100%}
select {
  width:auto;
  padding-right:22px}
input[type=date] {
  width:auto}
label {
  display:block;
  font-size:13px;
  color:var(--muted)}
label input {
  margin-top:6px}
.icon {
  width:20px;
  height:20px;
  flex:none;
  vertical-align:middle}
.muted,.caption {
  color:var(--muted)}
.caption {
  font-size:12px}
.positive {
  color:var(--red)}
.negative {
  color:var(--teal)}
.danger {
  color:var(--red)!important}
.center {
  text-align:center}
.app-header {
  max-width:1560px;
  margin:auto;
  padding:18px 36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:90px}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  padding:0;
  text-align:left;
  flex-shrink:0}
.brand-mark {
  background:linear-gradient(135deg,#1674ff,#0c2c64);
  color:white;
  width:42px;
  height:42px;
  border-radius:12px;
  display:grid;
  place-content:center;
  font-size:26px;
  font-weight:700;
  position:relative;
  box-shadow:0 3px 10px #154caa20}
.brand-mark span {
  position:absolute;
  right:7px;
  bottom:3px;
  color:#58d3cb}
.brand b {
  display:block;
  font-size:19px;
  letter-spacing:2px}
.brand small {
  display:block;
  font-size:8px;
  letter-spacing:1.5px;
  color:var(--muted)}
.nav {
  display:flex;
  align-items:center;
  gap:4px;
  background:var(--surface);
  border:1px solid var(--line);
  padding:4px;
  border-radius:15px}
.nav-item {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:8px 18px;
  border-radius:10px;
  color:var(--muted);
  white-space:nowrap}
.nav-item.active {
  background:var(--blue-soft);
  color:var(--blue);
  font-weight:650}
.ai-nav .icon {
  color:var(--blue)}
.header-actions {
  display:flex;
  align-items:center;
  gap:8px}
.search-launch {
  display:flex;
  align-items:center;
  gap:10px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  min-width:176px;
  padding:8px 13px;
  color:var(--muted);
  font-size:12px}
.icon-button {
  width:44px;
  padding:10px;
  border-radius:12px;
  display:inline-grid;
  place-items:center}
.icon-button:hover {
  background:var(--blue-soft)}
.fixture-banner {
  text-align:center;
  font-size:11px;
  color:var(--amber);
  background:var(--amber-soft);
  padding:5px 12px;
  border-block:1px solid var(--line)}
.page-content {
  max-width:1560px;
  margin:0 auto;
  padding:22px 36px 28px;
  display:grid;
  gap:18px}
.card {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:23px;
  box-shadow:var(--shadow);
  min-width:0}
.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:16px}
.section-heading .text-action {
  font-size:12px}
.text-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  color:var(--blue);
  padding:3px 4px;
  min-height:44px;
  text-decoration:none;
  white-space:normal}
.text-action .icon {
  width:16px;
  height:16px}
.primary-action,.secondary-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:44px;
  padding:10px 18px;
  border-radius:10px;
  font-weight:600;
  text-decoration:none;
  border:1px solid transparent}
.primary-action {
  background:#1d61ee;
  color:#fff;
  box-shadow:0 3px 8px #1d61ee10}
.primary-action:hover {
  background:#1554d6}
.secondary-action {
  background:var(--surface);
  border-color:var(--line);
  color:var(--navy)}
.secondary-action:hover {
  background:var(--blue-soft)}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:23px}
.badge {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  border-radius:6px;
  background:var(--surface-soft);
  font-size:11px;
  padding:2px 8px;
  color:var(--muted);
  white-space:normal}
.badge.blue {
  background:var(--blue-soft);
  color:var(--blue)}
.badge.teal {
  background:var(--teal-soft);
  color:var(--teal)}
.badge.amber {
  background:var(--amber-soft);
  color:var(--amber)}
.eyebrow {
  color:var(--muted);
  font-size:12px;
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:500}
.eyebrow .icon {
  color:var(--blue)}
.eyebrow span {
  font-size:11px}
.conclusion {
  display:flex;
  align-items:center;
  gap:18px;
  background:var(--surface);
  padding:30px;
  position:relative}
.conclusion-copy {
  flex:1;
  min-width:0}
.conclusion h1 {
  margin:18px 0 12px;
  font-size:29px;
  max-width:690px}
.conclusion p {
  max-width:660px;
  line-height:1.9}
.decision-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px}
.decision-mark {
  width:90px;
  height:90px;
  flex:none;
  border-radius:50%;
  background:var(--blue-soft);
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  color:var(--blue)}
.decision-mark .icon {
  width:31px;
  height:31px}
.decision-mark span {
  font-size:11px;
  letter-spacing:2px;
  margin-top:5px}
.today-top {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:16px}
.today-status {
  display:grid;
  gap:16px}
.today-status>.card {
  padding:17px 19px}
.health-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px}
.status-tile {
  padding:18px 16px}
.tile-caption {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  font-size:11px;
  color:var(--muted);
  margin-bottom:13px}
.tile-caption>.icon {
  color:var(--blue)}
.tile-caption .badge {
  margin-left:auto}
.status-tile h3 {
  font-size:15px}
.status-tile p {
  font-size:11px}
.status-tile small {
  font-size:11px;
  color:var(--muted);
  display:block}
.status-tile .text-action {
  font-size:11px;
  min-height:36px}
.attention-list {
  display:grid}
.attention-item {
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
  padding:14px 0;
  border-bottom:1px solid var(--line);
  width:100%}
.attention-item:last-child {
  border-bottom:0}
.attention-item>span:nth-child(2) {
  flex:1;
  min-width:0}
.attention-item b {
  display:block;
  line-height:1.6}
.attention-item small {
  display:block;
  color:var(--muted);
  font-size:11px}
.attention-item>span>span {
  display:block;
  color:var(--muted);
  font-size:12px;
  margin-top:3px}
.attention-item>.icon {
  width:15px;
  color:var(--muted)}
.item-icon {
  color:var(--amber);
  background:var(--amber-soft);
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  flex:none;
  border-radius:50%}
.attention-list.compact {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px}
.compact .attention-item {
  border:1px solid var(--line);
  border-radius:10px;
  padding:11px;
  gap:8px;
  align-items:flex-start}
.compact .attention-item>b {
  font-size:12px}
.compact .attention-item>.icon {
  display:none}
.compact .item-icon {
  width:27px;
  height:27px}
.compact .item-icon .icon {
  width:16px}
.compact .attention-item b {
  font-size:12px}
.compact .attention-item small {
  font-size:10px}
.compact .attention-item>span>span {
  font-size:11px}
.today-bottom {
  display:grid;
  grid-template-columns:1.05fr 1.15fr .9fr;
  gap:16px}
.large-number {
  font-size:38px;
  line-height:1.4;
  font-weight:650;
  letter-spacing:-1px;
  margin:5px 0}
.pnl-line {
  display:flex;
  align-items:center;
  gap:15px}
.pnl-line span {
  color:var(--muted);
  font-size:12px}
.pnl-line b {
  font-size:21px}
.metrics {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin:25px 0 20px;
  padding-top:18px;
  border-top:1px solid var(--line)}
.metrics>div+div {
  border-left:1px solid var(--line);
  padding-left:14px}
.metrics span {
  display:block;
  font-size:11px;
  color:var(--muted)}
.metrics b {
  display:block;
  font-size:21px;
  margin-top:3px}
.metrics small {
  font-size:11px;
  font-weight:400}
.metrics .unavailable {
  font-size:15px;
  color:var(--muted);
  padding-top:5px}
.allocation-bar {
  height:9px;
  border-radius:8px;
  overflow:hidden;
  display:flex;
  margin-top:14px}
.allocation-bar i {
  display:block}
.holdings-head,.holding-row {
  display:grid;
  grid-template-columns:1.35fr .8fr .9fr 1fr .8fr;
  gap:12px;
  align-items:center}
.holdings-head {
  color:var(--muted);
  font-size:11px;
  border-bottom:1px solid var(--line);
  padding:8px 0}
.holdings-head>span:not(:first-child) {
  text-align:right}
.holding-row {
  padding:13px 0;
  border-bottom:1px solid var(--line)}
.holding-row:last-child {
  border-bottom:0}
.holding-name {
  display:flex;
  gap:11px;
  align-items:center;
  text-align:left;
  padding:0;
  min-width:0}
.holding-name i {
  width:8px;
  height:8px;
  border-radius:50%;
  flex:none;
  box-shadow:0 0 0 4px var(--surface-soft)}
.holding-name span {
  min-width:0}
.holding-name b {
  display:block;
  font-size:13px;
  overflow-wrap:anywhere}
.holding-name small {
  display:block;
  font-size:10px;
  color:var(--muted)}
.numeric {
  text-align:right;
  min-width:0}
.numeric b {
  font-size:13px;
  font-weight:550}
.numeric small {
  display:block;
  color:var(--muted);
  font-size:10px}
.positive small,.negative small {
  color:inherit}
.numeric .mobile-label {
  display:none}
.today-bottom .holdings-head,.today-bottom .holding-row,.card:has(.holdings-head>span:last-child:nth-child(3)) .holding-row {
  grid-template-columns:1.35fr .8fr .9fr}
.card:has(.holdings-head>span:last-child:nth-child(3)) .holdings-head {
  grid-template-columns:1.35fr .8fr .9fr}
.row-actions {
  display:flex;
  gap:7px;
  justify-content:flex-end;
  flex-wrap:wrap}
.row-actions button {
  font-size:12px}
.compact-note {
  text-align:center;
  padding:28px 5px}
.compact-note>.icon {
  width:33px;
  height:33px;
  color:var(--blue);
  margin-bottom:13px}
.compact-note h3 {
  font-size:15px}
.compact-note p {
  font-size:12px;
  line-height:1.85;
  margin:13px 0 23px}
.daily-note {
  display:flex;
  gap:25px;
  align-items:center;
  padding:16px 22px}
.daily-note>span {
  color:var(--navy);
  font-weight:600;
  white-space:nowrap}
.daily-note p {
  flex:1;
  font-size:13px}
.two-columns {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px}
.allocation-content {
  display:flex;
  gap:35px;
  align-items:center;
  min-height:235px}
.donut {
  width:190px;
  height:190px;
  flex:none;
  border-radius:50%;
  display:grid;
  place-items:center}
.donut>div {
  width:138px;
  height:138px;
  border-radius:50%;
  background:var(--surface);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column}
.donut b {
  font-size:33px}
.donut span {
  font-size:11px;
  color:var(--muted)}
.legend {
  flex:1;
  min-width:0;
  display:grid;
  gap:3px}
.legend button {
  display:flex;
  align-items:center;
  gap:9px;
  padding:4px 0;
  min-height:34px;
  font-size:12px;
  text-align:left}
.legend i {
  width:9px;
  height:9px;
  flex:none;
  border-radius:50%}
.legend span {
  flex:1}
.legend b {
  font-weight:550}
.list-toolbar {
  display:flex;
  gap:13px;
  align-items:center;
  margin-bottom:16px}
.list-toolbar label {
  display:flex;
  align-items:center;
  gap:8px}
.list-toolbar .primary-action {
  margin-left:auto}
.subnav {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:12px;
  padding:3px;
  display:flex;
  justify-content:space-around}
.subnav button {
  flex:1;
  color:var(--muted);
  padding:12px 8px;
  border-bottom:3px solid transparent;
  border-radius:6px;
  min-width:0}
.subnav .selected {
  color:var(--blue);
  border-bottom-color:var(--blue);
  font-weight:650;
  background:var(--blue-soft)}
.decision-layout {
  display:grid;
  grid-template-columns:minmax(0,2.35fr) minmax(0,1fr);
  gap:18px;
  align-items:start}
.decision-layout>div,.decision-layout aside {
  display:grid;
  gap:18px}
.evidence-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:12px;
  color:var(--muted);
  margin-bottom:18px}
.evidence-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border:1px solid var(--line);
  border-radius:11px;
  overflow:hidden}
.evidence-grid>div {
  padding:19px;
  border-bottom:1px solid var(--line)}
.evidence-grid>div:nth-child(odd) {
  border-right:1px solid var(--line)}
.evidence-grid>div:nth-last-child(-n+2) {
  border-bottom:0}
.evidence-grid h3 {
  margin:9px 0}
.evidence-grid p,.evidence-grid li {
  font-size:13px;
  color:var(--muted);
  line-height:1.8}
.evidence-grid ul {
  padding-left:18px;
  margin:10px 0 0}
.evidence-grid .eyebrow {
  color:var(--blue)}
details {
  margin-top:15px;
  color:var(--muted);
  font-size:12px}
summary {
  cursor:pointer;
  min-height:36px;
  display:list-item;
  align-content:center}
.question-links {
  display:grid;
  margin:16px 0}
.question-links button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--blue);
  border-bottom:1px solid var(--line);
  padding:12px 0;
  text-align:left}
.decision-timeline article {
  position:relative;
  border-left:1px solid var(--line);
  padding:0 0 25px 23px;
  margin-left:7px}
.decision-timeline article:last-child {
  padding-bottom:0}
.timeline-dot {
  position:absolute;
  left:-5px;
  top:6px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 4px var(--teal-soft)}
.decision-timeline time {
  color:var(--muted);
  font-size:11px}
.decision-timeline h3 {
  margin:6px 0}
.decision-timeline p {
  font-size:13px}
.page-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:6px 0}
.page-title .eyebrow {
  margin-bottom:6px}
.page-title h1 {
  font-size:25px}
.empty-state {
  padding:30px 15px;
  text-align:center;
  max-width:520px;
  margin:auto;
  color:var(--muted)}
.empty-state>.icon {
  width:32px;
  height:32px;
  color:var(--blue);
  opacity:.7;
  margin-bottom:12px}
.empty-state h3 {
  color:var(--text);
  font-size:15px}
.empty-state p {
  font-size:12px;
  line-height:1.8}
.back {
  justify-self:start}
.symbol-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px}
.symbol-hero h1 {
  margin-top:10px}
.quote-number {
  text-align:right;
  display:grid}
.quote-number strong {
  font-size:33px}
.quote-number span,.quote-number small {
  color:var(--muted);
  font-size:12px}
.detail-facts {
  margin:15px 0;
  display:grid}
.detail-facts>div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:12px 0;
  border-bottom:1px solid var(--line)}
dt {
  color:var(--muted);
  font-size:13px}
dd {
  margin:0;
  font-variant-numeric:tabular-nums}
.next-list {
  padding-left:20px;
  color:var(--muted);
  line-height:2.4}
.date-control {
  display:flex;
  align-items:center;
  gap:10px}
.date-control input {
  margin:0}
.settings-card {
  max-width:850px}
.setting-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  margin-bottom:15px}
.setting-row small {
  display:block;
  color:var(--muted)}
footer {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:11px;
  padding:14px 2px}
.feedback {
  padding:12px 16px;
  border-radius:10px;
  background:var(--blue-soft);
  color:var(--navy);
  font-size:13px}
.feedback.error,.form-error {
  color:var(--red);
  background:var(--amber-soft)}
.search-dialog,.editor-dialog {
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--text);
  border-radius:20px;
  padding:25px;
  width:min(560px,calc(100% - 28px));
  max-height:calc(100dvh - 40px);
  overflow-y:auto;
  box-shadow:0 30px 90px #061c4530}
.editor-dialog {
  width:min(580px,calc(100% - 28px))}
dialog::backdrop {
  background:#081e444d;
  backdrop-filter:blur(3px)}
.dialog-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px}
.dialog-head h2 {
  font-size:21px}
.search-input-wrap {
  position:relative;
  display:flex;
  align-items:center}
.search-input-wrap>.icon {
  position:absolute;
  left:13px;
  color:var(--muted)}
.search-input-wrap input {
  padding:12px 48px 12px 43px;
  border-color:var(--blue);
  margin:0}
.search-input-wrap button {
  position:absolute;
  right:3px;
  top:3px;
  width:42px}
.search-help {
  font-size:12px;
  margin:10px 0}
.search-results {
  max-height:310px;
  overflow-y:auto;
  margin:8px 0;
  padding:0;
  list-style:none;
  overscroll-behavior:contain}
.search-option {
  display:flex;
  width:100%;
  align-items:center;
  gap:12px;
  padding:12px 10px;
  min-height:65px;
  text-align:left;
  border-radius:10px}
.search-option[aria-selected=true],.search-option:hover {
  background:var(--blue-soft)}
.security-mark {
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  background:var(--blue-soft);
  color:var(--blue);
  border-radius:10px;
  flex:none;
  font-size:12px}
.search-option>span:nth-child(2) {
  flex:1}
.search-option b {
  display:block;
  font-size:14px}
.search-option small {
  display:block;
  color:var(--muted);
  font-size:11px}
.search-option .badge {
  font-size:10px}
.selected-security {
  display:flex;
  align-items:center;
  gap:13px;
  padding:15px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface-soft);
  margin:18px 0}
.selected-security span:nth-child(2) {
  flex:1}
.selected-security b,.selected-security small {
  display:block}
.selected-security small {
  color:var(--muted)}
.portfolio-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px}
.form-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:25px}
.form-actions button {
  flex:1}
.editor-notes {
  font-size:12px;
  margin-top:20px}
.lookup-status {
  font-size:12px;
  color:var(--muted);
  min-height:22px}
.auth-page {
  max-width:550px;
  padding-top:70px}
.auth-surface {
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:20px;
  padding:30px}
.auth-brand {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:25px}
.auth-brand b {
  font-size:22px}
.auth-brand small {
  display:block;
  color:var(--muted)}
.auth-brand .real-badge {
  margin-left:auto;
  font-size:11px;
  color:var(--teal)}
.auth-surface label {
  margin-top:14px}
.auth-surface form>.primary-action {
  width:100%;
  margin-top:22px}
.auth-note {
  display:block;
  color:var(--muted);
  margin-top:16px}
.state-surface {
  padding:40px}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:100;
  background:var(--surface);
  padding:10px}
.skip-link:focus {
  top:10px}
.e2e-manual-harness {
  margin:30px;
  padding:20px;
  border:1px dashed var(--line)}

@media(min-width:1500px) {
  .conclusion h1 {
  font-size:33px}
.conclusion {
  padding:35px}
.today-top {
  grid-template-columns:1fr 1.1fr}
.evidence-grid {
  grid-template-columns:repeat(4,minmax(0,1fr))}
.evidence-grid>div:nth-child(5),.evidence-grid>div:nth-child(6) {
  grid-column:span 2}
.evidence-grid>div:nth-child(2) {
  border-right:1px solid var(--line)}
}

@media(max-width:1250px) {
  .app-header {
  padding-inline:24px;
  gap:15px}
.brand small {
  display:none}
.nav-item {
  padding:8px 12px}
.search-launch {
  min-width:44px;
  width:44px;
  padding:11px}
.search-launch span {
  display:none}
.page-content {
  padding-inline:24px}
.today-top {
  grid-template-columns:1fr}
.today-bottom {
  grid-template-columns:1fr 1fr}
.today-bottom>.card:last-child {
  grid-column:span 2}
.compact-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:0}
.compact-note p {
  max-width:300px;
  margin:0}
.compact-note>.icon {
  margin:0}
.decision-mark {
  width:95px;
  height:95px}
.conclusion h1 {
  font-size:30px}
.allocation-content {
  gap:20px}
.donut {
  width:150px;
  height:150px}
.donut>div {
  width:110px;
  height:110px}
.metrics {
  gap:6px}
}

@media(max-width:900px) {
  .brand {
  gap:8px}
.app-header {
  padding:14px 20px;
  gap:9px}
.nav-item {
  padding:8px 9px;
  gap:6px;
  font-size:13px}
.nav-item .icon {
  width:17px}
.brand-mark {
  width:36px;
  height:36px;
  font-size:23px}
.header-actions {
  gap:0}
.brand b {
  font-size:16px}
.page-content {
  padding:14px 20px}
.card {
  padding:20px}
.two-columns {
  grid-template-columns:1fr}
.allocation-content {
  justify-content:center;
  min-height:190px}
.legend {
  max-width:300px}
.decision-layout {
  grid-template-columns:1fr}
.decision-layout aside {
  grid-template-columns:1fr 1fr}
.list-toolbar {
  gap:8px}
.holding-row {
  gap:7px}
.holding-name {
  gap:7px}
.row-actions {
  gap:0}
}

@media(max-width:700px) {
  body {
  font-size:14px}
.app-header {
  padding:14px 18px;
  min-height:73px}
.brand small {
  display:block;
  font-size:7px;
  letter-spacing:.8px}
.brand b {
  font-size:17px}
.brand-mark {
  width:35px;
  height:35px}
.nav {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:20;
  border-radius:0;
  border:0;
  border-top:1px solid var(--line);
  padding:7px 12px calc(7px + env(safe-area-inset-bottom));
  justify-content:space-around;
  background:var(--surface)}
.nav-item {
  flex:1;
  flex-direction:column;
  gap:2px;
  padding:5px 4px;
  font-size:10px;
  min-height:50px;
  border-radius:10px}
.nav-item .icon {
  width:21px;
  height:21px}
.ai-nav .icon {
  background:var(--blue-soft);
  width:34px;
  height:34px;
  padding:6px;
  border-radius:50%;
  margin-top:-10px}
.nav-item.active {
  background:transparent}
.nav-item.active .icon {
  color:var(--blue)}
.header-actions button {
  width:38px}
.header-actions>.icon-button[data-page=status] {
  display:none}
.fixture-banner {
  font-size:10px;
  padding:5px 13px}
.page-content {
  padding:14px 14px calc(85px + env(safe-area-inset-bottom));
  gap:13px}
.card {
  padding:19px 17px;
  border-radius:14px}
.today-top,.today-bottom {
  display:flex;
  flex-direction:column;
  gap:13px}
.today-status {
  gap:13px}
.conclusion {
  padding:23px 19px;
  gap:10px;
  align-items:flex-start}
.conclusion h1 {
  font-size:25px;
  margin-top:14px}
.conclusion p {
  font-size:13px;
  line-height:1.9}
.conclusion .eyebrow {
  font-size:11px;
  flex-wrap:wrap;
  gap:5px}
.conclusion .eyebrow span {
  font-size:10px}
.conclusion .decision-mark {
  display:none}
.conclusion .actions {
  gap:8px;
  margin-top:20px}
.actions>button {
  padding:10px 12px;
  font-size:12px}
.health-grid {
  display:flex;
  flex-direction:column;
  gap:0;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding:0 15px}
.status-tile {
  border:0;
  border-radius:0;
  box-shadow:none;
  border-bottom:1px solid var(--line);
  padding:14px 0;
  display:grid;
  grid-template-columns:1fr auto;
  column-gap:10px}
.status-tile:last-child {
  border:0}
.tile-caption {
  grid-column:1;
  grid-row:1;
  margin:0;
  font-size:12px}
.tile-caption .badge {
  margin-left:3px}
.status-tile h3 {
  grid-column:2;
  grid-row:1;
  font-size:12px;
  align-self:center;
  text-align:right}
.status-tile p {
  grid-column:1 / -1;
  font-size:11px;
  margin:5px 0 0}
.status-tile small,.status-tile>.text-action {
  grid-column:1 / -1;
  font-size:10px;
  margin-top:4px}
.status-tile .text-action {
  min-height:28px;
  justify-content:flex-start}
.attention-list.compact {
  display:grid;
  grid-template-columns:1fr;
  gap:0}
.compact .attention-item {
  border:0;
  border-radius:0;
  border-bottom:1px solid var(--line);
  padding:13px 0;
  gap:13px}
.compact .attention-item:last-child {
  border:0}
.compact .item-icon {
  width:33px;
  height:33px}
.compact .attention-item b {
  font-size:13px}
.compact .attention-item small {
  font-size:11px}
.compact .attention-item>span>span {
  font-size:12px}
.compact .attention-item>.icon {
  display:block}
.section-heading {
  margin-bottom:10px}
.section-heading h2 {
  font-size:17px}
.large-number {
  font-size:34px}
.metrics {
  margin-top:17px;
  padding-top:16px}
.metrics b {
  font-size:21px}
.compact-note {
  display:block;
  text-align:center;
  padding:15px 10px}
.compact-note>.icon {
  margin-bottom:12px}
.compact-note p {
  margin:12px auto 20px}
.daily-note {
  display:block}
.daily-note p {
  font-size:12px}
.daily-note .text-action {
  font-size:12px}
.holdings-head {
  display:none}
.holding-row,.today-bottom .holding-row,.card:has(.holdings-head>span:last-child:nth-child(3)) .holding-row {
  grid-template-columns:repeat(3,minmax(0,1fr));
  padding:15px 0;
  gap:10px}
.holding-name {
  grid-column:1 / -1;
  min-height:40px}
.holding-name b {
  font-size:14px}
.holding-name small {
  font-size:11px}
.numeric {
  text-align:left}
.numeric b {
  font-size:13px}
.numeric .mobile-label {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:3px}
.row-actions {
  grid-column:1 / -1;
  border-top:1px dashed var(--line);
  justify-content:flex-end;
  gap:22px;
  padding-top:3px}
.today-bottom .holding-row {
  grid-template-columns:1.4fr 1fr 1fr;
  gap:7px}
.today-bottom .holding-name {
  grid-column:auto}
.today-bottom .numeric {
  text-align:right}
.today-bottom .holding-name b {
  font-size:12px}
.today-bottom .holding-name small {
  font-size:9px}
.today-bottom .holding-name i {
  display:none}
.today-bottom .numeric b {
  font-size:12px}
.list-toolbar {
  flex-wrap:wrap;
  align-items:center}
.list-toolbar label {
  font-size:11px;
  gap:5px;
  flex:1}
.list-toolbar select {
  font-size:12px;
  width:100%;
  padding-left:8px;
  min-width:0}
.list-toolbar .primary-action {
  width:100%;
  margin:0}
.two-columns {
  gap:13px}
.allocation-content {
  gap:20px;
  min-height:210px}
.donut {
  width:135px;
  height:135px}
.donut>div {
  width:99px;
  height:99px}
.donut b {
  font-size:27px}
.legend button {
  font-size:11px;
  gap:7px}
.subnav {
  border-radius:10px}
.subnav button {
  font-size:12px;
  padding:11px 3px}
.decision-layout {
  gap:13px}
.decision-layout aside {
  grid-template-columns:1fr;
  gap:13px}
.evidence-grid {
  grid-template-columns:1fr}
.evidence-grid>div {
  padding:17px;
  border-right:0!important}
.evidence-grid>div:nth-last-child(2) {
  border-bottom:1px solid var(--line)}
.evidence-meta {
  gap:10px;
  font-size:11px}
.page-title {
  align-items:flex-start;
  flex-wrap:wrap;
  gap:12px}
.page-title h1 {
  font-size:23px}
.date-control {
  width:100%;
  justify-content:space-between}
.symbol-hero {
  display:block}
.symbol-hero h1 {
  font-size:26px}
.quote-number {
  text-align:left;
  margin-top:15px}
.setting-row {
  gap:12px}
.setting-row b {
  font-size:13px}
.setting-row small {
  font-size:11px}
.setting-row button {
  font-size:12px;
  padding:8px 12px;
  white-space:nowrap}
footer {
  display:block;
  font-size:10px;
  text-align:center;
  padding:15px 0}
footer span {
  display:block}
.search-dialog,.editor-dialog {
  max-height:calc(100dvh - 24px);
  margin:auto;
  padding:20px 16px;
  border-radius:16px}
.search-results {
  max-height:230px}
.portfolio-form-grid {
  grid-template-columns:1fr}
.form-actions {
  position:sticky;
  bottom:-20px;
  background:var(--surface);
  padding:15px 0 calc(5px + env(safe-area-inset-bottom));
  margin-top:18px}
.auth-page {
  padding-top:25px}
.auth-surface {
  padding:24px}
.detail-facts>div {
  font-size:13px}
}

@media(max-width:600px) {
  .card {
  min-width:0}
}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
  scroll-behavior:auto!important;
  animation:none!important;
  transition:none!important}
}

[hidden] {
  display:none!important}
.price-chart {
  margin-top:20px}
.price-chart svg {
  display:block;
  width:100%;
  height:auto}
.chart-labels {
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:11px}
.today-status .empty-state {
  padding:15px 5px}
.today-status>.card .section-heading {
  margin-bottom:6px}
.today-top .conclusion {
  align-items:flex-start}
.today-top .conclusion-copy {
  align-self:center}
.today-top .decision-mark {
  align-self:center}
.today-bottom .holding-row {
  padding-block:9px}
.today-bottom .holdings-card {
  align-self:start}
.today-bottom>.card {
  align-self:start}
.today-bottom .portfolio-overview {
  min-height:320px}

@media(max-width:700px) {
  .today-status .empty-state {
  padding:16px 8px}
.today-bottom .holding-row {
  padding-block:12px}
.today-bottom .portfolio-overview {
  min-height:0}
.today-bottom>.card:last-child .compact-note {
  padding:5px}
.today-bottom>.card:last-child .compact-note>svg {
  display:none}
.today-bottom>.card:last-child .compact-note h3 {
  font-size:13px}
.today-bottom>.card:last-child .compact-note p {
  margin:7px auto 10px}
}

.quiet-state {
  display:flex;
  align-items:center;
  gap:12px;
  padding:4px 0 10px}
.quiet-state p {
  margin:0;
  font-size:12px}
.quiet-state .badge {
  flex:none}
.today-top .conclusion h1 {
  font-size:30px}
.today-bottom .holdings-head {
  padding-top:0}
.today-bottom .holdings-card .section-heading {
  margin-bottom:6px}
@media(max-width:700px) {
  .quiet-state {
  display:block}
.quiet-state p {
  margin-top:8px}
.today-top .conclusion h1 {
  font-size:25px}
}
/* R03-A: judgment and portfolio first, compact independent freshness states. */
.today-layout {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.today-layout>.conclusion {grid-column:1;grid-row:1;padding:24px;min-height:0}
.today-layout>.portfolio-overview {grid-column:2;grid-row:1;padding:22px}
.today-layout>.health-grid {grid-column:1 / -1}
.today-attention {grid-column:1 / -1}
.today-layout .metrics {margin:14px 0 10px;padding-top:12px}
.today-layout .large-number {font-size:32px}
.today-layout .caption {margin:6px 0;font-size:11px}
.today-layout .conclusion h1 {font-size:29px;line-height:1.35;overflow-wrap:anywhere}
.today-layout .conclusion .actions {margin-top:15px}
.today-layout .decision-mark {width:74px;height:74px;flex:none}
.today-layout .holdings-head,.today-layout .holding-row {grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.9fr)}
.today-watch .compact-note {padding:12px 0}
.status-tile .tile-caption {margin-bottom:8px}
.status-tile h3 {margin:4px 0;line-height:1.45}
.status-tile p {margin:5px 0}
.evidence-primary {grid-template-columns:repeat(3,minmax(0,1fr))}
.evidence-primary>div {border-bottom:0!important;border-right:1px solid var(--line)}
.evidence-primary>div:last-child {border-right:0}
.evidence-secondary {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.evidence-fold {margin-top:8px;border-top:1px solid var(--line);padding-top:4px;color:var(--text)}
.evidence-fold summary {min-height:44px;font-size:13px;font-weight:600}
.evidence-fold summary span {font-size:11px;color:var(--muted);font-weight:400;margin-left:8px}
.evidence-fold p,.evidence-fold li {font-size:13px;line-height:1.8;color:var(--muted)}
.evidence-fold ul,.risk-notice ul {padding-left:20px}
.risk-notice,.duplicate-notice {margin-top:12px;padding:13px 15px;border:1px solid var(--amber);border-radius:10px;background:var(--amber-soft);color:var(--text);font-size:13px;line-height:1.6}
.duplicate-notice p {margin:4px 0 12px}
.risk-context {color:var(--amber);line-height:1.7;margin:12px 0}
.actionable-empty {display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px}
.actionable-empty .empty-state {padding:8px;max-width:520px}
.empty-state {padding:18px 10px}
.empty-state>.icon {margin-bottom:5px;width:26px;height:26px}
.empty-actions {justify-content:center;margin:0;flex-wrap:wrap}
button:disabled {opacity:1;background:var(--surface-soft);color:var(--muted);border:1px solid var(--line);box-shadow:none;cursor:not-allowed}
.form-error:not(:empty) {padding:10px 12px;border:1px solid var(--red);border-radius:8px;line-height:1.7}
[data-editor-status]:not(:empty) {margin-top:12px}
.search-option[aria-selected=true] {outline:2px solid var(--blue);outline-offset:-2px}
@media(max-width:900px) {
  .evidence-primary {grid-template-columns:1fr}
  .evidence-primary>div {border-right:0!important;border-bottom:1px solid var(--line)!important}
  .evidence-primary>div:last-child {border-bottom:0!important}
}
@media(max-width:700px) {
  .today-layout {display:flex;flex-direction:column;gap:12px}
  .today-layout>* {width:100%;min-width:0}
  .today-layout>.conclusion {padding:18px 17px}
  .today-layout .conclusion h1 {font-size:24px;margin:10px 0}
  .today-layout .conclusion p {line-height:1.65;margin:8px 0}
  .today-layout .conclusion .actions {margin-top:12px}
  .today-layout .decision-tags {margin-top:8px}
  .today-layout>.portfolio-overview {padding:16px 17px}
  .today-layout .portfolio-overview .section-heading {margin-bottom:8px}
  .today-layout .portfolio-overview .large-number {font-size:28px;line-height:1.25;margin:4px 0}
  .today-layout .pnl-line b {font-size:17px}
  .today-layout .metrics {margin:10px 0 8px;padding-top:10px;gap:8px}
  .today-layout .metrics b {font-size:17px}
  .today-layout .metrics>div+div {padding-left:8px}
  .today-layout .allocation-bar {height:6px;margin-top:8px}
  .today-layout .holding-row {grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.9fr);gap:8px}
  .today-layout .holding-name b {font-size:12px}
  .today-layout .numeric b {font-size:12px}
  .today-layout .holdings-head {grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,.9fr)}
  .status-tile {padding:11px 0}
  .status-tile .tile-caption {margin:0}
  .status-tile small {margin-top:3px}
  .evidence-primary>div {padding:14px}
  .evidence-primary h3 {font-size:18px;margin:6px 0}
  .evidence-primary p {margin:6px 0}
  .evidence-secondary {grid-template-columns:1fr;gap:0}
  .actionable-empty {padding:17px}
  .form-actions {bottom:-16px}
  .editor-dialog input {font-size:16px;scroll-margin:65px}
}
.evidence-two {grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px) {.evidence-two {grid-template-columns:1fr}}
[data-editor-status][data-state=loading] {color:var(--muted);background:var(--surface-soft);border-color:var(--line)}
/* R03-B functional additions reuse the approved card and button system. */
.watch-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.7fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.watch-row:last-child {border-bottom:0}
.history-card details p {overflow-wrap:anywhere}
.history-card .caption {margin:5px 0}
[data-review-date-choice] {margin:8px 0;width:100%;max-width:380px}
@media(max-width:700px){.watch-row {grid-template-columns:minmax(0,1fr) minmax(80px,.65fr) auto;gap:8px}.watch-row .holding-name b {font-size:13px}.watch-row small {font-size:10px}}
/* R04: extend existing surfaces, preserving the approved palette and navigation. */
.ai-entry{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.ai-chat-layout{display:grid;grid-template-columns:minmax(180px,250px) minmax(0,1fr);gap:20px}
.ai-chat-main,.ai-provider{min-width:0}.ai-chat-main form,.ai-provider form{display:grid;gap:14px}
.ai-chat-main label,.ai-provider label{display:grid;gap:8px}.ai-chat-main textarea{width:100%;min-height:110px;resize:vertical}
.ai-chat-main textarea,.ai-provider input,.ai-provider select,.ai-chat-main select{max-width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;color:inherit;background:var(--surface)}
.ai-history-item{display:block;width:100%;text-align:left;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.ai-history-item small,.ai-message small{display:block;overflow-wrap:anywhere}
.ai-message{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.ai-message p{white-space:pre-wrap}
.ai-message blockquote{margin:10px 0;padding-left:12px;border-left:3px solid var(--blue);white-space:pre-wrap}
.ai-message.user{padding-left:12px}.ai-chat-main pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.ai-check{display:flex!important;gap:8px;align-items:flex-start}.ai-check input{width:auto;flex:none;margin-top:5px}
.ai-provider form{grid-template-columns:minmax(0,1fr)}.ai-provider label{min-width:0}.ai-provider input:not([type=checkbox]),.ai-provider select{width:100%;min-width:0}.ai-provider p{overflow-wrap:anywhere}
.ai-provider [data-ai-model-inventory]{max-height:220px;overflow:auto}
@media(max-width:767px){.ai-chat-layout{grid-template-columns:minmax(0,1fr)}.ai-entry{align-items:flex-start;flex-direction:column}.ai-chat-layout aside{max-height:230px;overflow:auto}.ai-chat-main{padding:18px}.ai-chat-main .primary-action{width:100%}}

/* N4: bounded conversation workspace, with source details separate from the answer. */
.page-content:has(.ai-workspace){display:block;padding-top:12px;padding-bottom:12px}
.ai-workspace{height:calc(var(--ai-viewport-height,100dvh) - 190px);min-height:480px;display:flex;flex-direction:column;gap:12px}
.ai-workspace-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:none}
.ai-workspace-header>div{display:flex;align-items:center;gap:12px}.ai-workspace-header h1{font-size:23px;margin:0}
.ai-workspace-header nav{display:flex;gap:5px;flex-wrap:wrap}.ai-workspace-header nav button{padding:7px 10px;border-radius:7px;font-size:13px}
.ai-workspace-header nav button[aria-pressed=true]{background:var(--blue-soft);color:var(--blue);font-weight:700}
.ai-tag{display:inline-block;padding:3px 7px;border:1px solid var(--line);border-radius:5px;font-size:10px;line-height:1.5;color:var(--muted);margin-right:7px}
.ai-workspace .ai-chat-layout{flex:1;min-height:0;position:relative;grid-template-columns:235px minmax(0,1fr);gap:14px}
.ai-workspace .ai-chat-layout.history-collapsed{grid-template-columns:minmax(0,1fr)}.ai-chat-layout.history-collapsed>.ai-history{display:none}
.ai-history{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface)}
.ai-history-top{display:flex;align-items:center;justify-content:space-between}.ai-history h2{font-size:14px;margin:0 0 12px}.ai-history .primary-action{font-size:12px;padding:10px}
.ai-history-list{min-height:0;overflow:auto;margin-top:12px}.ai-workspace .ai-history-item{padding:11px 8px;border-radius:7px;font-size:12px;line-height:1.55}
.ai-history-item.selected{background:var(--blue-soft);color:var(--blue)}.ai-history-item small{font-size:10px;color:var(--muted);margin-top:4px}
.ai-history-list details{margin-top:18px}.ai-history-list summary{font-size:12px;cursor:pointer}.ai-history-list>small{display:block;font-size:10px;padding:10px 0;color:var(--muted)}
.ai-workspace .ai-chat-main{display:flex;flex-direction:column;position:relative;min-height:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ai-conversation-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);flex:none}
.ai-conversation-header>div{min-width:0}.ai-conversation-header b{font-size:14px}.ai-conversation-header small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px;font-size:11px;color:var(--muted)}
.ai-workspace .ai-model-route{display:grid;gap:3px;min-width:160px;font-size:10px}.ai-model-route>span{position:absolute;clip:rect(0,0,0,0)}
.ai-workspace .ai-model-route select{padding:5px 8px;font-size:12px}.ai-model-route small{font-size:10px}
.ai-subject-picker{display:flex;gap:12px;padding:9px 18px;border-bottom:1px solid var(--line);align-items:center;flex:none}.ai-subject-picker label{font-size:11px;flex:1;min-width:0}
.ai-workspace .ai-subject-picker select,.ai-workspace .ai-subject-picker input{padding:7px 10px;width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:inherit}
.ai-transcript{flex:1;min-height:0;overflow:auto;padding:18px 24px;scroll-behavior:auto;overscroll-behavior:contain}
.ai-data-notice{font-size:11px;line-height:1.6;color:var(--muted);margin-bottom:18px}.ai-welcome{max-width:600px;margin:24px auto}.ai-welcome h2{font-size:22px}.ai-welcome p{color:var(--muted)}.ai-welcome button{margin:6px 6px 6px 0;font-size:12px}
.ai-workspace .ai-message{padding:18px 0;line-height:1.8;font-size:14px}.ai-workspace .ai-message.user{background:var(--blue-soft);border:0;border-radius:10px;padding:12px 16px;margin:0 0 20px;max-width:90%;margin-left:auto}
.ai-message.user b{font-size:11px;color:var(--muted)}.ai-message.user p{margin:3px 0}.ai-answer header{display:flex;gap:12px;align-items:center;margin-bottom:8px}.ai-answer header small{font-size:10px;color:var(--muted)}
.ai-answer h3{font-size:13px;margin:16px 0 5px}.ai-answer p{margin:4px 0 10px}.ai-answer ul{padding-left:20px;margin:5px 0 12px}.ai-answer li{margin-bottom:5px}.ai-answer small{font-size:10px;color:var(--muted)}
.ai-citation{color:var(--blue);font-size:11px;padding:2px 6px;background:var(--blue-soft);border-radius:4px;vertical-align:middle;white-space:normal}
.ai-support{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--muted)}.ai-context-used{font-size:11px;color:var(--muted);padding:7px 0}
.ai-memory-proposal{border:1px solid var(--line);border-radius:9px;padding:12px;margin:10px 0;font-size:12px}.ai-memory-proposal b{font-size:11px}.ai-memory-proposal .secondary-action{font-size:11px}
.ai-diagnostics{font-size:11px;color:var(--muted);margin:10px 0}.ai-diagnostics summary,.ai-failures summary{cursor:pointer}.ai-failures{font-size:12px;margin:12px 0}.ai-failures .feedback{font-size:12px;line-height:1.7}
.ai-workspace .ai-composer{display:block;flex:none;padding:10px 18px 12px;border-top:1px solid var(--line);background:var(--surface)}.ai-context-summary{font-size:10px;color:var(--muted);margin-bottom:7px}
.ai-workspace .ai-composer form{display:block}.ai-workspace .ai-composer textarea{width:100%;min-height:70px;max-height:140px;resize:none;font-size:14px;line-height:1.6;padding:10px 12px;display:block}
.ai-composer-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.ai-composer-actions small{font-size:10px;color:var(--muted)}.ai-composer-actions .primary-action{padding:8px 18px;font-size:12px}
.ai-recovery-actions{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;font-size:11px}.ai-recovery-actions button{font-size:11px}.ai-unavailable{font-size:12px;line-height:1.6;margin:5px 0 8px;color:var(--amber)}.ai-loading{font-size:12px;color:var(--blue)}
.ai-evidence-drawer{position:absolute!important;inset:0 0 0 auto;width:min(400px,100%);max-height:none!important;background:var(--surface);border-left:1px solid var(--line);padding:20px;overflow:auto;z-index:5;box-shadow:-4px 0 14px #0001}
.ai-evidence-drawer header{display:flex;align-items:center;justify-content:space-between}.ai-evidence-drawer h2{font-size:17px}.ai-evidence-drawer h3{font-size:13px;margin-top:20px}.ai-evidence-drawer dl{font-size:12px}.ai-evidence-drawer dt{color:var(--muted);margin-top:12px}.ai-evidence-drawer dd{margin:4px 0;overflow-wrap:anywhere}.ai-evidence-drawer ul{padding-left:18px;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
.ai-dialog{width:min(530px,calc(100vw - 28px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);border-radius:12px;padding:24px;color:inherit;background:var(--surface)}.ai-dialog::backdrop{background:#0007}
.ai-dialog h2{font-size:19px;margin:0 0 14px}.ai-dialog p{font-size:13px;line-height:1.7}.ai-dialog label{display:grid;gap:8px;font-size:12px;margin:14px 0}.ai-dialog small{font-size:11px;color:var(--muted)}
.ai-dialog select,.ai-dialog textarea{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:inherit}.ai-dialog textarea{min-height:150px;resize:vertical}.ai-dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}
.ai-memory-page,.ai-settings{overflow:auto;flex:1;min-height:0;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.ai-memory-page h2,.ai-settings h2{font-size:19px;margin-top:0}.ai-memory-page>p,.ai-settings>p{font-size:13px;color:var(--muted)}
.ai-memory-page form{display:flex;align-items:flex-end;gap:10px;margin:18px 0}.ai-memory-page label{display:grid;gap:7px;font-size:12px;flex:1}.ai-memory-page input{padding:10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:inherit}
.ai-memory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:14px}.ai-memory-card{padding:16px;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}.ai-memory-card p{font-size:13px;line-height:1.7;white-space:pre-wrap}.ai-memory-card small{display:block;font-size:10px;color:var(--muted)}.ai-memory-card button{font-size:11px;margin-top:10px}.ai-settings>details{margin:18px 0}.ai-settings>details>summary{cursor:pointer;font-size:14px}.ai-engineering label{display:grid;gap:8px;font-size:12px;margin:12px 0}.ai-engineering select{padding:10px;background:var(--surface);color:inherit;border:1px solid var(--line);border-radius:7px}
.ai-workspace>.feedback{flex:none;font-size:12px;margin:0}.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}
@media(max-width:767px){
 .page-content:has(.ai-workspace){padding:8px 8px calc(76px + env(safe-area-inset-bottom));gap:0}
 .ai-workspace{height:calc(var(--ai-viewport-height,100dvh) - 196px - env(safe-area-inset-bottom));min-height:0;gap:8px}
 .ai-workspace-header{align-items:flex-start;gap:7px;flex-direction:column}.ai-workspace-header h1{font-size:19px}.ai-workspace-header>div{gap:8px}.ai-workspace-header nav{gap:2px}.ai-workspace-header nav button{font-size:11px;padding:5px 7px}
 .ai-workspace .ai-chat-layout{display:flex;flex-direction:column;gap:0}.ai-workspace .ai-chat-main{flex:1;min-height:0;border-radius:10px}
 .ai-workspace .ai-chat-layout>.ai-history{display:none;max-height:none}.ai-workspace .ai-chat-layout.history-open>.ai-history{display:flex;position:absolute;inset:0;z-index:8}
 .ai-conversation-header{padding:9px 11px;gap:8px}.ai-conversation-header b{display:block;font-size:12px}.ai-conversation-header small{max-width:145px;font-size:9px}.ai-conversation-header .text-action{font-size:10px;padding:0 0 3px}
 .ai-workspace .ai-model-route{min-width:130px;max-width:150px}.ai-model-route small{max-width:150px}.ai-subject-picker{padding:7px 11px;gap:8px}.ai-subject-picker label{font-size:10px}.ai-subject-picker p{font-size:10px}
 .ai-transcript{padding:12px 14px}.ai-workspace .ai-message{font-size:13px;line-height:1.75;padding:14px 0}.ai-workspace .ai-message.user{padding:9px 12px}.ai-answer header{flex-wrap:wrap;gap:5px}.ai-welcome{margin:12px auto}.ai-welcome h2{font-size:19px}
 .ai-workspace .ai-composer{padding:8px 11px}.ai-workspace .ai-composer textarea{min-height:58px;max-height:100px;font-size:16px}.ai-composer-actions{gap:6px;margin-top:6px}.ai-composer-actions .primary-action{width:auto;flex:none;padding:7px 14px}
 .ai-context-summary,.ai-composer-actions small{font-size:9px}.ai-unavailable{font-size:10px}.ai-memory-page,.ai-settings{padding:14px}.ai-dialog{padding:18px}.ai-dialog-actions{gap:8px}.ai-dialog-actions button{font-size:12px}
}
@media(max-width:767px) and (max-height:650px){
 .ai-conversation-header{padding:5px 11px}.ai-conversation-header>div>small{display:none}
 .ai-transcript{padding:6px 14px}
 .ai-workspace .ai-composer{padding:6px 11px;max-height:60%;overflow:auto}
 .ai-workspace .ai-composer textarea{height:58px;min-height:48px}.ai-context-summary{margin-bottom:4px}
}
