/* 성경 1년 1독 — 50~60대 사용자를 위한 큰 글씨·큰 버튼·높은 대비 */
:root{
  --bg:#FAF7F0; --card:#FFFFFF; --ink:#1F1D1A; --soft:#57524A; --mute:#8A8378;
  --line:#E6DFD2; --line2:#D2C9B8;
  --accent:#1F6B52; --accent-ink:#FFFFFF; --accent-bg:#E6F2EC;
  --warn:#A8520C; --warn-bg:#FDF1E4;
  --god:#1A4FB8; --god-bg:#EAF1FD; --god-bar:#2F6BE0;      /* 하나님 말씀 = 파란색 */
  --jesus:#BE1E1E; --jesus-bg:#FDECEC; --jesus-bar:#E03A3A;  /* 예수님 말씀 = 빨간색 */
  --holiday:#C2271D;
  --shadow:0 1px 2px rgba(40,30,10,.06),0 4px 14px rgba(40,30,10,.06);
  --vs:21px;           /* 본문 글자 크기 (설정에서 바뀜) */
  --ui:18px;
  --radius:16px;
  --tabh:72px;
  color-scheme:light;
}
:root.night{
  --bg:#141619; --card:#1E2125; --ink:#ECE8E1; --soft:#BDB6AA; --mute:#8E887E;
  --line:#2E3237; --line2:#3C4148;
  --accent:#4DB38A; --accent-ink:#0D1A14; --accent-bg:#1C3029;
  --warn:#F0A660; --warn-bg:#33261A;
  --god:#94B8FF; --god-bg:#1B2436; --god-bar:#6E97E6;
  --jesus:#FF9A90; --jesus-bg:#361D1C; --jesus-bar:#E86A5F;
  --holiday:#FF8279;
  --shadow:none;
  color-scheme:dark;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:var(--ui);line-height:1.6;word-break:keep-all;overflow-wrap:anywhere;
  padding-bottom:calc(var(--tabh) + env(safe-area-inset-bottom));}
button,input,select{font:inherit;color:inherit;}
a{color:inherit;}
.boot{padding:40vh 20px;text-align:center;color:var(--soft);}
.wrap{max-width:760px;margin:0 auto;padding:16px 16px 28px;}

/* ── 하단 탭 ── */
.tabs[hidden]{display:none;}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--card);
  border-top:1px solid var(--line2);padding-bottom:env(safe-area-inset-bottom);}
.tabs a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  height:var(--tabh);text-decoration:none;color:var(--mute);font-size:16px;font-weight:500;}
.tabs a svg{width:28px;height:28px;}
.tabs a.on{color:var(--accent);font-weight:700;}
.tabs a.on svg{stroke-width:2.4;}

/* ── 공통 ── */
h1{font-size:26px;line-height:1.35;margin:6px 0 4px;font-weight:700;}
h2{font-size:22px;margin:0 0 8px;font-weight:700;}
h3{font-size:19px;margin:0 0 6px;}
.sub{color:var(--soft);font-size:17px;margin:0;}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:14px 0;box-shadow:var(--shadow);}
.row{display:flex;align-items:center;gap:12px;}
.between{justify-content:space-between;}
.muted{color:var(--mute);}
.soft{color:var(--soft);}
.center{text-align:center;}
.gap8{height:8px}.gap16{height:16px}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:64px;
  border-radius:14px;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink);
  font-size:21px;font-weight:700;cursor:pointer;padding:12px 18px;text-decoration:none;}
