:root {
  --surface: var(--paper);
  --primary: var(--accent-deep);
  --success: #24785a;
}
/* Stage 5: the existing native dialog owns both project and cached AI views. */
#notice-dialog {
  width: min(1000px, calc(100vw - 48px));
  max-width: none;
  max-height: calc(100dvh - 48px);
  padding: 0;
  overflow: hidden;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
}
#notice-dialog[open] {
  display: flex;
  flex-direction: column;
}
#notice-dialog .dialog-head {
  flex-shrink: 0;
  padding: 16px 28px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}
#notice-dialog .dialog-head h2 {
  font-size: 15px;
  color: var(--ink-soft);
}
#notice-dialog .detail-tabs {
  display: flex;
  flex-shrink: 0;
  gap: 24px;
  padding: 0 28px;
  border-bottom: 1px solid var(--line);
}
#notice-dialog .detail-tabs button {
  padding: 14px 0 12px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--ink-soft);
  font-size: 14px;
  font-weight: 600;
}
#notice-dialog .detail-tabs [aria-selected="true"] {
  border-bottom-color: var(--accent-deep);
  color: var(--accent-deep);
}
#notice-dialog .dialog-body {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 24px 28px 32px;
  scrollbar-gutter: stable;
}
#notice-dialog [hidden] { display: none; }
#notice-dialog .detail-project-header {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
#notice-dialog .detail-project-copy { flex: 1; min-width: 0; }
#notice-dialog #detail-project-title {
  margin: 12px 0 10px;
  font-size: 25px;
  line-height: 1.45;
  letter-spacing: -.4px;
  overflow-wrap: anywhere;
}
#notice-dialog .detail-identity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  font-size: 12px;
  color: var(--quiet);
}
#notice-dialog .notice-status { margin: 0; }
#notice-dialog .detail-project-tags { color: var(--ink-soft); font-size: 13px; margin: 0; }
#notice-dialog .score { width: 160px; flex: 0 0 160px; display: grid; align-items: start; gap: 8px; min-width: 0; white-space: normal; margin: 0; padding: 14px; border-radius: 10px; background: var(--muted); }
#notice-dialog .score-top, #notice-dialog .score-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px; }
#notice-dialog .score-caption { font-size: 11px; }
#notice-dialog .score-level, #notice-dialog .score-state { font-size: 10px; color: var(--accent-deep); }
#notice-dialog .score-value { display: flex; align-items: baseline; gap: 3px; color: var(--accent-deep); }
#notice-dialog .score-value > span { font-size: 12px; }
#notice-dialog .score-value strong { font-size: 34px; }
#notice-dialog .score-meter { height: 5px; border-radius: 5px; overflow: hidden; background: var(--line); }
#notice-dialog .score-meter > span { display: block; height: 100%; border-radius: inherit; background: var(--accent-deep); }
#notice-dialog .score small { font-size: 10px; }
#notice-dialog .stars { display: inline; font-size: 11px; letter-spacing: 0; }
#notice-dialog .score-legacy .stars { font-size: 17px; }
#notice-dialog .detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
#notice-dialog .detail-actions button, #notice-dialog .detail-actions a { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; }
#notice-dialog .detail-actions svg { width: 16px; height: 16px; }
#notice-dialog .detail-section { padding: 22px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
#notice-dialog .detail-section:last-child { border-bottom: 0; padding-bottom: 0; }
#notice-dialog .detail-section h3 { margin: 0 0 16px; font-size: 17px; line-height: 1.5; }
#notice-dialog .detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; margin: 0; padding: 0; border: 0; }
#notice-dialog .detail-grid div { min-width: 0; padding: 0; border: 0; background: transparent; }
#notice-dialog .detail-grid dt { margin-bottom: 6px; color: var(--quiet); font-size: 12px; }
#notice-dialog .detail-grid dd { margin: 0; font-size: 14px; color: var(--ink); line-height: 1.65; overflow-wrap: anywhere; }
#notice-dialog .detail-key-facts {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px 20px;
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 8px;
  background: var(--muted);
}
#notice-dialog .detail-key-facts dd {
  font-size: 16px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
