main { width: min(1120px, 100%); }
#unlockPanel, #todayView, #conversationView { max-width: 760px; margin-inline: auto; }
.view-tabs { grid-template-columns: repeat(3, 1fr); }
.wb-hero { padding: 18px 0; border-bottom: 1px solid var(--line); }
.wb-hero-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.wb-hero h2 { font-size: 22px; line-height: 1.35; margin: 0; letter-spacing: -.025em; }
.wb-hero-heading button { flex-shrink: 0; min-height: 44px; }
.wb-hero > .supporting-copy { margin: 8px 0 0; font-size: 14px; }
.idea-form { display: flex; align-items: stretch; gap: 10px; margin-top: 16px; }
.idea-form[hidden] { display: none; }
.idea-form input { margin: 0; flex: 1; min-width: 0; }
.idea-form button { flex-shrink: 0; border-radius: 14px; }
.question-section { padding: 22px 0; border-bottom: 1px solid var(--line); }
.question-heading { display: flex; gap: 16px; align-items: center; justify-content: space-between; }
.question-heading h3 { font-size: 18px; margin: 0; }
.question-heading select { max-width: 290px; min-height: 44px; font-size: 13px; }
.question-section > p { margin: 10px 0; font-size: 13px; line-height: 1.7; }
.question-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.question-card { min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; }
.question-card h4 { font-size: 15px; line-height: 1.6; margin: 0 0 8px; }
.question-card p { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 0 0 12px; }
.question-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; }
.question-actions button { min-height: 44px; padding: 8px 12px; font-size: 13px; }
.question-calendar-note { font-size: 12px; color: var(--muted); margin-top: 12px; }
.question-calendar-note summary { min-height: 28px; cursor: pointer; }
.question-calendar-note p { line-height: 1.7; }
.dossier-grid.review-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.review-grid > details > summary { min-height: 44px; cursor: pointer; font-size: 14px; }
@media (max-width: 640px) {
  .question-heading { flex-direction: column; align-items: stretch; gap: 10px; }
  .question-heading select { max-width: none; }
  .question-cards { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .question-card { padding: 12px 14px; }
  .question-card p { margin-bottom: 8px; }
}
.workbench-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 10px; }
.workbench-nav button { background: transparent; color: var(--muted); border-radius: 9px; }
.workbench-nav button.selected { color: var(--accent); background: var(--accent-soft); }
.wb-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 12px 0; }
#wbHome[data-section="activity"] .wb-heading { margin-block: 0; min-height: 44px; }
#wbHome[data-section="activity"] #wbListTitle { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#wbHome[data-section="activity"] #wbRefresh { position: relative; z-index: 1; margin-left: auto; min-height: 44px; }
#wbHome[data-section="activity"] .activity-summary { margin-top: -44px; }
#wbHome[data-section="activity"] .activity-count { display: flex; align-items: center; min-height: 44px; padding-right: 86px; margin: 0; font-size: 13px; line-height: 1.5; }
.coverage-note { color: var(--muted); line-height: 1.7; font-size: 13px; margin: 8px 0; max-width: 780px; }
.workbench-notice { color: var(--accent); font-size: 14px; line-height: 1.6; white-space: pre-wrap; }
.workbench-notice:not(:empty) { padding: 12px 0; border-bottom: 1px solid var(--line); }
.wb-list { margin-top: 22px; }
.wb-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; border-top: 1px solid var(--line); }
.wb-row > div { min-width: 0; }
.wb-row h4 { font-size: 19px; margin: 6px 0 10px; line-height: 1.45; overflow-wrap: anywhere; }
.wb-row p { margin-bottom: 6px; }
.wb-row button { flex-shrink: 0; }
.position-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.position-actions button { min-height: 44px; }
.trigger-copy { color: var(--muted); font-size: 14px; line-height: 1.6; }
.empty-copy { color: var(--muted); padding: 24px 0; line-height: 1.8; font-size: 15px; max-width: 650px; }
.wb-empty-state .empty-copy { padding-bottom: 10px; }
.wb-empty-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding-bottom: 16px; }
.wb-empty-actions button { min-height: 44px; }
.source-detail, .analysis-entry { border-top: 1px solid var(--line); padding: 18px 0; margin-top: 18px; }
.source-detail summary, .analysis-entry summary { font-size: 14px; cursor: pointer; line-height: 1.6; min-height: 32px; }
.source-detail > p { margin-top: 14px; }
.source-entry { padding: 14px 0 8px; }
.source-excerpt { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; color: var(--muted); line-height: 1.7; max-height: 380px; overflow: auto; }
.dossier-heading { margin: 25px 0 16px; }
.dossier-heading h2 { font-size: 29px; line-height: 1.3; overflow-wrap: anywhere; margin-bottom: 12px; }
.dossier-context { border-left: 3px solid var(--accent); padding: 4px 16px; margin-bottom: 28px; font-size: 14px; line-height: 1.6; }
.dossier-context p { margin: 6px 0; }
.preparation-panel { margin: 22px 0 26px; padding: 22px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel-solid); }
.preparation-panel h3 { margin: 8px 0; font-size: 22px; }
.preparation-panel > p { margin: 8px 0; line-height: 1.7; }
.preparation-exposure { font-weight: 600; font-size: 16px; }
.preparation-spots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.preparation-spot { border-top: 2px solid var(--line); padding-top: 14px; min-width: 0; }
.preparation-spot h4 { font-size: 15px; line-height: 1.5; margin: 0 0 8px; }
.preparation-spot p { font-size: 13px; line-height: 1.7; color: var(--muted); margin: 0; }
.preparation-spot button { text-align: left; padding: 10px 0; font-size: 13px; line-height: 1.7; min-height: 44px; white-space: normal; overflow-wrap: anywhere; }
.preparation-next { background: var(--accent-soft); border-radius: 12px; margin-top: 18px; padding: 16px; }
.preparation-next p { margin: 0 0 8px; line-height: 1.7; }
.preparation-next button { min-height: 44px; margin-right: 8px; }
.preparation-choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.preparation-choices button { min-height: 44px; }
.preparation-lesson { padding-top: 16px; margin-top: 16px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.7; }
.preparation-lesson p { margin: 4px 0; }
.preparation-save-actions { display: flex; align-items: stretch; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.preparation-save-actions button { min-height: 48px; }
.preparation-basics { margin-top: 4px; }
.dossier-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.dossier-assistance { min-width: 0; }
.research-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 16px 0; }
.research-actions button { border-radius: 12px; }
.research-running { padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; font-size: 14px; line-height: 1.6; }
.research-running p { margin: 0; }
.research-running button { min-height: 44px; }
.dossier-quick-actions { grid-template-columns: repeat(4, 1fr); }
.dossier-quick-actions.quick-review-actions { grid-template-columns: minmax(0, 1fr); }
.dossier-jumps { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 24px; }
.dossier-jumps button { padding-inline: 8px; font-size: 13px; }
.research-text { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.85; margin: 14px 0; }
.research-text a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.observation-fields { border: 1px solid var(--line); border-radius: 14px; padding: 8px 16px 18px; margin: 24px 0; min-width: 0; }
.observation-fields legend { font-size: 14px; font-weight: 700; padding: 0 8px; }
select { font: inherit; background: var(--panel-solid); color: var(--ink); border: 1px solid var(--line); border-radius: 12px; min-height: 48px; padding: 10px 12px; width: 100%; }
select:focus, summary:focus-visible, a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.simulator .wb-field input { min-width: 0; }
.simulator button { margin-top: 16px; }
.scenario-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 20px 0; }
.scenario-table td, .scenario-table th { padding: 10px 4px; border-bottom: 1px solid var(--line); text-align: right; overflow-wrap: anywhere; }
.scenario-table th:first-child { text-align: left; }
.draft-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px; margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; font-size: 13px; }
.draft-banner span { flex: 1 1 220px; }
.activity-count { font-size: 17px; line-height: 1.7; }
.activity-coverage { margin-top: 4px; padding-block: 0; border-top: 0; }
.activity-summary > .meta-line { margin-top: 0; }
.activity-filters { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 18px; margin-block: 8px; }
.activity-filters label { margin: 0; }
.activity-filters input, .activity-filters select { margin-top: 6px; margin-bottom: 0; }
.activity-day { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding-top: 8px; border-bottom: 1px solid var(--line); }
.activity-day h4 { margin: 0; font-size: 15px; }
.activity-day button { font-size: 13px; }
.activity-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.trade-select { padding: 8px 0; margin: 0; cursor: pointer; min-height: 44px; }
.trade-select input { width: 20px; min-height: 20px; height: 20px; padding: 0; margin: 0; accent-color: var(--accent); }
.trade-title { font-size: 17px; font-weight: 650; line-height: 1.45; margin: 0; padding: 4px 0; text-align: left; overflow-wrap: anywhere; }
.activity-row-actions { display: flex; flex-direction: column; align-self: center; }
.activity-row-actions button { font-size: 13px; min-width: 32px; min-height: 32px; }
.execution-fact { padding: 8px 0; overflow-wrap: anywhere; }
.execution-fact p { margin: 4px 0; line-height: 1.7; }
.execution-side { font-size: 15px; font-weight: 650; }
.execution-price { font-size: 14px; }
.activity-row .execution-fact { padding-top: 0; padding-bottom: 0; }
.activity-row .execution-timing { font-size: 12px; }
.activity-instrument h3:focus { outline: 2px solid var(--accent); outline-offset: 4px; }
.execution-source { margin-top: 5px; }
.execution-source summary { font-size: 12px; color: var(--muted); cursor: pointer; min-height: 32px; }
.activity-selection:not(:empty):not([hidden]) { position: sticky; top: 8px; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-solid); }
.activity-selection span { flex: 1; font-size: 14px; }
.activity-editor:not(:empty) { padding: 22px; margin-top: 20px; border: 1px solid var(--line); border-radius: 14px; scroll-margin-top: 95px; }
.operation-form { max-width: 660px; }
.operation-form label { margin-top: 18px; }
.operation-form button { margin-top: 16px; }
.operation-note { padding: 14px 0; border-bottom: 1px solid var(--line); }
.activity-instrument h3 { margin: 18px 0 10px; }
.dossier-activity { margin-bottom: 24px; }
.dossier-activity .execution-fact { border-bottom: 1px solid var(--line); }
@media (max-width: 700px) {
  .preparation-panel { padding: 16px; }
  .preparation-spots { grid-template-columns: 1fr; gap: 10px; margin-top: 16px; }
  .preparation-spot { padding-top: 12px; }
  .preparation-save-actions { flex-direction: column; }
  .activity-filters { grid-template-columns: minmax(0, 1fr) 115px; gap: 12px; }
  .activity-row { grid-template-columns: 44px minmax(0, 1fr); gap: 10px; }
  .activity-row-actions { grid-column: 2; flex-direction: row; gap: 8px; }
  .activity-row-actions button { padding: 4px 8px; min-width: 44px; min-height: 44px; }
  .execution-source summary, .source-detail summary, .analysis-entry summary { min-height: 44px; display: list-item; align-content: center; }
  .activity-count { font-size: 15px; }
  .trade-title { font-size: 15px; }
  .activity-editor:not(:empty) { padding: 16px; }
  .activity-selection span { flex-basis: 100%; }
  .dossier-quick-actions { grid-template-columns: 1fr 1fr; }
  main { padding-inline: 18px; }
  .eyebrow { font-size: 9px; letter-spacing: .1em; }
  .site-header h1 { font-size: 30px; }
  .header-actions { max-width: 145px; }
  .wb-hero { padding-block: 14px; }
  .wb-hero h2 { font-size: 21px; }
  .idea-form { flex-direction: column; }
  .idea-form button { min-height: 48px; }
  .workbench-nav { gap: 0; justify-content: space-between; }
  .workbench-nav button { padding-inline: 10px; font-size: 14px; }
  .wb-row { gap: 12px; align-items: flex-start; }
  .wb-row button { font-size: 13px; padding: 8px 13px; }
  .wb-row h4 { font-size: 17px; }
  .dossier-grid { grid-template-columns: 1fr; gap: 32px; }
  .dossier-assistance { border-top: 1px solid var(--line); padding-top: 24px; }
  .dossier-heading h2 { font-size: 25px; }
}
@media (prefers-color-scheme: dark) {
  button.primary { color: #102319; }
}