.btn:active{transform:scale(.985);}
.btn.line{background:transparent;color:var(--accent);}
.btn.soft{background:var(--accent-bg);color:var(--accent);border-color:transparent;}
.btn.gray{background:transparent;color:var(--ink);border-color:var(--line2);font-weight:500;}
.btn.warn{background:var(--warn);border-color:var(--warn);color:#fff;}
.btn.danger{background:transparent;color:var(--holiday);border-color:var(--holiday);}
.btn.sm{min-height:52px;font-size:18px;border-radius:12px;}
.btn[disabled]{opacity:.45;pointer-events:none;}
.btns{display:grid;gap:10px;}
.btns.two{grid-template-columns:1fr 1fr;}

.chip{display:inline-flex;align-items:center;font-size:15px;font-weight:700;padding:2px 10px;border-radius:99px;
  background:var(--line);color:var(--soft);white-space:nowrap;}
.chip.ot{background:#EFE7D8;color:#6B4E1E;} .chip.wis{background:#EDE6F5;color:#5A3D84;} .chip.nt{background:var(--accent-bg);color:var(--accent);}
:root.night .chip.ot{background:#3A3122;color:#E9CF9E;} :root.night .chip.wis{background:#2F2640;color:#CDB6F0;}

.bar{height:14px;background:var(--line);border-radius:99px;overflow:hidden;}
.bar>i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .4s;}
.bar.god>i{background:var(--god-bar);} .bar.jesus>i{background:var(--jesus-bar);}

.notice{border-radius:14px;padding:14px 16px;margin:12px 0;font-size:18px;line-height:1.55;}
.notice.warn{background:var(--warn-bg);color:var(--warn);}
.notice.ok{background:var(--accent-bg);color:var(--accent);}
.notice.rest{background:var(--god-bg);color:var(--god);}

/* ── 오늘 ── */
.hello{margin:8px 2px 4px;}
.hello .date{font-size:18px;color:var(--soft);}
.today-card .head{display:flex;flex-direction:column;gap:0;margin-bottom:6px;}
.today-card .label{font-size:20px;font-weight:700;color:var(--accent);}
.today-card .dayno{font-size:17px;color:var(--soft);}
.portion{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:22px;font-weight:700;}
.portion:first-of-type{border-top:none;}
.portion .chip{min-width:92px;justify-content:center;}
.portion .ok{margin-left:auto;color:var(--accent);font-size:22px;}
.portion.done .name{color:var(--mute);text-decoration:line-through;text-decoration-thickness:2px;}
.minutes{color:var(--soft);font-size:17px;margin:8px 0 14px;}
.big-pct{font-size:44px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;}
.stats div{background:var(--bg);border-radius:12px;padding:10px 6px;text-align:center;font-size:15px;color:var(--soft);}
.stats b{display:block;font-size:24px;color:var(--ink);font-variant-numeric:tabular-nums;}

/* ── 읽기 ── */
.topbar{position:sticky;top:0;z-index:30;background:var(--bg);background:color-mix(in srgb,var(--bg) 98%,transparent);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:1px solid var(--line);}
.topbar .in{max-width:760px;margin:0 auto;display:flex;align-items:center;gap:8px;padding:8px 12px;}
.topbar .title{flex:1;min-width:0;font-weight:700;font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ibtn{min-width:56px;height:52px;border-radius:12px;border:1.5px solid var(--line2);background:var(--card);
  font-size:18px;font-weight:700;cursor:pointer;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:4px;}
.ibtn.back{border:none;background:transparent;font-size:19px;padding:0 6px;text-decoration:none;white-space:nowrap;}
.readbar{max-width:760px;margin:0 auto;padding:0 12px 8px;}
.readbar .bar{height:8px;}
.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:16px;color:var(--soft);margin:12px 2px 0;}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.legend i{width:14px;height:14px;border-radius:4px;display:inline-block;}
.legend .g i{background:var(--god-bar);} .legend .j i{background:var(--jesus-bar);}

.chapter{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px 16px;margin:16px 0;box-shadow:var(--shadow);scroll-margin-top:90px;}
.chapter .ch-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.chapter .ch-head h2{margin:0;font-family:"Noto Serif KR","AppleMyungjo",serif;font-size:calc(var(--vs) + 3px);}
.chapter .ch-head .ibtn{margin-left:auto;}
.verses{font-family:"Noto Serif KR","AppleMyungjo","Batang",serif;font-size:var(--vs);line-height:var(--vlh,1.85);letter-spacing:-.005em;}
:root.sans .verses,:root.sans .preview.verses-like,:root.sans .chapter .ch-head h2{font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;}
.v{display:flex;gap:10px;padding:5px 8px 5px 6px;border-left:4px solid transparent;margin:0 -6px;}
.v .n{flex:0 0 auto;min-width:1.7em;text-align:right;font-family:"Noto Sans KR",sans-serif;font-size:calc(var(--vs) * .66);
  color:var(--soft);opacity:.8;padding-top:.38em;font-variant-numeric:tabular-nums;font-weight:500;}
.v .t{flex:1;min-width:0;}
.v .en{display:block;font-family:"Noto Sans KR",sans-serif;font-size:calc(var(--vs) * .74);color:var(--soft);line-height:1.5;margin-top:2px;}
.hl .v.g{background:var(--god-bg);border-left-color:var(--god-bar);}
.hl .v.g .t{color:var(--god);}
.hl .v.j{background:var(--jesus-bg);border-left-color:var(--jesus-bar);}
.hl .v.j .t{color:var(--jesus);}
.hl .v.g .en,.hl .v.j .en{color:var(--soft);}
.v .who{display:none;}
.hl .v.first .who{display:inline-block;font-family:"Noto Sans KR",sans-serif;font-size:14px;font-weight:700;border-radius:99px;
  padding:0 8px;margin-right:6px;vertical-align:.2em;line-height:1.7;}
.hl .v.g .who{background:var(--god-bar);color:#fff;} .hl .v.j .who{background:var(--jesus-bar);color:#fff;}
.v.speaking{outline:3px solid var(--accent);outline-offset:1px;}
.only-speech .v:not(.g):not(.j){display:none;}
.readbtn{margin-top:16px;}
.readbtn.done{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-bg);}
.finish{text-align:center;padding:26px 18px;}
.finish .big{font-size:48px;line-height:1.1;}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0;}

/* ── 진도 달력 ── */
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.cal-head b{font-size:22px;}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.cal .wd{text-align:center;font-size:15px;color:var(--soft);font-weight:700;padding:2px 0;}
.cal .wd.sun{color:var(--holiday);} .cal .wd.sat{color:var(--god);}
.cal .c{width:100%;min-width:0;aspect-ratio:1/1.08;border-radius:10px;border:1.5px solid transparent;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-size:18px;font-weight:600;background:var(--bg);position:relative;
  padding:0;cursor:default;font-variant-numeric:tabular-nums;line-height:1.1;}
.cal .c small{font-size:10.5px;font-weight:500;line-height:1.1;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 2px;}
.cal .c.empty{background:transparent;}
.cal .c.rest{color:var(--mute);background:transparent;}
.cal .c.hol{color:var(--holiday);}
.cal .c.plan{background:var(--card);border-color:var(--line2);cursor:pointer;}
.cal .c.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
.cal .c.missed{background:var(--warn-bg);border-color:var(--warn);color:var(--warn);}
.cal .c.partial::after{content:"";position:absolute;bottom:5px;width:6px;height:6px;border-radius:50%;background:var(--accent);}
.cal .c.today{box-shadow:0 0 0 3px var(--ink);}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:15px;color:var(--soft);margin-top:12px;}
.cal-legend span{display:inline-flex;align-items:center;gap:6px;}
.cal-legend i{width:16px;height:16px;border-radius:5px;display:inline-block;border:1.5px solid var(--line2);}
.cal-legend .d i{background:var(--accent);border-color:var(--accent);}
.cal-legend .m i{background:var(--warn-bg);border-color:var(--warn);}
.cal-legend .p i{background:var(--card);}
.cal-legend .r i{background:transparent;border-style:dashed;}