#notice-dialog .detail-actions .source-link {
  padding: 9px 14px;
  border-radius: 8px;
  background: var(--accent-deep);
  color: var(--paper);
  font-weight: 600;
}
#notice-dialog .detail-actions [data-detail-tab="analysis"] {
  color: var(--accent-deep);
  background: var(--accent);
}
#notice-dialog .deadline-countdown { display: inline-block; margin-top: 12px; }
#notice-dialog .detail-read-note, #notice-dialog .hint { font-size: 12px; line-height: 1.8; color: var(--ink-soft); margin: 10px 0; }
#notice-dialog .detail-read-note button { margin-left: 10px; }
#notice-dialog [data-favorite-message]:empty { display: none; }
#notice-dialog .detail-content-label { font-size: 13px; font-weight: 600; margin: 14px 0 0; }
#notice-dialog .detail-document { max-height: 420px; overflow: auto; padding: 16px 20px; margin-top: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--muted); font-size: 14px; line-height: 1.95; white-space: pre-wrap; overflow-wrap: anywhere; }
#notice-dialog .detail-document p { margin: 0 0 12px; }
#notice-dialog .detail-document p:last-child { margin-bottom: 0; }
#notice-dialog .detail-amounts { margin-top: 16px; font-size: 13px; line-height: 1.8; }
#notice-dialog .score-reason { display: block; border: 0; padding: 0; margin: 0 0 12px; }
#notice-dialog .score-reason-heading { display: flex; align-items: center; gap: 6px; color: var(--accent-deep); margin-bottom: 8px; }
#notice-dialog .score-reason-icon svg { width: 16px; height: 16px; }
#notice-dialog .score-reason p { display: block; -webkit-line-clamp: unset; font-size: 14px; line-height: 1.85; }
#notice-dialog .detail-company { padding: 14px 16px; margin: 20px 0 0; border-radius: 8px; background: var(--muted); font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
#notice-dialog .detail-assessment { font-size: 16px; font-weight: 600; color: var(--accent-deep); margin: 0 0 14px; }
#notice-dialog .match-dimension { padding: 14px 16px; background: var(--muted); border-radius: 8px; margin-bottom: 10px; }
#notice-dialog .match-dimension p { line-height: 1.85; }
#notice-dialog .match-dimension small { display: block; line-height: 1.8; }
#notice-dialog .detail-section ul { padding-left: 20px; font-size: 14px; line-height: 1.9; }
#notice-dialog .detail-ai-empty { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 20px 0 0; font-size: 14px; }
#notice-dialog button:focus-visible, #notice-dialog a:focus-visible, #notice-dialog .detail-document:focus-visible { outline: 2px solid var(--accent-deep); outline-offset: 4px; }
@media (max-width: 760px) {
  #notice-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; border-radius: 0; }
  #notice-dialog .dialog-head { padding: 12px 16px; }
  #notice-dialog .detail-tabs { padding: 0 16px; gap: 24px; }
  #notice-dialog .dialog-body { padding: 20px 16px 28px; scrollbar-gutter: auto; }
  #notice-dialog .detail-project-header { flex-wrap: wrap; gap: 16px; }
  #notice-dialog .detail-project-copy { flex-basis: 100%; }
  #notice-dialog #detail-project-title { font-size: 22px; }
  #notice-dialog .score { width: 100%; flex-basis: 100%; display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; }
  #notice-dialog .score-meter, #notice-dialog .score-meta, #notice-dialog .score > small { grid-column: 1 / -1; }
  #notice-dialog .score-value { grid-column: 2; grid-row: 1; }
  #notice-dialog .detail-grid { gap: 16px; }
  #notice-dialog .detail-key-facts {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.4fr);
    gap: 10px 12px;
    padding: 10px 12px;
  }
  #notice-dialog .detail-key-facts > :first-child { grid-column: 1 / -1; }
  #notice-dialog .detail-key-facts dd { font-size: 15px; }
  #notice-dialog .detail-document { padding: 12px; }
  #notice-dialog .detail-actions { gap: 12px 18px; }
  #notice-dialog .detail-actions button, #notice-dialog .detail-actions a,
  #notice-dialog .dialog-head [data-close-dialog] { min-width: 44px; min-height: 44px; }
}
.notice .notice-intro {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-bottom: 12px;
}
.notice .notice-copy {
  min-width: 0;
  flex: 1;
}
.notice .notice-header {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 6px 10px;
  margin-bottom: 14px;
  font-size: 11px;
}
.notice .source-label {
  max-width: 100%;
  gap: 5px;
}
.notice .source-avatar {
  width: 18px;
  height: 18px;
  font-size: 10px;
}
.notice .source-name {
  max-width: 260px;
}
.notice .notice-published {
  margin-left: auto;
  color: var(--quiet);
  white-space: nowrap;
}
.notice .notice-labels {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 9px;
  margin-bottom: 7px;
}
.notice .notice-status {
  margin: 0;
}
.notice .status-tag,
.notice .official-label {
  font-size: 10px;
}
.notice .location-tag {
  padding: 2px 7px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--muted);
  color: var(--ink-soft);
  font-size: 12px;
}
.notice .location-tag.unknown {
  color: var(--quiet);
}
.notice .notice-tags {
  gap: 5px 8px;
}
.notice .tag {
  font-size: 11px;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.notice .notice-copy h3 {
  margin: 0 0 10px;
  font-size: 22px;
  line-height: 1.45;
}
.notice .notice-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  color: var(--ink);
}
.notice .notice-title:focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 3px;
  border-radius: 3px;
}
.notice .buyer {
  margin-bottom: 6px;
  font-size: 12px;
  line-height: 1.6;
}
.notice .notice-summary {
  margin: 0;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.65;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.notice .notice-summary span {
  color: var(--quiet);
}
.notice .summary-missing {
  color: var(--quiet);
}
.notice .notice-facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 16px 0;
  padding: 0;
  gap: 12px;
  background: transparent;
}
.notice .notice-fact {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--muted);
}
.notice .notice-facts label {
  margin-bottom: 6px;
  font-size: 11px;
}
.notice .notice-facts strong {
  font-size: 18px;
  font-weight: 650;
  line-height: 1.45;
  font-variant-numeric: tabular-nums;
}
.notice .notice-fact-budget strong {
  color: var(--accent-deep);
  font-size: 24px;
  font-weight: 700;
}
.notice .notice-facts strong.unknown {
  color: var(--quiet);
  font-size: 13px;
  font-weight: 400;
}
.notice .deadline-countdown {
  margin: 6px 0 0;
  font-size: 13px;
}
.notice .score {
  display: grid;
  align-items: start;
  flex: 0 0 192px;
  min-width: 0;
  gap: 8px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--accent-deep) 6%, transparent);
  border-radius: 9px;
  background: color-mix(in srgb, var(--accent-deep) 5%, var(--paper));
  white-space: normal;
}
.notice .score-caption {
  font-size: 11px;
  color: var(--quiet);
}
.notice .score-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4px;
}
.notice .score-level,
.notice .score-state {
  color: var(--accent-deep);
  background: color-mix(in srgb, var(--accent-deep) 12%, var(--paper));
  border-radius: 5px;
  font-size: 10px;
  padding: 2px 6px;
  font-weight: 600;
}
.notice .score-state {
  color: var(--quiet);
  background: var(--paper);
}
.notice .score-value {
  display: flex;
  align-items: baseline;
  gap: 3px;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
}
.notice .score-value strong {
  color: var(--accent-deep);
  font-size: 40px;
  line-height: 1;
  font-weight: 700;
}
.notice .score-value > span {
  font-size: 13px;
}
.notice .score-meter {
  height: 5px;
  border-radius: 5px;
  overflow: hidden;
  background: color-mix(in srgb, var(--accent-deep) 9%, var(--paper));
}
.notice .score-meter > span {
  display: block;
  height: 100%;
  background: var(--accent-deep);
  border-radius: inherit;
}
.notice .score-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  flex-wrap: wrap;
}
.notice .score-meta .stars,
.notice .score-legacy .stars {
  font-size: 11px;
  letter-spacing: 0;
}
.notice .score-legacy .stars {
  font-size: 17px;
  letter-spacing: 1px;
}
.notice .score small {
  font-size: 10px;
  color: var(--quiet);
}
.notice .score-pending {
  font-size: 12px;
  line-height: 1.6;
}
.notice .score-pending .score-value strong {
  color: var(--quiet);
  font-size: 26px;
}
.notice .score-meter-empty {
  background: var(--line);
  opacity: 0.6;
}
.notice .score-general .score-level,
.notice .score-low .score-level {
  background: var(--paper);
  color: var(--ink-soft);
}
.notice .score-low .score-meter > span {
  opacity: 0.6;
}
.notice .score-reason {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 6px 8px;
  min-width: 0;
  padding: 12px 14px;
  margin: 16px 0 0;
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent-deep);
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent-deep) 4%, var(--paper));
  font-size: 13px;
  line-height: 1.7;
  color: var(--ink-soft);
}
.notice .score-reason-heading {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-basis: 100%;
  font-size: 12px;
}
.notice .score-reason .score-reason-icon {
  display: inline-flex;
  flex: 0 0 15px;
  margin: 0;
  color: var(--accent-deep);
}
.notice .score-reason-icon svg {
  width: 15px;
  height: 15px;
}
.notice .score-reason p {
  flex: 1 1 240px;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.notice .score-reason-label {
  color: var(--accent-deep);
  font-weight: 600;
}
.notice .reason-pending p {
  color: var(--quiet);
}
.notice .reason-company-action {
  flex-shrink: 0;
  font-size: 12px;
  line-height: 1.8;
}
.notice .match-breakdown {
  margin: 14px 0 0;
  padding-top: 9px;
}
.notice .notice-footer {
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  margin-top: 14px;
  padding-top: 12px;
  gap: 8px;
}
.notice .notice-actions {
  margin-left: 0;
  flex: 1 1 100%;
  flex-wrap: wrap;
  gap: 8px;
}
.notice .notice-actions .text-button,
.notice .notice-actions .source-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.7;
}
.notice .notice-actions [data-detail] {
  background: var(--accent);
  border-color: color-mix(in srgb, var(--accent-deep) 30%, var(--line));
  font-weight: 600;
}
.notice .notice-actions .card-upcoming {
  margin-left: auto;
  background: var(--muted);
  color: var(--quiet);
  opacity: 1;
  cursor: default;
}
.notice .notice-actions .card-upcoming + .card-upcoming {
  margin-left: 0;
}
.notice .action-soon {
  font-size: 9px;
}
.notice .notice-actions svg {
  flex-shrink: 0;
  width: 15px;
  height: 15px;
}
.notice .notice-actions .text-button:not(:disabled):hover,
.notice .notice-actions .source-link:hover {
  background: var(--accent);
  text-decoration: none;
}
.notice .notice-actions .text-button[aria-pressed="true"] {
  font-weight: 600;
}
@media (min-width: 761px) and (max-width: 1279px) {
  .notice .notice-intro {
    gap: 12px;
  }
  .notice .score {
    flex-basis: 132px;
    padding: 9px;
  }
}
@media (min-width: 1280px) and (max-width: 1599px) {
  .notice .score {
    flex-basis: 166px;
    padding: 11px 12px;
  }
}
/* Reuse the compact score layout when the desktop feed column is narrow. */
@media (max-width: 760px), (min-width: 1200px) and (max-width: 1279px) {
  .notice .notice-intro {
    flex-wrap: wrap;
    gap: 10px;
  }
  .notice .notice-copy {
    flex-basis: 100%;
  }
  .notice .notice-copy h3 {
    font-size: 20px;
  }
  .notice .notice-facts {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }
  .notice .score {
    flex-basis: 100%;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 10px;
  }
  .notice .score-top {
    justify-content: flex-start;
    gap: 8px;
  }
  .notice .score-value {
    grid-column: 2;
    grid-row: 1 / 3;
    align-self: center;
  }
  .notice .score-meter {
    grid-column: 1;
  }
  .notice .score-meta {
    grid-column: 1 / -1;
    justify-content: flex-start;
    gap: 10px;
  }
  .notice .score-pending > small {
    grid-column: 1 / -1;
  }
  .notice .score-reason {
    flex-basis: 100%;
  }
}
[data-theme="dark"] {
  --success: #71c8a3;
}
.decision-panel {
  position: relative;
  box-shadow: 0 3px 14px #202a3004;
  scroll-margin-top: 24px;
}
.decision-panel .panel-inner {
  padding: 12px 16px;
}
.decision-panel .panel-head {
  gap: 8px;
  padding-bottom: 0;
  border-bottom: 0;
  margin-bottom: 8px;
}
.decision-panel .panel-head h2 {
  font-size: 15px;
  letter-spacing: 0.1px;
}
.radar-panel .company-head {
  background: var(--paper);
  border-bottom: 0;
  padding: 14px 16px 0;
}
.radar-panel .company-head .panel-head {
  margin-bottom: 0;
}
.insight-icon,
.insight-metric-icon,
.insight-deadline-icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--icon-color);
  background: color-mix(in srgb, var(--icon-color) 9%, var(--paper));
  border-radius: 9px;
}
.insight-icon {
  width: 28px;
  height: 28px;
}
.insight-icon svg {
  width: 17px;
  height: 17px;
  color: inherit;
}
.tone-teal {
  --icon-color: var(--accent-deep);
}
.tone-blue {
  --icon-color: #087fee;
}
.tone-green {
  --icon-color: #00a984;
}
.tone-orange {
  --icon-color: #ef8a09;
}
.tone-red {
  --icon-color: #f0445a;
}
.tone-gray {
  --icon-color: var(--quiet);
}
[data-theme="dark"] .tone-blue {
  --icon-color: #6bb9ff;
}
[data-theme="dark"] .tone-green {
  --icon-color: #4bd4ab;
}
[data-theme="dark"] .tone-orange {
  --icon-color: #f6b459;
}
[data-theme="dark"] .tone-red {
  --icon-color: #ff8696;
}
.insight-more {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent-deep);
  font-size: 11px;
  white-space: nowrap;
}
.insight-more:hover {
  text-decoration: underline;
}
.insight-updated {
  margin-left: auto;
  font-size: 10px;
  color: var(--quiet);
  white-space: nowrap;
}
.company-settings {
  border-top: 1px solid var(--line);
  margin: 0 16px 12px;
}
.company-settings:not([open]) {
  display: none;
}
.company-settings > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-top: 10px;
  color: var(--quiet);
  font-size: 11px;
  cursor: pointer;
}
.company-settings > summary:hover {
  color: var(--accent-deep);
}
#company-settings-name {
  max-width: 45%;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--accent-deep);
}
.radar-panel .company-settings .company-form {
  padding: 14px 0 0;
}
.company-library-head,
.company-editor-head {
  flex-wrap: wrap;
}
.radar-content {
  padding: 12px 16px 0;
}
.radar-panel .radar-footer {
  padding: 8px 16px 12px;
}
.radar-footer .primary-button {
  padding: 8px 12px;
  min-height: 36px;
  font-size: 13px;
  line-height: 1.4;
}
.insight-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.insight-metric {
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 3px 9px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--ink);
  text-align: left;
  font: inherit;
}
button.insight-metric:hover {
  border-color: var(--accent-deep);
  background: var(--muted);
}
.insight-metric-icon {
  width: 36px;
  height: 36px;
}
.insight-metric-icon svg {
  width: 21px;
  height: 21px;
}
.insight-metric-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.insight-metric-label {
  font-size: 11px;
  line-height: 1.4;
  color: var(--ink-soft);
  white-space: nowrap;
}
.insight-metric strong {
  font-size: 21px;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}
