.journal-page { max-width: 1120px; margin: 0 auto; padding: 18px 8px 48px; color: #243342; }
.journal-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0 30px; border-bottom: 1px solid #dde3e8; margin-bottom: 28px; }
.journal-header h1 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 750; letter-spacing: -.04em; margin: 0 0 12px; overflow-wrap: anywhere; }
.journal-eyebrow { font-size: .72rem; font-weight: 700; letter-spacing: .13em; color: #748290; margin-bottom: 12px; }
.journal-entry-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.journal-entry-card { border: 1px solid #e1e6eb; border-radius: 12px; padding: 28px; background: #fff; }
.journal-entry-card h2 { font-size: 1.3rem; line-height: 1.5; margin: 10px 0 14px; overflow-wrap: anywhere; }
.journal-entry-card h2 a, .journal-back { color: inherit; text-decoration: none; }
.journal-entry-card h2 a:hover { color: #087f8c; }
.journal-date, .journal-chart-caption { color: #748290; font-size: .8rem; }
.journal-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; max-height: 3.7em; line-height: 1.85; font-size: .92rem; color: #5d6974; overflow-wrap: anywhere; }
.journal-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.journal-tags span, .journal-tags a { padding: 5px 10px; background: #f0f4f6; color: #395469; border-radius: 6px; font-size: .8rem; text-decoration: none; }
.journal-tags small { color: #7f8b94; margin-left: 4px; }
.journal-empty { grid-column: 1 / -1; text-align: center; padding: 64px 20px; color: #748290; border: 1px dashed #ccd5dd; border-radius: 12px; }
.journal-empty i { font-size: 2rem; }.journal-empty h2 { font-size: 1.1rem; margin: 16px 0; }
.journal-pagination { display: flex; flex-direction: column; gap: 14px; align-items: center; margin-top: 30px; }
.journal-pagination-status { margin: 0; color: #748290; font-size: .85rem; }
.journal-pagination-links { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; align-items: center; }
.journal-pagination-links .btn { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.journal-pagination-ellipsis { padding: 0 4px; color: #748290; }
.journal-back { font-size: .85rem; color: #748290; }
.journal-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; max-width: 850px; line-height: 1.95; margin-bottom: 36px; overflow-wrap: anywhere; }
.journal-instrument { border: 1px solid #e1e6eb; border-radius: 12px; padding: 24px; margin-bottom: 30px; background: #fff; scroll-margin-top: 80px; }
.journal-instrument-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.journal-instrument-header h2 { font-size: 1.25rem; font-weight: 700; }.journal-instrument-header small { font-size: .8rem; color: #8a959f; margin-left: 8px; }
.journal-instrument-header p { color: #748290; font-size: .8rem; }
.journal-chart { width: 100%; min-height: 390px; }.journal-chart-empty { min-height: 180px; display: flex; align-items: center; justify-content: center; text-align: center; color: #748290; background: #f8fafb; padding: 24px; }
.journal-actions { border-top: 1px solid #e6ebef; margin-top: 22px; padding-top: 22px; }.journal-actions h3 { font-size: 1rem; margin-bottom: 18px; }
.journal-action { display: grid; grid-template-columns: 115px 1fr; gap: 18px; padding: 16px 0; border-bottom: 1px solid #f0f3f5; scroll-margin-top: 90px; }
.journal-action-time { display: flex; gap: 9px; align-items: flex-start; font-size: .84rem; }.journal-action-number { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; flex-shrink: 0; border-radius: 50%; background: #087f8c; color: white; font-size: .7rem; }
.action-buy { background: #d94841; }.action-sell { background: #2867c7; }.action-exit { background: #7855ab; }.action-hold { background: #677582; }
.journal-action strong { font-size: .9rem; }.journal-action-meta { font-size: .78rem; color: #748290; margin-left: 12px; }.journal-action-memo { font-size: .9rem; color: #52616d; margin-top: 7px; line-height: 1.75; overflow-wrap: anywhere; }
@media (max-width: 650px) { .journal-entry-list { grid-template-columns: 1fr; }.journal-header { align-items: flex-start; flex-direction: column; }.journal-instrument { padding: 16px 10px; }.journal-instrument-header { flex-wrap: wrap; }.journal-action { grid-template-columns: 1fr; gap: 8px; }.journal-entry-card { padding: 22px; }.journal-action-meta { display: inline-block; } }

.journal-body-text { grid-column: 1 / -1; min-width: 0; }
.journal-body-text > :last-child { margin-bottom: 0; }
.journal-body-image { margin: 0; min-width: 0; }
.journal-body-image img { display: block; max-width: 100%; max-height: 420px; width: auto; height: auto; margin: 0 auto; border-radius: 10px; }
.journal-body-image figcaption { margin-top: 9px; color: #748290; font-size: .85rem; line-height: 1.6; text-align: center; overflow-wrap: anywhere; }

.journal-overview { border-color: #d5e0e9; }
.journal-comparison-legend { display: flex; flex-wrap: wrap; gap: 14px 24px; margin: 8px 0 18px; }
.journal-comparison-key { display: flex; gap: 8px; align-items: flex-start; text-decoration: none; color: inherit; font-size: .85rem; }
.journal-comparison-key small { color: #748290; font-size: .73rem; }
.journal-series-dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; }
.journal-combined-actions { max-height: 420px; overflow-y: auto; padding-right: 8px; }
.journal-action-instrument { color: #395469; font-size: .85rem; margin-right: 12px; text-decoration: none; }
.journal-action-instrument small { color: #748290; font-size: .7rem; }
.journal-overview .journal-eyebrow { margin-bottom: 8px; }

.journal-intervals { display: flex; gap: 8px; margin-bottom: 12px; }

.journal-calendars { container-type: inline-size; container-name: journal-calendars; margin-bottom: 28px; }
.journal-calendar-months { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.journal-calendar { min-width: 0; padding: 18px; border: 1px solid #dde3e8; border-radius: 12px; background: #fff; }
.journal-calendar h3 { text-align: center; margin: 0 0 16px; font-size: 1.05rem; font-weight: 700; }
.journal-calendar:nth-child(1) { order: 3; }
.journal-calendar:nth-child(2) { order: 2; display: none; }
.journal-calendar:nth-child(3) { order: 1; display: none; }
@container journal-calendars (min-width: 620px) {
    .journal-calendar-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .journal-calendar:nth-child(2) { display: block; }
}
@container journal-calendars (min-width: 960px) {
    .journal-calendar-months { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .journal-calendar:nth-child(3) { display: block; }
}
.journal-calendar-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.journal-calendar-header h2 { margin: 0; font-size: 1.1rem; font-weight: 700; }
.journal-calendar-header .btn { min-width: 40px; min-height: 40px; font-size: 1.1rem; }
.journal-calendar-title { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; }
.journal-calendar-header .journal-calendar-today { display: inline-flex; align-items: center; justify-content: center; font-size: .85rem; white-space: nowrap; }
.journal-calendar-grid { width: 100%; table-layout: fixed; text-align: center; border-collapse: collapse; }
.journal-calendar-grid th { font-size: .8rem; font-weight: 500; color: #748290; padding-bottom: 8px; }
.journal-calendar-grid td { padding: 3px 1px; height: 46px; }
.journal-calendar-day { display: flex; align-items: center; justify-content: center; min-height: 40px; border-radius: 8px; font-size: .9rem; text-decoration: none; }
.journal-calendar-day.has-entry { background: #e5f3f2; color: #086b75; font-weight: 700; border-bottom: 3px solid #087f8c; }
.journal-calendar-day.has-entry:hover, .journal-calendar-day.is-selected { background: #087f8c; color: #fff; }
.journal-calendar-day:focus-visible { outline: 3px solid #243342; outline-offset: 2px; }
.journal-calendar-day.is-disabled { color: #9ba5ae; background: #f8f9fa; }
