/* ============================================================
   AI 공자 — 서비스 프론트 (PC웹 + 모바일웹 반응형)
   디자인: 「AI공자_PC웹/모바일앱_화면시안」(2026.09) 디자인 시스템 적용
   축: 대화 열은 640px로 묶고, 넓은 화면은 근거 패널에 쓴다.
   ============================================================ */
:root{
  --paper:#F7F4EE; --card:#FFFFFF; --shade:#FBF9F5;
  --ink:#1E1B17; --ink2:#55504A; --ink3:#8C857C;
  --line:#E5DFD5; --line2:#F0EBE2;
  --cheong:#2E6B5E; --cheong-d:#1F4C42; --cheong-lt:#E8F0ED;
  --ju:#A33A32; --ju-lt:#FBEDEB;
  --geum:#A8873F; --geum-lt:#F7F0DF;
  --sans:'Paperlogy','Noto Sans KR','Malgun Gothic',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;
  line-height:1.65;letter-spacing:-.02em;word-break:keep-all;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;border:0;background:none;padding:0}
a{color:inherit;text-decoration:none}
img{display:block}
b,strong{font-weight:700}
[hidden]{display:none !important}

/* ---------- 공통 부품 ---------- */
.chip{display:inline-block;background:var(--line2);color:var(--ink2);border-radius:999px;
  padding:4px 11px;font-size:11.5px;font-weight:600;letter-spacing:-.01em}
.chip.c{background:var(--cheong-lt);color:var(--cheong-d)}
.chip.j{background:var(--ju-lt);color:var(--ju)}
.chip.g{background:var(--geum-lt);color:#7E6524}
.k{font-size:11px;font-weight:700;color:var(--ink3);letter-spacing:.05em}
.card{background:var(--card);border:1px solid var(--line2);border-radius:14px;padding:17px 19px}
.btn{display:inline-block;border:1px solid var(--line);background:var(--card);border-radius:10px;
  padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink)}
