
/* RailDiary · Personal Travel Journal, 2026.
   All travel-related styles are scoped. Existing import and service forms remain intact. */
:root {
    --journal-green: #0d503f;
    --journal-dark: #173a32;
    --journal-cream: #f6f2eb;
    --journal-paper: #fffdf9;
    --journal-stroke: #e7ded0;
    --journal-muted: #796f61;
    --journal-blue: #3967b2;
}
body { background: var(--journal-cream); color: #232822; }
a { color: var(--journal-green); }
.app-content { padding-top: 2rem !important; }
.journal-navbar { background: #fffdfa; border-bottom: 1px solid var(--journal-stroke); min-height: 68px; }
.journal-nav-inner { padding-left: clamp(1rem, 2vw, 2rem); padding-right: clamp(1rem, 2vw, 2rem); gap: 1.3rem; }
.journal-brand { display: inline-flex; align-items: center; gap: .65rem; letter-spacing: normal; font-size: 1rem; color: #202a25; }
.journal-brand .brand-mark { width: 2.1rem; height: 2.1rem; margin: 0; background: var(--journal-green);
    border-radius: .48rem; font-family: Georgia, serif; font-weight: 400; font-size: 1.25rem; }
.journal-brand span:last-child { display:flex; flex-direction:column; line-height:1.15; }
.journal-brand span:last-child strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.17rem; font-weight: 700; }
.journal-brand span:last-child small { color: var(--journal-muted); font-size: .66rem; letter-spacing: 0; margin-top: .15rem; }
.journal-navbar .nav-link { border-radius:.48rem; padding:.55rem .7rem !important; font-size:.82rem; color:#615c55; white-space: nowrap; }
.journal-navbar .nav-link:hover { color:var(--journal-green); background:#f0ece4; }
.journal-navbar .nav-link.active { color:white !important; background:var(--journal-green); }
.journal-navbar .btn-primary, .journal-page .btn-primary, .journal-editor-page .btn-primary {
    background:var(--journal-green); border-color:var(--journal-green); color:#fff; }
.journal-navbar .btn-primary:hover, .journal-page .btn-primary:hover, .journal-editor-page .btn-primary:hover {
    background:var(--journal-dark); border-color:var(--journal-dark); }
.journal-page .btn-outline-primary, .journal-editor-page .btn-outline-primary { color:var(--journal-green); border-color:#d3cfc6; }
.journal-page .btn-outline-primary:hover, .journal-editor-page .btn-outline-primary:hover {
    color:white; background:var(--journal-green); border-color:var(--journal-green); }
.journal-global-search { display:flex; align-items:center; gap:.5rem; background:#f7f3ed;
    border:1px solid var(--journal-stroke); border-radius:.55rem; padding:.48rem .75rem;
    color:#8f877b; flex:1 1 195px; max-width:300px; }
.journal-global-search input { width:100%; min-width:0; border:0; outline:none; background:transparent; font-size:.8rem; color:#3b3932; }
.journal-global-search:focus-within { outline:2px solid #97c6b4; outline-offset:1px; }
.journal-global-search input::placeholder { color:#91897c; }
.journal-page, .journal-editor-page { max-width:1170px; margin:0 auto; }
.journal-page .page-kicker,.journal-editor-page .page-kicker { color:var(--journal-green); font-size:.67rem; letter-spacing:.15em; }
.journal-page .page-title, .journal-editor-page .page-title { color:#262520;
    font-family: Georgia, "Times New Roman", serif; font-weight:700; font-size:clamp(1.9rem,3vw,2.45rem); letter-spacing:-.035em; }
.journal-page .page-subtitle, .journal-editor-page .page-subtitle { color:var(--journal-muted); font-size:.84rem; line-height:1.55; }
.journal-page-head { display:flex; gap:2rem; align-items:flex-end; justify-content:space-between; margin-bottom:1.2rem; }
.journal-metrics { display:flex; align-items:center; padding:.7rem .9rem; background:var(--journal-paper);
    border:1px solid var(--journal-stroke); border-radius:.85rem; flex-shrink:0; }
.journal-metrics div { min-width:75px; display:flex; flex-direction:column; gap:.1rem; padding:0 .8rem;
    border-right:1px solid var(--journal-stroke); }
.journal-metrics div:last-child { border-right:0; }
.journal-metrics strong { font-family:Georgia,serif; font-size:1.28rem; font-weight:700; }
.journal-metrics span { color:var(--journal-muted); font-size:.67rem; }
.journal-filterbar { display:flex; align-items:center; gap:.65rem; flex-wrap:wrap; background:var(--journal-paper);
    border:1px solid var(--journal-stroke); border-radius:.75rem; padding:.78rem .9rem; margin-bottom:1.3rem; }
.journal-filterbar select.form-select { width:auto; min-width:115px; border-color:var(--journal-stroke); color:#282824; background-color:#fff; }
.journal-planned { display:flex; align-items:center; gap:.45rem; white-space:nowrap; background:#f9f6f1; border:1px solid var(--journal-stroke);
    border-radius:.55rem; padding:.45rem .7rem .45rem 2.3rem; font-size:.77rem; }
.journal-page .form-check-input:checked,.journal-editor-page .form-check-input:checked { background-color:var(--journal-green); border-color:var(--journal-green); }
.journal-search { display:flex; align-items:center; gap:.55rem; padding:.48rem .75rem; flex:1 1 220px;
    min-width:180px; background:#f7f3ed; border:1px solid var(--journal-stroke); border-radius:.55rem; font-size:.75rem; color:var(--journal-muted); }
.journal-search:focus-within { outline:2px solid #93baa8; }
.journal-search input { border:0; width:100%; background:transparent; outline:0; color:#332e26; font-size:.79rem; }
.journal-filter-count { margin-left:auto; color:var(--journal-muted); font-size:.75rem; white-space:nowrap; }
.journal-day-heading { max-width:925px; margin:1.4rem auto .7rem; font-size:.68rem; font-weight:750;
    letter-spacing:.075em; text-transform:uppercase; color:var(--journal-muted); }
.journal-journey { max-width:925px; margin-left:auto; margin-right:auto; background:var(--journal-paper);
    border-color:var(--journal-stroke); border-radius:.85rem; box-shadow:0 2px 7px #2c251d09; overflow:clip; }
.journal-journey[open] { border-color:#b4cabe; }
.journal-journey > summary.journal-journey-summary { display:flex; gap:1rem; align-items:center; cursor:pointer;
    padding:1rem 1.1rem; background:var(--journal-paper); }
.journal-journey > summary.journal-journey-summary::before { display:none; }
.journal-journey > summary.journal-journey-summary > span { display:flex; flex-wrap:wrap; gap:.25rem; }
.journal-journey > summary.journal-journey-summary > .journal-date-box { flex:0 0 57px; display:flex !important;
    align-items:center; justify-content:center; flex-direction:column; padding-right:.7rem;
    border-right:1px solid var(--journal-stroke); gap:.05rem; }
.journal-date-box strong { font-family:Georgia,serif; font-size:1.55rem; line-height:1.1; letter-spacing:0; }
.journal-date-box small { color:var(--journal-muted); font-size:.7rem; font-weight:650; }
.journal-journey > summary.journal-journey-summary > .journal-summary-main { display:flex !important; flex:1 1 auto;
    flex-direction:column; align-items:flex-start; min-width:0; gap:.3rem; }
.journal-summary-title,.journal-summary-modes,.journal-summary-meta { display:flex; flex-wrap:wrap; gap:.35rem .55rem; align-items:center; }
.journal-journey .journal-summary-title strong { font-family:Georgia,serif; color:#252521; font-size:1.06rem;
    line-height:1.25; white-space:normal; text-overflow:clip; overflow:visible; }
.journal-state { border-radius:2rem; padding:.19rem .58rem; font-size:.67rem; white-space:nowrap; font-weight:650; }
.journal-state.completed { color:#12603c; background:#e6f3e8; }
.journal-state.planned { color:#285d67; background:#dff2f6; }
.journal-state.delayed { color:#b53b36; background:#fae6e2; }
.journal-state.warning { color:#886118; background:#f8ebc8; }
.journal-summary-meta { font-size:.76rem; color:var(--journal-muted); }
.journal-mini-service { font-size:.72rem; font-weight:650; color:#45453e; }
.journal-journey > summary.journal-journey-summary > .journal-summary-expand { display:flex !important; flex:0 0 auto;
    align-items:center; align-self:center; gap:.5rem; color:#454137; border:1px solid var(--journal-stroke);
    border-radius:.48rem; padding:.38rem .6rem; font-size:.72rem; }
.journal-summary-expand i { transition:transform .15s ease-in-out; }
.journal-journey[open] .journal-summary-expand i { transform:rotate(180deg); }
.journal-label-close,.journal-journey[open] .journal-label-open { display:none; }
.journal-journey[open] .journal-label-close { display:inline; }
.journal-journey > .panel-body { padding:0; }
.journal-journey-layout { display:flex; flex-direction:column; }
.journal-journey-list { margin:0; padding:1rem 1.2rem 1.25rem 2rem; min-width:0; counter-reset:journal-leg; }
.journal-journey-list .timeline-leg.journal-leg { margin:0 0 0 .6rem; padding:.25rem 0 1.05rem 1.6rem;
    border-left:2px solid #b6bbb1; counter-increment:journal-leg; }
.journal-journey-list .timeline-leg.journal-leg:last-of-type { border-left-color:transparent; }
.journal-journey-list .timeline-leg.journal-leg::before { content:counter(journal-leg);
    display:grid; place-items:center; left:-.73rem; top:.35rem; width:1.35rem; height:1.35rem;
    color:#fff; background:var(--journal-green); outline:2px solid #fff; border:0; border-radius:50%;
    font-size:.69rem; font-weight:740; }
.journal-journey-list .timeline-leg.journal-leg:nth-child(odd)::before { background:#23302a; }
.journal-leg .journal-leg-head { border:0; display:flex; gap:.45rem; align-items:center; margin-bottom:.45rem !important; }
.journal-journey-list .journal-leg .departure-clock { font-size:.91rem; }
.journal-journey-list .journal-leg .departure-service { font-size:.8rem; }
.journal-leg-route { color:#222724; font-size:.87rem; }
.journal-leg-route strong { font-weight:690; }
.journal-leg-meta { color:var(--journal-muted); font-size:.76rem; }
.journal-leg .train-timetable { border-top:1px solid var(--journal-stroke); padding-top:.55rem; }
.journal-leg .table-responsive { border:1px solid var(--journal-stroke); border-radius:.45rem; }
.journal-leg .table { --bs-table-striped-bg:#f9f6f1; font-size:.72rem; }
.journal-leg .table thead { --bs-table-bg:#f2ede5; }
.journal-leg .train-timetable .form-check { margin-bottom:.45rem; }
.journal-map-wrap { padding:.6rem 1.1rem 1rem; border-top:1px solid var(--journal-stroke); }
.journal-map-wrap .logbook-route-panel { border:0; position:static; border-radius:0; background:transparent; }
.journal-map-wrap .logbook-route-heading { padding:.15rem 0 .7rem; font-size:.8rem; }
.journal-map-wrap .logbook-route-map { height:245px; background:#eee9df; border-radius:.6rem; }
.journal-map-wrap .logbook-route-caption { padding:.6rem .1rem 0; color:var(--journal-muted); font-size:.72rem; }
.journal-journey-actions { border-top:1px solid var(--journal-stroke); padding:.85rem 1rem; background:#fffdfa; }
.journal-journey-actions .btn { font-size:.75rem; }
.journal-journey-actions > :last-child { margin-left:auto; }
.journal-journey-list details.bg-light { background:#f7f3ed !important; }
.journal-editor-page { max-width:1100px; }
.journal-editor-breadcrumb { display:flex; gap:.6rem; margin-bottom:1rem; font-size:.77rem; color:var(--journal-muted); }
.journal-editor-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; }
.journal-editor-tabs { display:flex; align-items:center; gap:.35rem; border-bottom:1px solid var(--journal-stroke); }
.journal-editor-tabs button { border:0; border-bottom:3px solid transparent; background:transparent; color:var(--journal-muted);
    font-size:.89rem; padding:.8rem 1.25rem; font-weight:680; }
.journal-editor-tabs button.active { border-bottom-color:var(--journal-green); color:var(--journal-green); }
.journal-editor-tabs button:focus-visible { outline:2px solid var(--journal-green); outline-offset:-3px; }
.journal-editor-body { padding:1rem; background:var(--journal-paper); border:1px solid var(--journal-stroke);
    border-top:0; border-radius:0 0 .8rem .8rem; }
.journal-chain-inline { position:static; width:100%; }
.journal-chain-inline .journal-inline-dialog { width:100%; max-width:100%; margin:0; pointer-events:auto; }
.journal-chain-inline .modal-content { box-shadow:none; border:0; }
.journal-chain-inline .modal-header { padding:1rem 1.2rem; }
.journal-chain-inline .modal-body { overflow:visible; max-height:none; padding:1rem 1.2rem; }
.journal-chain-inline .modal-footer { padding:1rem 1.2rem; position:sticky; bottom:0; background:var(--journal-paper);
    z-index:2; border-top:1px solid var(--journal-stroke); }
.journal-editor-data { background:transparent; border:0; box-shadow:none; }
.journal-editor-data > .panel-body { padding:.5rem; }
.journal-editor-data > .panel-body > .border { background:white; }
@media (min-width: 1200px) {
    .journal-nav-inner { flex-wrap:nowrap; }
    .journal-global-search { flex:0 1 275px; }
}
@media (max-width: 991.98px) {
    .journal-page-head { align-items:flex-start; flex-direction:column; gap:1rem; }
    .journal-metrics { width:100%; justify-content:space-around; }
    .journal-metrics div { flex:1; min-width:0; }
    .journal-global-search { max-width:none; }
}
@media (max-width: 767.98px) {
    .journal-navbar .navbar-brand { margin-right:0; }
    .journal-global-search { order:3; flex-basis:100%; }
    .journal-day-heading { font-size:.65rem; }
    .journal-filterbar { gap:.5rem; }
    .journal-search { order:3; flex-basis:100%; }
    .journal-filter-count { margin-left:0; }
    .journal-journey > summary.journal-journey-summary { gap:.65rem; padding:.85rem .75rem; }
    .journal-journey > summary.journal-journey-summary > .journal-date-box { flex-basis:42px; padding-right:.5rem; }
    .journal-journey > summary.journal-journey-summary > .journal-summary-expand { font-size:0; padding:.45rem; }
    .journal-summary-expand i { font-size:.78rem; }
    .journal-summary-title strong { font-size:.94rem !important; }
    .journal-journey-list { padding:.8rem .7rem .8rem 1.25rem; }
    .journal-journey-list .timeline-leg.journal-leg { padding-left:1.25rem; }
    .journal-map-wrap .logbook-route-map { height:215px; }
    .journal-editor-head { flex-direction:column; align-items:flex-start; }
    .journal-editor-body { padding:.2rem; }
    .journal-editor-tabs button { flex:1 1 auto; padding:.8rem .45rem; font-size:.8rem; }
    .journal-chain-inline .modal-body,.journal-chain-inline .modal-header { padding:.7rem; }
}
@media (prefers-reduced-motion: reduce) {
    .journal-journey .journal-summary-expand i { transition:none; }
}

/* Overwrite legacy compact-summary rules at matching specificity. */
.journal-journey > summary.journal-journey-summary > .journal-summary-main > .journal-summary-title {
    display:flex !important; flex-wrap:wrap !important; align-items:center; gap:.35rem .55rem;
}
.journal-journey > summary.journal-journey-summary > .journal-summary-main > .journal-summary-meta,
.journal-journey > summary.journal-journey-summary > .journal-summary-main > .journal-summary-modes {
    display:flex !important; flex-wrap:wrap !important; align-items:center;
}

.journal-editor-body [hidden] { display:none !important; }

/* Journal timeline: separate, lightly framed cards inside the numbered rail. */
.journal-journey-list .timeline-leg.journal-leg { padding-top: .2rem; padding-bottom: 1rem; }
.journal-leg-card {
    min-width: 0;
    padding: .9rem 1rem;
    background: #fffefd;
    border: 1px solid var(--journal-stroke);
    border-radius: .75rem;
    box-shadow: 0 1px 3px rgba(33, 42, 35, .025);
}
.journal-leg-card:hover, .journal-leg-card:focus-within { border-color: #99bfae; }
.journal-leg-card-manual { border-left: 3px solid #6393bd; }
.journal-leg-card .train-timetable, .journal-leg-card .table-responsive { min-width:0; }

.journal-leg-head .departure-service, .journal-summary-modes .journal-mini-service { display:none; }

/* Actions above map; give the actual Leaflet map a near-square viewport. */
.journal-journey-actions {
    border-top:1px solid var(--journal-stroke);
    border-bottom:1px solid var(--journal-stroke);
    padding:.9rem 1.15rem;
    background:#fffdfa;
}
.journal-map-wrap { border-top:0; }
.journal-map-wrap .logbook-route-panel { display:flex; flex-direction:column; }
.journal-map-wrap .logbook-route-map {
    width:min(100%,680px);
    max-width:680px;
    height:auto;
    aspect-ratio:1 / 1;
    min-height:320px;
    margin-inline:auto;
    border:1px solid var(--journal-stroke);
}
@media (max-width:767.98px) {
    .journal-leg-card { padding:.65rem .7rem; }
    .journal-map-wrap .logbook-route-map { width:100%; height:auto; aspect-ratio:4 / 3; min-height:215px; }
}