/* ── 성경 목록 ── */
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--line);border-radius:14px;padding:4px;gap:4px;margin:10px 0 14px;}
.seg button{min-height:52px;border:none;border-radius:11px;background:transparent;font-size:19px;font-weight:700;color:var(--soft);cursor:pointer;}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow);}
.books{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.bk{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:84px;padding:12px 14px;border-radius:14px;
  border:1.5px solid var(--line);background:var(--card);text-decoration:none;font-size:20px;font-weight:700;}
.bk small{font-size:15px;color:var(--mute);font-weight:500;}
.bk .bar{height:6px;width:100%;}
.bk.full{border-color:var(--accent);}
.chs{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;}
.chs a{display:flex;align-items:center;justify-content:center;height:60px;border-radius:12px;border:1.5px solid var(--line2);
  background:var(--card);text-decoration:none;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;}
.chs a.read{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}

/* ── 설정 ── */
.set{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-top:1px solid var(--line);}
.set:first-of-type{border-top:none;}
.set .l{font-size:19px;font-weight:500;}
.set .l small{display:block;font-size:15px;color:var(--mute);font-weight:400;}
.sw{position:relative;flex:0 0 auto;width:84px;height:46px;border-radius:99px;border:none;background:var(--line2);cursor:pointer;
  font-size:15px;font-weight:700;color:var(--soft);padding:0 10px 0 38px;text-align:center;}
.sw::before{content:"";position:absolute;left:5px;top:5px;width:36px;height:36px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s;}
.sw.on{background:var(--accent);color:var(--accent-ink);padding:0 38px 0 10px;}
.sw.on::before{left:43px;}
.fonts{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0;}
.fonts button{height:62px;border-radius:12px;border:2px solid var(--line2);background:var(--card);cursor:pointer;font-weight:700;padding:0;}
.fonts button.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);}
.preview{font-family:"Noto Serif KR",serif;font-size:var(--vs);line-height:1.8;background:var(--bg);border-radius:12px;padding:12px 14px;}
.opts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.opts button{min-height:52px;border-radius:12px;border:2px solid var(--line2);background:var(--card);font-size:18px;font-weight:700;cursor:pointer;}
.opts button.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);}
.hol{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:18px;}
.hol .d{font-variant-numeric:tabular-nums;min-width:120px;font-weight:700;font-size:17px;}
.hol .n{flex:1;min-width:0;}
.hol.off .d,.hol.off .n{color:var(--mute);text-decoration:line-through;}
.hol button{min-height:44px;border-radius:10px;border:1.5px solid var(--line2);background:var(--card);font-size:16px;font-weight:700;padding:0 12px;cursor:pointer;}
.field{display:block;margin:12px 0;}
.field span{display:block;font-size:17px;font-weight:700;margin-bottom:6px;}
.field input{width:100%;min-height:60px;border-radius:12px;border:2px solid var(--line2);background:var(--card);padding:10px 14px;font-size:21px;}
.field input:focus{outline:none;border-color:var(--accent);}
.users{display:grid;gap:10px;}
.user-btn{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:12px 18px;border-radius:14px;
  border:2px solid var(--line2);background:var(--card);font-size:22px;font-weight:700;cursor:pointer;text-align:left;}