.insight-metric-note {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.radar-content .insight-metric {
  padding: 8px 10px;
}
.insight-metrics.compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}
.insight-metrics.compact .insight-metric {
  position: relative;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  padding: 7px 5px;
  border: 0;
  background: var(--bg);
  text-align: center;
}
.insight-metrics.compact .insight-metric-icon {
  display: none;
}
.insight-metrics.compact .insight-metric-label {
  font-size: 10px;
}
.insight-metrics.compact strong {
  font-size: 17px;
  padding-left: 16px;
}
.decision-panel p.insight-context {
  font-size: 10px;
  line-height: 1.5;
  color: var(--quiet);
  margin: 7px 0 0;
}
.decision-panel p.insight-state {
  font-size: 12px;
  line-height: 1.7;
  color: var(--quiet);
  margin: 10px 0;
}
.insight-placeholder {
  height: 50px;
  margin-top: 10px;
  border-radius: 6px;
  background: var(--muted);
}
.decision-panel [data-state="error"] .insight-state {
  color: var(--error);
}
.insight-deadline {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  column-gap: 8px;
  row-gap: 2px;
  padding: 6px 0;
  border-bottom: 1px solid var(--line);
}
.insight-deadline:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.insight-deadline-icon {
  grid-column: 1;
  grid-row: 1 / 3;
  width: 26px;
  height: 28px;
  align-self: center;
  border-radius: 7px;
}
.insight-deadline-icon svg {
  width: 15px;
  height: 15px;
}
.insight-deadline .insight-project {
  grid-column: 2 / 4;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12px;
  line-height: 1.4;
}
.insight-deadline time {
  grid-column: 2;
  font-size: 10px;
  line-height: 1.4;
  color: var(--quiet);
}
.insight-deadline .deadline-tone {
  grid-column: 3;
  font-size: 10px;
  align-self: center;
}
.insight-project {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  font: inherit;
  font-size: 13px;
  line-height: 1.6;
  padding: 0;
  overflow-wrap: anywhere;
}
.insight-project:hover {
  color: var(--accent-deep);
}
.deadline-tone {
  font-weight: 600;
}
.deadline-tone.strong {
  color: var(--error);
  background: var(--muted);
  border: 1px solid var(--error);
  border-radius: 4px;
  padding: 2px 5px;
}
.deadline-tone.soon {
  color: var(--error);
}
.deadline-tone.week {
  color: var(--warn);
}
.insight-hot-topics {
  margin: 8px 0 0;
  padding: 0;
  list-style: none;
}
.insight-hot-topics button {
  width: 100%;
  display: grid;
  grid-template-columns: 20px 60px minmax(20px, 1fr) auto;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--ink);
  padding: 6px 0;
  font: inherit;
  font-size: 12px;
  text-align: left;
}
.insight-hot-topics button:hover {
  color: var(--accent-deep);
  background: var(--muted);
}
.hot-rank {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 5px;
  color: var(--quiet);
  background: var(--muted);
  font-size: 10px;
}
.insight-hot-topics li:nth-child(1) .hot-rank {
  background: #ff743b;
  color: white;
}
.insight-hot-topics li:nth-child(2) .hot-rank {
  background: #ffe1ad;
  color: #a76106;
}
.insight-hot-topics li:nth-child(3) .hot-rank {
  background: #ffedd1;
  color: #a76106;
}
.hot-track {
  height: 6px;
  background: var(--muted);
  border-radius: 4px;
  overflow: hidden;
}
.hot-track span {
  display: block;
  height: 100%;
  background: var(--accent-deep);
  border-radius: inherit;
  opacity: 0.65;
}
.hot-count {
  color: var(--quiet);
  font-variant-numeric: tabular-nums;
}
.decision-panel .insight-summary-source {
  position: absolute;
  top: 18px;
  right: 16px;
  font-size: 9px;
  line-height: 1.4;
  color: var(--quiet);
  margin: 0;
}
.decision-panel .insight-summary p {
  font-size: 12px;
  line-height: 1.75;
  margin: 0;
}
.insight-summary strong {
  color: var(--accent-deep);
}
.decision-panel .insight-recommend-label {
  font-size: 11px;
  margin-top: 8px;
}
.insight-recommendations {
  margin: 5px 0 0;
  padding: 0;
  list-style: none;
  color: var(--accent-deep);
  font-size: 11px;
}
.insight-recommendations li {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 2px 0;
}
.recommend-rank {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  text-align: center;
  border-radius: 5px;
  background: var(--accent);
  font-size: 10px;
}
.insight-recommendations .insight-project {
  font-size: 11px;
  min-width: 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.insight-recommendations small {
  color: var(--quiet);
  font-size: 10px;
}
#company-aside {
  align-self: start;
  gap: 10px;
}
#company-aside.insights-sticky {
  position: sticky;
  top: 16px;
}
.today-opportunities {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--ink-soft);
  margin: -4px 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.today-opportunities button {
  border: 0;
  background: transparent;
  padding: 4px 0;
  color: var(--ink-soft);
  font: inherit;
  text-align: left;
}
.today-opportunities button:hover {
  color: var(--primary);
}
.today-opportunities strong {
  font-size: 16px;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.today-opportunities small {
  margin-left: 4px;
  color: var(--quiet);
  font-size: 11px;
}
.notice-status {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 5px 0 8px;
}
.status-tag {
  font-size: 11px;
  line-height: 1.5;
  padding: 2px 6px;
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--ink-soft);
}
.status-new {
  color: var(--success);
  background: var(--muted);
}
.status-warning {
  color: var(--warn);
  border-color: var(--warn);
}
.notice-tags {
  flex-wrap: wrap;
}
.topic-tag {
  text-decoration: none;
}
.score-reason p,
.opportunity-reason {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.match-breakdown {
  margin-top: 12px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
  font-size: 12px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.match-breakdown summary {
  cursor: pointer;
  color: var(--accent-deep);
}
.match-breakdown .hint {
  margin: 10px 0;
}
.match-breakdown ul {
  padding-left: 20px;
  margin: 6px 0 12px;
}
.match-dimension {
  border-top: 1px solid var(--line);
  padding: 9px 0;
}
.match-dimension > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.match-dimension p {
  margin: 3px 0;
}
.match-dimension small {
  display: block;
  color: var(--ink-soft);
}
.opportunity-reason {
  font-size: 12px;
  color: var(--quiet);
  margin: 6px 0 0;
  line-height: 1.6;
}
.opportunity-row {
  padding: 11px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.opportunity-row:last-child {
  border-bottom: 0;
}
.opportunity-row a {
  color: var(--ink);
  text-decoration: none;
  line-height: 1.65;
}
.opportunity-row a:hover {
  color: var(--primary);
}
.opportunity-row small {
  display: block;
  color: var(--warn);
  margin-top: 4px;
  font-size: 12px;
}
.deadline-scope {
  margin-top: 0;
}
.advanced-panel {
  border-bottom: 1px solid var(--line);
  margin: 0 0 20px;
  padding: 0 0 12px;
}
.advanced-panel summary {
  cursor: pointer;
  font-size: 13px;
  color: var(--primary);
  width: fit-content;
}
.advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.advanced-field {
  min-width: 0;
  font-size: 12px;
  color: var(--ink-soft);
  display: grid;
  gap: 5px;
}
.advanced-field input,
.advanced-field select {
  width: 100%;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
  font-size: 13px;
}
.advanced-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
}
.advanced-actions .primary-button {
  padding: 7px 14px;
  font-size: 13px;
}
#advanced-error {
  color: var(--error);
  font-size: 12px;
}
.skeleton-row {
  padding: 30px 12px;
  border-bottom: 1px solid var(--line);
}
.skeleton-row span {
  display: block;
  background: var(--muted);
  height: 12px;
  margin: 12px 0;
  border-radius: 3px;
}
.skeleton-row span:first-child {
  width: 40%;
}
.skeleton-row span:nth-child(2) {
  width: 85%;
  height: 18px;
}
.skeleton-row span:last-child {
  width: 65%;
}
@media (min-width: 1024px) and (max-width: 1599px) {
  .advanced-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .decision-panel .panel-inner,
  .radar-panel .company-head,
  .radar-panel .company-form,
  .radar-panel .radar-content,
  .radar-panel .radar-footer {
    padding-inline: 16px;
  }
}
@media (max-width: 760px) {
  .advanced-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .today-opportunities {
    font-size: 12px;
    gap: 5px;
    margin: 10px 0 12px;
  }
  .today-opportunities small {
    display: none;
  }
  .notice-status {
    margin-top: 4px;
  }
  .notice-tags .topic-tag:nth-of-type(n + 3) {
    display: none;
  }
  .notice-facts {
    gap: 8px;
  }
  .account-bar {
    font-size: 12px;
  }
}
.subscription-types {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  margin-top: 16px;
  padding: 10px 12px;
}
.account-dialog .subscription-types label {
  margin: 4px 0;
}
.account-dialog .account-row > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.personal-project-row .personal-badge {
  color: var(--accent-deep);
}
.personal-project-row time {
  overflow-wrap: anywhere;
}
.personal-match-context {
  grid-column: 2 / 4;
  display: flex;
  flex-wrap: wrap;
  gap: 2px 8px;
  color: var(--quiet);
  font-size: 10px;
}
.personal-match-value, .personal-match-level {
  color: var(--accent-deep);
  font-weight: 600;
}
.decision-panel .personal-match-reason {
  grid-column: 2 / 4;
  margin: 2px 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--quiet);
  font-size: 11px;
  line-height: 1.5;
}
.personal-match-reason strong {
  color: var(--accent-deep);
  font-weight: 500;
}
.personal-project-row .personal-unfavorite {
  grid-column: 3;
  grid-row: 2;
  align-self: center;
  padding: 0 4px;
  min-height: 24px;
  font-size: 11px;
  white-space: nowrap;
  border-radius: 4px;
}
.personal-unfavorite:hover {
  background: var(--accent);
}
.personal-unfavorite:disabled {
  opacity: 0.6;
  cursor: wait;
}
.personal-favorite-error {
  grid-column: 2 / 4;
  color: var(--error, #aa4134);
  font-size: 11px;
  overflow-wrap: anywhere;
}
.personal-load-more {
  margin-top: 8px;
}
.insight-more:disabled {
  opacity: 0.5;
  cursor: default;
}

/* Account styles are shared with the workbench theme. */
.account-bar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 8px 0 16px;
  font-size: 13px;
}
.account-dialog {
  width: min(660px, calc(100vw - 24px));
  max-height: 85vh;
  padding: 24px;
  border: 1px solid var(--line, #dfe4e1);
  border-radius: 12px;
  background: var(--paper);
  color: var(--ink, #202a30);
}
.account-dialog::backdrop {
  background: #132c3655;
  backdrop-filter: blur(3px);
}
.account-dialog h2 {
  margin: 0;
  font-size: 20px;
}
.account-dialog .account-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.account-dialog .account-tabs {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.account-dialog button {
  cursor: pointer;
  border: 1px solid var(--line, #dfe4e1);
  border-radius: 8px;
  background: transparent;
  color: inherit;
  padding: 7px 12px;
  font: inherit;
}
.account-dialog button[aria-selected="true"],
.account-dialog .primary {
  background: var(--accent-deep);
  color: var(--paper);
}
.account-dialog button:disabled {
  opacity: 0.5;
  cursor: wait;
}
.account-dialog label {
  display: block;
  margin: 14px 0 5px;
}
.account-dialog input:not([type="checkbox"]),
.account-dialog textarea,
.account-dialog select {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--line, #dfe4e1);
  border-radius: 8px;
  background: var(--paper);
  color: inherit;
  font: inherit;
}
.account-dialog textarea {
  min-height: 90px;
}
.account-dialog .account-row {
  border-bottom: 1px solid var(--line, #dfe4e1);
  padding: 14px 0;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  align-items: flex-start;
}
.account-dialog .account-row a {
  color: var(--accent-deep);
}
.account-dialog small {
  display: block;
  opacity: 0.7;
  margin: 6px 0;
}
.account-dialog .account-msg {
  font-size: 13px;
  margin: 12px 0;
  color: var(--accent-deep);
}
.account-dialog .account-msg.error {
  color: var(--error, #aa4134);
}
.account-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 16px;
}
.subscription-rule-note {
  color: var(--ink-soft);
  font-size: 13px;
  overflow-wrap: anywhere;
}
.subscription-preview {
  margin-top: 16px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.subscription-preview p {
  margin: 6px 0;
}
.subscription-preview-items {
  margin: 12px 0;
  padding-left: 24px;
}
.subscription-preview-items li {
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.account-dialog .subscription-preview small {
  opacity: 1;
  color: var(--ink-soft);
}
.account-dialog .subscription-row > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.account-dialog .subscription-row > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
@media (max-width: 600px) {
  .account-dialog .subscription-row {
    flex-direction: column;
  }
}
.account-footer {
  display: flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}
@media (max-width: 600px) {
  .account-grid {
    grid-template-columns: 1fr;
  }
  .account-dialog {
    padding: 16px;
  }
}

/* Home UI: override the inline base layout here; keep account/card rules shared. */
.page-shell {
  width: min(1560px, calc(100% - 32px));
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 24px;
}
.content-grid {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
}
.sidebar {
  padding: 20px 12px;
}
.sidebar .brand {
  padding-inline: 8px;
}
.brand-caption {
  margin: 10px 8px 16px;
  font-size: 12px;
}
.nav-label {
  margin: 18px 10px 8px;
  font-size: 11px;
  font-weight: 600;
}
.nav-group {
  gap: 3px;
}
.nav-button {
  padding: 8px 10px;
  min-height: 36px;
  font-size: 13px;
}
.nav-button[aria-current="page"] {
  box-shadow: inset 3px 0 var(--accent-deep);
}
.nav-glyph {
  width: 19px;
  text-align: center;
  font-size: 19px;
  line-height: 1;
}
.nav-upcoming:disabled {
  opacity: 1;
  color: var(--quiet);
}
.nav-upcoming:hover {
  background: transparent;
}
.nav-upcoming .badge {
  border: 0;
  background: var(--muted);
  padding: 1px 5px;
  font-size: 9px;
}
.sidebar-bottom {
  padding-top: 20px;
}
.sidebar-note {
  font-size: 12px;
}
.workspace {
  padding-top: 0;
}
.page-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 0;
  margin-bottom: 24px;
  padding: 8px 0 0;
  border: 0;
  gap: 20px 16px;
}
.page-heading {
  min-width: 0;
}
.page-head h1 {
  font-size: 28px;
  font-weight: 700;
}
.page-head .title-row {
  gap: 12px;
}
.page-subtitle {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--ink-soft);
}
.header-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  min-width: 0;
  gap: 10px;
}
.header-tools .sync-status {
  display: none;
}
.page-head .head-actions {
  grid-column: 1 / -1;
  flex-wrap: nowrap;
  gap: 12px;
}
.page-head .search {
  flex: 1;
  width: auto;
  min-width: 0;
  background: var(--paper);
  border-radius: 10px;
  height: 48px;
}
.page-head .search:focus-within {
  border-color: var(--accent-deep);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-deep) 10%, transparent);
}
.ai-project-entry {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  gap: 8px;
  min-height: 48px;
  padding: 8px 18px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--accent);
  color: var(--accent-deep);
  font-size: 14px;
}
.ai-project-entry:disabled {
  opacity: 1;
  cursor: default;
}
.ai-project-entry small {
  display: block;
  color: var(--quiet);
  font-size: 10px;
  line-height: 1.4;
}
#account-toolbar {
  min-width: 0;
}
.account-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 0;
  font-size: 14px;
  flex-wrap: wrap;
}
.account-bar [data-account-open] {
  min-height: 40px;
  max-width: 208px;
  padding: 8px 16px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  color: var(--accent-deep);
  font-weight: 600;
}
.account-bar [data-account-open]:hover {
  border-color: var(--accent-deep);
  background: var(--accent);
}
.account-bar [data-account-message] {
  max-width: 180px;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.account-bar [data-account-message]:empty {
  display: none;
}
.filter-surface {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
}
.tablet-top,
#compact-filter-toggle {
  display: none;
}
.filter-surface .categories {
  padding-bottom: 12px;
  margin-bottom: 12px;
  gap: 6px;
}
.filter-surface .categories button {
  padding: 6px 10px;
  border-radius: 7px;
  font-size: 13px;
}
.filter-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px;
}
.filters {
  flex: 1;
  min-width: 0;
  margin: 0;
  gap: 8px;
}
.filter-fields {
  width: 100%;
  gap: 8px;
  flex-wrap: wrap;
}
.filter-field {
  min-width: 0;
  gap: 6px;
  font-size: 12px;
}
.filter-field select {
  min-width: 0;
  max-width: 170px;
  height: 36px;
  font-size: 12px;
}
.filter-shortcut,
.filter-surface .advanced-panel > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
  color: var(--ink-soft);
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
}
.filter-shortcut:hover,
.filter-shortcut[data-active="true"],
.filter-surface .advanced-panel[open] > summary {
  color: var(--accent-deep);
  border-color: var(--accent-deep);
  background: var(--accent);
}
.filter-shortcut > span {
  color: var(--quiet);
}
.filter-surface #advanced-search:has(details[open]) {
  flex: 1 0 100%;
  min-width: 0;
}
.filter-surface .advanced-panel {
  margin: 0;
  padding: 0;
  border: 0;
}
.filter-surface #advanced-form {
  padding-top: 12px;
  margin-top: 12px;
  border-top: 1px solid var(--line);
}
.filter-surface .advanced-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 0;
}
.advanced-group {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}
.advanced-group legend {
  padding: 0;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
}
.advanced-group-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.filter-surface .active-filters {
  align-items: flex-start;
  padding: 12px 0 0;
  margin-top: 12px;
  border-top: 1px solid var(--line);
  gap: 6px;
}
.filter-chips {
  display: flex;
  flex: 1 1 220px;
  flex-wrap: wrap;
  min-width: 0;
  gap: 6px;
}
.active-filters .clear-button {
  flex: 0 0 auto;
  font-size: 12px;
  padding: 4px 8px;
}
.filter-chip {
  min-width: 0;
  max-width: 100%;
  padding: 4px 9px;
  border-radius: 6px;
  font-size: 12px;
  overflow-wrap: anywhere;
  text-align: left;
}
.feed-head {
  margin: 24px 0 12px;
}
.feed-heading {
  display: grid;
  min-width: 0;
  gap: 4px;
}
.feed-heading h2 {
  overflow-wrap: anywhere;
}
.filter-note {
  font-size: 11px;
}
.today-opportunities {
  grid-column: 1 / -1;
  margin: 0;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
  gap: 12px 24px;
}
.today-opportunities > [aria-hidden] {
  display: none;
}
.today-opportunities button {
  flex: 1;
  min-width: max-content;
  padding: 0;
  font-size: 12px;
}
.today-opportunities strong {
  margin-left: 8px;
  font-size: 20px;
}
.timeline-slot {
  padding-bottom: 16px;
}
.notice {
  border-radius: 12px;
  padding: 18px;
}
#company-aside {
  gap: 16px;
}
.decision-panel {
  border-radius: 12px;
}
.decision-panel .panel-inner,
.radar-panel .company-head {
  padding: 16px;
}
.decision-panel .panel-head {
  gap: 8px;
  margin-bottom: 12px;
  align-items: center;
}
.decision-panel .panel-head h2 {
  font-size: 15px;
  line-height: 1.5;
}
.radar-content {
  padding: 0 16px;
}
.radar-panel .radar-footer {
  padding: 12px 16px;
}
.decision-panel .insight-more {
  font-size: 12px;
}
/* The workbench reuses cached personal lists; disclosure only changes visibility. */
.radar-today {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  width: 100%;
  padding: 12px;
  margin-bottom: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--muted);
  text-align: left;
  color: var(--ink-soft);
  font-size: 12px;
}
.radar-today strong {
  font-size: 28px;
  line-height: 1.2;
  color: var(--accent-deep);
  font-variant-numeric: tabular-nums;
}
.radar-today small {
  flex: 1 0 100%;
  color: var(--quiet);
  font-size: 10px;
}
.radar-today:hover {
  border-color: var(--accent-deep);
}
.radar-saved {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  min-height: 32px;
  margin-top: 6px;
  font-size: 11px;
  color: var(--quiet);
}
.radar-saved strong { color: var(--ink); }
.radar-saved span { margin-left: auto; color: var(--accent-deep); }
.radar-secondary { padding: 0 16px 8px; }
.workbench-disclosure {
  border-top: 1px solid var(--line);
  margin-top: 8px;
}
.workbench-disclosure > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  cursor: pointer;
  color: var(--ink-soft);
  list-style: none;
}
.workbench-disclosure > summary::-webkit-details-marker { display: none; }
.workbench-disclosure > summary:hover { color: var(--accent-deep); }
.workbench-disclosure > summary h3 { margin: 0; font-size: 12px; font-weight: 500; }
.workbench-disclosure .insight-icon { width: 22px; height: 22px; }
.workbench-disclosure .insight-icon svg { width: 14px; height: 14px; }
.disclosure-chevron { margin-left: auto; color: var(--quiet); }
.workbench-disclosure[open] > summary .disclosure-chevron { transform: rotate(180deg); }
.workbench-list-tools { display: flex; align-items: center; gap: 8px; padding: 6px 0; }
.workbench-list-tools .text-button { font-size: 11px; }
.attention-entry { display: flex; flex-wrap: wrap; gap: 4px; font-size: 11px; }
.attention-entry span { color: var(--quiet); }
.personal-preview { padding: 9px 0; }
.personal-preview .insight-project {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  line-height: 1.6;
  font-weight: 500;
}
.personal-preview .personal-match-context,
.personal-preview .personal-match-reason { display: none; }
.personal-recommendation {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 3px 9px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.personal-recommendation:last-child { border-bottom: 0; }
.personal-recommend-score {
  grid-row: 1 / 3;
  align-self: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--accent-deep);
  font-size: 23px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.personal-recommend-score small { font-size: 10px; color: var(--quiet); font-weight: 400; }
.personal-recommendation .insight-project {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 12px;
  line-height: 1.6;
  font-weight: 500;
}
.decision-panel .personal-recommend-meta {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 2px 8px;
  margin: 0;
  color: var(--quiet);
  font-size: 10px;
  line-height: 1.5;
}
.personal-preview .deadline-tone { white-space: nowrap; }
.decision-panel :is(button, summary):focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 3px;
  border-radius: 4px;
}
.account-dialog {
  width: min(640px, calc(100vw - 32px));
  max-height: 90dvh;
  padding: 24px;
  border-radius: 12px;
  background: var(--paper);
}
.account-dialog .account-head {
  gap: 16px;
  margin-bottom: 16px;
}
.account-dialog .account-head button {
  min-width: 40px;
  min-height: 40px;
}
.account-dialog .account-msg:empty {
  display: none;
}
.account-dialog .account-tabs {
  gap: 8px;
  margin-bottom: 16px;
}
.account-dialog .account-footer {
  gap: 8px;
  margin-top: 16px;
}
.account-dialog button {
  min-height: 40px;
}
.account-dialog .primary {
  background: var(--accent-deep);
  color: var(--paper);
  border-color: var(--accent-deep);
}
.account-dialog input:not([type="checkbox"]),
.account-dialog textarea,
.account-dialog select {
  background: var(--paper);
  min-height: 44px;
}
.login-tabs {
  display: flex;
  gap: 8px;
  padding: 4px;
  margin-bottom: 16px;
  background: var(--muted);
  border-radius: 10px;
}
.login-tabs button {
  flex: 1;
  border: 0;
  border-radius: 8px;
}
.login-tabs button[aria-selected="true"] {
  background: var(--paper);
  color: var(--accent-deep);
  font-weight: 600;
  box-shadow: 0 1px 4px #00000010;
}
.auth-description {
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.7;
  margin: 0 0 16px;
}
.wechat-login-code {
  width: 100%;
  max-width: 320px;
  min-height: 400px;
  margin: 0 auto;
  display: grid;
  place-items: center;
  background: #fff;
  color: #202a30;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.wechat-login-code iframe {
  max-width: 100%;
  border: 0;
}
.auth-loading {
  padding: 24px;
  text-align: center;
  font-size: 14px;
}
@media (max-width: 1279px) {
  .page-shell {
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 16px;
  }
  .content-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
  }
  .page-head {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .header-tools {
    justify-content: flex-start;
  }
  .filter-toolbar .filters {
    flex-basis: 100%;
  }
  .filter-surface .advanced-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .page-head .today,
  .page-head .sync-status {
    display: none;
  }
  .decision-panel .panel-inner,
  .radar-panel .company-head {
    padding: 16px;
  }
  .radar-content {
    padding-inline: 16px;
  }
  .radar-panel .radar-footer {
    padding: 16px;
  }
  .notice {
    padding: 16px;
  }
}
@media (max-width: 1199px) {
  .content-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  #company-aside {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    position: static;
  }
}
@media (max-width: 1023px) {
  .ai-project-entry {
    display: none;
  }
  .filter-lead {
    display: flex;
    align-items: flex-start;
    gap: 8px;
  }
  #compact-filter-toggle {
    display: block;
    flex: 0 0 auto;
    min-height: 44px;
    padding: 6px 12px;
    font-size: 13px;
  }
  #compact-filter-toggle[aria-expanded="true"] {
    color: var(--accent-deep);
    background: var(--accent);
  }
  .filter-surface .categories {
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 2px;
    border: 0;
  }
  .filter-surface .categories button {
    min-height: 36px;
  }
  .filter-toolbar {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
  }
  .filter-lead:has(#compact-filter-toggle[aria-expanded="false"]) + .filter-toolbar {
    display: none;
  }
  .feed-head {
    margin-block: 14px 6px;
  }
  .notice-empty {
    padding: 26px 16px;
  }
  .notice-empty-actions button {
    min-height: 44px;
  }
  .notice .notice-tags :is(a, button).tag {
    min-height: 26px;
    padding: 3px 6px;
    border-radius: 4px;
    color: var(--accent-deep);
    background: var(--accent);
    font-size: 12px;
  }
  .notice-title-phrase {
    white-space: nowrap;
  }
}
.notice-empty-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
@media (min-width: 761px) {
  .timeline-slot:has(.notice-published) {
    grid-template-columns: 18px minmax(0, 1fr);
    padding-bottom: 12px;
  }
  .timeline-slot:has(.notice-published) .notice-time {
    display: none;
  }
}
@media (min-width: 761px) and (max-width: 1023px) {
  .page-shell {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .tablet-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .tablet-top button {
    min-height: 40px;
  }
  .sidebar {
    display: none;
    position: static;
    height: auto;
    max-height: min(55dvh, 420px);
  }
  .tablet-top:has([aria-expanded="true"]) + .sidebar {
    display: flex;
  }
  .sidebar .brand,
  .sidebar .brand-caption {
    display: none;
  }
  .page-head {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 0;
    gap: 12px;
    margin-bottom: 14px;
  }
  .page-head .header-tools {
    justify-content: flex-end;
  }
  .filter-surface {
    padding-inline: 12px;
  }
  .filter-surface .categories {
    gap: 3px;
  }
  .filter-surface .categories button {
    padding-inline: 4px;
  }
}
@media (max-width: 760px) {
  #company-aside { grid-template-columns: minmax(0, 1fr); }
  .page-shell {
    width: 100%;
    grid-template-columns: minmax(0, 1fr);
    padding: 0 16px;
    gap: 0;
  }
  .workspace {
    padding-top: 0;
  }
  .page-head {
    grid-template-columns: auto minmax(0, 1fr);
    margin-bottom: 10px;
    padding: 10px 0 0;
    gap: 8px;
  }
  .page-head .page-heading,
  .page-head .head-actions {
    grid-column: 1 / -1;
  }
  .page-head .title-row {
    display: flex;
  }
  .page-head h1 {
    font-size: 22px;
  }
  .page-subtitle {
    font-size: 13px;
    margin-top: 4px;
  }
  .header-tools {
    grid-column: 2;
    grid-row: 1;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 4px;
  }
  .page-head .mobile-brand {
    grid-column: 1;
    grid-row: 1;
    gap: 5px;
    font-size: 17px;
  }
  .page-head .mobile-brand .brand-mark {
    width: 26px;
    height: 26px;
    font-size: 17px;
    border-radius: 7px;
  }
  .mobile-company {
    padding-inline: 6px;
    font-size: 12px;
    white-space: nowrap;
  }
  #account-toolbar {
    max-width: 96px;
  }
  .account-bar {
    flex-wrap: nowrap;
  }
  .account-bar [data-account-open] {
    max-width: 100%;
    overflow: hidden;
    padding: 7px 6px;
    font-size: 12px;
    text-overflow: ellipsis;
  }
  .account-bar [data-account-tab],
  .account-bar [data-account-message] {
    display: none;
  }
  .page-head .mobile-search {
    display: flex;
    order: 0;
    height: 44px;
  }
  #site-announcement {
    margin: 0 0 10px;
    font-size: 12px;
    line-height: 1.45;
  }
  .today-opportunities {
    padding: 5px 8px;
    gap: 4px;
    min-height: 40px;
  }
  .today-opportunities strong {
    font-size: 18px;
    margin-left: 4px;
  }
  .filter-surface {
    padding: 6px;
  }
  .filter-fields {
    gap: 8px;
    flex-wrap: wrap;
  }
  .filter-field {
    flex: 1 1 40%;
  }
  .filter-field:first-child {
    flex: 1 1 35%;
  }
  .filter-shortcut {
    flex: 1;
  }
  .filter-field select {
    max-width: 100%;
  }
  .feed-heading {
    gap: 0;
  }
  .day-head {
    margin-bottom: 4px;
    padding-block: 6px;
  }
  .notice {
    padding: 12px;
  }
  .notice .notice-header,
  .notice .notice-intro {
    margin-bottom: 7px;
  }
  .notice .notice-copy h3 {
    margin-bottom: 6px;
    font-size: 18px;
    line-height: 1.4;
  }
  .notice .notice-summary {
    font-size: 13px;
    -webkit-line-clamp: 1;
  }
  .notice .notice-facts {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    gap: 8px;
    margin: 8px 0;
  }
  .notice .notice-facts .notice-fact {
    display: block;
    grid-column: auto;
    padding: 7px 8px;
  }
  .notice .notice-facts strong {
    font-size: 15px;
  }
  .notice .notice-fact-budget strong:not(.unknown) {
    font-size: 18px;
  }
  .notice .deadline-countdown {
    font-size: 12px;
  }
  .mobile-nav button {
    min-height: 44px;
    justify-content: center;
  }
  .notice .notice-actions {
    flex-wrap: wrap;
  }
  .notice .notice-actions .text-button,
  .notice .notice-actions .source-link { min-height: 44px; }
  .account-dialog {
    width: calc(100vw - 24px);
    padding: 16px;
  }
  .account-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .wechat-login-code {
    min-height: 360px;
  }
}

