/* 在线起名 · 共用样式（沿用售前页的纸色、棕色与宋体名字） */
:root{
  --bg:#FBF9F5; --paper:#FFFFFF; --ink:#24201B; --ink2:#6E655B; --line:#E6DFD4;
  --accent:#7A4E2D; --accent-ink:#FFFFFF; --tint:#F2EADF; --no:#A13A2B; --star:#D0402B; --ok:#3F6B4A;
  --serif:"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1B1815; --paper:#24201C; --ink:#EEE8DF; --ink2:#B1A595; --line:#38322B;
  --accent:#D3A170; --accent-ink:#1B1815; --tint:#2F2821; --no:#E8907F; --star:#F08A74; --ok:#8FC39C; color-scheme:dark}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
.wrap{max-width:560px;margin:0 auto;padding:0 max(18px,env(safe-area-inset-left,0px)) 120px}
h1,h2,h3{font-family:var(--serif);margin:0;line-height:1.35;font-weight:900}
h1{font-size:28px}
h2{font-size:21px}
p{margin:0}
a{color:var(--accent)}
button{font:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.mute{color:var(--ink2)}
.s{font-size:14px}
.sec{padding-top:36px;display:grid;gap:12px}
.sec + .sec{border-top:1px solid var(--line);margin-top:36px}

.btn{display:block;width:100%;border:0;border-radius:12px;background:var(--accent);color:var(--accent-ink);font-size:17px;font-weight:600;padding:14px 18px;text-align:center;text-decoration:none}
.btn:disabled{opacity:.55}
.btn.ghost{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}
.btn.sm{display:inline-block;width:auto;font-size:15px;padding:8px 14px}

label.f{display:grid;gap:4px;font-size:15px}
label.f b{font-weight:600}
label.f small{color:var(--ink2);font-size:13px}
input,select,textarea{font:inherit;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;width:100%;font-size:16px}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{flex:1;min-width:84px}
.seg input{position:absolute;opacity:0;width:1px;height:1px}
.seg span{display:block;text-align:center;border:1.5px solid var(--line);border-radius:10px;padding:10px 6px;background:var(--paper)}
.seg input:checked + span{border-color:var(--accent);background:var(--tint);color:var(--accent);font-weight:600}
.seg input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}
.agree{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--ink2)}
.agree input{width:18px;height:18px;margin-top:4px;flex:none}

.err{background:#F6E1DC;color:#8E3123;border-radius:10px;padding:10px 12px;font-size:15px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .err{background:#3A2420;color:#F0B3A6}}
.okbox{border:1.5px solid var(--ok);color:var(--ok);border-radius:10px;padding:10px 12px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px}

/* 名字卡：页面上唯一的大字 */
.namecard{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px 18px 16px;text-align:center}
.namecard .nm{font-family:var(--serif);font-size:44px;font-weight:900;letter-spacing:.18em;line-height:1.2;padding-left:.18em}
.namecard .py{color:var(--ink2);font-size:14px;letter-spacing:.06em}
.namecard dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;text-align:left;margin:14px 0 0;font-size:14.5px}
.namecard dt{color:var(--accent);font-family:var(--serif);font-weight:600}
.namecard dd{margin:0}

.dock{position:fixed;left:0;right:0;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:10px max(18px,env(safe-area-inset-left,0px)) calc(10px + env(safe-area-inset-bottom,0px));z-index:20}
.dock .in{max-width:560px;margin:0 auto;display:flex;gap:12px;align-items:center}
.dock .price{font-family:var(--serif);font-weight:900;color:var(--star);font-size:24px;line-height:1;white-space:nowrap}
.dock .price small{font-size:14px}
.dock .btn{flex:1}

.steps{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:st}
.steps li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start}
.steps li::before{counter-increment:st;content:counter(st);font-family:var(--serif);font-weight:900;font-size:18px;color:var(--accent);border:1.5px solid var(--accent);border-radius:50%;width:30px;height:30px;display:grid;place-items:center;line-height:1}
.steps b{display:block}

.modal{position:fixed;inset:0;background:rgba(20,16,12,.55);display:grid;place-items:center;z-index:50;padding:18px}
.modal .box{background:var(--paper);border-radius:16px;max-width:380px;width:100%;padding:20px;display:grid;gap:12px;text-align:center}
.qr{background:#fff;padding:10px;border-radius:10px;justify-self:center}
.qr img,.qr canvas{display:block;width:220px;height:220px;image-rendering:pixelated}

.thread{display:grid;gap:10px}
.thread .m{max-width:88%;padding:9px 12px;border-radius:12px;background:var(--paper);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;font-size:15px}
.thread .m.me{justify-self:end;background:var(--tint);border-color:transparent}
.thread .m small{display:block;color:var(--ink2);font-size:12px}

.foot{max-width:560px;margin:0 auto;padding:24px 18px 130px;border-top:1px solid var(--line);color:var(--ink2);font-size:13px;line-height:1.8;text-align:center}
.foot a{color:var(--ink2)}

@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
