/* aurasmile Check-in ── 共用樣式（A-04b）
   ⚠️ 由 legacy/aurasmile-checkin-v9.html 第 11–219 行原樣搬出。
   ⚠️⚠️ 本卡【不得改動任何 CSS 值】—— 版面丙案是 A-04c。 */
:root{
  --teal:#33A7B9; --teal-deep:#217A89; --teal-soft:#E0F1F4; --teal-line:#B2DDE4;
  --ink:#393536; --ink60:#736E70; --ink35:#A6A1A3;
  --spark:#EAF2E1; --paper:#F8F9F3; --sand:#EDF0E6; --line:#E1E5D9;
  --alert:#B4543F; --alert-soft:#F8EBE6;
  --han:"Noto Serif TC",serif; --sans:"Noto Sans TC",system-ui,sans-serif;
  --latin:"Outfit",sans-serif; --mono:"IBM Plex Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:var(--sans);color:var(--ink);min-height:100vh;padding:16px 12px 44px;
  display:flex;flex-direction:column;align-items:center;
  background:radial-gradient(120% 70% at 50% 0%,#FDFEFA 0%,#F4F8F1 50%,#E5EDE7 100%)}
button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}
:focus-visible{outline:2.5px solid var(--teal);outline-offset:3px;border-radius:5px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.switcher{display:flex;gap:2px;padding:3px;margin-bottom:16px;background:rgba(57,53,54,.07);border-radius:999px}
.switcher button{font-size:12.5px;font-weight:500;padding:8px 17px;border-radius:999px;color:var(--ink60);transition:.18s}
.switcher button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(57,53,54,.15)}
.logo-ico,.logo-word{display:block}

/* ⚠️ A-04c 版面丙案（John 2026-08-21 裁示）。
   ⚠️⚠️ height 單位＝100dvh，⚠️ 為 S4 實機裁示結果（⚠️ 非工單暫定值 100svh）。
   ⚠️ 裁示依據（John 於 iPad／手機實機目視）：⚠️ 100svh 下【不跳】但【底部留白太多】
   ⇒ ⚠️ 依工單 S4 規則「底部留白太多且不跳 ⇒ 可改 100dvh」。
   ⚠️ 100vh  ⇒ iOS Safari 被網址列裁切；⚠️ 100dvh ⇒ 網址列收合時版面會跳；
   ⚠️ 100svh ⇒ 穩定不跳但底部留白 ⇒ ⚠️ 三者差異【只在 iOS Safari】，Mac 上零區分力。 */
.phone{width:100%;max-width:560px;margin:0 auto;height:100dvh;background:#fff;
  display:flex;flex-direction:column;overflow:hidden}
/* ⚠️ 圓角與陰影只在【有留白】時出現：⚠️ 手機滿版不倒圓角（John 裁示）。
   ⚠️ 斷點沿用本專案唯一的尺寸斷點 640（⚠️ 見檔末那條 max-width:640px 規則），
   ⚠️ 不新增第二個魔術數字。⚠️ 此處刻意不寫出 at-rule 關鍵字 ——
   ⚠️⚠️ 它是被 grep 的量法字串（工單第 7 節），⚠️ 寫在註解裡會污染日後的條數量測。
   ⚠️ 不取 561px：⚠️ 該寬度左右各僅 0.5px 留白 ⇒ ⚠️ 圓角會被切掉、看起來像瑕疵。
   ⚠️⚠️ box-shadow 的值為【搬移】自改前的 .phone，⚠️ 非新寫。 */
@media (min-width:641px){
  .phone{border-radius:28px;
    box-shadow:0 28px 60px -24px rgba(57,53,54,.3),0 0 0 1px rgba(57,53,54,.06)}
}
/* ⚠️⚠️ body 規則為【兩頁共用】，⚠️ 只有 checkin 端要把 padding 歸零（全螢幕）。
   ⚠️ CSS 無父選擇器 ⇒ ⚠️ 改以 checkin.html 的 <body class="checkin"> 作為條件。
   ⚠️⚠️ min-height 必須【與 .phone 同單位】——
   ⚠️ 共用的 body 規則寫 min-height:100vh，⚠️ 而 iOS Safari 的 100vh ＝【大】視窗
   ⚠️ （當作網址列不存在），⚠️ 但 .phone 用 100dvh ＝【當前】視窗
   ⇒ ⚠️⚠️ body 比卡片高出一個網址列 ⇒ ⚠️ 底部露出 body 背景（灰帶），
   ⇒ ⚠️ 且整頁可捲 ⇒ ⚠️⚠️ 變成【頁面捲 ＋ 題目區捲】兩層，⚠️ 按鈕被推出卡片而遭裁切。
   ⇒ ⚠️ 兩者同單位後：⚠️ 無灰帶、⚠️ 頁面不捲，⚠️ 只剩題目區捲（即丙案的支點）。 */
body.checkin{padding:0;min-height:100dvh}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 2px;flex-shrink:0}
.back{font-size:19px;color:var(--ink35);padding:6px 12px 6px 0;width:52px;text-align:left;transition:.15s}
.back:hover{color:var(--ink)}
.back[hidden]{visibility:hidden;display:block}
.topbar .logo-word{width:104px}
.langbtn{width:52px;text-align:right;font-family:var(--mono);font-size:11px;color:var(--ink35);letter-spacing:.06em;padding:6px 0}
.langbtn:hover{color:var(--teal-deep)}
.stage{flex:1;overflow-y:auto;padding:12px 20px 14px;display:flex;flex-direction:column;scrollbar-width:none}
.stage::-webkit-scrollbar{display:none}

