.journey-page { background:#f6f8f3; color:#153f50; }
.journey-main { padding-top:150px; padding-bottom:90px; max-width:1200px; }
.journey-main h1 { font-size:clamp(3rem,7vw,5.5rem); margin-bottom:18px; }
.journey-main .lead { max-width:600px; }
.journey-toolbar,.section-heading,.calendar-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.journey-toolbar { margin:32px 0; }
.journey-toolbar .auth-tabs { margin:0; }
.journey-toolbar button { white-space:nowrap; }
.calendar-layout { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; }
.journey-card { background:#fff; border:1px solid #dfe8e1; padding:28px; border-radius:22px; margin-bottom:20px; }
.journey-card h2,.section-heading h2 { font-size:1.8rem; }
.calendar-heading h2 { margin:0; }
.calendar-heading button { border:1px solid #dfe8e1; background:#f4f7f2; color:inherit; padding:8px 10px; border-radius:8px; cursor:pointer; }
.calendar-timezone,.journey-hint { font-size:.8rem; color:#617980; }
.calendar-week,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.calendar-week { text-align:center; font-size:.7rem; margin:22px 0 12px; }
.calendar-days button { position:relative; min-height:54px; border:1px solid transparent; background:#f5f7f3; color:#153f50; border-radius:10px; cursor:pointer; font:inherit; }
.calendar-days button[aria-pressed=true] { background:#153f50; color:white; }
.calendar-days button.is-today { border-color:#628b7a; }
.calendar-days button.has-session::after { content:''; position:absolute; bottom:6px; left:calc(50% - 2px); width:5px; height:5px; border-radius:50%; background:#b99c57; }
.session-card { border-top:1px solid #dfe8e1; padding:20px 0; }
.session-card h3 { font-size:1.25rem; }
.session-card p { margin:8px 0; font-size:.85rem; }
.session-status { display:inline-block; font-size:.7rem; background:#edf3ed; padding:5px 9px; border-radius:20px; }
.registration-detail summary { cursor:pointer; font-weight:600; padding:4px 0; }
.registration-detail dl { display:grid; grid-template-columns:1fr 2fr; gap:14px; margin-top:24px; font-size:.85rem; }
.registration-detail dt { color:#617980; }
.registration-detail dd { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.schedule-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
#schedule-form select { width:100%; padding:12px; font:inherit; border:1px solid #ccd9d0; border-radius:8px; }
#schedule-form .button { margin-top:20px; }
#journey-status:empty { display:none; }
.journey-page [hidden] { display:none!important; }
@media(max-width:760px) { .calendar-layout { grid-template-columns:1fr; } .journey-main { padding-top:120px; } .journey-toolbar { align-items:stretch; flex-direction:column; } .journey-card { padding:18px; } .calendar-heading { flex-wrap:wrap; } .calendar-days button { min-height:44px; } .schedule-grid { grid-template-columns:1fr; } .registration-detail dl { grid-template-columns:1fr; gap:6px; } .registration-detail dd { margin-bottom:12px; } .journey-page .nav-wrap { flex-wrap:wrap; gap:12px; } }
#journey-refresh,.session-card button { border:1px solid #d4e0d7; border-radius:9px; background:#fff; color:#153f50; padding:9px 14px; cursor:pointer; font:inherit; font-size:.8rem; }
.session-card select { margin:12px 10px 0 0; padding:8px; color:#153f50; background:#f4f7f2; border:1px solid #d4e0d7; border-radius:8px; }
.journey-page [data-nav] { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:16px; font-size:.8rem; }
.journey-page [data-auth-journey] { color:#153f50; font-weight:600; }

.journey-ebook { display:grid; grid-template-columns:310px 1fr; overflow:hidden; background:#fff; border:1px solid #dfe8e1; border-radius:22px; }
.journey-ebook-art { display:flex; align-items:center; justify-content:center; padding:40px; background:#e7eee1; min-height:360px; }
.journey-ebook-cover { width:200px; padding:25px 22px 28px 30px; background:linear-gradient(90deg,#d7ddcd,#f7f4e7 8%,#f7f4e7 94%,#e2e5d6); border:1px solid #cbd2c2; border-radius:2px 7px 7px 2px; box-shadow:10px 15px 25px #264d3e25; transform:rotate(-5deg); }
.journey-ebook-cover > span { font-size:.65rem; }
.journey-ebook-cover b { display:block; font-family:var(--serif); font-style:italic; font-size:6rem; font-weight:500; line-height:1.1; margin-top:20px; }
.journey-ebook-cover strong { display:block; font-family:var(--serif); font-style:italic; font-size:1.8rem; line-height:1.1; font-weight:600; }
.journey-ebook-cover small { display:block; margin-top:30px; font-size:.5rem; letter-spacing:.1em; }
.journey-ebook-copy { padding:40px; align-self:center; }
.journey-ebook-copy h2 { font-size:clamp(2rem,3vw,2.8rem); margin:20px 0; }
.journey-ebook-copy p { font-size:.85rem; line-height:1.8; color:#617980; }
.journey-ebook-copy .journey-ebook-pending { display:inline-block; font-size:.75rem; padding:7px 14px; border:1px solid #d5dfd0; border-radius:30px; color:#486245; }
@media(max-width:700px) { .journey-ebook { grid-template-columns:1fr; } .journey-ebook-art { min-height:280px; padding:30px; } .journey-ebook-cover { width:175px; } .journey-ebook-copy { padding:28px; } .journey-toolbar .auth-tabs { flex-wrap:wrap; } }

.admin-search { display:block; max-width:540px; margin:24px 0 12px; font-family:var(--sans); font-size:.9rem; }
.admin-search input { display:block; width:100%; margin-top:8px; padding:12px 16px; border:1px solid var(--line); border-radius:12px; background:white; font:inherit; color:var(--ink); }
.registration-detail dd { white-space:pre-wrap; overflow-wrap:anywhere; }
[data-admin-page] .journey-toolbar { flex-wrap:wrap; }
[data-admin-page] .auth-tabs { display:flex; flex-wrap:wrap; gap:8px; }
[data-admin-page] .journey-card { border-color:var(--line); }
[data-admin-page] .calendar-days button { color:var(--ink); background:#f2ebdd; }
[data-admin-page] .calendar-days button[aria-pressed=true] { color:white; background:var(--forest); }
