:root{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#203447;background:#f1f4f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,.button{border:0;background:#126ac2;color:white;border-radius:12px;min-height:48px;padding:12px 16px;font-weight:600;cursor:pointer;transition:background .18s,transform .18s}button:active,.button:active{transform:scale(.985)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#edf3f9;color:#28619a;font-weight:500}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #efa931;outline-offset:2px}.parent{max-width:480px;min-height:100svh;margin:auto;background:white;padding-bottom:env(safe-area-inset-bottom)}.banner{background:#fff4d8;color:#72521d;font-size:12px;text-align:center;padding:7px}.hero{width:100%;height:130px;object-fit:cover;object-position:50% 48%;display:block}.content{padding:20px 22px}h1{font-size:26px;letter-spacing:-.6px;margin:0}h1 span{font-size:16px;font-weight:500;letter-spacing:0}h2{font-size:24px;margin:8px 0 20px}.muted{color:#65788a;font-size:12px;line-height:1.6;margin:6px 0 12px}label{display:block;font-size:13px;margin:12px 0 0}input:not([type=checkbox]),select{display:block;width:100%;min-width:0;height:46px;padding:0 11px;border:1px solid #dfe6ec;border-radius:9px;background:#f8fafc;color:#203447;font-size:16px;margin-top:6px}input::placeholder{font-size:14px;color:#8998a6}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.code{grid-template-columns:minmax(0,1fr) 116px;align-items:end}.code button{font-size:13px;min-height:46px}form>button,section>button,.button{display:block;width:100%;text-align:center;text-decoration:none;margin-top:12px}.consent{display:flex;align-items:center;gap:7px;min-height:38px;font-size:12px}.consent input{width:19px;height:19px;flex-shrink:0;margin:0}summary{cursor:pointer;font-size:12px;color:#677c90;padding:13px 0;min-height:44px}.privacy p{font-size:12px;line-height:1.7;color:#64778a}.price{font-size:14px;color:#126ac2;margin:7px 0 2px}#message:not(:empty){padding:11px;background:#fff0df;color:#954b19;border-radius:8px;font-size:13px;line-height:1.6}.icp{text-align:center;font-size:10px;margin:10px 0 0;padding:0 15px 15px}.icp a{color:#8291a0;text-decoration:none}.notice{background:#fff5dd;color:#755721;padding:14px;border-radius:8px;font-size:13px;line-height:1.7}dl>div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e8edf1;font-size:14px}dt{color:#6d7f90;flex-shrink:0}dd{margin:0;text-align:right;overflow-wrap:anywhere}.eyebrow{font-size:12px;color:#73869a}section{animation:enter .23s ease-out}.checkmark{font-size:32px;color:#126ac2;margin-top:20px}#success{text-align:center}#receipt{overflow-wrap:anywhere}#historyList>div{padding:12px 0;border-bottom:1px solid #e8edf1;font-size:12px;line-height:1.7}#historyList button{font-size:12px;min-height:38px}.admin{max-width:1150px;margin:auto;padding:28px 24px}.admin header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:24px}.admin h1{font-size:26px}.admin nav{display:flex;gap:10px;margin-bottom:20px}.admin nav button{background:#e3ebf3;color:#325e89}.admin nav button.active{background:#126ac2;color:white}.login{max-width:380px;margin:10vh auto}.admin form>button{width:auto;min-width:130px}.admin label{margin-bottom:12px}.admin .filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filters label{flex:1;min-width:160px}.table-wrap{overflow-x:auto;background:white}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:13px}td,th{text-align:left;padding:15px 12px;border-bottom:1px solid #e5ebf0}th{font-size:12px;color:#62788d;background:#eaf0f5}td button{min-height:36px;padding:6px 14px;font-size:12px}td small{display:block;color:#78899a;margin-top:5px}.project-editor{max-width:520px;margin:20px 0;padding-top:14px;border-top:1px solid #dce3ea}.admin .summary{font-size:14px;color:#496680;margin:16px 0}.pagination{display:flex;gap:14px;align-items:center;margin-top:16px}.pagination button{min-height:38px}.inline{display:flex;gap:10px}.empty{padding:30px;text-align:center;color:#7a8a99}[hidden]{display:none!important}@keyframes enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:380px){.content{padding:16px}.hero{height:105px}.code{grid-template-columns:minmax(0,1fr) 105px}}@media(max-height:750px){.hero{height:100px}.content{padding-top:14px}label{margin-top:9px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* Programmatic section focus must not draw a frame around the entire checkout. */
#checkout:focus,#success:focus{outline:none}
#checkout h2{margin:12px 0 14px;font-size:23px}
#checkout .eyebrow{display:none}
#orderDetail{margin:0 0 16px}
#orderDetail>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:11px 0;align-items:start;line-height:1.5}
#orderDetail dd{min-width:0;overflow-wrap:anywhere}
#orderDetail>div:nth-last-child(2) dd{font-size:23px;font-weight:700;color:#126ac2;line-height:1.25}
#orderDetail>div:last-child{font-size:12px;color:#718294;border-bottom:0}
#checkout .notice{background:transparent;padding:0;margin:12px 0;color:#65788a;font-size:12px;line-height:1.7}
#checkout #pay{min-height:50px;margin-top:16px}
#checkout #checkPayment,#checkout #back{display:inline-block;width:calc(50% - 5px);font-size:14px;min-height:44px;margin-top:10px;vertical-align:top}
#checkout #back{margin-left:10px}

.registration-help{background:#edf5ff;border-radius:12px;padding:16px;margin:0 0 18px}
.registration-kicker{margin:0 0 6px;color:#526d88;font-size:12px}
.registration-title{margin:0 0 14px;font-size:17px;font-weight:650;line-height:1.6;color:#183e66}
.registration-title strong{color:#126ac2;font-size:20px;padding:0 3px}
.support-line{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.7;margin-top:5px}
.support-line>span:first-child{color:#64788d}.support-line>a{color:#126ac2;font-weight:650;overflow-wrap:anywhere}.support-line>span:last-child{overflow-wrap:anywhere}
.support-editor{max-width:460px}.admin nav{flex-wrap:wrap}

.export-bar{padding:0 0 24px;margin:0 0 24px;border-bottom:1px solid #dce3ea}.export-bar h2{font-size:19px;margin:0 0 8px}.export-bar .row{max-width:480px}.export-bar .consent{margin:8px 0}.export-bar button{margin-top:12px}

.project-display{margin-top:16px}.project-display p{margin:4px 0;font-size:19px;line-height:1.5;font-weight:650;color:#203447}.project-display input[type=hidden]{display:none}

/* Parent flow readability: keep these semantic sizes at 100% browser zoom. */
html{font-size:100%}
.parent{--text-body:1.125rem;--text-control:1rem;--text-meta:.875rem;font-size:var(--text-body);line-height:1.75}
.parent h1 span,.parent .muted,.parent .price,.parent .privacy p,.parent .notice,.parent #checkout .notice,.parent #success>p,.parent #message:not(:empty),.parent .registration-title{font-size:var(--text-body);line-height:1.75}
.parent label,.parent input:not([type=checkbox]),.parent input::placeholder,.parent select,.parent button,.parent .button,.parent summary,.parent .project-display .muted,.parent #orderDetail>div,.parent #historyList>div,.parent #historyList button,.parent #checkout #checkPayment,.parent #checkout #back,.parent .support-line{font-size:var(--text-control)}
.parent .banner,.parent .icp,.parent .eyebrow,.parent .registration-kicker,.parent #orderDetail>div:last-child{font-size:var(--text-meta)}
.parent input:not([type=checkbox]),.parent select,.parent button,.parent .button{min-height:44px}
.parent #checkout #pay{min-height:50px}
@media(max-width:380px){.parent .row{gap:8px}.parent .code{grid-template-columns:minmax(0,1fr) 116px}.parent .content{padding-inline:16px}}

/* Failed initialization must provide a readable recovery path, including old iOS. */
.parent .load-error{margin:16px 0;padding:16px;border:1px solid #e6b77f;border-radius:10px;background:#fff4e5;color:#764417}
.parent .load-error p{margin:0 0 12px;font-size:var(--text-body);line-height:1.75}
.parent .load-error p:last-child{margin:12px 0 0}
.parent .load-error button{display:block;width:100%;min-height:48px;font-size:var(--text-control)}
