.admin-body{background:#f7f5f9;min-height:100vh}
.staff-header{background:#fffdfa;border-bottom:1px solid #e9e2ec}
.staff-header-row{height:76px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.staff-header-row .button{min-height:40px;padding:7px 13px}
.staff-header-row .brand small{color:#7a607d}
.admin-main{max-width:1160px;margin-block:34px 72px}
.admin-welcome{padding:28px 30px;border:1px solid #f2d5e4;border-radius:20px;background:#ffeef5;margin-bottom:20px}
.admin-welcome h1,.auth-intro h1{font-size:clamp(2.5rem,5vw,4.4rem);margin:7px 0 9px}
.admin-welcome p:last-child,.auth-intro p:last-child{font-weight:750}
.admin-main:not(.signed-in) #portal-content{max-width:540px}
.admin-main .portal-card,.auth-main .portal-card{border:1px solid #ded3e3;box-shadow:0 3px 12px #2e194b09;border-radius:18px;background:#fff}
.admin-main .portal-card h2,.auth-main .portal-card h2{font-size:clamp(1.6rem,3.5vw,2.15rem)}
.admin-main .portal-card>.portal-form,.auth-main .portal-card>.portal-form{margin-top:13px}
.admin-frame{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start}
.admin-sidebar{display:grid;gap:5px;background:#fff;border:1px solid #ded3e3;border-radius:18px;padding:13px;min-width:0}
.admin-sidebar-label{font-size:.74rem;font-weight:900;letter-spacing:.12em;padding:6px 8px;color:var(--muted)}
.admin-nav-item{background:transparent;border:1px solid transparent;border-radius:10px;text-align:left;min-height:42px;padding:6px 10px;font-size:.93rem;font-weight:850}
.admin-nav-item:hover{background:#f6f1f8}
.admin-nav-item[aria-current="page"]{background:#f9e3ef;border-color:#f1cada;color:#7c1944}
.admin-signout{margin-top:7px;border-top:1px solid #ded3e3;border-radius:0}
.admin-pane{min-width:0}
.admin-section-label{font:650 1.8rem/1 var(--title);margin:0 0 12px}
.admin-chip{display:inline-flex;width:max-content;max-width:100%;align-items:center;min-height:28px;padding:3px 9px;border-radius:999px;background:#e8dff4;color:#45265a;font-size:.77rem;font-weight:900}
.admin-welcome .admin-chip{margin-top:12px}
.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.admin-metric{border:1px solid #e2d9e7;border-radius:14px;padding:12px;background:#fff}
.admin-metric span{display:block;font:650 clamp(1.36rem,2.9vw,2.1rem)/1.1 var(--title);margin-bottom:4px}
.admin-metric small{font-weight:800;color:var(--muted)}
.staff-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 10px;padding:12px 0;border-bottom:1px solid var(--line)}
.staff-entry:last-child{border-bottom:0;padding-bottom:0}
.staff-entry h3{margin:0}
.staff-entry p{font-size:.9rem;overflow-wrap:anywhere}
.staff-edit{grid-column:1/-1}
.staff-edit .portal-form{padding:9px 0}
.staff-removal summary,.staff-removal .button{color:#9b1531}
.admin-forgot{color:#8c2050;text-decoration:underline;text-underline-offset:3px;font-weight:850}
.auth-main{max-width:640px;margin-block:46px 75px}
.auth-intro{margin-bottom:15px}
@media(max-width:740px){.admin-frame{grid-template-columns:minmax(0,1fr);gap:13px}.admin-sidebar{display:flex;flex-wrap:wrap;align-items:center;padding:7px}.admin-sidebar-label{display:none}.admin-nav-item{min-height:36px;padding:5px 8px}.admin-signout{margin-top:0;border:1px solid #ded3e3;border-radius:9px}.admin-welcome{padding:18px}.admin-metrics{gap:5px}.admin-metric{padding:8px}.admin-metric small{font-size:.68rem}.staff-entry{grid-template-columns:1fr}}
@media(max-width:435px){.staff-header-row{height:67px}.staff-header-row .brand strong{font-size:1.13rem}.staff-header-row .button{font-size:.75rem;padding:6px 9px}.staff-header-row .brand{gap:6px}}
.admin-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.admin-room{border:1px solid var(--line);border-radius:15px;padding:14px;min-width:0}
.admin-room h3{margin-top:10px}.admin-room .portal-form{margin-top:12px}
.scanner-video{display:block;width:min(100%,480px);max-height:340px;object-fit:cover;border-radius:14px;margin:12px 0;background:#211b2c}
.scanner-video[hidden]{display:none}
.scanner-result{margin:14px 0}
.scanner-result[hidden],.scanner-result-actions .button[hidden]{display:none}
.scanner-feedback{padding:14px 16px;border:2px solid currentColor;border-radius:12px;background:#f8f4fb}
.scanner-feedback h3{margin:0;font-size:clamp(1.25rem,3.5vw,1.85rem);line-height:1.2}
.scanner-feedback p{margin:5px 0 0}
.scanner-feedback[data-state="ready"]{color:#654200;background:#fff5d6}
.scanner-feedback[data-state="success"]{color:#155a38;background:#e9fbef}
.scanner-feedback[data-state="blocked"]{color:#9b1531;background:#fff0f2}
.scanner-result-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.order-redemption{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;width:fit-content;max-width:100%;
  margin:7px 0;padding:5px 10px;border:1px solid currentColor;border-radius:9px;background:#f3eff5;color:#523d5a;font-size:.9rem}
.order-redemption[data-state="fully_redeemed"]{background:#e9fbef;color:#155a38}
.order-redemption[data-state="partly_redeemed"]{background:#fff5d6;color:#654200}
.order-redemption[data-state="unredeemed"]{background:#e9f0ff;color:#203f77}
.order-redemption[data-state="voided"]{background:#fff0f2;color:#9b1531}
@media(max-width:740px){
  .admin-main.scanner-active{margin-block:10px 28px}
  .scanner-active .admin-welcome,.scanner-active #portal-status:empty{display:none}
  .scanner-panel>.button,.scanner-result-actions .button{min-height:48px}
  .scanner-panel>.button{width:100%}
  .scanner-result{position:fixed;z-index:10;inset:auto 0 0;margin:0;padding:10px 12px max(12px,env(safe-area-inset-bottom));
    max-height:75dvh;overflow:auto;overscroll-behavior:contain;border:1px solid #ded3e3;border-radius:16px 16px 0 0;
    background:#fff;box-shadow:0 -5px 22px #2e194b26}
  .scanner-result-actions .button{flex:1 0 auto}
  .admin-order .portal-line strong{white-space:normal;text-align:end}
}
@media(max-width:550px){.admin-room-grid{grid-template-columns:1fr}}

.editor-group{min-width:0;display:grid;gap:12px;padding:16px;border:1px solid #d8cbd8;border-radius:14px;margin:0}
.editor-group legend,.editor-copy summary{font-weight:900}
.editor-group p{margin:0}
.editor-list{display:grid;gap:8px}
.editor-slide,.editor-block{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px;border-bottom:1px solid #ebe0eb}
.editor-slide img{width:84px;height:62px;object-fit:cover;border-radius:7px}
.editor-slide label,.editor-block label{flex:1;min-width:140px}
.editor-actions{display:flex;gap:7px;flex-wrap:wrap}
.editor-actions .button,.editor-group>.button{min-height:40px;padding:7px 12px}
.editor-group>.button{justify-self:start}
.editor-colors{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.editor-colors input[type="color"]{width:100%;min-height:40px;padding:3px}
.editor-copy{border:1px solid #ebe0eb;padding:9px 11px;border-radius:9px}
.editor-copy label{display:grid;gap:3px;margin-top:9px}

.staff-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.admin-language{min-height:40px;border:1px solid #ded3e3;border-radius:999px;background:#fff;padding:5px 8px;color:var(--ink);font:inherit;font-size:.85rem;font-weight:800}
[lang="zh-CN"] .admin-body{--body:"Noto Sans SC","Microsoft YaHei","PingFang SC",system-ui,sans-serif;--title:var(--body)}
@media(max-width:435px){.staff-header-actions{gap:5px}.admin-language{font-size:.75rem;padding-inline:4px}.staff-header-row .brand img{width:36px;height:36px}}
@media(max-width:360px){.staff-header-row{height:auto;min-height:67px;flex-wrap:wrap;padding-block:7px;row-gap:5px}}

.sales-fields{display:grid;gap:10px;border:0;margin:0;padding:0;min-width:0}
.sales-ticket-list{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.sales-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sales-ticket-list .ticket-qr svg{height:170px;width:170px}
.reconciliation-metrics{margin-top:16px}
.reconciliation-table{overflow-x:auto;margin:14px 0}
.reconciliation-table table{width:100%;border-collapse:collapse;font-size:.9rem}
.reconciliation-table caption{text-align:left;font-weight:850;font-size:1.05rem;margin-bottom:8px}
.reconciliation-table th,.reconciliation-table td{text-align:left;padding:8px;border-bottom:1px solid var(--line)}
.reconciliation-table th{background:#f4edf8}
.reconciliation-table td:nth-child(n+3),.reconciliation-table th:nth-child(n+3){text-align:right;white-space:nowrap}
@media(max-width:480px){.reconciliation-metrics{grid-template-columns:1fr}}

.admin-nav-group{display:grid;gap:3px}
.admin-nav-group+.admin-nav-group{border-top:1px solid #eee5ef;margin-top:4px;padding-top:6px}
.admin-nav-group .admin-nav-item{width:100%}
.admin-pane .portal-card>label{display:grid;gap:5px;margin-block:10px}
.admin-pane .portal-card>label select{width:100%;max-width:320px;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:white}
@media(max-width:740px){
  .admin-nav-group{display:flex;width:100%;flex-wrap:wrap}
  .admin-nav-group .admin-nav-item{width:auto}
  .admin-nav-group .admin-sidebar-label{display:block;width:100%;padding-block:2px}
}

.admin-sidebar{position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
.admin-mobile-nav{display:none}
.admin-section-label{scroll-margin-top:18px}
@media(max-width:740px){
  .admin-sidebar{display:none}
  .admin-mobile-nav{position:sticky;top:0;z-index:3;display:flex;align-items:end;gap:8px;padding:8px;
    background:#fff;border:1px solid #ded3e3;border-radius:12px}
  .admin-mobile-nav label{display:grid;gap:2px;flex:1;min-width:0;font-size:.76rem;font-weight:800}
  .admin-mobile-nav select{width:100%;min-width:0;padding:6px;border:1px solid #ded3e3;border-radius:8px;background:#fff}
  .admin-mobile-nav .admin-signout{white-space:nowrap;font-size:.8rem}
  .admin-section-label{scroll-margin-top:83px}
}
