/* 自書遺囑草稿產生器（will.html）與使用須知（notice.html）。
   長輩閱讀：內文 18px、行距 1.7、按鈕至少 48px 高；提醒用淡紅底＋深紅字＋紅色側邊線＋圖示，
   不只靠顏色（都有標題與文字）。 */
:root{
  --bg:#FAF8F5; --card:#fff; --ink:#1C1C1C; --ink2:#4A4D49; --ink3:#6C6F6B; --bd:#DAD3C9; --bd2:#EDE7DF;
  --a:#5B7665; --ah:#465E50; --faint:#EFF4F1; --focus:#1F5FBF;
  --red:#B3261E; --red-bg:#FDECEA; --red-line:#C0392B; --red-ink:#7A1F1A; --ok:#2E6B4A;
  --serif:"Noto Serif TC",'Songti TC','PMingLiU',Georgia,serif;
  --sans:"Noto Sans TC",system-ui,-apple-system,'PingFang TC','Microsoft JhengHei',sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.7}
a{color:var(--a)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.hide{display:none!important}
.wl-top{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:1180px;margin:0 auto;
  padding:12px 16px;flex-wrap:wrap}
.wl-logo{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:.08em}
.wl-wrap{max-width:1180px;margin:0 auto;padding:0 16px 40px}
h1.wl-h1{font-family:var(--serif);font-size:28px;margin:6px 0 14px}

/* ── 紅色提醒 ── */
.ntc-red{background:var(--red-bg);border:1px solid #E6B8B4;border-left:6px solid var(--red-line);color:var(--red-ink);
  border-radius:12px;padding:16px 18px;margin:0 0 18px}
.ntc-red h2,.ntc-red .ntc-h{display:flex;align-items:center;gap:8px;font-size:21px;line-height:1.4;margin:0 0 8px;
  font-family:var(--sans);font-weight:800;color:var(--red-ink)}
.ntc-red h2::before,.ntc-red .ntc-h::before{content:"⚠";font-size:22px}
.ntc-red p{margin:0 0 10px;font-size:18px;line-height:1.7}
.ntc-red p:last-child{margin-bottom:0}
.ntc-red a{color:var(--red-ink);font-weight:700}
.ntc-strong{font-weight:700}

.ntc-sec{background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:18px 20px;margin:0 0 18px}
.ntc-sec h2{font-family:var(--serif);font-size:21px;margin:0 0 10px}
.ntc-sec p,.ntc-sec li{font-size:18px;line-height:1.7}
.ntc-sec ul{padding-left:1.2em;margin:0 0 10px}
.ntc-sec li{margin:0 0 8px}
.ntc-lead{font-family:var(--serif);font-size:20px;font-weight:700;margin:0 0 12px}
.ntc-btns{display:flex;gap:12px;flex-wrap:wrap}
.ntc-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-height:54px;padding:10px 20px;
  border-radius:12px;background:var(--a);color:#fff;text-decoration:none;font-weight:700;font-size:19px;border:2px solid var(--a)}
.ntc-btn:hover{background:var(--ah)}
.ntc-btn2{background:#fff;color:var(--a)}
.ntc-btn2:hover{background:var(--faint)}
.ntc-off{border-color:var(--bd);color:var(--ink3);background:#F2EFEA;cursor:default}
.ntc-off:hover{background:#F2EFEA}
.ntc-off small{font-size:15px;font-weight:600}
.ntc-small{font-size:16px;color:var(--ink2);margin:10px 0 0}
@media (max-width:600px){ .ntc-btns{flex-direction:column} .ntc-btn{width:100%} }

/* ── 產生器版面 ── */
.wl-card{background:var(--card);border:1px solid var(--bd2);border-radius:14px;padding:18px 20px;margin:0 0 16px}
.wl-card h2{font-family:var(--serif);font-size:21px;margin:0 0 10px}
.wl-card h3{font-size:19px;margin:16px 0 8px}
.wl-muted{color:var(--ink2);font-size:17px}
.wl-modes{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}
.wl-mode{min-height:50px;padding:8px 20px;font-size:18px;font-weight:700;border-radius:999px;border:2px solid var(--a);
  background:#fff;color:var(--a);cursor:pointer;font-family:inherit}
.wl-mode[aria-selected=true]{background:var(--a);color:#fff}
.wl-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:980px){ .wl-grid{grid-template-columns:1fr} }
.wl-sticky{position:sticky;top:12px}
@media (max-width:980px){ .wl-sticky{position:static} }

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:8px 18px;
  font-size:18px;font-weight:700;font-family:inherit;border-radius:12px;border:2px solid var(--a);background:#fff;
  color:var(--a);cursor:pointer;text-decoration:none}
.btn:hover:not(:disabled){background:var(--faint)}
.btn-p{background:var(--a);color:#fff}
.btn-p:hover:not(:disabled){background:var(--ah)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn[aria-busy=true]{cursor:progress}
.btn-sm{min-height:40px;font-size:16px;padding:4px 12px;border-radius:10px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0 0}

/* 互動欄位：輸入框＋「帶入」＋「匿名」 */
.fld{margin:0 0 14px}
.fld > label,.fld > .lab{display:block;font-weight:700;margin:0 0 4px}
.fld-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fld-row > input,.fld-row > select,.fld-row > textarea{flex:1 1 200px;min-width:0}
input[type=text],input[type=number],select,textarea{min-height:48px;font-size:18px;font-family:inherit;color:var(--ink);
  border:1.5px solid var(--bd);border-radius:10px;padding:8px 12px;background:#fff}
textarea{min-height:80px;width:100%}
input:disabled,select:disabled{background:#F2EFEA;color:var(--ink3)}
.anon-btn{min-height:40px;font-size:15px;padding:4px 12px;border-radius:999px;border:1.5px solid var(--bd);background:#fff;
  color:var(--ink2);cursor:pointer;font-family:inherit;font-weight:700}
.anon-btn[aria-pressed=true]{background:#3c3f3b;color:#fff;border-color:#3c3f3b}
.fill-btn{min-height:40px;font-size:15px;padding:4px 12px;border-radius:999px;border:1.5px solid var(--a);background:#fff;
  color:var(--a);cursor:pointer;font-family:inherit;font-weight:700}
.anon-tip{font-size:15px;color:var(--red-ink);background:var(--red-bg);border-radius:8px;padding:6px 10px;margin:6px 0 0}
.local-tag{display:inline-block;font-size:13px;font-weight:700;color:#23324a;background:#e9f0fb;border:1px solid #c9d6ea;
  border-radius:999px;padding:0 8px;margin-left:6px;vertical-align:2px}
.birth{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.birth select,.birth input{flex:0 1 auto;width:auto}
.birth input{width:110px}
.radios{display:flex;gap:8px;flex-wrap:wrap}
.radios label{display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:4px 12px;border:1.5px solid var(--bd);
  border-radius:10px;cursor:pointer;background:#fff;font-weight:600}
.radios input{width:20px;height:20px;accent-color:var(--a)}

/* 分配表 */
.alloc-t{width:100%;border-collapse:collapse;font-size:17px}
.alloc-t th,.alloc-t td{border-bottom:1px solid var(--bd2);padding:8px 6px;text-align:left;vertical-align:middle}
.alloc-t input[type=number]{width:90px}
.alloc-t input[type=text]{width:100%}
/* 編輯欄只有半個畫面寬，表格欄位會擠成直排；一律改成一人一張卡片，長輩比較好讀 */
.alloc-t thead{display:none}
.alloc-t,.alloc-t tbody{display:block}
.alloc-t tr{display:block;border:1px solid var(--bd2);border-radius:10px;padding:8px 10px;margin:0 0 10px;background:#fff}
.alloc-t td{display:flex;gap:8px;align-items:center;border:0;padding:4px 0}
.alloc-t td::before{content:attr(data-th);flex:0 0 6em;font-weight:700;color:var(--ink2)}
.alloc-t td input{flex:1 1 auto}
.sum-line{font-size:19px;font-weight:700;margin:10px 0 0}
.sum-bad{color:var(--red);background:var(--red-bg);border:1px solid #E6B8B4;border-radius:10px;padding:8px 12px;margin:8px 0 0;font-weight:700}
.sum-ok{color:var(--ok);font-weight:700}
.asset-item{border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;margin:0 0 12px;background:#fff}
.asset-item h4{margin:0 0 8px;font-size:18px}

/* 逐筆資產分配：每筆財產一張多人分配表（2026-10-15） */
.ia{border-top:1px dashed var(--bd2);margin-top:10px;padding-top:10px}
.ia .lab{font-weight:700;margin:0 0 6px}
.ia-rows{display:flex;flex-direction:column;gap:8px;margin:0 0 6px}
.ia-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 8px;align-items:center;
  background:var(--bg);border:1px solid var(--bd2);border-radius:10px;padding:8px}
.ia-row select{width:100%;min-width:0}
.ia-pct{display:inline-flex;align-items:center;gap:4px}
.ia-pct input{width:96px}
.ia-ops{display:inline-flex;gap:6px;flex-wrap:wrap}
.ia-full{grid-column:1/-1}
@media (max-width:600px){
  .ia-row{grid-template-columns:auto minmax(0,1fr)}
  .ia-row select{grid-column:1/-1}
  .ia-ops{justify-content:flex-end}
}
.ia-link{background:none;border:0;padding:6px 0;min-height:40px;color:var(--a);font:inherit;font-size:17px;font-weight:700;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px}
.ia-sum{font-weight:700;font-size:17px;border-radius:8px;padding:6px 10px;margin:4px 0}
.ia-sum.ok{color:var(--ok);background:#EAF4EE}
.ia-sum.warn{color:#6b4415;background:#FFF3C4}
.ia-sum.bad{color:var(--red);background:var(--red-bg);border:1px solid #E6B8B4}
.ia-expl{margin-top:6px}
.ia-legacy{background:#FFF3C4;color:#6b4415;border-radius:10px;padding:10px 12px;margin:0 0 8px;font-size:16px;line-height:1.6}
.ia-new{border:2px solid var(--a);border-radius:10px;padding:10px;background:#fff;margin-top:4px}
.anon-btn[aria-pressed=true]{background:#3c3f3b;color:#fff;border-color:#3c3f3b}
.exec-card .btn-row{margin:6px 0 4px}
.chk .info .ic{color:var(--a)}

/* 檢查 */
.chk{list-style:none;padding:0;margin:0}
.chk li{display:flex;gap:8px;padding:6px 0;border-bottom:1px dashed var(--bd2)}
.chk .ic{flex:0 0 1.6em;font-weight:800}
.chk .ok .ic{color:var(--ok)}
.chk .warn .ic{color:var(--red)}

/* 遺囑正文（預覽與親筆抄寫版） */
.will-doc{background:#fffdf8;border:1px solid var(--bd);border-radius:12px;padding:22px 24px;font-family:var(--serif);
  font-size:19px;line-height:2}
.will-doc h2{text-align:center;font-size:26px;letter-spacing:.6em;margin:0 0 14px}
.will-doc h3{font-size:20px;margin:18px 0 6px}
.will-doc p{margin:0 0 8px;text-indent:0}
.will-doc .miss{background:#FFF3C4;color:#6b4415;padding:0 4px;border-radius:4px;font-family:var(--sans);font-size:16px;font-weight:700}
.will-doc .anon{letter-spacing:.1em}
.will-doc .sign{margin-top:26px;border-top:1px dashed var(--bd);padding-top:14px}
.save-st{font-size:16px;color:var(--ink2)}
.save-st.err{color:var(--red);font-weight:700}
.wl-confirm{border:2px solid var(--red-line);background:var(--red-bg);color:var(--red-ink);border-radius:12px;padding:14px 16px;margin:12px 0}
.wl-footer{max-width:1180px;margin:20px auto 0;padding:16px;border-top:1px solid var(--bd2);font-size:16px;color:var(--ink2);
  display:flex;gap:14px;flex-wrap:wrap}
.wl-footer a{color:var(--ink2)}

/* ── 列印：只印親筆抄寫版，使用說明另起一頁 ── */
@media print{
  body{background:#fff;font-size:12pt}
  body > *:not(#print-area){display:none!important}
  #print-area{display:block!important}
  .print-notes{break-before:page;page-break-before:always}
  .will-doc{border:0;padding:0;font-size:13pt}
  .will-doc .miss{background:none;border-bottom:1px solid #000}
  .ntc-red{border-left-width:4px}
  a{color:#000;text-decoration:none}
}
#print-area{display:none}

/* ── 資產清單同步（2026-10-15）── */
.sync-src{font-size:16px;color:var(--ink2);margin:10px 0 0;line-height:1.6}
.sync-alert{background:#FFF3C4;color:#6b4415;border:1px solid #E5C76B;border-radius:10px;padding:10px 12px;margin:10px 0 0;line-height:1.7}
.sync-alert .btn{margin-left:4px}
.sync-panel{border:2px solid var(--a);border-radius:12px;padding:12px 14px;margin:10px 0 0;background:#fff}
.sync-panel h3{margin:0 0 8px;font-size:19px}
.sync-list{list-style:none;padding:0;margin:0 0 8px}
.sync-list > li{border-bottom:1px dashed var(--bd2);padding:10px 0;line-height:1.7}
.sync-list ul{margin:4px 0;padding-left:1.2em}
.sync-list label{display:inline-flex;gap:8px;align-items:flex-start;cursor:pointer}
.sync-list input[type=checkbox],.sync-list input[type=radio]{width:20px;height:20px;margin-top:5px;flex:0 0 auto}
.sync-conf{background:var(--red-bg);color:var(--red-ink);border-radius:8px;padding:6px 10px;margin:6px 0;font-size:16px}
.sync-cols{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;font-size:16px}
.sync-cols > div{background:var(--bg);border-radius:8px;padding:6px 10px;overflow-wrap:anywhere}
@media (max-width:600px){ .sync-cols{grid-template-columns:1fr} }
.sync-msg{margin:10px 0 0;font-weight:700}

/* ── 開始前的使用提醒（免責聲明關卡）── */
body.ng-lock{overflow:hidden}
.ng-ov{position:fixed;inset:0;z-index:200;background:rgba(28,28,28,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.ng-box{background:#fff;border-radius:16px;width:100%;max-width:780px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;
  box-shadow:0 10px 40px rgba(0,0,0,.25);overflow:hidden}
.ng-box > h2{font-family:var(--serif);font-size:24px;margin:0;padding:18px 20px 12px;border-bottom:1px solid var(--bd2)}
.ng-body{flex:1 1 auto;overflow:auto;padding:14px 20px;font-size:18px;line-height:1.75;min-height:120px}
.ng-body:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.ng-body h3{font-family:var(--serif);font-size:20px;margin:18px 0 6px}
.ng-lead{font-weight:700;font-size:19px}
.ng-points{padding-left:0;list-style:none}
.ng-points li{display:flex;gap:8px;margin:0 0 8px}
.ng-points li > span{flex:0 0 1.4em;font-weight:800;color:var(--a)}
.ng-endnote{text-align:center;color:var(--ink3);margin:18px 0 4px}
.ng-agree{background:#FFF6D6;color:#3d2f00;border-top:3px solid #C9A227;padding:12px 20px 16px}
.ng-hint{margin:0 0 6px;font-size:16px;font-weight:700}
.ng-chk{display:flex;gap:10px;align-items:flex-start;font-size:18px;line-height:1.6;cursor:pointer;
  border:2px solid #C9A227;border-radius:10px;padding:10px 12px;background:#fff}
.ng-chk input{width:24px;height:24px;margin-top:3px;flex:0 0 auto;accent-color:var(--a)}
.ng-chk:has(input:disabled){opacity:.65;cursor:not-allowed}
.ng-err{color:var(--red);font-weight:700;margin:6px 0 0;min-height:0}
.ng-err:empty{display:none}
.ng-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.ng-btns .btn{min-height:52px;font-size:18px}
.ng-note{font-size:15px;color:#5a4a10;margin:8px 0 0}
@media (max-width:600px){
  .ng-ov{padding:0;align-items:stretch}
  .ng-box{max-height:none;height:100%;border-radius:0}
  .ng-box > h2{font-size:21px;padding:14px 16px 10px}
  .ng-body{padding:12px 16px}
  .ng-agree{padding:8px 16px 12px}
  .ng-hint{font-size:15px;line-height:1.5}
  .ng-chk{font-size:17px;padding:8px 10px;line-height:1.5}
  .ng-btns{flex-direction:column;gap:8px;margin-top:8px}
  .ng-btns .btn{width:100%;min-height:48px}
  .ng-note{font-size:14px;line-height:1.5;margin-top:6px}
}

/* ── 精靈模式與一問一答 ── */
.wz-hide{display:none!important}
.btn-lg{min-height:56px;font-size:18px;padding:14px 24px}

/* 步驟進度 */
.wz-progress{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:12px 16px;
  background:var(--faint);border:1px solid var(--bd2);margin:0 0 16px}
.progress-info{flex:1;font-size:17px;color:var(--ink2)}
.progress-text{font-weight:700;display:block;margin-bottom:4px}
.progress-hint{font-size:15px;color:var(--ink3)}
.progress-buttons{display:flex;gap:8px}
.progress-buttons .btn{padding:8px 14px;min-height:36px;font-size:14px}

/* 提醒區塊可收合 */
.notice-collapsible{position:relative;transition:none}
.notice-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0}
.notice-header h2{margin:0;flex:1}   /* 字級沿用 .ntc-red h2 的 21px（長輩閱讀規格 20–22px；10/22 收合版誤設 inherit 變成 18px） */
.notice-toggle-btn{background:none;border:none;color:inherit;font-size:24px;font-weight:700;
  padding:0;cursor:pointer;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center;
  transition:transform .2s}
.notice-toggle-btn:hover{opacity:.7}
.notice-content{overflow:hidden;transition:max-height .3s ease-out}
.notice-content.show{overflow:auto}

/* 免責聲明初始收合 */
#full-notice .notice-content{max-height:0}
#full-notice .notice-toggle-btn{transform:rotate(0deg)}
#full-notice .notice-toggle-btn[aria-expanded="true"]{transform:rotate(45deg)}

@media (max-width:600px){
  .wz-progress{flex-direction:column;align-items:stretch}
  .progress-buttons{width:100%;flex-direction:column}
  .progress-buttons .btn{width:100%}
  .notice-header{flex-wrap:wrap}
  .notice-header h2{width:100%;flex-basis:100%;margin-bottom:8px}
  .btn-lg{padding:16px 20px;min-height:52px}
}

/* ── 問卷引導樣式 ── */
#wz-guide{max-width:600px;margin:0 auto;padding:20px 16px}
.wz-guide-container{display:block}
.wz-header{margin-bottom:30px;text-align:center}
.wz-header h2{font-size:24px;margin:0 0 12px;font-family:var(--serif)}
.wz-subtitle{font-size:16px;color:var(--ink2);margin:0 0 20px;line-height:1.6}
.wz-progress{font-size:18px;font-weight:700;margin:16px 0}
.wz-link{color:var(--a);text-decoration:underline;font-size:16px;cursor:pointer}
.wz-card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:24px 20px;margin-bottom:20px}
.wz-question{font-size:22px;font-weight:700;margin:0 0 16px;color:var(--ink);line-height:1.4}
.wz-details{margin:16px 0}
.wz-details summary{cursor:pointer;color:var(--a);font-size:16px;padding:8px 0;user-select:none}
.wz-details>div{margin-top:12px;padding:12px;background:var(--faint);border-radius:8px;font-size:16px;color:var(--ink2)}
.wz-input{margin:20px 0;display:flex;flex-direction:column;gap:12px}
.wz-input input,.wz-input select,.wz-input textarea{font-size:18px!important;padding:12px!important;min-height:48px;border:1px solid var(--bd);border-radius:8px}
.wz-footer{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:20px;border-top:1px solid var(--bd)}
.wz-footer .btn{flex:1;min-width:120px;min-height:48px;font-size:16px}
.wz-footer .btn-p{flex:2}

@media (max-width:600px){
  #wz-guide{padding:12px 16px}
  .wz-card{padding:16px 12px}
  .wz-question{font-size:20px}
  .wz-footer{flex-direction:column}
  .wz-footer .btn{width:100%;flex:unset}
}

/* 階段 2-6 UI 元素 */
.wz-choice-card{border:2px solid var(--bd);border-radius:12px;padding:16px;cursor:pointer;transition:all .2s;
  background:#fff}
.wz-choice-card:hover{border-color:var(--a);background:var(--faint)}
.wz-choice-card h3{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--ink)}
.wz-choice-card p{margin:0;font-size:16px;color:var(--ink2);line-height:1.5}

.wz-recipients,.wz-assets-list{background:var(--faint);border-radius:8px;padding:16px;margin:16px 0;
  font-size:16px;line-height:1.6}
.wz-recipients p,.wz-assets-list p{margin:8px 0;color:var(--ink2)}

.wz-summary{background:var(--faint);border-radius:8px;padding:16px;margin:16px 0}
.wz-summary h4{margin:12px 0 8px;font-size:16px;font-weight:700;color:var(--ink)}
.wz-summary h4:first-child{margin-top:0}
.wz-summary p{margin:4px 0;font-size:15px;color:var(--ink2)}

.wz-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;justify-content:center}
.wz-buttons .btn{flex:1;min-width:120px;min-height:48px}

/* ══ 一問一答精靈（2026-10-22 補完）══ */
.wz-header h1{font-family:var(--serif);font-size:24px;margin:0 0 8px}
.wz-card h2{font-family:var(--serif);font-size:22px;margin:0 0 8px;line-height:1.4}
.wz-card h2:focus{outline:none}
.wz-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.wz-buttons .btn{min-height:48px}
.wz-field{width:100%;max-width:520px}
.wz-birth{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wz-birth input{width:110px}
.wz-choices{display:grid;gap:12px;margin:14px 0}
button.wz-choice-card{display:flex;flex-direction:column;gap:4px;text-align:left;background:#fff;font:inherit;color:var(--ink);width:100%}
button.wz-choice-card b{font-size:19px}
button.wz-choice-card span{font-size:16px;color:var(--ink2)}
button.wz-choice-card.on{border-color:var(--a);background:var(--faint)}
.wz-ratio,.wz-items{list-style:none;margin:12px 0;padding:0}
.wz-ratio-row,.wz-item-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  border-bottom:1px dashed var(--bd);padding:10px 0;font-size:17px}
.wz-item-row > span{display:flex;flex-direction:column}
.wz-pct{display:inline-flex;align-items:center;gap:4px}
.wz-pct input{width:110px;min-height:48px;font-size:18px;padding:6px 10px;border:1px solid var(--bd);border-radius:8px}
.wz-item-row select{min-height:48px;font-size:17px;max-width:100%;border:1px solid var(--bd);border-radius:8px;padding:6px 10px}
.wz-fun{display:grid;gap:12px;margin:12px 0}
.wz-fun label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:17px}
.wz-fun select{min-height:48px;font-size:17px;border:1px solid var(--bd);border-radius:8px;padding:6px 10px;font-weight:400;max-width:420px}
dl.wz-summary{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;font-size:17px}
dl.wz-summary dt{font-weight:700}
dl.wz-summary dd{margin:0;overflow-wrap:anywhere}
.wz-reopen{margin:0 0 10px}
@media (max-width:640px){ dl.wz-summary{grid-template-columns:1fr} dl.wz-summary dd{margin-bottom:6px} }

/* ── 聊天編輯（2026-10-22）── */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.chat{position:relative;margin:16px 0 0}
.chat-log{display:flex;flex-direction:column;gap:14px;padding:4px 0 12px}
.msg{display:flex;gap:10px;align-items:flex-start;max-width:100%;scroll-margin:16px 0 112px}
.msg-me{justify-content:flex-end}
.msg-av{flex:0 0 40px;height:40px;border-radius:50%;background:var(--faint);border:1px solid var(--bd);display:flex;align-items:center;justify-content:center;font-size:22px}
.msg-b{min-width:0;max-width:min(760px,calc(100% - 50px))}
.msg-me .msg-b{max-width:min(560px,85%)}
.msg-t{font-size:18px;line-height:1.7;padding:12px 16px;border-radius:16px;overflow-wrap:anywhere}
.msg-bot .msg-t{background:var(--card);border:1px solid var(--bd);border-top-left-radius:4px}
.msg-me .msg-t{background:var(--a);color:#fff;border-top-right-radius:4px}
.msg-bot .msg-t .wl-muted{color:var(--ink3)}
.msg-card{margin-top:8px}
.msg-card .wl-card{margin:0}
.chat-card h3{font-size:19px;margin:0 0 10px}
.chat-card select,.chat-card input[type=text],.chat-card input[type=number]{max-width:100%;min-width:0}
.chat-card .fld-row,.chat-card .birth{flex-wrap:wrap}
.chat-moved{margin:0;font-size:16px}
.chat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{font:inherit;font-size:18px;min-height:44px;padding:6px 16px;border-radius:22px;border:1.5px solid var(--a);background:var(--card);color:var(--ah);cursor:pointer;text-align:left}
.chip:hover{background:var(--faint)}
.chip:focus-visible,.chat-form input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.chat-plist{margin:0 0 8px;padding-left:20px}
.chat-plist li{margin:4px 0}
.chat-old{display:block;font-size:16px;color:var(--ink2)}
dl.chat-sum{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0 0 10px}
dl.chat-sum dt{font-weight:700}
dl.chat-sum dd{margin:0;overflow-wrap:anywhere}
.chat-ack{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0;padding:12px;border:1.5px solid var(--red-line);border-radius:10px;background:var(--red-bg);color:var(--red-ink);font-weight:700}
.chat-ack input{width:24px;height:24px;flex:0 0 24px;margin-top:3px}
.chat-warns{margin:8px 0}
.chat-warns summary{cursor:pointer;color:var(--ah)}
.chat-form{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;gap:10px;align-items:center;
  padding:12px max(16px,calc((100vw - 1148px) / 2));padding-bottom:max(12px,env(safe-area-inset-bottom));
  background:var(--bg);border-top:1px solid var(--bd);box-shadow:0 -4px 14px rgba(0,0,0,.06)}
body:not(.chat-on) .chat-form,body:not(.chat-on) .chat-new{display:none}
body.chat-on{padding-bottom:96px}
.chat-form input{flex:1;min-width:0;font:inherit;font-size:18px;min-height:52px;padding:10px 14px;border:1.5px solid var(--bd);border-radius:12px;background:var(--card)}
.chat-form .btn{min-height:52px;flex:0 0 auto}
.chat-new{position:fixed;right:16px;bottom:92px;display:block;z-index:21;font:inherit;font-size:16px;padding:8px 14px;border-radius:20px;border:1px solid var(--a);background:var(--card);color:var(--ah);cursor:pointer}
.chat-foot{font-size:15px;color:var(--ink3);margin:8px 0 0}
.msg-old{opacity:.85}
.hand-back{margin:16px 0 8px}
.hand-h{font-family:var(--serif);font-size:22px;margin:8px 0}
.hand-incomplete{font-size:18px}
/* 聊天頁面隱藏頂部提醒 */
.chat-on .chat-hide { display: none !important; }

/* 親筆抄寫版確認區樣式 */
.hand-confirm-section {
  background: var(--red-bg);
  border: 1px solid #E6B8B4;
  border-left: 6px solid var(--red-line);
  border-radius: 12px;
  padding: 16px 18px;
  margin: 0 0 18px;
}
.hand-confirm-text {
  font-size: 18px;
  line-height: 1.7;
  color: var(--red-ink);
  margin: 0 0 12px;
}
.hand-confirm-section label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  font-size: 18px;
  color: var(--red-ink);
  margin: 0;
  min-height: 48px;
}
.hand-confirm-section input[type="checkbox"] {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  margin-top: 4px;
  accent-color: var(--red);
  cursor: pointer;
}
.hand-info-link {
  color: var(--red-ink);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* 親筆抄寫提醒區可收合樣式調整 */
.hand-notice .notice-header h2 {
  font-size: 18px;
}

@media (max-width:600px){
  .msg-av{flex-basis:32px;height:32px;font-size:18px}
  .msg-b{max-width:calc(100% - 42px)}
  .msg-me .msg-b{max-width:88%}
  .chat-form .btn{padding:8px 14px}
  dl.chat-sum{grid-template-columns:1fr}
  dl.chat-sum dd{margin-bottom:6px}
}

/* ── 重新對話、保留期限（2026-10-22）── */
.chat-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:12px 14px;margin:0 0 12px;
  background:var(--card);border:1px solid var(--bd);border-radius:12px}
.chat-keep{margin:0;flex:1 1 260px;font-size:16px;color:var(--ink2)}
.chat-local{margin-left:4px}
.chat-linkbtn{font:inherit;font-size:16px;background:none;border:0;padding:0 2px;color:var(--ah);text-decoration:underline;cursor:pointer;min-height:32px}
.chat-exp{display:block;margin-top:4px;color:var(--ink)}
#btn-chat-reset{flex:0 0 auto;min-height:44px}
.chat-dlg-back{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.chat-dlg{background:var(--card);border-radius:14px;max-width:480px;width:100%;padding:22px 20px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.chat-dlg h2{font-family:var(--serif);font-size:22px;margin:0 0 10px}
.chat-dlg p{font-size:18px;margin:0 0 12px}
.chat-dlg .btn-row{justify-content:flex-end}
.chat-dlg .btn{min-height:48px}
.chat-snap{background:var(--faint)}
.chat-snap p{margin:0 0 6px}
@media (max-width:600px){
  .chat-head{flex-direction:column;align-items:stretch}
  #btn-chat-reset{width:100%}
  .chat-dlg .btn-row{flex-direction:column-reverse;align-items:stretch}
}

/* ── 2026-10-23 Alpha：聊天區改為「上方標題／中間獨立捲動／下方輸入」，取代固定在視窗底部的輸入列 ── */
body.chat-on{padding-bottom:0}
#p-chat.chat{display:flex;flex-direction:column;height:var(--chat-h,calc(100vh - 8px));height:var(--chat-h,calc(100dvh - 8px));
  min-height:320px;margin:12px 0 0;background:var(--card);border:1px solid var(--bd);border-radius:14px;overflow:hidden}
#p-chat .chat-head{flex:0 0 auto;margin:0;border:0;border-bottom:1px solid var(--bd);border-radius:0;padding:10px 14px;display:block}
.chat-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.chat-title{font-family:var(--serif);font-size:20px;margin:0}
.chat-progress{margin:6px 0 2px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.chat-steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.chat-steps li{font-size:15px;padding:2px 10px;border-radius:12px;background:var(--bd2);color:var(--ink2)}
.chat-steps li.done{background:var(--faint);color:var(--ok)}
.chat-steps li.done::before{content:"✓ "}
.chat-steps li.cur{background:var(--a);color:#fff;font-weight:700}
.chat-step-extra{font-size:15px;color:var(--ink2)}
#p-chat .chat-keep{font-size:15px;margin:4px 0 0}
.chat-body{position:relative;flex:1 1 auto;min-height:0;display:flex}
#p-chat .chat-log{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 14px;position:relative;background:var(--bg)}
.chat-jump{position:absolute;right:14px;bottom:12px;z-index:3;font:inherit;font-size:16px;min-height:44px;padding:8px 16px;border-radius:22px;
  border:1px solid var(--a);background:var(--card);color:var(--ah);cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}
#p-chat .chat-form{position:static;transform:none;flex:0 0 auto;margin:0;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));
  box-shadow:none;border-top:1px solid var(--bd);background:var(--card)}
.chat-qsum{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:10px 14px;border:1px solid var(--bd);border-radius:12px;background:var(--card);margin-top:8px}
.chat-qsum span{color:var(--ok);font-weight:700;overflow-wrap:anywhere}
.q-card .q-btns{margin-top:14px}
.q-card .q-btns .btn{min-height:48px}
.q-card .radios label{display:flex;gap:10px;align-items:center;min-height:44px}
.q-err{margin:10px 0 0}
#q-add-who{font:inherit;font-size:17px;min-height:44px;max-width:100%}
.notice-open{max-height:none!important;overflow:visible!important}
.chat-exp[hidden]{display:none}
.chat-title{white-space:nowrap}
@media (max-width:600px){
  #p-chat.chat{border-radius:0;margin:8px -16px 0;border-left:0;border-right:0}
  #p-chat #btn-chat-reset{width:auto;min-height:40px}
  #p-chat .chat-head{padding:8px 12px}
  #p-chat .chat-keep{font-size:14px}
  .chat-title{font-size:18px}
  #p-chat .chat-log{padding:10px}
  .chat-steps li{font-size:14px;padding:2px 8px}
}

/* 2026-10-25：同意使用提醒後，頁面底部同一版本的大段提醒收起（頁尾仍可重新閱讀使用須知）；
   抄寫版的「重要提醒」與「親筆書寫提醒」不受影響 */
body.notice-done #full-notice,
body.notice-done .ntc-sec{display:none}