@media (max-width: 360px) {
  .page-head .header-tools {
    flex-wrap: wrap;
  }
  .notice .notice-facts .notice-fact-deadline strong {
    font-size: 14px;
  }
}

@media (min-width: 1024px) {
  .page-head {
    gap: 14px 16px;
    margin-bottom: 16px;
  }
  .filter-surface {
    padding: 12px 14px;
  }
  .filter-surface .categories {
    padding-bottom: 8px;
    margin-bottom: 8px;
    gap: 4px;
  }
  .filter-surface .categories button {
    padding-inline: 6px;
  }
  .filter-fields {
    gap: 6px;
  }
  .filter-field select {
    max-width: 140px;
  }
  .filter-shortcut,
  .filter-surface .advanced-panel > summary {
    gap: 6px;
    padding-inline: 8px;
  }
  .filter-surface .active-filters {
    padding-top: 8px;
    margin-top: 8px;
  }
  .feed-head {
    margin: 16px 0 6px;
  }
  .feed-heading {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 3px 10px;
  }
  .notice[data-notice-id] {
    padding: 14px 16px;
  }
  .notice .notice-header,
  .notice .notice-intro {
    margin-bottom: 8px;
  }
  .notice .notice-copy h3 {
    margin-bottom: 6px;
    line-height: 1.4;
  }
  .notice .notice-summary {
    font-size: 13px;
    -webkit-line-clamp: 1;
  }
  .notice .notice-facts {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
    margin: 10px 0;
  }
  .notice .notice-fact {
    padding: 8px 12px;
  }
  .notice .notice-facts label,
  .notice .deadline-countdown {
    margin-block: 2px;
  }
  .notice .score-reason {
    margin-top: 10px;
    padding: 6px 10px;
  }
  .notice .score-reason-heading {
    flex-basis: auto;
    line-height: inherit;
  }
  .notice .notice-footer {
    margin-top: 10px;
    padding-top: 8px;
  }
  .notice .notice-actions button[data-detail],
  .notice .notice-actions button[data-detail]:hover {
    color: var(--paper);
    background: var(--accent-deep);
    border-color: var(--accent-deep);
  }
  .notice .notice-actions button[data-detail]:hover {
    background: color-mix(in srgb, var(--accent-deep) 88%, var(--ink));
  }
  #notice-dialog {
    inset-block-start: max(24px, calc((100dvh - 860px) / 2));
    inset-block-end: auto;
    margin: 0 auto;
    max-height: min(860px, calc(100dvh - 48px));
  }
  #notice-dialog .detail-actions {
    padding: 12px 0;
  }
}