.btn.p{background:var(--cheong);border-color:var(--cheong);color:#fff}
.btn.d{background:var(--ju);border-color:var(--ju);color:#fff}
.btn.s{padding:6px 12px;font-size:12px}
.hr{height:1px;background:var(--line2);margin:14px 0}

/* ---------- 앱 골격 ---------- */
.app{height:100%;display:flex;overflow:hidden}

/* 사이드바 (PC) */
.side{width:238px;flex:none;background:var(--card);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:20px 15px 16px;overflow-y:auto}
.side .logo{font-size:19px;font-weight:800;letter-spacing:-.04em;padding:0 8px 2px;cursor:pointer}
.side .logo span{margin-left:7px;font-size:12px;font-weight:400;color:var(--ink3);letter-spacing:0}
.side .org{padding:0 8px;font-size:11px;color:var(--ink3);font-weight:500;margin-top:3px}
.side .new{margin:14px 8px 0;border:1.5px solid var(--cheong);color:var(--cheong);
  border-radius:10px;padding:10px;font-size:13.5px;font-weight:600;text-align:center}
.side .grp{margin-top:20px}
.side .gk{padding:0 8px 7px;font-size:10.5px;font-weight:700;color:var(--ink3);letter-spacing:.06em}
.side .it{display:flex;align-items:center;gap:9px;padding:9px 9px;border-radius:9px;
  font-size:13.5px;color:var(--ink2);font-weight:500;cursor:pointer;width:100%;text-align:left}
.side .it:hover{background:var(--shade)}
.side .it.on{background:var(--cheong-lt);color:var(--cheong-d)}
.side .it i{width:17px;font-style:normal;font-size:13px;text-align:center;flex:none}
.side .it .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .sfoot{margin-top:auto;padding:12px 9px 0;border-top:1px solid var(--line2);
  font-size:11.5px;color:var(--ink3);line-height:1.62}

/* 가운데 열 */
.mid{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--paper)}
.topbar{flex:none;min-height:56px;display:flex;align-items:center;gap:12px;padding:8px 22px;
  border-bottom:1px solid var(--line);background:var(--card)}
.topbar h3{font-size:15.5px;font-weight:700;letter-spacing:-.03em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .rt{margin-left:auto;display:flex;align-items:center;gap:7px;flex:none}
.pill{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;
  font-weight:600;color:var(--ink2);background:var(--card)}
.pill.on{background:var(--cheong);border-color:var(--cheong);color:#fff}
.mid .scrollzone{flex:1;overflow-y:auto;overflow-x:hidden}

/* ---------- 랜딩(홈) ---------- */
.land{min-height:100%;display:flex}
.land .art{width:min(42%,520px);flex:none;position:relative;overflow:hidden;background:#D9DFD8}
.land .art img{width:100%;height:100%;object-fit:cover;object-position:56% 44%}
.land .art .veil{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(247,244,238,.10) 0%,rgba(247,244,238,0) 42%,
    rgba(247,244,238,.55) 88%,rgba(247,244,238,.95) 100%)}
.land .cp{flex:1;min-width:0;padding:64px 56px 24px;display:flex;flex-direction:column}
.land .org{font-size:12.5px;font-weight:600;color:var(--ink2);letter-spacing:.02em}
.land h2{margin-top:16px;font-size:clamp(34px,4.5vw,52px);font-weight:800;letter-spacing:-.05em;line-height:1.1}
.land h2 span{margin-left:12px;font-size:20px;font-weight:400;color:var(--ink3);
  letter-spacing:0;vertical-align:.28em}
.land .rule{width:30px;height:2px;background:var(--cheong);opacity:.75;margin:22px 0 0;border-radius:2px}
.land .tag{margin-top:20px;font-size:clamp(19px,2.2vw,24px);font-weight:300;line-height:1.6;letter-spacing:-.03em}
.land .three{margin-top:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px;max-width:660px}
.land .three>div{background:var(--card);border:1px solid var(--line2);border-radius:13px;padding:15px 16px}
.land .three b{display:block;font-size:14px;font-weight:700}
.land .three p{margin-top:6px;font-size:12px;color:var(--ink2);line-height:1.66}
.land .askrow{margin-top:30px;max-width:660px}
.land .askrow .exs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.land .fine{margin-top:18px;font-size:12.5px;color:var(--ink3);line-height:1.7}
.land .verse{margin-top:22px;max-width:660px}
.ex{background:var(--cheong-lt);color:var(--cheong-d);border-radius:999px;padding:7px 14px;
  font-size:12.5px;font-weight:600}
.ex:hover{background:var(--cheong);color:#fff}

/* 경전 인용 */
.verse{background:var(--geum-lt);border-radius:13px;padding:16px 18px}
.verse .han{font-size:17px;font-weight:500;letter-spacing:.06em;line-height:1.7}
.verse .kor{margin-top:8px;font-size:13.5px;font-weight:300;color:var(--ink2);line-height:1.75}
.verse .cite{margin-top:9px;font-size:11.5px;font-weight:600;color:var(--geum)}

/* ---------- 대화 ---------- */
.talk{max-width:640px;margin:0 auto;padding:22px 18px 12px}
.m{max-width:100%;margin-bottom:15px}
.m.me{margin-left:auto;width:fit-content;max-width:78%;background:var(--cheong);color:#fff;
  border-radius:15px 15px 5px 15px;padding:12px 16px;font-size:14px;line-height:1.65}
.m.ai{background:var(--card);border:1px solid var(--line2);border-radius:15px 15px 15px 5px;
  padding:15px 18px}
.m.ai .who{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.m.ai .who b{font-size:13.5px;font-weight:700}
.m.ai .txt{font-size:14.5px;line-height:1.78;color:var(--ink)}
/* 문단 나눔: 공감 → 고전 → 적용 → 실천이 한 덩어리로 보이지 않게 */
.m.ai .txt p{margin:0 0 .95em}
.m.ai .txt p:last-child{margin-bottom:0}
/* 말미 제도 안내: 본문과 구분되는 별도 블록 */
.m.ai .txt .notice{margin-top:14px;padding:12px 14px;border-radius:11px;
  background:var(--geum-lt);font-size:13.5px;line-height:1.7;color:var(--ink2)}
.m.ai .txt .notice p{margin:0 0 .5em}
.m.ai .txt .notice p:first-child{font-weight:600;color:var(--ink)}
.m.ai .status{font-size:13px;color:var(--ink3)}
.m.ai .prog{margin-top:10px}
.m.ai .prog .bar{height:4px;border-radius:3px;background:var(--line2);overflow:hidden}
.m.ai .prog .bar i{display:block;height:100%;width:0;border-radius:3px;
  background:linear-gradient(90deg,var(--cheong),var(--geum));transition:width .25s ease}
.m.ai .prog .lbl{display:flex;justify-content:space-between;margin-top:5px;
  font-size:11px;color:var(--ink3)}
.m.ai .prog .lbl b{font-weight:600;color:var(--ink2);font-variant-numeric:tabular-nums}
.m.ai .prog.done .bar i{width:100% !important;opacity:0;transition:width .2s,opacity .6s .2s}
.m.ai .meta{margin-top:11px;padding-top:10px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--ink3);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.m.ai .evi{display:inline-flex;align-items:center;gap:7px;background:var(--geum-lt);
  border-radius:9px;padding:6px 12px;font-size:12px;color:#7E6524;font-weight:600;cursor:pointer}
.m.ai.safety{background:var(--ju-lt);border-color:transparent}
.m.ai.safety .txt{font-size:15px;line-height:1.8}
.m.ai .hotline{display:block;width:100%;background:var(--ju);color:#fff;border-radius:12px;
  padding:14px;font-size:15.5px;font-weight:700;text-align:center;margin-top:13px}
.m.ai .hotline small{display:block;font-size:11px;font-weight:500;opacity:.85;margin-top:3px}
.cursor{display:inline-block;width:8px;height:1em;background:var(--cheong);opacity:.7;
  vertical-align:text-bottom;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.cite{color:var(--geum);font-weight:700;cursor:pointer;font-size:.86em;vertical-align:.08em}
.hanja-term{cursor:pointer;border-bottom:1px dotted var(--geum)}
.save-btn{margin-left:auto;border:1px solid var(--line);border-radius:8px;padding:4px 10px;
  font-size:11.5px;font-weight:600;color:var(--ink2)}
.save-btn.saved{color:var(--cheong);border-color:var(--cheong-lt);background:var(--cheong-lt)}
.err{margin-top:10px;background:var(--ju-lt);color:var(--ju);border-radius:10px;
  padding:10px 13px;font-size:13px}

/* 입력줄 */
.composer{flex:none;border-top:1px solid var(--line);background:var(--card);
  padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
.composer form{max-width:640px;margin:0 auto;display:flex;gap:9px;align-items:flex-end}
.composer textarea{flex:1;resize:none;border:1px solid var(--line);background:var(--shade);
  border-radius:13px;padding:12px 15px;font:inherit;font-size:14px;line-height:1.5;color:var(--ink);
  min-height:46px;max-height:130px;outline:none}
.composer textarea:focus{border-color:var(--cheong)}
.composer .send{flex:none;width:46px;height:46px;border-radius:13px;background:var(--cheong);
  color:#fff;font-size:19px;font-weight:700}
.composer .send:disabled{background:var(--line);color:var(--ink3)}
.composer .fine{max-width:640px;margin:8px auto 0;text-align:center;font-size:11.5px;color:var(--ink3)}
/* 음성 입력 */
.composer .mic{flex:none;width:46px;height:46px;border-radius:13px;border:1px solid var(--line);
  background:var(--shade);font-size:19px;cursor:pointer;transition:background .15s,border-color .15s}
.composer .mic:hover{border-color:var(--cheong)}
.composer .mic.on{background:var(--ju-lt);border-color:var(--ju);animation:mic-pulse 1.2s ease-in-out infinite}
@keyframes mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}50%{box-shadow:0 0 0 5px var(--ju-lt)}}
.composer .voice-note{max-width:640px;margin:7px auto 0;text-align:center;font-size:12px;color:var(--ju)}
/* 답변 뒤 이어가기: 되묻기 + 예상 질문 */
.m.ai .followup{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);
  transition:opacity .25s ease}
.m.ai .followup.gone{opacity:0}
.m.ai .followup .fu-label{font-size:11.5px;font-weight:600;color:var(--ink3);margin:0 0 7px}
.m.ai .followup.loading .fu-label{font-weight:400}
.m.ai .followup .fu-chips{display:flex;flex-wrap:wrap;gap:7px}
.m.ai .followup .fu-chip{border:1px solid var(--line);background:var(--shade);border-radius:999px;
  padding:7px 13px;font:inherit;font-size:13px;line-height:1.4;color:var(--ink);text-align:left;
  cursor:pointer;transition:border-color .15s,background .15s}
.m.ai .followup .fu-chip:hover{border-color:var(--cheong);background:var(--card)}
.m.ai .followup .fu-skel{display:inline-block;height:31px;border-radius:999px;
  background:linear-gradient(90deg,var(--line2) 0%,var(--shade) 50%,var(--line2) 100%);
  background-size:200% 100%;animation:fu-shimmer 1.3s ease-in-out infinite}
.m.ai .followup .fu-skel:nth-child(1){width:190px}
.m.ai .followup .fu-skel:nth-child(2){width:150px}
.m.ai .followup .fu-skel:nth-child(3){width:170px}
@keyframes fu-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.m.ai .followup .fu-skel{animation:none}}
.m.ai .followup .ask-back{margin:0 0 11px;padding:10px 13px;border-radius:11px;
  background:var(--geum-lt);font-size:14px;line-height:1.65;color:var(--ink)}
.m.ai .followup .ask-back::before{content:"💬 ";}
/* 음성 출력 */
.m.ai .meta .speak-btn{border:1px solid var(--line);background:var(--card);border-radius:8px;
  padding:4px 10px;font:inherit;font-size:12px;color:var(--ink2);cursor:pointer}
.m.ai .meta .speak-btn:hover{border-color:var(--cheong);color:var(--ink)}
.m.ai .meta .speak-btn.on{background:var(--cheong);border-color:var(--cheong);color:#fff}

/* ---------- 근거 패널 ---------- */
.pane{width:412px;flex:none;background:var(--card);border-left:1px solid var(--line);
  display:flex;flex-direction:column;overflow:hidden}
.pane .ph{flex:none;padding:17px 22px 13px;border-bottom:1px solid var(--line2);
  display:flex;align-items:baseline;gap:10px}
.pane .ph b{font-size:14.5px;font-weight:700}
.pane .ph p{font-size:12px;color:var(--ink3);line-height:1.6}
.pane .ph .close{display:none;margin-left:auto;font-size:20px;color:var(--ink3)}
.pane .pb{flex:1;overflow-y:auto;padding:15px 20px 22px}
.pane .empty{background:var(--ju-lt);border-radius:13px;padding:15px 17px;
  font-size:13px;color:var(--ink);line-height:1.72}
.pane .empty .k{color:var(--ju)}
.pane .empty p{margin-top:8px}
.pane .empty .sub{font-size:12.3px;color:var(--ink2)}

/* 근거 카드 (verse 변형) */
.src-card{background:var(--geum-lt);border-radius:13px;padding:14px 16px;margin-bottom:11px;
  border:1.5px solid transparent}
.src-card.cited{border-color:var(--geum)}
.src-card.flash{animation:flash 1.4s}
@keyframes flash{0%,60%{box-shadow:0 0 0 3px var(--geum)}100%{box-shadow:none}}
.src-card .head{display:flex;align-items:center;gap:8px;cursor:pointer}
.src-card .no{font-size:12px;font-weight:800;color:var(--geum)}
.src-card .badge{font-size:11px;font-weight:700;color:var(--cheong-d);background:var(--cheong-lt);
  border-radius:6px;padding:2px 7px;flex:none}
.src-card .title{flex:1;font-size:12px;color:var(--ink2);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src-card .mark{flex:none;font-size:12px}
.src-card .body{display:none;margin-top:11px}
.src-card.open .body{display:block}
.src-card .han{font-size:15px;letter-spacing:.05em;line-height:1.8;color:var(--ink);
  border-top:1px solid rgba(168,135,63,.25);padding-top:10px;margin-top:2px}
.src-card .kor{margin-top:8px;font-size:13px;font-weight:300;color:var(--ink2);line-height:1.75;
  max-height:180px;overflow-y:auto}
.src-card .ctx-btn{margin-top:10px;font-size:12px;font-weight:600;color:var(--geum);
  border:1px solid rgba(168,135,63,.35);border-radius:8px;padding:5px 11px}

/* ---------- 경전 열람실 ---------- */
.canon{display:flex;min-height:100%;align-items:stretch}
.cnav{width:250px;flex:none;border-right:1px solid var(--line);background:var(--card);
  padding:16px 12px;overflow-y:auto}
.cnav .bk{width:100%;text-align:left;display:flex;align-items:center;gap:8px;padding:9px;
  border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink)}
.cnav .bk:hover{background:var(--shade)}
.cnav .bk .cnt{margin-left:auto;font-size:11px;font-weight:700;color:var(--ink3)}
.cnav .bk.on{background:var(--cheong-lt);color:var(--cheong-d)}
.cnav .secs{margin:2px 0 6px;padding-left:10px}
.cnav .sec{width:100%;text-align:left;display:flex;gap:7px;padding:6px 8px;border-radius:8px;
  font-size:12.5px;color:var(--ink2)}
.cnav .sec:hover{background:var(--shade)}
.cnav .sec.on{background:var(--geum-lt);color:#7E6524;font-weight:600}
.cnav .sec .cnt{margin-left:auto;font-size:10.5px;color:var(--ink3)}
.cmain{flex:1;min-width:0;display:flex;flex-direction:column}
.cbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);
  background:var(--card)}
.cbar span{flex:1;text-align:center;font-size:13.5px;font-weight:700}
.cempty{padding:60px 30px;text-align:center}
.chlist{padding:14px 20px;display:flex;flex-wrap:wrap;gap:8px}
.chlist button{border:1px solid var(--line);background:var(--card);border-radius:9px;
  padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--ink2)}
.chlist button:hover{border-color:var(--cheong);color:var(--cheong-d)}
.crow{display:grid;grid-template-columns:1fr 1fr;gap:0;border-bottom:1px solid var(--line2);
  margin:0 20px}
.crow>div{padding:16px 18px}
.crow .won{font-size:16px;letter-spacing:.07em;line-height:2.05;border-right:1px solid var(--line2)}
.crow .beo{font-size:14px;font-weight:300;color:var(--ink2);line-height:1.9}
.crow.head{border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper)}
.crow.head>div{padding:9px 18px;font-size:10.5px;font-weight:700;color:var(--ink3);letter-spacing:.05em}
.canon-note{margin:14px 20px;background:var(--shade);border:1.5px dashed var(--line);
  border-radius:12px;padding:13px 16px;font-size:12.3px;color:var(--ink3);line-height:1.7}
@media (max-width:920px){
  .canon{flex-direction:column}
  .cnav{width:100%;border-right:0;border-bottom:1px solid var(--line);max-height:38vh}
  .crow{grid-template-columns:1fr;margin:0 12px}
  .crow .won{border-right:0;border-bottom:1px dashed var(--line2)}
}

/* ---------- 모바일 탭 ---------- */
.tabs{display:none;flex:none;border-top:1px solid var(--line);background:var(--card);
  padding-bottom:env(safe-area-inset-bottom)}
.tabs button{flex:1;padding:9px 0 8px;text-align:center;font-size:10.5px;font-weight:600;color:var(--ink3)}
.tabs button i{display:block;font-style:normal;font-size:17px;margin-bottom:2px}
.tabs button.on{color:var(--cheong-d)}

/* ---------- 모달 공통 ---------- */
.overlay{position:fixed;inset:0;background:rgba(30,27,23,.45);z-index:40;
  display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:var(--paper);border-radius:18px;width:min(860px,100%);max-height:90vh;
  display:flex;flex-direction:column;overflow:hidden;box-shadow:0 22px 54px rgba(30,27,23,.3)}
.modal .mh{flex:none;display:flex;align-items:center;gap:10px;padding:15px 20px;
  border-bottom:1px solid var(--line);background:var(--card)}
.modal .mh h3{font-size:15px;font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal .mb{flex:1;overflow-y:auto;padding:18px 22px}
.modal .x{font-size:20px;color:var(--ink3);flex:none}

/* 원문 뷰어 */
.frag{padding:13px 0;border-bottom:1px solid var(--line2)}
.frag .won{font-size:15.5px;letter-spacing:.06em;line-height:1.95;color:var(--ink)}
.frag .beo{margin-top:7px;font-size:13.5px;font-weight:300;color:var(--ink2);line-height:1.8}
.frag.hit{background:var(--geum-lt);border-radius:10px;padding:13px 14px;border-bottom:0}
.frag.hit .chip{margin-bottom:8px}
.viewer-load{padding:30px;text-align:center;color:var(--ink3)}

/* 보관함 */
.arch-item{background:var(--card);border:1px solid var(--line2);border-radius:13px;
  padding:13px 15px;margin-bottom:10px}
.arch-item .row1{display:flex;align-items:center;gap:9px}
.arch-item .q{flex:1;font-weight:600;font-size:13.5px;cursor:pointer}
.arch-item .date{font-size:11px;color:var(--ink3);flex:none}
.arch-item .del{font-size:11.5px;color:var(--ju)}
.arch-item .tags{margin-top:7px;font-size:11.5px;color:var(--geum)}
.arch-item .add-tag{font-size:11px;color:var(--ink3);border:1px dashed var(--line);
  border-radius:6px;padding:1px 7px;margin-left:6px}
.arch-item .detail{display:none;margin-top:10px;padding-top:10px;border-top:1px solid var(--line2);
  font-size:13px;color:var(--ink2);line-height:1.75}
.arch-item.open .detail{display:block}
.arch-item .srcs{margin-top:8px;font-size:11.5px;color:var(--ink3)}
.tag-pill{border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12px;
  font-weight:600;color:var(--ink2);margin:0 5px 8px 0}
.tag-pill.on{background:var(--cheong);border-color:var(--cheong);color:#fff}

/* 설정 */
.set-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line2);
  font-size:13.5px}
.set-row label{display:flex;align-items:center;gap:7px;cursor:pointer}
.claude-status{font-size:12px;color:var(--ink3);margin-top:8px;line-height:1.6}

/* 한자 팝오버 */
.popover{position:fixed;z-index:60;background:var(--ink);color:#F7F4EE;border-radius:10px;
  padding:9px 13px;font-size:13px;max-width:270px;box-shadow:0 8px 22px rgba(0,0,0,.25)}
.popover .hanja{font-size:15px;letter-spacing:.1em}
.popover .rd{margin-left:8px;font-weight:700;color:#E2B45A}
.popover .per-char{margin-top:5px;font-size:11.5px;color:#C4BCB1}

/* ============================================================
   모바일 (≤920px) — 시안: 단일 열 + 하단 탭 + 근거 시트
   ============================================================ */
@media (max-width:920px){
  .side{display:none}
  .tabs{display:flex}
  .land{flex-direction:column}
  .land .art{width:100%;height:34vh;min-height:200px}
  .land .art .veil{background:linear-gradient(180deg,rgba(247,244,238,0) 55%,rgba(247,244,238,.95) 100%)}
  .land .cp{padding:22px 20px 16px}
  .land .three{grid-template-columns:1fr;gap:9px;margin-top:20px}
  .land .three p{display:inline;margin:0}
  .land .three b{display:inline;margin-right:7px}
  .topbar{padding:8px 14px}
  .talk{padding:16px 14px 10px}
  .composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}
  /* 근거 패널 → 하단 시트 */
  .pane{position:fixed;left:0;right:0;bottom:0;top:auto;width:100%;max-height:78vh;
    border-left:0;border-top:1px solid var(--line);border-radius:18px 18px 0 0;
    box-shadow:0 -12px 34px rgba(30,27,23,.18);z-index:30;
    transform:translateY(100%);transition:transform .25s ease}
  .pane.openm{transform:translateY(0)}
  .pane .ph .close{display:block}
}
@media (min-width:921px){
  .pane{display:flex !important}
}
@media (max-width:1180px) and (min-width:921px){
  .pane{width:340px}
}