.user-btn small{font-size:16px;color:var(--mute);font-weight:500;}

/* ── v1.1 추가 ── */
.small{font-size:15px;}
.right{text-align:right;}
.pct{font-size:24px;}
.bar.thin{height:8px;}
.bullets{padding-left:22px;margin:6px 0 4px;font-size:17px;}
.code-big{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;font-size:34px;font-weight:700;letter-spacing:.08em;
  text-align:center;background:var(--bg);border:2px dashed var(--line2);border-radius:14px;padding:14px 8px;margin:12px 0;user-select:all;}
.set.block{display:block;}
.btn.auto{width:auto;flex:0 0 auto;}
details.more{margin-top:14px;border-top:1px solid var(--line);padding-top:10px;}
details.more summary{cursor:pointer;font-size:17px;font-weight:700;color:var(--soft);padding:6px 0;}
.hol b{font-size:16px;white-space:nowrap;}

.stats .hot{background:#FFF2E0;color:#9A4A00;}
:root.night .stats .hot{background:#3A2A16;color:#F3B66B;}
a.link{color:var(--accent);font-weight:700;text-decoration:none;}
ol.steps{padding-left:22px;font-size:17px;line-height:1.7;margin:8px 0;}

/* ── 사용 설명서 ── */
.help img.shot{display:block;width:100%;max-width:420px;margin:6px auto 12px;border-radius:18px;border:1px solid var(--line2);box-shadow:var(--shadow);}
ol.nums{list-style:none;counter-reset:n;padding:0;margin:0;}
ol.nums li{counter-increment:n;position:relative;padding:6px 0 6px 40px;font-size:17px;line-height:1.5;}
ol.nums li::before{content:counter(n);position:absolute;left:0;top:5px;width:28px;height:28px;border-radius:50%;background:#E8590C;color:#fff;
  font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;}
.flow{display:flex;align-items:center;justify-content:space-between;gap:4px;text-align:center;}
.flow div{flex:1;min-width:0;background:var(--bg);border-radius:12px;padding:10px 4px;}
.flow span{display:block;font-size:28px;line-height:1.2;}
.flow b{display:block;font-size:15px;}
.flow small{display:block;font-size:12.5px;color:var(--mute);}
.flow i{font-style:normal;color:var(--mute);}
.tip{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line);}
.tip:first-of-type{border-top:none;}
.tip>span{font-size:28px;line-height:1.2;}
.tip b{font-size:18px;}
.tip p{margin:2px 0 0;color:var(--soft);font-size:16px;line-height:1.55;}

/* ── 모달·토스트 ── */
.modal{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;padding:12px;}
.modal[hidden]{display:none;}
.modal .box{background:var(--card);border-radius:20px;padding:22px 18px calc(18px + env(safe-area-inset-bottom));width:100%;max-width:560px;max-height:88vh;overflow:auto;}
.modal .box h2{font-size:23px;}
.modal .box p{font-size:18px;color:var(--soft);}
@media (min-width:700px){.modal{align-items:center;}}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabh) + 16px + env(safe-area-inset-bottom));z-index:70;
  background:var(--ink);color:var(--bg);border-radius:14px;padding:14px 20px;font-size:18px;font-weight:500;max-width:90vw;text-align:center;}