/* Scoped extension of the existing native public theme. */
#project-edit-form fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
#project-edit-form > fieldset > legend {
  font-size: 17px;
  font-weight: 650;
  margin-top: 12px;
}
#project-edit-form small {
  color: var(--quiet);
}
#project-edit-form .project-status-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}
.project-status-options legend {
  margin-bottom: 10px;
}
.project-status-options label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--bg);
}
.project-status-options input {
  accent-color: var(--accent-deep);
  flex-shrink: 0;
}
.project-status-options label:has(:checked) {
  border-color: var(--accent-deep);
  background: var(--accent);
}
.project-edit-actions,
.project-archive-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin: 20px 0;
}
.project-archive-actions {
  border-top: 1px solid var(--line);
  padding-top: 18px;
}
.project-feedback:empty {
  display: none;
}
.project-feedback,
.project-readonly {
  padding: 12px;
  background: var(--accent);
  border-radius: 9px;
  overflow-wrap: anywhere;
}
.project-conflict {
  padding: 18px;
  border: 1px solid var(--accent-deep);
  border-radius: 12px;
  background: var(--bg);
  margin-top: 20px;
}
.project-conflict-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.project-conflict-columns section {
  min-width: 0;
}
.project-conflict-columns dd {
  margin: 8px 0 16px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
#project-edit-form :focus-visible,
.project-conflict :focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 3px;
}
#project-edit-form :disabled {
  opacity: 0.7;
}
@media (max-width: 760px) {
  #project-edit-form .project-status-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .project-conflict-columns {
    grid-template-columns: minmax(0, 1fr);
  }
  .project-conflict {
    padding: 12px;
  }
  #project-edit-form .primary-button {
    flex: 1;
  }
}