.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--teal-deep);margin-bottom:12px}
.q{font-family:var(--han);font-weight:700;font-size:25px;line-height:1.5}
.hint{font-size:13px;color:var(--ink35);margin-top:9px;line-height:1.7}
.opts{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.opt{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 15px;text-align:left;
  background:var(--paper);border:1.5px solid var(--line);border-radius:16px;font-size:15.5px;font-weight:500;line-height:1.4;transition:.14s}
.opt:hover{border-color:var(--ink35)}
.opt:active{transform:scale(.982)}
.tick{width:20px;height:20px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--line);background:#fff;position:relative;transition:.14s}
.opt[aria-pressed="true"]{background:var(--teal-soft);border-color:var(--teal);color:#15606E}
.opt[aria-pressed="true"] .tick{background:var(--teal);border-color:var(--teal)}
.opt[aria-pressed="true"] .tick::after{content:"";position:absolute;left:6.2px;top:3px;width:5px;height:9.5px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(43deg)}
.opt .sub{display:block;font-size:12.2px;font-weight:400;color:var(--ink35);margin-top:2px}
.opt[aria-pressed="true"] .sub{color:#2C7F8D}

.txtwrap{margin-top:9px;animation:fade .25s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.txt{width:100%;font-family:var(--sans);font-size:15px;color:var(--ink);padding:12px 14px;
  background:#fff;border:1.5px solid var(--teal);border-radius:13px;outline:none}
.txt::placeholder{color:var(--ink35)}
.txtlab{font-size:11.5px;color:var(--ink35);margin:0 0 6px 3px}

.fld{margin-bottom:13px}
.fld label{display:block;font-size:12px;color:var(--ink60);margin:0 0 6px 3px}
.fld label i{font-style:normal;color:var(--alert);margin-left:3px}
.fld input{width:100%;font-family:var(--sans);font-size:16px;color:var(--ink);padding:13px 14px;
  background:var(--paper);border:1.5px solid var(--line);border-radius:13px;outline:none;transition:.14s}
.fld input:focus{border-color:var(--teal);background:#fff}
.fld input::placeholder{color:#C4C7BC}
.fld.bad input{border-color:var(--alert);background:var(--alert-soft)}
.err{font-size:11.5px;color:var(--alert);margin:5px 0 0 3px;line-height:1.5}
.dob{display:flex;gap:7px;align-items:center}
.dob .pre{font-size:13px;color:var(--ink60);flex-shrink:0}
.dob input{text-align:center;padding:13px 4px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{padding:10px 14px;border:1.5px solid var(--line);background:var(--paper);border-radius:11px;font-size:14px;font-weight:500;transition:.14s}
.chip[aria-pressed="true"]{background:var(--teal-soft);border-color:var(--teal);color:#15606E}
.privacy{margin:16px 0 2px;padding:13px 15px;background:var(--sand);border-radius:13px;font-size:11.8px;color:var(--ink60);line-height:1.8}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.cards.two{grid-template-columns:repeat(2,1fr)}
.vcard{border:1.5px solid var(--line);background:var(--paper);border-radius:16px;padding:12px 7px 11px;text-align:center;transition:.14s}
.vcard svg{display:block;margin:0 auto 9px;width:100%;max-width:74px;height:46px}
.vcard b{display:block;font-size:13.5px;font-weight:700;line-height:1.35}
.vcard span{display:block;font-size:11px;color:var(--ink35);margin-top:3px;line-height:1.4}
.vcard[aria-pressed="true"]{background:var(--teal-soft);border-color:var(--teal)}
.vcard[aria-pressed="true"] span{color:#2C7F8D}

.next{margin:16px 0 4px;width:100%;height:53px;border-radius:15px;background:var(--ink);color:#fff;font-size:15.5px;font-weight:700;letter-spacing:.04em;transition:.15s}
.next:disabled{background:#D9DBD1;cursor:default}
.next.warn{background:var(--alert)}
.skip{margin:10px auto 0;font-size:13px;color:var(--ink35);border-bottom:1px solid var(--line);padding-bottom:2px}

.smile{flex-shrink:0;padding:0 22px 17px;display:flex;flex-direction:column;align-items:center;gap:7px}
.smile svg{width:100%;max-width:224px;height:42px;overflow:visible;display:block}
.sBase{stroke:#E3E7DC;stroke-width:4.5;fill:none;stroke-linecap:round}
.sFill{stroke:var(--teal);stroke-width:4.5;fill:none;stroke-linecap:round;transition:stroke-dashoffset .55s cubic-bezier(.3,.9,.3,1)}
.sDot{fill:#fff;stroke:var(--teal);stroke-width:2.5;transition:.55s cubic-bezier(.3,.9,.3,1)}
.smilelab{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ink35)}

.screen{animation:sl .32s cubic-bezier(.22,.9,.3,1)}
@keyframes sl{from{opacity:0;transform:translateX(13px)}to{opacity:1;transform:none}}
.intro{flex:1;display:flex;flex-direction:column;justify-content:center;padding-bottom:16px}
.intro .logo-ico{width:58px;margin-bottom:14px}
.intro .logo-word{width:180px}
.intro .cn{font-size:10.5px;letter-spacing:.44em;color:var(--ink35);margin-top:9px}
.intro h1{font-family:var(--han);font-weight:700;font-size:28px;line-height:1.55;margin:22px 0 12px}
.intro p{font-size:14.5px;color:var(--ink60);line-height:1.9}
.langpick{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}
.langpick button{padding:10px 15px;border:1.5px solid var(--line);border-radius:12px;font-size:14px;font-weight:500;background:var(--paper);transition:.14s}
.langpick button[aria-pressed="true"]{background:var(--teal-soft);border-color:var(--teal);color:#15606E}
.langpick button:disabled{opacity:.42;cursor:default}
.meta{margin-top:16px;border:1px solid var(--line);border-radius:16px;padding:15px 17px;background:var(--paper);font-size:13.5px;color:var(--ink60);line-height:1.9}
.meta b{color:var(--ink)}

.chap{flex:1;display:flex;flex-direction:column;justify-content:center;padding-bottom:24px}
.chap .num{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--teal-deep)}
.chap h2{font-family:var(--han);font-weight:700;font-size:29px;line-height:1.45;margin:12px 0 14px}
.chap p{font-size:14.5px;color:var(--ink60);line-height:2}
.ring{display:flex;align-items:center;gap:15px;margin-top:26px;padding:15px 17px;background:var(--paper);border:1px solid var(--line);border-radius:16px}
.ring svg{width:50px;height:50px;flex-shrink:0}
.ring .rb{stroke:#E6E9DE;stroke-width:5;fill:none}
.ring .rf{stroke:var(--teal);stroke-width:5;fill:none;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}
.ring .pct{font-family:var(--latin);font-size:16px;font-weight:500;fill:var(--ink);text-anchor:middle}
.ring b{display:block;font-size:14.5px;line-height:1.5}
.ring span{display:block;font-size:12.5px;color:var(--ink35);margin-top:3px}

.done{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:13px;padding-bottom:26px}
.done .logo-ico{width:98px;animation:pop .55s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.done h2{font-family:var(--han);font-weight:700;font-size:24px;margin-top:6px}
.done p{font-size:13.5px;color:var(--ink60);line-height:1.9;max-width:262px}
.linkb{font-size:13.5px;font-weight:700;color:var(--teal-deep);border-bottom:1.5px solid var(--teal);padding-bottom:2px}
.reset{margin-top:8px;width:100%;height:50px;border-radius:15px;border:1.5px solid var(--line);font-size:15px;font-weight:700;background:var(--paper)}
.countdown{font-family:var(--mono);font-size:11px;color:var(--ink35)}

.pad{width:100%;max-width:1020px;background:#fff;border-radius:20px;padding:30px 34px 34px;
  box-shadow:0 28px 56px -24px rgba(57,53,54,.26),0 0 0 1px rgba(57,53,54,.06)}
.ph{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end;padding-bottom:15px;border-bottom:2px solid var(--ink)}
.ph .logo-word{width:148px}
.ph h2{font-family:var(--han);font-weight:700;font-size:27px;margin-top:10px}
.ph h2 small{font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--ink60);margin-left:8px}
.stamp{font-family:var(--mono);font-size:10.5px;color:var(--ink35);text-align:right;line-height:1.95}
.flags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}
.flag{font-size:12.5px;font-weight:700;padding:7px 13px;border-radius:9px;background:var(--alert-soft);color:var(--alert);border:1px solid #EED8CF}
.flag.soft{background:var(--sand);color:#6C6F5E;border-color:var(--line)}
.flag.ok{background:var(--teal-soft);color:var(--teal-deep);border-color:var(--teal-line)}
.idbar{display:flex;flex-wrap:wrap;gap:0 30px;margin-top:16px;padding:14px 17px;background:var(--paper);border:1px solid var(--line);border-radius:13px}
.idbar div{font-size:13.5px;padding:3px 0}
.idbar span{font-size:11.5px;color:var(--ink35);margin-right:7px}
.idbar b{font-family:var(--mono);font-weight:500}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:0 36px;margin-top:6px}
.sec{padding:18px 0;border-bottom:1px solid var(--line)}
.sec h3{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--teal-deep);margin-bottom:12px;display:flex;align-items:center;gap:9px}
.sec h3::after{content:"";flex:1;height:1px;background:var(--line)}
.row{display:flex;gap:12px;padding:6px 0;font-size:14px;line-height:1.6;align-items:baseline}
.row dt{flex:0 0 84px;color:var(--ink35);font-size:12.2px}
.row dd{flex:1;font-weight:500}
.row dd.al{color:var(--alert);font-weight:700}
.tags{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 2px}
.tag{font-size:12.5px;padding:4px 10px;border-radius:8px;background:var(--paper);border:1px solid var(--line);font-weight:500}
.tag.hot{background:var(--alert-soft);border-color:#EED8CF;color:var(--alert)}
.empty{color:var(--ink35);font-weight:400}
.track{display:flex;gap:2px;margin:7px 0 3px}
.track span{flex:1;height:6px;background:var(--sand);border-radius:2px}
.track span.on{background:var(--teal)}
.scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9.5px;color:var(--ink35)}
.spec{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.spec div{display:flex;font-size:13.5px;border-bottom:1px solid var(--line)}
.spec div:last-child{border-bottom:none}
.spec dt{flex:0 0 100px;background:var(--paper);padding:9px 12px;color:var(--ink60);font-size:12.2px;border-right:1px solid var(--line)}
.spec dd{padding:9px 12px;font-weight:700;color:var(--teal-deep)}

/* 臨床提醒 */
.clin{margin-top:20px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.clin header{display:flex;align-items:center;gap:10px;padding:11px 16px;background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.15em}
.clin .body{padding:4px 16px 14px}
.cgrp{padding:12px 0;border-bottom:1px dashed var(--line)}
.cgrp:last-child{border-bottom:none}
.cgrp h4{font-size:11.5px;font-family:var(--mono);letter-spacing:.12em;color:var(--teal-deep);margin-bottom:9px}
.citem{display:flex;gap:10px;font-size:13.5px;line-height:1.75;padding:5px 0;color:var(--ink)}
.citem .bul{flex-shrink:0;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-top:8px}
.citem.warn .bul{background:var(--alert)}
.citem .why{display:block;font-size:11.8px;color:var(--ink35);margin-top:2px}
.ask{background:var(--sand);border-radius:9px;padding:9px 12px;font-size:13px;line-height:1.7;margin-top:6px}
.ask b{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink60);display:block;margin-bottom:3px}
.padbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:flex-end;margin-bottom:13px}
.padbar .who{margin-right:auto;font-size:12.5px;color:var(--ink35)}
.padbar .who input{font-family:var(--sans);font-size:13px;padding:7px 10px;border:1.5px solid var(--line);border-radius:9px;background:#fff;width:130px;outline:none}
.pbtn{font-size:12.5px;font-weight:700;padding:9px 17px;border-radius:10px;border:1.5px solid var(--line);background:var(--paper);transition:.14s}
.pbtn:hover{border-color:var(--ink35)}
.pbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pbtn.ghost{background:transparent;color:var(--ink35)}
.esel,.einp{font-family:var(--sans);font-size:13.5px;padding:7px 9px;border:1.5px solid var(--teal-line);border-radius:9px;background:#fff;width:100%;color:var(--ink);outline:none}
.esel:focus,.einp:focus{border-color:var(--teal)}
.echips{display:flex;flex-wrap:wrap;gap:5px}
.echip{font-size:12px;padding:5px 10px;border-radius:7px;border:1.5px solid var(--line);background:#fff;font-weight:500}
.echip[aria-pressed="true"]{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-deep);font-weight:700}
.badge{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:#fff;background:var(--teal);padding:2px 5px;border-radius:4px;margin-left:6px;vertical-align:2px}
.was{color:var(--ink35);text-decoration:line-through;font-weight:400;margin-left:7px;font-size:12.5px}
.notebox{margin-top:11px}
.notebox textarea{width:100%;min-height:62px;font-family:var(--sans);font-size:13.5px;line-height:1.7;padding:10px 12px;
  border:1.5px dashed var(--teal-line);border-radius:11px;background:#fff;outline:none;resize:vertical;color:var(--ink)}
.notebox textarea:focus{border-style:solid;border-color:var(--teal)}
.notebox label{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--ink35);margin-bottom:5px}
.noteshow{margin-top:10px;padding:10px 13px;background:var(--teal-soft);border-radius:11px;font-size:13.5px;line-height:1.75;white-space:pre-wrap}
.noteshow b{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--teal-deep);display:block;margin-bottom:4px}
.log{margin-top:18px;padding:15px 17px;background:var(--sand);border-radius:12px;font-size:12.5px;line-height:1.9;color:var(--ink60)}
.log b{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ink);display:block;margin-bottom:7px}
.log s{color:var(--ink35)}
.log .ent{padding:5px 0;border-bottom:1px dashed var(--line)}
.log .ent:last-child{border-bottom:none}
.sample{font-family:var(--mono);font-size:10px;color:var(--alert);letter-spacing:.08em;margin-top:13px}
@media(max-width:640px){.pad{padding:22px 18px 26px}.ph h2{font-size:23px}}