.toast[hidden]{display:none;}

/* 태블릿: 여백 넓게 */
@media (min-width:768px){
  :root{--ui:19px;}
  .wrap{padding:24px 28px 40px;}
  h1{font-size:30px;}
  .chapter{padding:26px 28px 22px;}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;}}

/* ── v1.3: 듣기·누르기·가독성 ── */
button,a,.v,.chs a,.cal .c{touch-action:manipulation;}            /* 두 번 눌러 확대 방지·바로 반응 */
.listen-all{margin:14px 0 4px;}
.listen-tip{margin:6px 0 0;}
.tts-on .verses .v{cursor:pointer;}
.v.speaking{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px;}
.streak-line{font-size:18px;margin:10px 0 0;color:var(--ink);}
.opts.two{grid-template-columns:1fr 1fr;}
.serif-btn{font-family:"Noto Serif KR","AppleMyungjo",serif;}
.sans-btn{font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif;}
.preview.verses-like{font-family:"Noto Serif KR","AppleMyungjo","Batang",serif;line-height:var(--vlh,1.85);}
/* v1.4 읽는 속도 */
.rate-btn{margin:8px auto 0;min-height:44px;font-size:16px;}
/* v1.5 새 주소로 옮기기 */
.move-card{border:2px solid var(--accent);background:var(--accent-bg);}
.move-card h2{margin-top:0;}
.move-steps{margin:8px 0 10px;padding-left:22px;line-height:1.6;}
.move-steps li{margin:4px 0;}
.move-card .btns.two .btn{text-align:center;}