body[data-projects-active="true"] .content-grid,
body[data-projects-active="true"] .head-actions,
body[data-projects-active="true"] #today-opportunities {
  display: none;
}
#projects-workspace {
  min-width: 0;
  max-width: 1050px;
  margin: 24px auto;
}
#work-shortcuts:not([hidden]) {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px auto;
  max-width: 1050px;
}
.dossier-controls {display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:20px 0;}
.dossier-controls label {display:grid;gap:8px;max-width:100%;}
.dossier-controls select {max-width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);}
.dossier-row {padding:22px;border:1px solid var(--line);border-radius:16px;margin:14px 0;overflow-wrap:anywhere;}
.dossier-note {white-space:pre-wrap;}
.dossier-facts {display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));}
.dossier-facts dt {font-size:12px;color:var(--ink-soft);}
.dossier-facts dd {margin:5px 0;}
.dossier-dialog {max-height:90dvh;}
.document-upload{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:12px;margin:20px 0;}
.document-upload label{display:grid;gap:8px;min-width:0;}
.document-upload input,.document-upload select{max-width:100%;min-width:0;color:var(--ink);font:inherit;background:var(--paper);padding:8px;border:1px solid var(--line);border-radius:8px;}
.document-layout{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:22px;margin-top:22px;}
.document-row{border:1px solid var(--line);padding:14px;border-radius:10px;margin-bottom:12px;overflow-wrap:anywhere;}
.document-row h3{font-size:16px;margin:0;}
.document-row .text-button{text-align:left;font-size:inherit;}
.document-row p{font-size:12px;color:var(--ink-soft);}
.document-selected{border-color:var(--accent-deep);background:var(--bg);}
.document-detail{min-width:0;overflow-wrap:anywhere;}
.document-segment{padding:16px 0;border-bottom:1px solid var(--line);scroll-margin-top:24px;}
.document-segment h4{color:var(--ink-soft);font-size:13px;}
.document-segment p{white-space:pre-wrap;overflow-wrap:anywhere;}
@media(max-width:760px){.document-layout{grid-template-columns:1fr;}.document-upload{padding:14px;}}
.workspace-dialog {width:min(620px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:22px;background:var(--paper);color:var(--ink);}
.workspace-dialog::backdrop{background:rgb(12 30 30 / .45);}
.workspace-dialog form>label{display:grid;gap:6px;margin:14px 0;}
.workspace-dialog input,.workspace-dialog select,.workspace-dialog textarea{box-sizing:border-box;max-width:100%;min-height:42px;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit;background:var(--paper);color:inherit;}
@media(max-width:760px){.workspace-dialog{padding:16px;}}
@media(max-width:760px){.dossier-facts{grid-template-columns:1fr;}.dossier-controls{align-items:stretch;}.dossier-row{padding:16px;}}
#tasks-workspace {
  min-width: 0;
  max-width: 1100px;
  margin: 24px auto;
}
.task-panel,
.task-row {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 22px;
  overflow-wrap: anywhere;
}
.task-row {
  margin: 14px 0;
}
.task-toolbar,
.task-row-title,
.task-tabs,
.task-actions,
.calendar-controls,
.task-dialog-head,
.task-dialog-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.task-toolbar,
.task-row-title,
.task-dialog-head {
  justify-content: space-between;
}
.task-toolbar h2,
.task-row h3 {
  margin: 0;
}
.task-tabs {
  margin: 18px 0;
}
.task-tabs [aria-current],
#work-shortcuts [aria-current] {
  background: var(--soft, #edf5f3);
  font-weight: 700;
}
.task-feedback:empty {
  display: none;
}
.task-feedback,
.task-due {
  color: var(--teal, #196e70);
}
.task-error {
  color: #a52b32;
}
.task-note {
  white-space: pre-wrap;
  line-height: 1.7;
}
.task-status {
  font-size: 13px;
  color: var(--ink-soft);
}
.task-filters {
  display: flex;
  align-items: end;
  gap: 12px;
  flex-wrap: wrap;
}
.task-filters label {
  display: grid;
  gap: 6px;
  font-size: 13px;
}
.task-filters input,
.task-filters select,
.calendar-controls input,
.task-dialog input,
.task-dialog textarea,
.task-dialog select {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 9px 10px;
  font: inherit;
  background: var(--paper);
  color: inherit;
}
.task-filters input {
  min-width: 0;
}
.task-empty {
  padding: 28px 8px;
  color: var(--ink-soft);
}
.task-dialog {
  width: min(620px, calc(100vw - 28px));
  max-height: 90dvh;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 22px;
  background: var(--paper);
  color: var(--ink);
}
.task-dialog::backdrop {
  background: rgb(12 30 30 / 0.45);
}
.task-dialog form > label {
  display: grid;
  gap: 6px;
  margin: 14px 0;
}
.task-dialog form > label[hidden] {
  display: none;
}
.task-dialog-head h2 {
  margin: 0;
}
.task-project-search {
  display: flex;
  align-items: end;
  gap: 10px;
}
.task-project-search label {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 6px;
}
.task-project-search input {
  width: 100%;
}
.task-dialog-actions {
  justify-content: flex-end;
  margin-top: 20px;
}
.task-dialog [data-task-message] {
  white-space: pre-wrap;
  color: #a52b32;
  font-size: 14px;
}
.calendar-controls {
  margin: 12px 0 18px;
}
.calendar-grid {
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.calendar-week,
.calendar-cells {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}
.calendar-week span {
  text-align: center;
  padding: 10px;
  border-bottom: 1px solid var(--line);
}
.calendar-cell,
.calendar-empty {
  min-height: 130px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 8px;
  min-width: 0;
}
.calendar-cell h3 {
  font-size: 14px;
  margin: 0 0 8px;
}
.calendar-today {
  background: var(--soft, #eff6f4);
}
.calendar-event {
  display: block;
  text-align: left;
  width: 100%;
  padding: 7px;
  margin: 5px 0;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
  color: var(--ink);
  font: inherit;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.calendar-event span {
  display: block;
  color: var(--ink-soft);
  font-size: 11px;
  margin-bottom: 3px;
}
.calendar-reference {
  border-left: 3px solid #8a9276;
}
.calendar-done {
  border-style: dashed;
}
.calendar-agenda {
  display: none;
}
.calendar-agenda > section {
  border-top: 1px solid var(--line);
  padding: 12px 0;
}
.calendar-agenda h3 {
  font-size: 15px;
}
@media (max-width: 760px) {
  #work-shortcuts {
    gap: 6px;
  }
  #work-shortcuts button {
    padding: 9px;
    min-height: 42px;
  }
  .task-panel,
  .task-row {
    padding: 16px;
  }
  .task-toolbar h2 {
    font-size: 20px;
  }
  .task-filters {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .task-filters label:last-of-type {
    grid-column: 1/-1;
  }
  .task-filters input,
  .task-filters select {
    width: 100%;
    min-width: 0;
  }
  .calendar-grid {
    display: none;
  }
  .calendar-agenda {
    display: block;
  }
  .calendar-event {
    font-size: 14px;
    padding: 12px;
    min-height: 44px;
  }
  .calendar-event span {
    font-size: 12px;
  }
  .task-dialog {
    padding: 16px;
  }
  .task-dialog-actions button {
    flex: 1;
  }
  .calendar-controls {
    gap: 6px;
  }
}
.project-toolbar,
.project-row,
.project-detail {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 16px;
  overflow-wrap: anywhere;
}
.project-toolbar nav {
  display: flex;
  gap: 24px;
  margin-bottom: 18px;
}
.project-toolbar nav [aria-current] {
  color: var(--accent-deep);
  border-bottom: 2px solid var(--accent-deep);
}
.project-toolbar form {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.project-toolbar label {
  display: grid;
  gap: 7px;
  color: var(--ink-soft);
  font-size: 13px;
}
.project-toolbar label:first-child {
  flex: 1;
  min-width: 180px;
}
.project-toolbar input,
.project-toolbar select,
.project-field input,
.project-field textarea {
  min-width: 0;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 10px 12px;
  color: var(--ink);
  background: var(--bg);
}
.project-row-head {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  justify-content: space-between;
}
.project-row h2,
.project-detail h2 {
  font-size: 19px;
  line-height: 1.5;
  margin: 0;
  min-width: 0;
}
.project-status {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--accent);
  color: var(--accent-deep);
  font-size: 12px;
  flex-shrink: 0;
}
.project-source-title {
  color: var(--ink-soft);
  line-height: 1.7;
  overflow-wrap: anywhere;
}
.project-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 32px;
  font-size: 14px;
}
.project-facts div {
  min-width: 0;
}
.project-facts dt {
  color: var(--quiet);
  font-size: 12px;
}
.project-facts dd {
  margin: 5px 0 0;
}
.project-row-foot,
.project-pagination {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  font-size: 13px;
  color: var(--ink-soft);
}
.project-row-foot {
  border-top: 1px solid var(--line);
  padding-top: 14px;
  margin-top: 20px;
}
.project-message {
  padding: 28px 18px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
}
.project-note {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: var(--bg);
  border-radius: 9px;
  padding: 16px;
}
.project-id {
  font-size: 12px;
  color: var(--quiet);
  overflow-wrap: anywhere;
}
.project-source-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.project-dialog {
  padding: 0;
  width: min(620px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
  border: 1px solid var(--line);
  border-radius: 18px;
  color: var(--ink);
  background: var(--paper);
  overflow: hidden;
}
.project-dialog[open] {
  display: flex;
  flex-direction: column;
}
.project-dialog-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 24px;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.project-dialog-head h2 {
  margin: 0;
  font-size: 20px;
}
.project-dialog form {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.project-dialog-body {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 12px 24px;
  min-height: 0;
}
.project-field {
  display: grid;
  gap: 7px;
  margin: 18px 0 5px;
}
.project-field textarea {
  resize: vertical;
  min-height: 90px;
  max-height: 220px;
}
.project-dialog small {
  color: var(--quiet);
}
.project-error {
  color: var(--error);
}
.project-dialog-actions {
  padding: 16px 24px;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  border-top: 1px solid var(--line);
  flex-shrink: 0;
  background: var(--paper);
}
.project-source-banner {
  margin: 18px 0;
  padding: 14px 20px;
  background: var(--accent);
  border-radius: 12px;
}
@media (max-width: 760px) {
  .mobile-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  .project-toolbar,
  .project-row,
  .project-detail {
    padding: 18px 16px;
  }
  .project-row-head {
    flex-direction: column;
    gap: 8px;
  }
  .project-facts {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
  .project-row-foot {
    flex-wrap: wrap;
  }
  .project-toolbar form {
    gap: 12px;
  }
  .project-dialog-head,
  .project-dialog-body,
  .project-dialog-actions {
    padding-left: 16px;
    padding-right: 16px;
  }
  .project-dialog-actions .primary-button {
    flex: 1;
    text-align: center;
  }
}

/* Private document analysis */
    .analysis-history{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:12px 0}.analysis-history button{text-align:left;overflow-wrap:anywhere}.document-detail blockquote{margin:10px 0;padding:10px 12px;border-left:3px solid var(--accent-deep);background:var(--accent);overflow-wrap:anywhere}.document-detail select{max-width:100%;width:100%;min-height:40px}.document-detail details{margin-top:16px}.document-detail p{overflow-wrap:anywhere}
.document-layout>section{min-width:0}.document-detail button{max-width:100%;white-space:normal;overflow-wrap:anywhere}@media(max-width:1100px){.document-layout{grid-template-columns:1fr}}

.risk-review{margin:24px 0}.risk-item{padding:16px;border:1px solid var(--line,#dce3e7);border-radius:12px;margin:14px 0}.risk-item h5{font-size:16px;margin:0 0 12px}.risk-item form{display:grid;gap:12px;margin-top:12px}.risk-item label{display:grid;gap:6px}.risk-item input,.risk-item textarea,.risk-item select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;padding:10px;font:inherit;border:1px solid var(--line,#dce3e7);border-radius:6px;background:var(--surface,#fff);color:inherit}.risk-item textarea{min-height:90px;resize:vertical}.risk-group>h4{margin-top:20px}

@media(max-width:1100px){#documents-workspace [data-doc-list]{max-height:360px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}}
