:root{color-scheme:light;--bg:#f7f8f4;--card:#fff;--ink:#243b32;--muted:#737e76;--line:#e3e8df;--accent:#315d49;--accent-soft:#eaf0e7;--ok:#357655;--bad:#b3412e}
body{font-size:14px;line-height:1.7}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{transition:background .18s,box-shadow .18s,transform .18s}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a5b785;outline-offset:4px}button{cursor:pointer}a{color:var(--accent)}[hidden]{display:none!important}.wrap{max-width:none;margin:0 0 0 240px;padding:0}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--card);border-right:1px solid var(--line);padding:30px 22px 18px;display:flex;flex-direction:column;z-index:20;overflow:auto}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-family:'Noto Serif SC',serif;font-size:23px;font-weight:700;margin-bottom:28px}.brand-mark{background:var(--accent);color:#fff;border-radius:13px;width:43px;height:47px;display:grid;place-items:center;font-size:29px}.brand small{display:block;font-family:system-ui,sans-serif;font-size:9px;font-weight:500;letter-spacing:1.6px;color:var(--muted);margin-top:4px}.nav-label{font-size:10px;letter-spacing:2px;color:var(--muted);margin:18px 12px 10px}.side-link{background:none;border:0;display:flex;align-items:center;gap:14px;text-align:left;color:var(--muted);font:inherit;border-radius:8px;padding:10px 13px;margin:2px 0}.side-link>span{font:22px/1 Georgia;width:22px;text-align:center}.side-link.selected{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-link:hover{background:var(--bg);color:var(--accent)}.side-link small{margin-left:auto;background:#e9eee4;color:#527345;font-size:9px;border-radius:4px;padding:0 5px}.sidebar-note{background:var(--bg);padding:16px;border:1px solid var(--line);border-radius:12px;margin:28px 0 20px}.sidebar-note>span{color:#a58d59;font-size:25px}.sidebar-note p{font-family:'Noto Serif SC',serif;font-size:13px;margin:6px 0 12px}.sidebar-note button{background:none;border:0;color:var(--accent);padding:0;font:11px inherit}.sidebar-bottom{margin-top:auto;font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.topbar{height:77px;border-bottom:1px solid var(--line);padding:0 44px;display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:11px;color:var(--muted);background:var(--card)}.topbar>div{display:flex;align-items:center;gap:9px}.peace-dot{width:5px;height:5px;background:#779c66;border-radius:50%}.theme-toggle{background:var(--bg);border:1px solid var(--line);border-radius:50%;width:31px;height:31px;color:var(--accent);font-size:20px;margin-left:12px}main{max-width:1330px;margin:auto;padding:34px 44px 20px}.eyebrow{font:9px/1.5 system-ui,sans-serif;letter-spacing:2.2px;color:var(--muted);margin:0 0 11px}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.welcome h1,.tool-heading h1{font-size:28px;letter-spacing:1px;font-weight:500;margin:0 0 9px}.welcome p:last-child,.tool-heading>p:last-child{color:var(--muted);font-size:12px;margin:0}.welcome-symbol{font-size:57px;color:#b8c4a6;margin-right:10px}.home-grid{display:grid;grid-template-columns:minmax(0,2.3fr) minmax(230px,1fr);gap:20px}.scripture-hero{position:relative;min-height:310px;border-radius:16px;overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(20,43,29,.78),rgba(20,43,29,.08)),url('assets/scripture-morning.webp') center 56%/cover}.hero-content{padding:33px}.pill{display:inline-block;border:1px solid #ffffff40;background:#ffffff13;padding:5px 11px;font-size:10px;border-radius:30px;letter-spacing:1px}.hero-content h2{font-size:27px;font-weight:500;line-height:1.8;margin:18px 0 9px;color:#fff}.hero-content p{font-size:11px;color:#edf1e6;margin:0 0 24px}.light-btn{display:inline-flex;align-items:center;gap:28px;padding:9px 18px;background:#fcfcf4;color:#314836;text-decoration:none;border-radius:7px;font-size:11px}.hero-foot{position:absolute;bottom:17px;right:20px;font:7px system-ui;letter-spacing:2px;color:#ffffffab}.daily-card{padding:26px 24px;background:#edf0e4;border:1px solid #e1e6d7;border-radius:16px;text-align:center;display:flex;flex-direction:column;align-items:center}.daily-card .eyebrow{font-size:8px}.daily-icon{font:43px/1.4 Georgia;color:#88976b}.daily-card h2{font-size:19px;font-weight:500;margin:10px 0}.daily-card p{font-size:11px;color:#6f7c63;line-height:1.9;margin:0 0 20px}.daily-card button{background:var(--card);border:1px solid #d9e0cb;border-radius:7px;padding:10px 17px;color:var(--accent);font:12px inherit;width:100%;display:flex;justify-content:space-between}.daily-card small{font-size:9px;color:#7e896e;margin-top:12px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin:30px 0 16px;gap:15px}.section-heading .eyebrow{font-size:8px;margin-bottom:6px}.section-heading h2{font-size:19px;font-weight:500;margin:0}.section-heading>span{font-size:10px;color:var(--muted)}.journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.journey-card{position:relative;text-align:left;border:1px solid var(--line);background:var(--card);padding:21px;border-radius:12px;color:var(--ink)}.journey-card:hover,.card:hover{transform:translateY(-3px);box-shadow:0 8px 25px #23382d0b}.tile-icon{display:grid;place-items:center;width:37px;height:37px;background:#eaf0e7;color:#63815b;border-radius:10px;font-size:25px}.tile-icon.rose{background:#f6eae5;color:#b88978}.tile-icon.gold{background:#f6efdf;color:#b49756}.journey-card h3{font-size:16px;font-weight:500;margin:14px 0 7px}.journey-card p{font:11px/1.7 'Noto Sans SC',sans-serif;color:var(--muted);margin:0 0 17px}.card-action{font-size:10px;color:var(--accent)}.text-link{border:0;background:none;color:var(--accent);font:11px inherit}.pastor-banner{display:flex;align-items:center;gap:25px;padding:24px;background:var(--card);border:1px solid var(--line);border-radius:12px}.portrait-stack{display:flex;padding-left:0;flex-shrink:0}.portrait-stack img{width:65px;height:78px;border-radius:35px;object-fit:cover;object-position:50% 32%;border:3px solid var(--card);margin-left:-13px}.portrait-stack img:first-child{margin-left:0}.pastor-banner h3{font-size:14px;margin:0 0 6px;font-weight:500}.pastor-banner p{font-size:11px;margin:0 0 4px;color:var(--muted)}.pastor-banner small{font-size:9px;color:var(--muted)}.pastor-banner .btn{margin-left:auto;font-size:11px;padding:10px 16px}.topic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.topic-grid button{border:1px solid var(--line);background:var(--card);border-radius:10px;color:var(--accent);padding:17px 14px;display:flex;gap:12px;align-items:center}.topic-grid span{font:11px 'Noto Sans SC',sans-serif;flex:1}.site-footer{border-top:1px solid var(--line);margin:20px 44px 0;padding:20px 0 25px;font-size:10px;color:var(--muted)}.skip-link{position:fixed;top:-100px;left:250px;z-index:110;background:var(--card);padding:10px}.skip-link:focus{top:10px}.tool-heading{margin:0 0 24px}#groups{margin:0 0 14px;border-radius:10px;padding:4px;display:flex;width:max-content}#groups button{font-size:12px;padding:7px 24px;border-radius:7px}#tabs{justify-content:flex-start;gap:10px;margin:0 0 24px}#tabs button{border:0;border-radius:6px;padding:8px 14px;font-size:12px}.panel{padding:28px;border-radius:14px;box-shadow:0 4px 18px #23382d03}.panel h2{font-size:21px}.hint{font-size:12px;line-height:1.9}.btn{color:#fff;border-radius:8px;font-size:13px}input,select,textarea{font-size:13px;padding:12px;background:var(--bg)}.chips{gap:9px;margin:16px 0}.chips button{border-style:solid;padding:8px 13px;border-radius:8px;font-size:11px;background:var(--bg)}#log:empty{display:none}.chat-welcome{text-align:center;padding:40px 0 50px}.chat-welcome>span{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--accent-soft);font-size:37px;color:var(--accent)}.chat-welcome h3{font-size:23px;font-weight:500;margin:20px 0 8px}.chat-welcome p{color:var(--muted);font-size:12px}#log:not(:empty)+.chat-welcome{display:none}#chat-form{border:1px solid var(--line);border-radius:12px;padding:8px;align-items:flex-end;background:var(--bg)}#chat-in{border:0;background:none;resize:vertical;min-height:65px}#chat-form .btn{margin:4px}.msg{font-size:14px;padding:15px 18px}.pastor-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:25px}.pastor-cards .persona{padding:0 0 18px;overflow:hidden;background:var(--card);gap:8px}.pastor-cards .persona>.av{width:100%;height:215px;border-radius:0;object-fit:cover;object-position:50% 30%;background:var(--accent-soft)}.pastor-cards .persona>b,.pastor-cards .persona>span:not(.av),.pastor-cards .persona>em{margin-left:16px;margin-right:16px}.persona-label{font-style:normal;font-size:9px;color:var(--muted);margin-top:5px}.pastor-cards .persona>b{font-size:17px;font-family:'Noto Serif SC',serif}.pastor-cards .persona>span{font-size:11px}.pastor-cards .persona .persona-cta{margin-top:auto;padding-top:9px;color:var(--accent)}.pastor-cards .add{min-height:100px;grid-column:1/-1;align-items:center;background:var(--bg);padding:20px}.pa-head{border-bottom:1px solid var(--line);padding-bottom:20px}.pa-log{min-height:360px}.j-item header{padding:0;text-align:left}.j-item footer{padding:8px 0 0}.rd-bar{flex-wrap:wrap}#rd-body{max-width:760px;margin:auto;padding:20px 0}.card{padding:22px}.plan-pick{min-height:155px}.plan-pick small{margin-top:auto}
:root[data-theme=dark]{color-scheme:dark;--bg:#17231e;--card:#202e27;--ink:#e6ece2;--muted:#a1afa3;--line:#35453b;--accent:#a4c9aa;--accent-soft:#304635;--ok:#91cda8}.theme-dark .btn{background:#476f54;color:#fff}.theme-dark .daily-card{background:#2c3b2a;border-color:var(--line)}.theme-dark .daily-card p,.theme-dark .daily-card small{color:var(--muted)}.theme-dark .daily-card button{border-color:var(--line)}
@media(min-width:1600px){main{padding-top:45px}.scripture-hero{min-height:350px}.hero-content{padding:42px}.hero-content h2{font-size:34px}}
@media(max-width:1150px){.sidebar{width:205px;padding:25px 16px}.wrap{margin-left:205px}main{padding:28px}.topbar{padding:0 28px}.brand{font-size:20px}.home-grid{grid-template-columns:minmax(0,1.8fr) minmax(210px,1fr)}.hero-content{padding:25px}.hero-content h2{font-size:24px}.pastor-banner{gap:15px}.portrait-stack img{width:51px;height:65px}.pastor-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pastor-cards .persona>.av{height:270px}.topic-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.sidebar{width:76px;padding:20px 10px}.brand{justify-content:center}.brand>span:last-child,.nav-label,.side-link small,.sidebar-note,.sidebar-bottom{display:none}.brand-mark{flex-shrink:0}.side-link{font-size:0;justify-content:center;padding:12px 8px}.side-link>span{font-size:23px}.wrap{margin-left:76px}.home-grid{grid-template-columns:1fr}.daily-card{display:none}.welcome h1{font-size:25px}.section-heading>span{display:none}.pastor-banner{flex-wrap:wrap}.pastor-banner .btn{margin-left:0}.journey-card{padding:16px}.journey-card p{min-height:36px}}
@media(max-width:560px){.sidebar{inset:auto 0 0;width:100%;height:68px;padding:5px 8px;flex-direction:row;justify-content:space-around;border-right:0;border-top:1px solid var(--line);overflow:visible}.sidebar .brand,.sidebar .side-link{display:none}.sidebar .side-link:nth-of-type(-n+5){display:flex;flex-direction:column;gap:3px;font-size:9px;padding:5px 9px;margin:0}.side-link>span{font-size:20px}.wrap{margin-left:0}.topbar{height:58px;padding:0 19px;font-size:9px}.topbar>div{gap:4px}.theme-toggle{margin-left:4px}main{padding:25px 18px 14px}.welcome{margin-bottom:22px}.welcome h1{font-size:23px}.welcome p:last-child{font-size:11px;max-width:265px}.welcome-symbol{font-size:35px;margin:0}.eyebrow{font-size:8px}.scripture-hero{min-height:305px}.hero-content{padding:25px 23px}.hero-content h2{font-size:24px;margin-top:24px}.hero-foot{font-size:6px}.section-heading{margin-top:27px}.section-heading h2{font-size:18px}.journey-grid{gap:8px}.journey-card{padding:13px 10px}.journey-card h3{font-size:13px}.journey-card p{font-size:10px;min-height:51px;margin-bottom:10px}.card-action{font-size:9px}.tile-icon{width:32px;height:32px;font-size:22px}.pastor-banner{padding:18px;gap:15px}.pastor-banner h3{font-size:15px}.pastor-banner .btn{width:100%}.portrait-stack img{width:61px;height:73px}.topic-grid{gap:8px}.topic-grid button{padding:15px 10px;gap:7px}.site-footer{margin:16px 18px 70px;font-size:9px;line-height:1.9}.panel{padding:18px}.tool-heading h1{font-size:25px}#groups{width:100%;border-radius:9px}#groups button{flex:1;padding:7px 12px}#tabs{gap:4px}#tabs button{font-size:11px;padding:7px 9px}.pastor-cards{gap:12px}.pastor-cards .persona>.av{height:190px}.pastor-cards .persona>b,.pastor-cards .persona>span:not(.av),.pastor-cards .persona>em{margin-left:12px;margin-right:12px}.pastor-cards .persona>span{font-size:10px}.pastor-cards .persona>b{font-size:16px}/* Empty chat on phones: compact welcome and no duplicate heading, so the suggested questions stay above the sticky input. */#p-chat>h2{display:none}/* With popular questions shown, both chip groups become one swipeable row each, so neither slides under the sticky input. */#popular:not([hidden]) #pop-chips,#popular:not([hidden])~#chat-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}#popular:not([hidden]) #pop-chips button,#popular:not([hidden])~#chat-chips button{flex:none}#popular:not([hidden]) .pop-title{margin:0 0 4px}#popular:not([hidden]) #pop-chips,#popular:not([hidden])~#chat-chips{margin:6px 0}.chat-welcome{padding:4px 0 12px}.chat-welcome>span{display:none}.chat-welcome h3{font-size:19px;margin:0 0 4px}#chat-form{flex-direction:row}#chat-form .btn{padding:10px 14px}.rd-bar{flex-direction:row}.rd-bar select{flex-basis:30%}.rd-bar .btn,.seg button{padding:8px}.share-fab{bottom:83px}.pa-head .btn{font-size:11px;padding:8px}.pa-who{min-width:140px}.pa-log{min-height:280px}.skip-link{left:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Refinement: readable typography, daily rhythm, and complete mobile navigation. */
.welcome p:last-child,.tool-heading>p:last-child{font-size:14px}.journey-card p,.pastor-banner p{font-size:13px}.card-action,.text-link,.section-heading>span{font-size:12px}.hero-content p{font-size:13px}.hero-content h2{max-width:560px;font-size:clamp(23px,2.1vw,30px);line-height:1.65}.daily-card p{font-size:13px}.daily-card button{font-size:13px}.sidebar{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.side-link{min-height:44px}.resume-reading{display:flex;width:100%;align-items:center;gap:16px;padding:16px 21px;margin-top:20px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);text-align:left}.resume-icon{font-size:27px;color:var(--accent)}.resume-reading small{display:block;color:var(--muted);font-size:11px}.resume-reading strong{display:block;font:15px 'Noto Serif SC',serif;margin-top:4px}.resume-arrow{margin-left:auto;font-size:12px;color:var(--accent)}.mobile-more{display:none}#explore-dialog{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:22px;max-width:650px;width:calc(100% - 32px);padding:27px;max-height:85dvh;overflow:auto;box-shadow:0 24px 90px #0003}#explore-dialog::backdrop{background:#142a2266;backdrop-filter:blur(5px)}.explore-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.explore-head h2{font-size:22px;margin:6px 0}.explore-head button{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:50%;width:44px;height:44px;font-size:24px}.explore-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.explore-grid button{padding:19px;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:15px 'Noto Serif SC',serif}.explore-grid button:hover{border-color:var(--accent);background:var(--accent-soft)}.explore-grid small{display:block;font:11px/1.8 'Noto Sans SC',sans-serif;color:var(--muted);margin-top:9px}.chips button{min-height:40px}.theme-toggle{width:38px;height:38px}.pastor-cards .persona>span{font-size:12px}.pastor-cards .persona-label{font-size:10px}.theme-dark #groups button.on,.theme-dark .seg button.on{color:#17231e}.theme-dark .light-btn{color:#243b32}
@media(max-width:560px){.sidebar{height:calc(70px + env(safe-area-inset-bottom));padding-bottom:calc(5px + env(safe-area-inset-bottom))}.sidebar .side-link:nth-of-type(5){display:none}.sidebar .mobile-more{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--muted);font:11px 'Noto Sans SC',sans-serif;padding:5px 12px}.mobile-more span{font-size:22px}.sidebar .side-link:nth-of-type(-n+4){font-size:11px}.welcome p:last-child{font-size:13px}.journey-grid{grid-template-columns:1fr}.journey-card{display:grid;grid-template-columns:44px 1fr;column-gap:14px;padding:17px}.tile-icon{grid-row:1/4;width:42px;height:42px}.journey-card h3{font-size:16px;margin:0 0 4px}.journey-card p{min-height:0;font-size:12px;margin:0 0 8px}.card-action{font-size:11px}.pastor-banner p{font-size:13px}.pastor-banner small{font-size:11px}.topic-grid span{font-size:12px}.topic-grid button{min-height:56px}.hero-content h2{font-size:24px}.hero-content p{font-size:12px}.hero-foot{display:none}.resume-reading{padding:15px;gap:12px}.resume-arrow{font-size:11px}.resume-reading strong{font-size:14px}.site-footer{margin-bottom:calc(80px + env(safe-area-inset-bottom))}.pastor-cards .persona>span{font-size:12px}.explore-head h2{font-size:20px}#explore-dialog{padding:22px 18px}.explore-grid button{padding:15px 12px}.explore-grid small{font-size:11px}.daily-card{display:flex;margin-top:0;text-align:left;align-items:stretch;padding:22px}.daily-card .daily-icon{display:none}.daily-card h2{margin:4px 0 8px}.daily-card p br{display:none}.daily-card p{margin:0 0 15px}.daily-card small{text-align:center}.daily-card .eyebrow{font-size:9px}}

body:has(#explore-dialog[open]){overflow:hidden}
/* YouTube song library */
.music-home{display:flex;align-items:center;gap:20px;width:100%;text-align:left;padding:24px;margin-top:22px;border:1px solid var(--line);border-radius:14px;background:var(--accent-soft);color:var(--ink);font:inherit}.music-home>span:first-child{font-size:40px;color:var(--accent)}.music-home strong{display:block;font:19px 'Noto Serif SC',serif}.music-home small{display:block;color:var(--muted);margin-top:6px}.music-home>span:last-child{margin-left:auto;font-size:13px}.music-intro{position:relative;background:var(--accent-soft);border-radius:12px;padding:28px;margin-bottom:25px;overflow:hidden}.music-intro h2{font-size:26px;font-weight:500;position:relative;z-index:1}.music-intro p{color:var(--muted);margin:8px 0 0}.music-note{position:absolute;right:24px;top:-18px;font-size:130px;color:var(--accent);opacity:.1}.music-search label{display:block;margin-bottom:8px;font-size:13px}.music-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.music-filters label{display:flex;gap:8px;align-items:center;font-size:12px}.music-filters select{padding:8px;width:120px}.music-filters .chips{flex:1}#song-themes button[aria-pressed=true],#song-favorites[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.song-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.song-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--card)}.song-cover{position:relative;display:block;width:100%;padding:0;border:0;aspect-ratio:16/9;background:var(--accent-soft);overflow:hidden}.song-cover img{width:100%;height:100%;object-fit:cover;display:block}.song-cover:hover .song-play{transform:scale(1.12)}.song-play{position:absolute;left:calc(50% - 22px);top:calc(50% - 22px);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#172b26d9;color:white;transition:transform .2s}.song-badge{position:absolute;bottom:10px;left:10px;background:#172b26dc;color:white;border-radius:5px;padding:2px 8px;font-size:11px}.song-info{padding:17px}.song-title{display:flex;align-items:center;gap:6px}.song-title h3{font-size:17px;margin:0;flex:1}.song-save{font-size:24px;width:42px;min-width:42px;height:42px;border:0;background:none;color:var(--accent);border-radius:50%}.song-save:hover{background:var(--accent-soft)}.song-info p{font-size:11px;color:var(--muted);margin:6px 0 14px}.song-tags{display:flex;gap:6px}.song-tags span{background:var(--accent-soft);color:var(--accent);font-size:11px;padding:3px 8px;border-radius:6px}.song-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:16px}.song-actions button{background:var(--accent-soft);color:var(--accent);padding:10px 12px;border:0;border-radius:7px}.song-actions a{font-size:11px;text-decoration:none}#song-empty{text-align:center;padding:40px 10px;background:var(--bg);border-radius:12px}#song-empty p{color:var(--muted)}#song-dialog{max-width:900px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:18px;padding:24px}#song-dialog::backdrop{background:#142a22b3;backdrop-filter:blur(5px)}#song-dialog h2{font-size:20px;flex:1}#song-player{aspect-ratio:16/9;background:#111}#song-player iframe{width:100%;height:100%;border:0}body:has(#song-dialog[open]){overflow:hidden}
@media(max-width:1150px){.song-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.song-grid{grid-template-columns:1fr;gap:18px}.music-intro{padding:22px 18px}.music-intro h2{font-size:22px}.music-intro p{font-size:12px}.music-search .row{flex-direction:row}.music-search input{font-size:14px}.music-search .btn{padding:9px;font-size:11px}.music-filters .chips{flex-basis:100%;margin-bottom:0;gap:6px}.music-filters{margin-bottom:18px}.music-filters .btn{font-size:12px}.music-home{padding:18px;gap:12px;flex-wrap:wrap}.music-home strong{font-size:17px}.music-home small{font-size:11px}.music-home>span:last-child{margin-left:52px}.song-actions a{font-size:13px}.song-info p{font-size:12px}#groups button{padding:7px 9px}#song-dialog{padding:16px}.song-title h3{font-size:19px}}
/* Keep biography controls stable while a complete response is prepared. */
html{scrollbar-gutter:stable}
#p-character{overflow-anchor:none;min-height:370px}
#p-character .character-status{min-height:3.5em;margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.75}
#p-character .chips button:disabled{opacity:.6;cursor:wait}
#p-character .out{overflow-anchor:none}
/* Fixed-ratio portraits prevent layout shifts as character images load. */
#p-character .character-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
#p-character .character-gallery button[hidden]{display:none}
.character-search{margin-top:18px}.character-search label{display:block;margin-bottom:8px;font-weight:600}.character-search>div{display:flex;gap:8px}.character-search input{flex:1;min-width:0;font-size:16px}.character-search button{min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}.character-search p{color:var(--muted);font-size:14px;margin:8px 0}
#p-character .character-gallery button{display:flex;flex-direction:column;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-align:left;background:var(--card);color:var(--ink);white-space:normal}
.character-gallery img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;background:var(--accent-soft)}
.character-image-fallback{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;padding:16px;box-sizing:border-box;background:var(--accent-soft);color:var(--ink);font:inherit;text-align:center}
.song-cover-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:18px 48px;box-sizing:border-box;color:var(--ink);background:var(--accent-soft);font:600 16px/1.6 "Noto Sans SC",sans-serif;text-align:center}
.character-card-body{display:flex;flex-direction:column;gap:7px;padding:15px;width:100%}.character-card-body strong{font:17px 'Noto Serif SC',serif}.character-card-body small{font-size:11px;color:var(--muted)}.character-card-body>span{font-size:11px;color:var(--accent);margin-top:5px}#p-character .character-gallery button:hover{border-color:var(--accent);box-shadow:0 5px 18px #203a2b12}#p-character .character-gallery button:disabled{opacity:.7}.character-image-note{font-size:11px}
@media(max-width:1000px){#p-character .character-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#p-character .character-gallery{gap:12px}.character-card-body{padding:12px;gap:6px}.character-card-body strong{font-size:16px}.character-card-body small{font-size:11px}}

/* Guided daily moments: scripture, reflection and connection. */
.moment-card{display:grid;grid-template-columns:1fr 1.15fr;margin-top:25px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card)}
.moment-select{padding:30px}.moment-select h2{font:24px/1.5 'Noto Serif SC',serif;margin:12px 0}.moment-select p{font-size:13px;color:var(--muted);line-height:1.8}.moment-select>small{font-size:11px;color:var(--muted)}
.mood-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:23px 0}.mood-options button{border:1px solid var(--line);border-radius:30px;background:var(--bg);color:var(--ink);min-height:44px;font:13px inherit;padding:10px}.mood-options button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.moment-response{padding:30px;background:var(--accent-soft);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:360px}.moment-response blockquote{margin:18px 0 12px;font:21px/1.8 'Noto Serif SC',serif}.moment-response p{font-size:13px;line-height:1.9;color:var(--muted);margin:16px 0 20px}.moment-response .text-link{padding:0;text-align:left;min-height:30px}.moment-response>small{margin-top:13px;font-size:11px;color:var(--muted)}
#moment-dialog{width:calc(100% - 32px);max-width:580px;border:1px solid var(--line);border-radius:22px;padding:30px;background:var(--card);color:var(--ink);max-height:88dvh;overflow:auto;box-shadow:0 25px 90px #0003}#moment-dialog::backdrop{background:#142a2299;backdrop-filter:blur(6px)}.moment-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.moment-dialog-head button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink);font-size:24px}.moment-steps{display:flex;gap:8px;margin:22px 0 30px}.moment-steps span{flex:1;border-top:3px solid var(--line);padding-top:10px;color:var(--muted);font-size:12px}.moment-steps .active{border-color:var(--accent);color:var(--accent)}#moment-title{font:25px/1.6 'Noto Serif SC',serif;outline-offset:6px}#moment-body{font:20px/2 'Noto Serif SC',serif;min-height:130px}#moment-detail{font-size:13px;line-height:1.9;color:var(--muted);min-height:50px}.moment-dialog-actions{display:flex;justify-content:space-between;gap:16px;margin:25px 0}.moment-dialog-actions .btn{margin-left:auto}#moment-dialog>small{display:block;color:var(--muted);font-size:11px}body:has(#moment-dialog[open]){overflow:hidden}
@media(max-width:800px){.moment-card{grid-template-columns:1fr}.moment-select,.moment-response{padding:24px}.moment-response{min-height:300px}.mood-options{grid-template-columns:repeat(3,1fr)}.moment-select h2{font-size:22px}}
@media(max-width:560px){.moment-select,.moment-response{padding:22px 19px}.moment-response blockquote{font-size:20px}.moment-select h2{font-size:21px}#moment-dialog{padding:22px}#moment-title{font-size:22px}#moment-body{font-size:19px}.mood-options{gap:8px}.moment-response .btn{width:100%}}

/* Readability: stronger text contrast and comfortable supporting text. */
:root{--ink:#172d24;--muted:#46584e;--accent:#24543c;--line:#d3ddd1}
:root[data-theme=dark]{--ink:#f2f6ef;--muted:#c1cfc3;--accent:#b9dfbe;--line:#536558}
body{font-size:16px;color:var(--ink)}
.side-link{color:var(--ink);font-weight:500}.topbar{font-size:13px}.nav-label,.sidebar-bottom{font-size:12px}.eyebrow,.section-heading .eyebrow,.daily-card .eyebrow{font-size:11px;font-weight:600;letter-spacing:1.5px}
.welcome h1,.tool-heading h1,.section-heading h2,.daily-card h2,.journey-card h3,.pastor-banner h3{font-weight:600}
.welcome p:last-child,.tool-heading>p:last-child,.journey-card p,.pastor-banner p,.daily-card p,.hint,.chat-welcome p,.music-intro p,.moment-select p,.moment-response p,#moment-detail{font-size:15px;color:var(--muted)}
.daily-card small,.daily-card p{color:var(--muted)}.daily-card small,.pastor-banner small,.site-footer,.brand small,.persona-label,.pastor-cards .persona-label,.character-image-note,.song-info p,.character-card-body small,.moment-select>small,.moment-response>small,#moment-dialog>small,.explore-grid small{font-size:12px;color:var(--muted)}
.pastor-cards .persona>span,.character-card-body>span,.card-action,.text-link,.section-heading>span,.song-actions a,.music-home small{font-size:14px}.chips button,#tabs button,#groups button,.daily-card button,input,select,textarea{font-size:14px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.moment-select h2,.moment-response blockquote{font-weight:500}.mood-options button{font-size:14px;font-weight:500}.topic-grid span{font-size:14px}
.scripture-hero{background-image:linear-gradient(90deg,rgba(12,31,20,.88),rgba(12,31,20,.57)),url('assets/scripture-morning.webp')}.hero-content h2{font-weight:600;text-shadow:0 1px 3px #0005}.hero-content p,.hero-foot{color:#fff}.hero-content p{font-size:14px}.hero-foot{font-size:9px}.pill{font-size:12px;background:#142b22a6;border-color:#ffffff80}.light-btn{font-size:14px;font-weight:600}
.theme-dark .btn{background:#396247;color:#fff}.theme-dark .daily-card p,.theme-dark .daily-card small{color:var(--muted)}
@media(max-width:560px){.topbar{font-size:11px}.welcome p:last-child,.journey-card p,.pastor-banner p,.daily-card p,.pastor-cards .persona>span{font-size:14px}.sidebar .side-link:nth-of-type(-n+4),.sidebar .mobile-more{font-size:12px;color:var(--ink)}.sidebar .side-link:nth-of-type(-n+4){padding:5px 6px}.sidebar .mobile-more{padding:5px 8px}.card-action{font-size:13px}.site-footer{font-size:12px}.character-card-body small{font-size:12px}.topic-grid span{font-size:13px}.eyebrow{letter-spacing:1px}.song-info p{font-size:13px}}
.brand small{font-size:10px;letter-spacing:1px;white-space:nowrap}

/* Consistent readability across study, music, and conversation pages. */
.panel .hint,.panel .hint.small,.pa-who .hint{font-size:14px;line-height:1.85}
.msg,.out,.pa-log{font-size:16px;line-height:1.9}.msg p,.out p{line-height:1.9}
input,textarea,select{font-size:16px;color:var(--ink)}.btn{font-size:15px;font-weight:600;min-height:44px}
.chips button{color:var(--ink);font-size:14px;font-weight:500}#tabs button,#groups button{min-height:44px;font-weight:500}
.pastor-cards .persona>span{font-size:14px;line-height:1.8}.pastor-cards .persona-label{font-size:12px}.pastor-cards .persona>b{font-size:19px}.persona-cta{font-weight:600}
.character-card-body strong{font-size:19px}.character-card-body small{font-size:13px;line-height:1.75}.character-card-body>span{font-size:14px;font-weight:500}
.song-info p,.song-tags span,.song-badge{font-size:13px}.song-title h3{font-size:19px;line-height:1.6}.song-actions button,.song-actions a{font-size:14px;min-height:44px;display:inline-flex;align-items:center}.music-filters label{font-size:14px}.music-filters select{font-size:16px}.music-search label{font-size:15px}
.plan-stats span,.plan-today h3 small,.plan-foot,.j-item time,.j-item .tag,.ai-tag{font-size:13px}.plan-pick small,.plan-next li{font-size:14px}.speak-btn{opacity:1;color:var(--accent);min-width:40px;min-height:40px}.rd-bar .btn,.rd-bar select{min-height:44px}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-color:var(--accent)}
@media(max-width:560px){.pastor-cards .persona>span{font-size:14px}.pastor-cards .persona>b{font-size:18px}.character-card-body strong{font-size:18px}.character-card-body small{font-size:13px}.pa-head{flex-wrap:wrap;gap:12px}.pa-head .btn{font-size:13px}.music-search input{font-size:16px}.song-info p{font-size:13px}.chips button{font-size:14px}.panel{padding:18px 15px}.rd-bar select{min-width:0}.song-actions{gap:8px}}
.explore-grid .explore-all{grid-column:1/-1;display:block;padding:16px 19px;border:1px dashed var(--accent);border-radius:12px;background:var(--accent-soft);color:var(--accent);text-decoration:none;font:15px "Noto Serif SC",serif}
.home-plan{margin-top:10px;width:100%}
.season-link{display:flex;align-items:center;gap:10px;margin:20px 0 0;padding:14px 21px;border:1px solid var(--line);border-radius:12px;background:var(--accent-soft);color:var(--ink);text-decoration:none;font-size:14px}.season-link b{color:var(--accent);font-weight:600}.season-link span:last-child{margin-left:auto;color:var(--accent)}

/* Library browsing refinement, September 24. */
.song-more{display:block;margin:28px auto 8px;min-width:230px}.music-search{padding:20px;background:var(--bg);border:1px solid var(--line);border-radius:14px}.music-filters{padding:12px 0 20px;gap:14px}.song-grid{gap:24px}.song-card{transition:border-color .18s,box-shadow .18s}.song-card:hover{border-color:var(--accent);box-shadow:0 8px 24px #17332212}.song-info{padding:20px}.song-tags{flex-wrap:wrap}.song-cover:focus-visible{outline-offset:-5px}.pastor-cards .persona{border-radius:16px}.pastor-cards .persona>.av{object-position:50% 25%}.pastor-cards .persona-cta{border-top:1px solid var(--line);padding-top:12px;align-self:stretch}.pastor-cards .persona:focus-visible{outline-offset:3px}
@media(max-width:560px){.music-search{padding:15px}.music-search .row{flex-wrap:wrap}.music-search input{flex-basis:100%}.music-search .btn{width:100%}.song-more{width:100%;min-width:0}.song-info{padding:18px}.music-filters label{flex:1 1 42%;flex-direction:column;align-items:flex-start}.music-filters select{width:100%}}
.music-filters #song-themes{flex:1 0 100%;margin:0 0 6px}.music-filters{align-items:flex-end}.music-filters label{gap:8px}
@media(max-width:760px){.scripture-hero{background-image:linear-gradient(90deg,rgba(12,31,20,.88),rgba(12,31,20,.57)),url('assets/scripture-morning-760.webp')}}
.habit{margin:16px 0 0;padding:10px 18px;border-radius:12px;background:var(--accent-soft);color:var(--ink);font-size:14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#rd-body .v:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
/* 触控目标至少 28px 高(WCAG 2.5.8 要求 24px) */
.text-link{min-height:28px;padding-top:3px;padding-bottom:3px}
/* 手机:各栏目上方每页都一样的英文标语与副标题不显示,内容从第一屏上方三分之一内开始 */
@media(max-width:560px){.tool-heading .eyebrow,.tool-heading>p:last-child{display:none}.tool-heading{margin-bottom:12px}#tool-title{margin:0}}
/* 打印(查经讲义、讲道大纲、存成 PDF):只印内容,不印导航、工具列、输入表单与按钮;深色模式下也印成白底深色字 */
@media print{:root,:root[data-theme=dark]{--bg:#fff!important;--card:#fff!important;--ink:#111!important;--muted:#444!important;--line:#ccc!important;--accent:#222!important;--accent-soft:#f3f3f3!important}body,.panel{background:#fff!important;color:#111!important;box-shadow:none!important}.sidebar,.topbar,.tool-heading,#groups,#tabs,.site-footer,.mobile-more,.skip-link,.share-fab,.rd-bar,#rd-search,.rd-tip,.rd-audio,.vbar,#chat-form,#sm-form,.chips,.panel form,.panel button:not(.opt){display:none!important}.wrap{margin:0!important}main{padding:0!important;max-width:none!important}.panel{border:0!important;padding:0!important}#rd-body{max-width:none;padding:0}#rd-body .v{color:#111!important;break-inside:avoid}a{color:#111}main::after{content:"shengjing.ca · 圣经对话 · 经文引自《和合本》";display:block;margin-top:24px;font-size:12px;color:#555}}
/* 读经时左右滑动是换章:关掉浏览器的「横向滑动 = 上一页/下一页」(系统从屏幕边缘返回的手势不受影响) */
html:has(#tool-view:not([hidden]) #p-read.on){overscroll-behavior-x:none}
/* 做成按钮样式的链接(例如搜索「约翰福音 30」时的「打开第 21 章」)不要底线 */
a.btn{text-decoration:none}

/* Tighter, consistent page rhythm; keep readable text and touch targets. */
main{padding-top:26px}
.welcome{margin-bottom:18px}
.home-grid{gap:16px}
.season-link{margin-top:14px}
.moment-card{margin-top:16px}
.section-heading{margin-top:20px;margin-bottom:12px}
.music-home{margin-top:14px;padding:18px}
.journey-grid,.topic-grid{gap:12px}
.pastor-banner{padding:20px;gap:18px}
.tool-heading{margin-bottom:16px}
#groups{margin-bottom:8px}
#tabs{margin-bottom:16px}
.panel{padding:24px}
.pastor-cards{gap:12px;margin-top:18px}
.song-grid{gap:16px}
.music-intro{margin-bottom:16px}
.music-filters{padding:8px 0 14px;gap:10px}
.song-more{margin-top:18px}
@media(max-width:800px){main{padding-top:22px}.home-grid{gap:14px}}
@media(max-width:560px){main{padding-top:18px}.welcome{margin-bottom:14px}.home-grid{gap:12px}.season-link{margin-top:12px;padding:12px 14px}.moment-card{margin-top:14px}.section-heading{margin-top:18px;margin-bottom:10px}.journey-grid{gap:8px}.music-home{margin-top:12px;padding:16px}.pastor-banner{padding:16px;gap:12px}.tool-heading{margin-bottom:10px}#groups{margin-bottom:6px}#tabs{margin-bottom:10px}.panel{padding:17px 15px}.pastor-cards{gap:10px;margin-top:14px}.song-grid{gap:12px}.music-intro{margin-bottom:12px}.music-filters{padding:6px 0 10px}}
.study-more-toggle{display:block;width:100%;min-height:44px;margin:10px 0 0;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--accent);font:600 14px/1.4 "Noto Sans SC",sans-serif;cursor:pointer}
.study-more-toggle[hidden]{display:none}
.study-more-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:560px){.study-links.is-collapsed>*:nth-child(n+7){display:none}}
.song-filter-toggle{display:none}
.song-filter-toggle[hidden]{display:none}
@media(max-width:560px){
  #p-songs .music-intro{padding:12px 16px;margin-bottom:8px}
  #p-songs .music-intro .eyebrow{display:none}
  #p-songs .music-intro h2{font-size:18px;margin:0}
  #p-songs .music-intro p{font-size:12px;margin:3px 0 0}
  #p-songs .music-note{font-size:75px;top:-12px;right:12px}
  #p-songs .music-search{padding:11px 13px}
  #p-songs .music-search label{margin-bottom:5px}
  #p-songs .music-filters{gap:8px;margin-bottom:5px;padding:8px 0}
  #p-songs #song-themes{display:flex;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;gap:6px;margin:0;padding:0 0 5px;scrollbar-width:thin}
  #p-songs #song-themes button{flex:0 0 auto;white-space:nowrap;min-height:40px}
  #p-songs .song-filter-toggle{display:block;width:100%;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--accent);font:600 14px/1.4 "Noto Sans SC",sans-serif;cursor:pointer}
  #p-songs .song-filter-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  #p-songs .music-filters.has-filter-toggle>label,#p-songs .music-filters.has-filter-toggle>#song-favorites{display:none}
  #p-songs .music-filters.show-advanced>label{display:flex}
  #p-songs .music-filters.show-advanced>#song-favorites{display:inline-flex}
  #p-songs #song-count{margin:6px 0 10px}
}
@media(max-width:760px){#toast{box-sizing:border-box;width:max-content;max-width:calc(100vw - 32px);bottom:calc(90px + env(safe-area-inset-bottom,0px));border-radius:14px;text-align:center;overflow-wrap:anywhere}}
.daily-finish{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--accent-soft)}.daily-finish h4{font-size:18px;margin:0 0 8px}.daily-finish .row{flex-wrap:wrap}.daily-finish small{display:block;color:var(--ink);font-size:12px}.daily-finish button:disabled{opacity:.8;cursor:default}
