:root{color-scheme:light;--ground:#f6f7f2;--paper:#fffefa;--ink:#25332a;--muted:#58675b;--green:#214e3e;--green-dark:#173d30;--mint:#e8efdf;--lime:#dce8b8;--line:#dce2d7;--amber:#775418;--red:#a62d36;--focus:#396fdb;--radius:16px;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--ground);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--ground)}button,input,select,textarea{font:inherit;accent-color:var(--green)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}input,textarea{caret-color:var(--green)}[hidden]{display:none!important}svg{width:20px;height:20px;vertical-align:middle;flex:none}p{line-height:1.8}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}h1{font-size:40px;line-height:1.35;letter-spacing:-.025em;font-weight:650}h2{font-size:24px;line-height:1.4;letter-spacing:-.02em;font-weight:650}h3{font-size:18px;line-height:1.5;font-weight:650}::selection{background:var(--lime);color:var(--green-dark)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.mono{font-family:Consolas,"Courier New",monospace;font-size:12px;font-variant-numeric:tabular-nums}.number{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.7}.wrap{max-width:1224px;margin:auto;padding:0 36px}.skip{position:absolute;left:16px;top:-80px;background:var(--paper);padding:12px;z-index:100}.skip:focus{top:12px}
.preview-bar{background:var(--green-dark);color:#ecf1e5;font-size:12px;padding:9px 0}.preview-bar .wrap{display:flex;gap:16px;justify-content:space-between;align-items:center}.site-header{position:relative;z-index:5;background:var(--ground)}.header-inner{height:80px;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;flex-shrink:0}.brand-mark{width:34px;height:34px}.brand-word{font-size:20px;letter-spacing:.08em;font-weight:750;white-space:nowrap}.brand-sub{display:block;margin-top:2px;font-size:11px;letter-spacing:.13em;color:var(--muted)}.header-links{display:flex;gap:28px;align-items:center;flex:1;font-size:14px}.header-links a{padding:12px 0}.header-links a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}.header-account{margin-left:auto;position:relative}.btn{min-height:44px;padding:11px 20px;border:0;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;line-height:1.4;font-weight:600;transition:background .18s,box-shadow .18s,transform .18s}.primary{background:var(--green);color:#fff}.primary:hover{background:var(--green-dark)}.secondary{background:var(--mint);color:var(--green-dark)}.secondary:hover{background:#dde8d1}.outline{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.plain{background:none;border:0;padding:10px 0;font-weight:500}.btn-wide{width:100%}.text-link{border:0;background:none;color:var(--green);font-size:14px;text-decoration:underline;text-underline-offset:4px;padding:8px 0}.icon-button{background:none;border:0;width:40px;height:40px;padding:10px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center}.icon-button:hover{background:var(--mint)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--lime);color:var(--green-dark);display:grid;place-items:center;font-size:14px;font-weight:700}.account-toggle{padding:5px 8px 5px 5px;gap:10px;background:none}.account-toggle .account-caption{text-align:left;font-size:13px;line-height:1.5}.account-toggle small{display:block;color:var(--muted);font-size:11px;font-weight:400}.account-menu{position:absolute;top:calc(100% + 12px);right:0;width:248px;background:var(--paper);border-radius:12px;box-shadow:0 12px 40px #00000024;overflow:hidden;padding:8px;z-index:7}.account-menu-head{padding:16px 12px;background:var(--green);color:#fff;border-radius:8px;margin-bottom:8px}.account-menu-head span{display:block;font-size:12px;color:#d2e1d5;margin-bottom:3px}.account-menu-head strong{font-size:22px;font-weight:600}.account-menu button{width:100%;text-align:left;border:0;border-radius:6px;background:none;padding:13px 12px;display:flex;gap:12px;align-items:center;font-size:14px}.account-menu button:hover{background:var(--mint)}.account-menu .logout{border-top:1px solid var(--line);border-radius:0;margin-top:7px;color:var(--red)}
.hero{padding:27px 0 18px;display:grid;grid-template-columns:1.04fr 1fr;gap:54px;align-items:center}.hero h1{font-size:clamp(32px,3.7vw,50px);line-height:1.36;max-width:11em}.hero h1 span{color:var(--green)}.hero p{font-size:15px;color:var(--muted);max-width:34em;margin-top:13px}.hero-action{margin-top:16px}.hero-note{font-size:12px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:9px}.hero-note svg{width:16px;height:16px}.pass-stage{position:relative;padding:20px 22px 19px;background:var(--mint);border-radius:16px;min-height:250px;display:flex;align-items:center;justify-content:center}.voucher{width:100%;max-width:422px;display:grid;grid-template-columns:1fr 65px;min-height:200px;background:var(--green);color:#fff;border-radius:12px;overflow:hidden;transition:transform .28s cubic-bezier(.2,.8,.2,1)}.pass-stage:hover .voucher{transform:translateY(-4px) rotate(-.5deg)}.voucher-main{padding:20px 24px;display:flex;flex-direction:column;position:relative;min-width:0}.voucher-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.04em;color:#dce8b8}.voucher-value{font-size:70px;line-height:1.1;font-weight:450;margin:17px 0 5px;letter-spacing:-.035em;display:flex;align-items:baseline;gap:9px}.voucher-value small{font-size:17px;font-weight:500;letter-spacing:0}.voucher-label{font-size:13px;letter-spacing:.06em}.voucher-bottom{font-size:10px;color:#cfddcf;margin-top:14px;letter-spacing:.035em}.voucher-stub{border-left:1px dashed #ceddc970;background:var(--green-dark);display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-size:10px;letter-spacing:.14em;position:relative}.voucher-stub:before,.voucher-stub:after{content:"";position:absolute;left:-8px;width:15px;height:15px;background:var(--mint);border-radius:50%}.voucher-stub:before{top:-8px}.voucher-stub:after{bottom:-8px}.voucher.gold{background:var(--lime);color:var(--green-dark)}.voucher.gold .voucher-top,.voucher.gold .voucher-bottom{color:#39513d}.voucher.gold .voucher-stub{background:#c8dba2;color:var(--green-dark);border-color:#73855570}
.collection{padding:4px 0 58px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:15px}.section-head p{margin-top:6px;font-size:14px;color:var(--muted)}.collection-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:12px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{background:transparent;border:1px solid var(--line);border-radius:40px;padding:9px 15px;font-size:13px;min-height:40px}.filter span{margin-left:5px;font-size:11px;opacity:.85}.filter[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.search{display:flex;align-items:center;gap:10px;border-bottom:1px solid #91a18e;width:256px;padding:8px 0}.search svg{width:18px;height:18px;color:var(--muted)}.search input{border:0;outline:0!important;min-width:0;width:100%;background:none;font-size:13px;padding:2px 0}.search:focus-within{box-shadow:0 2px 0 var(--focus);border-color:var(--focus)}input::placeholder,textarea::placeholder{color:#667767;opacity:1}.result-count{font-size:12px;color:var(--muted);padding:11px 0 9px}.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.product{background:var(--paper);border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.product-art{height:145px;padding:17px 25px;display:flex;align-items:center;justify-content:center;background:#edf2e6}.product-art .voucher{max-width:355px;min-height:122px;grid-template-columns:1fr 42px}.product-art .voucher-main{padding:13px 19px}.product-art .voucher-top{font-size:10px}.product-art .voucher-value{font-size:43px;margin:8px 0 2px}.product-art .voucher-value small{font-size:12px}.product-art .voucher-label{font-size:10px}.product-art .voucher-bottom{display:none}.product-art .voucher-stub{font-size:9px;letter-spacing:.1em}.product-art.gold-art{background:#eef0e0}.product-content{padding:19px 25px 17px}.product-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;margin-bottom:6px}.stock{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.stock:before{content:"";width:5px;height:5px;background:var(--green);border-radius:50%}.stock.unavailable:before{background:#a62d36}.product-content h3{font-size:18px}.product-description{font-size:12px;line-height:1.7;margin:6px 0 11px;color:var(--muted)}.product-bottom{padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.price{display:flex;gap:3px;align-items:baseline;font-size:27px;font-weight:600;letter-spacing:-.035em;white-space:nowrap}.price small{font-size:14px;letter-spacing:0}.price-caption{font-size:10px;color:var(--muted);margin-top:1px}.sku-line{border-top:1px solid var(--line);margin-top:10px;padding-top:7px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.sku-line .icon-button{width:30px;height:30px;padding:7px}.empty{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:34px;text-align:center}.empty p{margin:6px 0 15px;color:var(--muted);font-size:13px}.shop-note{border-top:1px solid var(--line);margin-top:26px;padding-top:21px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.shop-note p{font-size:12px;color:var(--muted);margin-top:5px;max-width:43em}
.page{padding:29px 0 52px}.back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin-bottom:18px}.back svg{width:17px;height:17px}.detail{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.detail-art{min-height:300px;padding:34px 30px;background:var(--mint);border-radius:15px;display:flex;align-items:center;justify-content:center}.detail-art .voucher{min-height:230px}.detail-content h1{font-size:32px;margin:12px 0}.detail-content>p{font-size:14px;color:var(--muted);max-width:40em}.detail-content>.price{font-size:36px;margin-top:16px}.quantity-row{display:flex;align-items:center;justify-content:space-between;margin:20px 0 8px;font-size:14px}.quantity{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}.quantity button{border:0;background:var(--mint);width:42px;height:42px;font-size:22px}.quantity input{width:70px;text-align:center;border:0;background:var(--paper);height:42px}.delivery-note{border-left:3px solid var(--green);padding:10px 15px;background:#edf2e6;margin-top:20px}.delivery-note h3{font-size:14px}.delivery-note p{font-size:12px;color:var(--muted);margin-top:4px}.details-copy{margin-top:34px;border-top:1px solid var(--line);padding-top:22px}.details-copy p{font-size:13px;color:var(--muted);margin-top:8px;max-width:60em}.account-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:38px}.account-side{padding-top:6px}.profile{display:flex;align-items:center;gap:11px;padding-bottom:19px;border-bottom:1px solid var(--line)}.profile small{display:block;margin-top:3px;font-size:11px;color:var(--muted)}.account-nav{display:flex;flex-direction:column;gap:4px;padding:16px 0}.account-nav button{border:0;border-radius:8px;background:none;min-height:44px;padding:10px 12px;display:flex;align-items:center;gap:11px;text-align:left;font-size:13px}.account-nav button:hover,.account-nav button[aria-current=page]{background:var(--mint);color:var(--green-dark)}.account-nav svg{width:17px;height:17px}.back-shop{border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--green)}.account-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:21px}.account-title h1{font-size:28px}.account-title p{font-size:12px;color:var(--muted);margin-top:4px}.status-label,.tag{display:inline-flex;align-items:center;border-radius:30px;padding:6px 10px;background:var(--mint);font-size:11px;color:var(--green-dark);white-space:nowrap}.tag.amber{background:#f5ecd5;color:var(--amber)}.credit-sheet{padding:22px 25px;background:var(--green);color:#fff;border-radius:13px;margin-bottom:25px}.credit-sheet-top{display:flex;justify-content:space-between;gap:16px;color:#dce8b8;font-size:13px}.credit-sheet-top button{background:none;border:0;color:inherit;text-decoration:underline;text-underline-offset:4px}.credit-values{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin:19px 0 12px}.credit-values dt{font-size:12px;color:#dce8b8}.credit-values dd{margin:3px 0 0;font-size:34px;font-weight:550}.credit-values dd small{font-size:15px}.credit-values>div+div{border-left:1px solid #ffffff40;padding-left:22px}.credit-values>div+div dd{font-size:27px}.credit-foot{font-size:11px;color:#dbe6dc}.account-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 7px}.account-section-head h2{font-size:19px}.account-section-head .text-link{font-size:12px}.order-list{border-top:1px solid var(--line)}.order-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.order-row h3{font-size:14px;margin:4px 0}.order-row p{font-size:11px;color:var(--muted)}.order-id{display:flex;align-items:center;gap:7px;font-size:11px}.order-id .icon-button{width:28px;height:28px;padding:6px}.order-row-right{text-align:right;flex-shrink:0}.order-row-right strong{font-size:17px}.order-row-right .text-link{display:block;font-size:11px}.quick-support{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px;margin-top:20px;background:var(--mint);border-radius:11px}.quick-support h3{font-size:14px}.quick-support p{font-size:11px;color:var(--muted);margin-top:3px}.quick-support .btn{white-space:nowrap;font-size:12px}.order-summary{padding:18px 23px;background:var(--paper);border-radius:11px;border:1px solid var(--line);margin:17px 0 24px}.summary-line{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:6px 0;font-size:13px}.summary-line.total{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-weight:650}.secret-row,.ticket-card,.setting-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:19px;margin:12px 0}.secret-row h3{font-size:14px}.secret-row .id-pair{margin:7px 0 10px}.id-pair{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}.id-pair .icon-button{width:28px;height:28px;padding:6px}.secret-text{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.secret-text code{font-family:Consolas,"Courier New",monospace;font-size:14px;overflow-wrap:anywhere}.secret-actions{display:flex;gap:17px;flex-wrap:wrap;margin-top:10px}.secret-actions button{font-size:12px}.ticket-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.ticket-row h3{font-size:14px;margin:4px 0}.ticket-row p{font-size:11px;color:var(--muted)}.ticket-id{font-size:11px;color:var(--muted)}.ticket-history{display:grid;gap:10px;margin:16px 0}.ticket-message{background:var(--mint);padding:12px 14px;border-radius:9px}.ticket-message strong{font-size:12px}.ticket-message time{float:right;font-size:10px;color:var(--muted)}.ticket-message p{font-size:12px;white-space:pre-wrap;margin-top:5px}.settings-form{max-width:580px}.form-field{display:block;margin:15px 0;font-size:13px;font-weight:600}.form-field input,.form-field select,.form-field textarea{display:block;width:100%;min-height:44px;margin-top:7px;border:1px solid #aeb8aa;border-radius:7px;padding:10px 12px;background:var(--paper);font-weight:400}.form-field textarea{min-height:112px;resize:vertical}.form-hint,.form-error{display:block;margin-top:6px;font-size:11px;font-weight:400;color:var(--muted)}.form-error{color:var(--red)}
.site-footer{border-top:1px solid var(--line);padding:24px 0 30px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-inner p{font-size:11px;color:var(--muted);margin-top:4px}.footer-links{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--muted)}.footer-links button{border:0;background:none;color:var(--green);padding:6px 0}.modal-layer{position:fixed;inset:0;z-index:20;background:#13231bbd;display:grid;place-items:center;padding:24px;overflow:auto}.dialog{width:min(100%,520px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:var(--paper);border-radius:14px;box-shadow:0 20px 60px #0003;overflow:hidden}.dialog.large{width:min(100%,680px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{font-size:18px}.dialog-body{padding:20px 22px;overflow:auto}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:15px 22px;border-top:1px solid var(--line)}.login-person{display:flex;align-items:center;gap:12px;margin:16px 0;padding:13px;background:var(--mint);border-radius:9px}.login-person p,.login-copy,.login-note{font-size:12px;color:var(--muted)}.login-note{margin-top:13px}.toast{position:fixed;z-index:40;left:50%;bottom:22px;transform:translateX(-50%);max-width:min(90vw,560px);padding:12px 18px;border-radius:9px;background:#173d30;color:#fff;box-shadow:0 7px 24px #0002;font-size:13px}.toast.error{background:#8f2730}.notice{padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--muted);font-size:13px}.notice.error{color:#8f2730;border-color:#e1b7b9;background:#fff6f5}
@media(max-width:1000px){.wrap{padding:0 28px}.header-links{gap:20px}.hero{gap:30px;padding:35px 0}.hero h1{font-size:38px}.pass-stage{min-height:220px;padding:18px}.voucher{min-height:190px;grid-template-columns:1fr 50px}.voucher-value{font-size:60px}.voucher-main{padding:18px}.account-layout{grid-template-columns:175px minmax(0,1fr);gap:26px}.detail{gap:30px}.product-art{padding:18px}.product-content{padding:17px 19px}.product-content .btn{padding:10px 12px;font-size:12px}}
@media(max-width:720px){.wrap{padding:0 20px}.preview-bar .wrap{gap:10px;font-size:11px}.header-inner{height:70px;gap:16px}.brand{gap:8px}.brand-mark{width:27px;height:27px}.brand-word{font-size:17px;letter-spacing:.045em}.brand-sub{font-size:10px;letter-spacing:.04em}.header-links{display:none}.header-account>.btn{padding:9px 12px;font-size:12px;min-height:40px}.account-toggle .account-caption{display:none}.account-toggle{padding:5px!important}.account-toggle>svg{width:15px;height:15px}.account-menu{width:232px}.hero{grid-template-columns:1fr;gap:0;padding:27px 0 21px}.hero h1{font-size:32px;line-height:1.4;max-width:none}.hero p{font-size:14px;margin-top:11px;max-width:32em}.hero-action{margin-top:15px}.hero>.pass-stage,.hero-note{display:none}.collection{padding-bottom:36px}.section-head{margin-bottom:17px}.section-head h2{font-size:21px}.section-head p{font-size:12px}.collection-controls{flex-direction:column;align-items:stretch;gap:15px;padding-bottom:15px}.filters{gap:6px}.filter{padding:8px 10px;font-size:11px;min-height:38px}.search{width:100%}.product-grid{grid-template-columns:1fr;gap:17px}.product-art{height:148px;padding:13px 20px}.product-art .voucher{min-height:117px}.product-art .voucher-main{padding:12px 17px}.product-art .voucher-value{font-size:40px}.product-content{padding:18px 20px 16px}.product-content h3{font-size:17px}.product-meta{font-size:11px}.product-bottom{gap:8px}.product-bottom .btn{padding:9px 10px;font-size:11px;white-space:nowrap}.price{font-size:25px}.shop-note{grid-template-columns:1fr;gap:15px;padding-top:18px;margin-top:22px}.site-footer{padding:22px 0}.footer-inner{align-items:flex-start;flex-direction:column;gap:10px}.footer-links{gap:17px;flex-wrap:wrap}.page{padding:22px 0 36px}.detail{grid-template-columns:1fr;gap:22px}.detail-art{min-height:210px;padding:20px}.detail-art .voucher{min-height:185px}.detail-content h1{font-size:25px}.detail-content>.price{font-size:32px}.account-layout{grid-template-columns:1fr;gap:19px}.account-side{padding:0}.profile,.back-shop{display:none}.account-nav{flex-direction:row;gap:4px;padding:0 0 12px;border-bottom:1px solid var(--line)}.account-nav button{min-height:40px;padding:8px 7px;font-size:11px;justify-content:center;flex:1;white-space:nowrap;gap:0}.account-nav button svg{display:none}.account-title{gap:10px;margin-bottom:17px}.account-title h1{font-size:23px}.account-title p{font-size:11px;max-width:23em}.status-label{font-size:10px;padding:5px 7px}.credit-sheet{padding:18px 17px;margin-bottom:20px}.credit-values{grid-template-columns:1.3fr 1fr;gap:12px;margin:14px 0 10px}.credit-values dd{font-size:25px;white-space:nowrap}.credit-values dd small{font-size:12px}.credit-values>div+div{padding-left:12px}.credit-values>div+div dd{font-size:20px}.credit-foot{font-size:10px}.account-section-head h2{font-size:17px}.order-row{gap:10px;padding:14px 0}.order-row h3{font-size:12px}.order-row-right strong{font-size:14px}.order-row .order-id{gap:5px;font-size:10px;flex-wrap:wrap}.order-row p{font-size:10px}.order-row-right .text-link{font-size:10px}.quick-support{gap:10px;padding:13px}.quick-support h3{font-size:12px}.quick-support p{font-size:10px}.quick-support .btn{font-size:11px;padding:9px 10px}.order-summary{padding:14px 16px}.summary-line{font-size:11px}.secret-row,.ticket-card,.setting-card{padding:15px}.ticket-row{align-items:flex-start}.ticket-row h3{font-size:13px}.ticket-row p{font-size:10px}.ticket-id{font-size:10px}.dialog-head{padding:17px}.dialog-head h2{font-size:17px}.dialog-body{padding:18px}.dialog-footer{padding:13px 17px}.modal-layer{padding:14px}.dialog{max-height:calc(100dvh - 28px)}.dialog-footer .btn{padding:10px 12px;font-size:12px}}
@media(max-width:360px){.wrap{padding:0 16px}.brand-word{font-size:15px}.brand-mark{width:25px;height:25px}.brand{gap:7px}.hero h1{font-size:30px}.filter{padding:8px 9px}.product-art{padding:12px 16px}.product-content{padding:16px}.account-nav button{padding:8px 5px;font-size:11px}.credit-values dd{font-size:22px}.credit-values>div+div dd{font-size:18px}.account-title h1{font-size:21px}.product-bottom .btn{font-size:11px;padding:8px}.price{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.pass-stage:hover .voucher{transform:none}}
body[data-density="compact"] .product-content{padding:13px 21px 11px}body[data-density="compact"] .product-description{margin:3px 0 7px}body[data-density="compact"] .product-bottom{padding-top:9px}
@media(max-width:1000px){body[data-density="compact"] .product-content{padding:12px 17px 10px}}
@media(max-width:720px){body[data-density="compact"] .product-content{padding:12px 17px 10px}}
@media(max-width:360px){body[data-density="compact"] .product-content{padding:11px 13px 9px}}
.secret-row{min-width:0}.delivered-image{display:block;max-width:100%;height:auto;object-fit:contain;border-radius:8px}.order-delivery-note{margin:15px 0 22px;padding:14px 17px;border-left:3px solid var(--green);background:var(--mint);border-radius:0 9px 9px 0}.order-delivery-note h2{font-size:15px}.order-delivery-note p{margin-top:5px;font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted)}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

/* Compact copy controls: keep the icon small while preserving touch access. */
.icon-button[data-copy],
.icon-button[data-action="copy-secret"] {
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 24px;
  line-height: 1;
  vertical-align: middle;
}
.icon-button[data-copy] svg,
.icon-button[data-action="copy-secret"] svg {
  width: 14px;
  height: 14px;
}
.icon-button[data-copy]:hover,
.icon-button[data-action="copy-secret"]:hover {
  background: var(--mint);
}
@media (pointer: coarse) {
  .icon-button[data-copy],
  .icon-button[data-action="copy-secret"] {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    flex-basis: 44px;
    background: transparent;
  }
  .icon-button[data-copy]::before,
  .icon-button[data-action="copy-secret"]::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 24px;
    height: 24px;
    border-radius: 5px;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 0;
  }
  .icon-button[data-copy] svg,
  .icon-button[data-action="copy-secret"] svg {
    position: relative;
    z-index: 1;
  }
  .icon-button[data-copy]:hover,
  .icon-button[data-copy]:active,
  .icon-button[data-action="copy-secret"]:hover,
  .icon-button[data-action="copy-secret"]:active {
    background: transparent;
  }
  .icon-button[data-copy]:hover::before,
  .icon-button[data-copy]:active::before,
  .icon-button[data-action="copy-secret"]:hover::before,
  .icon-button[data-action="copy-secret"]:active::before {
    background: var(--mint);
  }
}

/* Customer pickup and same-browser recipient views */
.order-row-right [data-action="open-pickup"] { display: block; }
.dialog { min-width: 0; }
.dialog-head h2 { overflow-wrap: anywhere; }
.dialog-inline-toast { flex: 0 0 auto; margin: 0; padding: 8px 18px; border-bottom: 1px solid var(--line); background: var(--mint); color: var(--green-dark); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.dialog-inline-toast.error { background: #fff6f5; color: var(--red); }
.pickup-dialog,
.recipient-dialog { width: min(680px, 100%); max-height: calc(100dvh - 28px); }
.pickup-dialog .dialog-head,
.recipient-dialog .dialog-head { flex: 0 0 auto; }
.pickup-dialog > .dialog-body,
.recipient-dialog > .dialog-body { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; overflow: hidden; padding: 0; }
.pickup-tools { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 18px; border-bottom: 1px solid var(--line); }
.pickup-tools .btn { min-height: 38px; padding: 8px 12px; }
.pickup-body,
.recipient-list { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 14px 20px; }
.pickup-delivery-note,
.recipient-note { margin: 0 0 14px; padding: 11px 13px; border-left: 3px solid var(--green); border-radius: 0 8px 8px 0; background: var(--mint); color: var(--muted); font-size: 13px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.pickup-card,
.recipient-card { min-width: 0; }
.pickup-status { margin: 0 0 9px; color: var(--muted); font-size: 12px; }
.pickup-code-stack { display: grid; gap: 12px; min-width: 0; }
.pickup-code-stack .voucher-code { min-width: 0; max-width: 100%; margin: 0; overflow: hidden; }
.pickup-code-stack .voucher-code svg { display: block; width: 100%; height: auto; max-height: 340px; }
.pickup-code-stack .voucher-text { margin: 8px 0 0; padding: 0; border: 0; background: transparent; color: var(--ink); font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.pickup-code-stack .voucher-invalid,
.pickup-code-stack .voucher-code-error { margin: 8px 0; color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.pickup-after-sales { margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.pickup-dialog > .dialog-footer,
.recipient-dialog > .dialog-footer { display: block; flex: 0 0 auto; padding: 10px 18px 12px; }
.pickup-pager { display: grid; grid-template-columns: minmax(64px, 1fr) minmax(96px, auto) minmax(64px, 1fr); align-items: center; gap: 8px; }
.pickup-pager .btn { min-width: 0; min-height: 42px; padding: 8px 10px; }
.pickup-position { display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--ink); font-size: 13px; white-space: nowrap; }
.pickup-position input { width: 56px; min-height: 40px; padding: 6px 4px; border: 1px solid #aeb8aa; border-radius: 7px; background: var(--paper); text-align: center; font-variant-numeric: tabular-nums; }
.pickup-nav-message { min-height: 18px; margin: 5px 0 0; color: var(--muted); font-size: 11px; text-align: center; }
.pickup-text-dialog .dialog-body,
.share-dialog .dialog-body,
.feedback-dialog .dialog-body,
.ticket-dialog .dialog-body { overflow: auto; }
.pickup-text-body pre { margin: 0; padding: 13px; border-radius: 8px; background: var(--mint); color: var(--ink); font: 14px/1.8 Consolas, "Courier New", monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.share-dialog { width: min(560px, 100%); }
.share-range { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.share-note { margin: 12px 0; padding: 12px; border-radius: 8px; background: var(--mint); color: var(--muted); font-size: 12px; line-height: 1.7; overflow-wrap: anywhere; }
.share-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.share-actions .btn { flex: 1 1 120px; min-width: 0; }
.share-result { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.share-result .form-field { overflow-wrap: anywhere; }
.share-result input { display: block; width: 100%; min-width: 0; min-height: 42px; margin-top: 7px; padding: 9px; border: 1px solid #aeb8aa; border-radius: 7px; background: var(--paper); font-size: 12px; }
.recipient-dialog { width: min(560px, 100%); }
.recipient-dialog .recipient-list { display: block; }
.recipient-dialog > .dialog-footer { border-top: 1px solid var(--line); }
.recipient-card [data-action="recipient-feedback"] { margin-top: 17px; }
.recipient-page { width: min(560px, 100%); height: min(820px, calc(100dvh - 24px)); max-height: calc(100dvh - 24px); margin: auto; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.recipient-page .dialog-head { flex: 0 0 auto; }
.recipient-page .dialog-head h1 { min-width: 0; font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
.recipient-local-note { flex: 0 0 auto; padding: 8px 18px; background: var(--mint); color: var(--muted); font-size: 11px; }
.recipient-page > .dialog-body { display: flex; flex: 1 1 auto; min-height: 0; overflow: hidden; padding: 0; }
.recipient-page .recipient-list { display: block; }
.recipient-page > .dialog-footer { display: block; flex: 0 0 auto; padding: 10px 18px 12px; border-top: 1px solid var(--line); }
.recipient-unavailable { height: auto; min-height: 180px; justify-content: center; padding: 25px; gap: 10px; }
.recipient-unavailable h1 { font-size: 21px; }
.recipient-unavailable p { color: var(--muted); font-size: 13px; }
.public-recipient .preview-bar,
.public-recipient .site-header,
.public-recipient .site-footer,
.public-recipient .skip { display: none; }
.public-recipient #main { width: 100%; max-width: 100%; min-height: 100dvh; margin: 0; padding: 12px; display: grid; place-items: center; }

@media(max-width:420px) {
  .pickup-dialog > .dialog-footer,
  .recipient-dialog > .dialog-footer,
  .recipient-page > .dialog-footer { padding: 9px 10px 10px; }
  .pickup-pager { grid-template-columns: minmax(60px, 1fr) minmax(92px, auto) minmax(60px, 1fr); gap: 5px; }
  .pickup-pager .btn { min-height: 42px; padding: 8px 5px; font-size: 12px; }
  .pickup-position { gap: 4px; font-size: 12px; }
  .pickup-position input { width: 50px; min-height: 40px; }
  .pickup-tools { padding: 7px 12px; }
  .pickup-body,
  .recipient-list { padding: 11px 14px; }
  .share-range { grid-template-columns: 1fr; gap: 0; }
}

/* Confirmed V1.3 order list and credit flow */
.order-amounts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 20px 0; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.order-amounts dt { font-size: 12px; color: var(--muted); margin-bottom: 7px; }
.order-amounts dd { margin: 0; font-size: 20px; font-weight: 650; font-variant-numeric: tabular-nums; }
.order-amounts > div:last-child dd { color: var(--green); }
.compact-delivery-note { margin: 0 0 24px; font-size: 13px; color: var(--muted); }
.compact-delivery-note summary { width: fit-content; cursor: pointer; color: var(--green); padding: 6px 0; }
.compact-delivery-note p { margin: 8px 0; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.order-cards-panel { border: 1px solid var(--line); border-radius: 12px; background: var(--paper); overflow: clip; }
.card-list-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 18px 20px; }
.card-list-toolbar h2 { font-size: 17px; margin: 0; white-space: nowrap; }
.card-list-toolbar h2 span { font-size: 12px; margin-left: 8px; font-weight: 400; color: var(--muted); }
.card-list-controls { display: flex; align-items: center; gap: 8px; }
.card-list-controls select, .card-search { min-height: 36px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); font: inherit; font-size: 12px; }
.card-list-controls select { padding: 0 26px 0 9px; max-width: 120px; }
.card-search { display: flex; align-items: center; width: 184px; padding: 0 9px; gap: 8px; }
.card-search svg { width: 15px; height: 15px; flex-shrink: 0; }
.card-search input { width: 100%; min-width: 0; font: inherit; color: var(--ink); background: transparent; border: 0; outline: 0; }
.card-search:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.card-search input::placeholder { color: var(--muted); opacity: 1; }
.order-table-scroll { width: 100%; }
.order-card-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.order-card-table th { padding: 12px 14px; color: var(--muted); font-weight: 500; text-align: left; background: var(--ground); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.order-card-table th:first-child { width: 56px; }
.order-card-table th:nth-child(2) { width: auto; }
.order-card-table th:nth-child(3) { width: 22%; }
.order-card-table th:nth-child(4) { width: 110px; }
.order-card-table th:last-child { width: 164px; text-align: right; }
.order-card-table td { padding: 10px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.order-card-table tbody tr:last-child td { border-bottom: 0; }
.order-card-table tbody tr:hover { background: var(--ground); }
.order-card-table td code { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.card-sequence { color: var(--muted); font-variant-numeric: tabular-nums; }
.cell-secret { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.cell-secret code { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-password-cell code { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.order-card-table .icon-button { width: 24px; height: 24px; }
.order-card-table .icon-button svg { width: 14px; height: 14px; }
.cell-secret .icon-button { flex-shrink: 0; }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.row-action { border: 0; border-radius: 4px; padding: 6px; color: var(--green); background: transparent; font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; min-height: 32px; }
.row-action:hover:not(:disabled) { background: var(--mint); }
.row-action:disabled { color: var(--muted); cursor: default; opacity: .65; }
.order-table-pager { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.order-table-pager > div { display: flex; align-items: center; gap: 14px; }
.table-empty { text-align: center; padding: 32px 16px !important; color: var(--muted); }
@media (max-width: 1000px) {
  .card-list-toolbar { padding: 16px; }
  .card-list-controls { flex-wrap: wrap; }
  .card-list-controls .card-search { flex: 1; min-width: 160px; }
  .order-card-table th, .order-card-table td { padding: 10px; }
  .order-card-table th:last-child { width: 144px; }
  .order-card-table th:nth-child(4) { width: 100px; }
}
@media (max-width: 760px) {
  .order-amounts { gap: 12px; }
  .order-amounts dt { font-size: 11px; }
  .order-amounts dd { font-size: 17px; }
  .card-list-toolbar { gap: 12px; }
  .card-list-controls { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .card-list-controls .card-search { grid-column: 1 / -1; width: 100%; min-width: 0; }
  .card-list-controls select { width: 100%; max-width: none; min-height: 40px; }
  .order-card-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .order-card-table, .order-card-table tbody { display: block; }
  .order-card-table tr { display: grid; grid-template-columns: 20px minmax(0,1fr) 96px; gap: 5px 10px; padding: 12px 14px; border-top: 1px solid var(--line); }
  .order-card-table td { display: block; padding: 0; border: 0; min-width: 0; }
  .card-sequence { grid-column: 1; grid-row: 1 / 4; padding-top: 5px !important; font-size: 11px; }
  .card-number-cell { grid-column: 2; grid-row: 1; }
  .card-password-cell { grid-column: 2; grid-row: 2; }
  .card-password-cell::before { content: '卡密 '; font-size: 11px; color: var(--muted); }
  .card-state-cell { grid-column: 2; grid-row: 3; }
  .card-state-cell .tag { font-size: 11px; padding: 4px 7px; }
  .card-action-cell { grid-column: 3; grid-row: 1 / 4; }
  .row-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; align-items: center; justify-items: center; }
  .row-actions .row-action:first-child { grid-column: 1 / -1; width: 100%; }
  .row-actions .row-action { min-height: 38px; }
  .cell-secret .icon-button { width: 32px; height: 32px; }
  .order-table-pager { padding: 10px 12px; font-size: 11px; }
  .order-table-pager > div { gap: 5px; }
  .table-empty { grid-column: 1 / -1; }
}
@media (max-width: 380px) {
  .order-amounts { grid-template-columns: repeat(2,1fr); }
  .order-card-table tr { padding: 12px 10px; gap: 5px 7px; grid-template-columns: 18px minmax(0,1fr) 96px; }
}
@media (pointer: coarse) {
  .row-action, .row-actions .row-action, .row-actions .icon-button, .cell-secret .icon-button { min-width: 44px; min-height: 44px; }
}
.brand-sub { font-size: 11px; }
.order-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: 12px; color: var(--muted); margin-top: -16px; }
.order-meta .icon-button { width: 24px; height: 24px; padding: 4px; }
.order-meta .icon-button svg { width: 14px; height: 14px; }
.order-row > div:first-child { min-width: 0; }
.order-row h3 { overflow-wrap: anywhere; }
.order-row-right { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.order-row-right .text-link { display: flex; align-items: center; justify-content: flex-end; min-height: 32px; padding: 6px 0; line-height: 1.5; text-align: right; }
.credit-sheet-top button { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; white-space: nowrap; }
.credit-sheet-top button svg { width: 14px; height: 14px; }
.credit-flow-dialog { width: min(100%, 860px); }
.credit-flow-dialog .dialog-body { min-height: 0; padding: 0; }
.credit-flow-dialog .dialog-footer { display: block; padding: 0; }
.ledger-intro { padding: 18px 20px; font-size: 13px; }
.ledger-intro p + p { margin-top: 6px; color: var(--muted); font-size: 12px; }
.credit-flow-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
.credit-flow-table th { padding: 12px 14px; color: var(--muted); font-weight: 500; text-align: left; background: var(--ground); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.credit-flow-table th:first-child { width: 160px; }
.credit-flow-table th:nth-child(3), .credit-flow-table th:nth-child(4) { width: 130px; text-align: right; }
.credit-flow-table th:last-child { width: 184px; }
.credit-flow-table td { padding: 12px 14px; vertical-align: top; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.credit-flow-table tbody tr:last-child td { border-bottom: 0; }
.ledger-time { font-size: 12px; color: var(--muted); }
.ledger-delta, .ledger-after { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ledger-delta { font-weight: 600; }
.ledger-delta.positive { color: var(--green); }
.ledger-link { background: transparent; border: 0; padding: 6px 0; font: inherit; font-size: 12px; color: var(--green); cursor: pointer; text-align: left; text-decoration: underline; text-underline-offset: 3px; }
.ledger-link:hover { color: var(--ink); }
.ledger-association { font-size: 12px; }
.ledger-association summary { cursor: pointer; padding: 6px 0; color: var(--green); }
.ledger-association p { margin-top: 6px; color: var(--muted); }
.ledger-association > div { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px; }
.ledger-association > div span { color: var(--muted); }
@media (max-width: 760px) {
  .ledger-intro { padding: 16px; }
  .credit-flow-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .credit-flow-table, .credit-flow-table tbody { display: block; }
  .credit-flow-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 14px 16px; border-top: 1px solid var(--line); }
  .credit-flow-table td { padding: 0; border: 0; min-width: 0; }
  .ledger-time { grid-column: 1 / -1; }
  .ledger-event { grid-column: 1; grid-row: 2; }
  .ledger-delta { grid-column: 2; grid-row: 2; }
  .ledger-after { grid-column: 1 / -1; grid-row: 3; text-align: left; font-size: 12px; color: var(--muted); }
  .ledger-after::before { content: '变动后可用 '; }
  .ledger-reference { grid-column: 1 / -1; grid-row: 4; }
}
@media (pointer: coarse) {
  .order-row-right .text-link, .ledger-link, .ledger-association summary { min-height: 44px; min-width: 44px; }
  .order-meta .icon-button { min-width: 44px; min-height: 44px; }
}

/* Phone and password authentication use the same centered dialog system. */
/* V1.5 customer settings, messages and coupon dates use existing brand tokens. */
.password-setting { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:20px; }
.customer-messages { border:1px solid var(--line); border-radius:12px; background:var(--paper); overflow:hidden; }
.message-toolbar { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:16px 20px; border-bottom:1px solid var(--line); }
.message-filters { display:flex; gap:8px; }
.message-filters [aria-pressed=true] { background:var(--mint); color:var(--green-dark); }
.message-list { margin:0; padding:0; list-style:none; }
.message-list li + li { border-top:1px solid var(--line); }
.message-button { display:flex; gap:12px; align-items:flex-start; width:100%; min-height:64px; padding:18px 20px; border:0; color:var(--ink); background:none; text-align:left; }
.message-button:hover { background:var(--ground); }
.read-dot { flex:0 0 7px; width:7px; height:7px; margin-top:8px; border-radius:50%; background:var(--green); }
.read-dot.read { background:var(--line); }
.message-copy { flex:1; min-width:0; overflow-wrap:anywhere; }
.message-copy strong { display:block; font-size:14px; }
.message-copy > span { display:block; margin-top:5px; font-size:12px; color:var(--muted); line-height:1.7; }
.message-meta { display:grid; gap:5px; font-size:11px; color:var(--muted); text-align:right; }
.message-empty { padding:30px 20px; color:var(--muted); font-size:13px; }
.message-retention { padding:16px 20px; border-top:1px solid var(--line); font-size:12px; color:var(--muted); line-height:1.8; }
.message-detail-copy { display:grid; gap:14px; overflow-wrap:anywhere; }
.message-detail-copy time { font-size:12px; color:var(--muted); }
.message-reference-dialog { width:min(640px,100%); }
.message-reference-dialog .dialog-body { display:grid; gap:14px; overflow-wrap:anywhere; }
.message-order-validity > div + div { margin-top:12px; }
.coupon-validity { margin:8px 0; font-size:12px; color:var(--muted); line-height:1.6; overflow-wrap:anywhere; }
.card-state-cell .coupon-validity { margin:5px 0 0; font-size:11px; }
.customer-messages .notice { margin:18px; }
@media(max-width:760px) {
  .message-toolbar { padding:14px; }
  .message-button { padding:16px 14px; flex-wrap:wrap; gap:9px; }
  .message-meta { flex:1 0 100%; padding-left:16px; text-align:left; display:flex; justify-content:space-between; flex-wrap:wrap; }
  .password-setting { align-items:flex-start; flex-direction:column; }
  .password-setting .btn { width:100%; }
  .password-dialog input { font-size:16px; }
}
.auth-form { margin: 12px 0 0; }
.auth-form .form-field { margin: 13px 0; }
.auth-form input { min-width: 0; }
.code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: end; }
.code-row .form-field { min-width: 0; margin-bottom: 13px; }
.code-row > .btn { min-height: 44px; margin-bottom: 13px; white-space: nowrap; }
.form-error.success { color: var(--green-dark); }
.auth-dialog .dialog-footer .btn { min-height: 44px; }
@media (pointer: coarse) {
  .auth-dialog .icon-button,
  .auth-dialog .dialog-footer .btn,
  .code-row > .btn { min-width: 44px; min-height: 44px; }
}
@media (max-width: 360px) {
  .code-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .code-row > .btn { width: 100%; margin: 0 0 13px; }
  .auth-dialog .dialog-footer { flex-wrap: wrap; }
  .auth-dialog .dialog-footer .btn { flex: 1 1 100%; }
}
