/* 顶栏 */
.top-bar{height:var(--header-h);background:var(--red);color:#fff;
  display:flex;align-items:center;padding:0 14px;gap:8px;
  padding-top:var(--safe-top);box-sizing:content-box;
  position:sticky;top:0;z-index:10}
.top-bar .back{font-size:22px;line-height:1;cursor:pointer;padding:4px 8px;margin-left:-8px;position:relative;z-index:1}
.top-bar .title{font-weight:700;letter-spacing:2px;
  position:absolute;left:0;right:0;top:var(--safe-top);height:var(--header-h);
  display:flex;align-items:center;justify-content:center;
  pointer-events:none}
.top-bar .right{font-size:12px;opacity:.8;position:relative;z-index:1}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;
  padding:14px 18px;border-radius:6px;font-weight:700;letter-spacing:2px;
  background:var(--red);color:#fff;transition:transform .12s ease-out,opacity .2s}
.btn:active{transform:scale(.96)}
.btn[disabled]{background:var(--disabled);cursor:not-allowed}
.btn-block{display:flex;width:100%}
.btn-gold{background:var(--gold);color:var(--red-dark)}

/* 输入栏（下底线式） */
.field{padding:14px 0 18px;border-bottom:1px solid var(--line);position:relative;transition:border-color .2s}
.field .label{font-size:11px;color:var(--text-sub);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;display:block}
.field input{width:100%;padding:4px 0;font-size:15px;color:var(--text);background:transparent}
.field input::placeholder{color:var(--disabled)}
.field.focused{border-color:var(--red)}
.field.error{border-color:var(--red)}
.field.error::after{content:attr(data-error);position:absolute;bottom:3px;left:0;font-size:11px;line-height:1;color:var(--red);pointer-events:none}
.field .btn-inline{position:absolute;right:0;bottom:18px;background:transparent;color:var(--red);font-size:13px;padding:4px 8px;font-weight:700;line-height:1}
.field .btn-inline[disabled]{color:var(--disabled)}
.field:has(.btn-inline) input{padding-right:96px}

/* 卡片 */
.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:14px}

/* 通用容器 */
.page{min-height:100vh;display:flex;flex-direction:column}
.page-body{flex:1;padding-bottom:var(--safe-bottom)}
.container{padding:14px}

.divider{height:1px;background:var(--line);margin:12px 0}

/* 实用 */
.hidden{display:none !important}
