/* ============================================================
   枣庄味道 · 多人协同点餐系统 — 样式表
   ============================================================ */

/* ===== Reset & Variables ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#f5f3f0;--card:#fff;--card2:#faf8f5;--ink:#2c2416;
  --muted:#8a8178;--rule:#e8e2da;--accent:#c0392b;--accent2:#e74c3c;
  --green:#27ae60;--gold:#d4a017;--radius:0.75rem;
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --nav-h:3rem;--bar-h:3.5rem;
}
html{font-size:16px;-webkit-tap-highlight-color:transparent}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.5;
  -webkit-font-smoothing:antialiased;overscroll-behavior:none;
  min-height:100dvh;min-height:-webkit-fill-available;
}

/* ===== Button System ===== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.3rem;
  padding:0.5rem 0.9rem;border-radius:var(--radius);border:none;font-size:0.82rem;
  font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s;
  -webkit-tap-highlight-color:transparent;
}
.btn:active{transform:scale(0.97)}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:active{background:#a83227}
.btn-outline{background:var(--card);color:var(--ink);border:1.5px solid var(--rule)}
.btn-outline:active{background:#f5f3f0}
.btn-green{background:var(--green);color:#fff}
.btn-green:active{background:#1e8449}
.btn-full{width:100%}
.btn-sm{padding:0.35rem 0.7rem;font-size:0.72rem;border-radius:0.5rem}
.btn-danger{background:none;color:#e74c3c;border:1px solid #e74c3c}
.btn-danger:active{background:#fef0ef}

/* ===== Home Screen ===== */
#screen-home{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:2rem 1.5rem;text-align:center;gap:1.2rem}
#screen-home .logo{font-size:3.5rem;margin-bottom:0.3rem}
#screen-home h1{font-size:1.5rem;color:var(--ink);letter-spacing:0.05em}
#screen-home .sub{font-size:0.82rem;color:var(--muted)}
#screen-home .input-wrap{width:100%;max-width:18rem}
#screen-home input{width:100%;padding:0.75rem 1rem;border:2px solid var(--rule);border-radius:var(--radius);font-size:1rem;text-align:center;font-family:inherit;outline:none;background:var(--card);transition:border-color .2s}
#screen-home input:focus{border-color:var(--accent)}
#screen-home .btn{width:100%;max-width:18rem;padding:0.75rem;font-size:1rem}
#screen-home .hint{font-size:0.75rem;color:var(--muted);margin-top:-0.3rem}

/* ===== Room Layout ===== */
/* 固定定位铺满视口：保证 room-top / 底部购物车栏在手机端始终可见，
   不受 100dvh 兼容性（地址栏伸缩、WebView）影响 */
#screen-room{position:fixed;inset:0;display:none;flex-direction:column;overflow:hidden}
#screen-room.show{display:flex}
.room-top{display:flex;align-items:center;gap:0.6rem;padding:0.5rem 0.8rem;background:var(--card);border-bottom:1px solid var(--rule);min-height:var(--nav-h);flex-shrink:0}
.room-top .rt-title{font-weight:700;font-size:0.95rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-top .rt-badge{font-size:0.7rem;background:var(--accent);color:#fff;padding:0.15rem 0.5rem;border-radius:99px;white-space:nowrap;flex-shrink:0}
.room-top .rt-btn{font-size:0.78rem;color:var(--accent);background:none;border:none;padding:0.3rem 0.5rem;border-radius:0.4rem;cursor:pointer;flex-shrink:0;font-family:inherit}
.room-top .rt-btn:active{background:#f5f3f0}

/* ===== Bottom Bar ===== */
.room-bottom{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.8rem;padding-bottom:calc(0.5rem + var(--safe-bottom));background:var(--card);border-top:1px solid var(--rule);min-height:var(--bar-h);flex-shrink:0;position:relative}
.room-bottom .bb-info{flex:1;min-width:0;font-size:0.8rem;display:flex;align-items:center;gap:0.3rem}
.room-bottom .bb-info .bb-count{font-weight:700;color:var(--accent);font-size:1.05rem}
.room-bottom .bb-info .bb-price{font-weight:700;color:var(--accent)}
.room-bottom .bb-cart-btn{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:1.1rem;cursor:pointer;flex-shrink:0;position:relative;font-family:inherit;transition:all .15s;display:flex;align-items:center;justify-content:center}
.room-bottom .bb-cart-btn:active{transform:scale(0.93)}
.room-bottom .bb-cart-badge{position:absolute;top:-4px;right:-4px;background:#e74c3c;color:#fff;font-size:0.6rem;min-width:1.1rem;height:1.1rem;border-radius:99px;display:flex;align-items:center;justify-content:center;font-weight:700;border:2px solid #fff}
.room-bottom .bb-done-btn{padding:0.5rem 1.2rem;border-radius:var(--radius);border:none;font-size:0.88rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s;flex-shrink:0}
.room-bottom .bb-done-btn:active{transform:scale(0.97)}
.room-bottom .bb-done-btn.enabled{background:var(--accent);color:#fff}
.room-bottom .bb-done-btn.disabled{background:#d5cfc7;color:#fff;pointer-events:none}
.room-bottom .bb-done-btn.done{background:var(--green);color:#fff}

/* ===== Tab Navigation ===== */
.tab-nav{display:flex;background:var(--card);border-bottom:1px solid var(--rule);flex-shrink:0}
.tab-nav .tn-item{flex:1;text-align:center;padding:0.55rem;font-size:0.8rem;color:var(--muted);border:none;background:none;cursor:pointer;font-family:inherit;border-bottom:2px solid transparent;transition:all .2s;position:relative}
.tab-nav .tn-item.active{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}
.tab-nav .tn-badge{position:absolute;top:2px;right:8px;background:#e74c3c;color:#fff;font-size:0.55rem;min-width:1rem;height:1rem;border-radius:99px;display:flex;align-items:center;justify-content:center;font-weight:700}

.tab-panel{display:none;flex:1;min-height:0;overflow:hidden}
.tab-panel.active{display:flex;flex-direction:column}

/* ===== Menu Panel ===== */
.menu-layout{display:flex;flex:1;min-height:0}
.cat-sidebar{width:4.8rem;min-width:4.8rem;background:var(--card);border-right:1px solid var(--rule);overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-shrink:0}
.cat-sidebar::-webkit-scrollbar{display:none}
.cat-tab{display:block;width:100%;padding:0.65rem 0.25rem;font-size:0.72rem;color:var(--muted);border:none;background:none;cursor:pointer;text-align:center;font-family:inherit;line-height:1.3;border-right:3px solid transparent;transition:all .15s}
.cat-tab.active{color:var(--accent);font-weight:700;border-right-color:var(--accent);background:#fdf2f0}
.cat-tab .cat-count{font-size:0.6rem;color:var(--accent);display:block;margin-top:0.1rem}
.menu-main{flex:1;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}

/* ===== Search ===== */
.search-wrap{padding:0.4rem 0.6rem;background:var(--card);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:2}
.search-wrap input{width:100%;padding:0.45rem 0.7rem;border:1.5px solid var(--rule);border-radius:99px;font-size:0.78rem;outline:none;font-family:inherit;background:var(--card2);transition:border-color .2s}
.search-wrap input:focus{border-color:var(--accent)}
.search-wrap input::placeholder{color:var(--muted)}
.search-results{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.4rem 0.6rem}
.sr-empty{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:0.82rem}
.sr-section{margin-bottom:0.6rem}
.sr-section .sr-cat{font-size:0.7rem;color:var(--muted);padding:0.3rem 0.2rem;font-weight:600}

/* ===== Close Room ===== */
.room-top .rt-close{font-size:0.72rem;color:var(--muted);background:none;border:1px solid var(--rule);padding:0.2rem 0.5rem;border-radius:0.4rem;cursor:pointer;flex-shrink:0;font-family:inherit;white-space:nowrap}
.room-top .rt-close:active{background:#f5f3f0}
.room-closed-banner{background:#fef9e7;color:#b7950b;text-align:center;padding:0.5rem 1rem;font-size:0.78rem;font-weight:600;border-bottom:1px solid #f9e79f;display:flex;align-items:center;justify-content:center;gap:0.5rem;flex-wrap:wrap}
.closed-unlock{font-weight:400;display:inline-flex;align-items:center;gap:0.3rem}
.closed-unlock input{width:3.5rem;padding:0.15rem 0.3rem;border:1px solid #d4a017;border-radius:3px;font-size:0.7rem;font-family:inherit;outline:none;background:#fff}
.closed-unlock input:focus{border-color:#b7950b}
.closed-unlock button{padding:0.15rem 0.5rem;font-size:0.7rem;background:#27ae60;color:#fff;border:none;border-radius:3px;cursor:pointer;font-family:inherit;white-space:nowrap}
.closed-unlock button:active{background:#1e8449}

/* ===== Name Edit ===== */
.room-top .rt-edit-name{font-size:0.75rem;color:var(--muted);background:none;border:none;cursor:pointer;padding:0.2rem;flex-shrink:0;font-family:inherit}
.room-top .rt-edit-name:active{color:var(--accent)}
.edit-name-wrap{display:none;align-items:center;gap:0.3rem;flex:1;min-width:0}
.edit-name-wrap.show{display:flex}
.edit-name-wrap input{flex:1;min-width:0;padding:0.3rem 0.5rem;border:1.5px solid var(--accent);border-radius:0.4rem;font-size:0.85rem;font-family:inherit;outline:none;background:var(--card)}
.edit-name-wrap .btn-sm{padding:0.3rem 0.6rem;font-size:0.7rem;flex-shrink:0}

/* ===== Cart Mini ===== */
.cart-mini{display:none;align-items:center;gap:0.5rem;padding:0.45rem 0.8rem;background:var(--card);border-bottom:1px solid var(--rule);flex-shrink:0}
.cart-mini.show{display:flex}
.cart-mini .cm-btn{display:inline-flex;align-items:center;gap:0.25rem;padding:0.3rem 0.7rem;border-radius:99px;border:none;font-size:0.75rem;font-weight:600;cursor:pointer;font-family:inherit;background:var(--accent);color:#fff;white-space:nowrap}
.cart-mini .cm-btn:active{transform:scale(0.97)}
.cart-mini .cm-summary{flex:1;font-size:0.75rem;text-align:right;color:var(--muted)}

/* ===== Copy Summary ===== */
.summary-actions{display:flex;gap:0.5rem;margin-bottom:0.6rem}
.summary-actions .btn{flex:1}

/* ===== Notes Banner ===== */
.notes-banner{font-size:0.68rem;color:var(--muted);padding:0.35rem 0.7rem;background:var(--card2);border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:0.3rem;position:sticky;top:0;z-index:1}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}

/* ===== Category Section ===== */
.cat-section{padding:0.6rem 0.6rem 0.2rem}
.cat-section .cs-header{display:flex;align-items:baseline;gap:0.4rem;padding:0.3rem 0.2rem 0.5rem;position:sticky;top:1.6rem;background:var(--bg);z-index:1}
.cs-header .cs-name{font-weight:800;font-size:0.88rem}
.cs-header .cs-note{font-size:0.62rem;color:var(--muted)}
.cs-header .cs-hr{flex:1;height:1px;background:var(--rule);min-width:1rem}

/* ===== Dish Card ===== */
.dish-card{display:flex;align-items:center;gap:0.5rem;padding:0.55rem 0.6rem;margin-bottom:0.4rem;background:var(--card);border-radius:0.6rem;border:1.5px solid transparent;transition:all .15s}
.dish-card:active{background:var(--card2)}
.dish-card.ordered{border-color:var(--accent);background:#fef9f7}
.dish-info{flex:1;min-width:0}
.dish-info .di-name{font-size:0.82rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dish-info .di-price{font-size:0.7rem;color:var(--accent);font-weight:700}
.dish-info .di-meta{font-size:0.62rem;color:var(--muted)}
.qty-ctrl{display:flex;align-items:center;gap:0.3rem;flex-shrink:0}
.qty-btn{width:1.8rem;height:1.8rem;border-radius:50%;border:1.5px solid var(--rule);background:var(--card);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:all .12s;font-family:inherit;line-height:1}
.qty-btn:active{background:#f0ece6;border-color:var(--accent)}
.qty-num{font-size:0.9rem;font-weight:700;min-width:1.2rem;text-align:center;color:var(--accent)}

/* ===== Empty Tip ===== */
.empty-tip{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:0.82rem}

/* ===== Shared Orders ===== */
#panel-shared{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.5rem 0.6rem calc(var(--bar-h) + var(--safe-bottom) + 0.5rem)}
.shared-user{margin-bottom:0.8rem}
.shared-user .su-header{display:flex;align-items:center;gap:0.4rem;padding:0.5rem 0.6rem;background:var(--card);border-radius:var(--radius) var(--radius) 0 0;border-bottom:1px solid var(--rule)}
.su-header .su-avatar{width:1.8rem;height:1.8rem;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:700;flex-shrink:0}
.su-header .su-avatar.me{background:var(--accent)}
.su-header .su-avatar.other{background:var(--muted)}
.su-header .su-avatar.done{background:var(--green)}
.su-header .su-name{font-weight:700;font-size:0.85rem;flex:1}
.su-header .su-total{font-size:0.78rem;color:var(--accent);font-weight:700}
.su-header .su-done{font-size:0.65rem;background:var(--green);color:#fff;padding:0.1rem 0.5rem;border-radius:99px;white-space:nowrap}
.shared-user .su-items{background:var(--card);border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.su-item{display:flex;justify-content:space-between;align-items:center;padding:0.45rem 0.7rem;font-size:0.8rem;border-bottom:1px solid var(--card2)}
.su-item:last-child{border-bottom:none}
.su-item .sui-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.su-item .sui-qty{color:var(--accent);font-weight:600;margin:0 0.4rem;white-space:nowrap}
.su-item .sui-sub{color:var(--muted);font-size:0.72rem;white-space:nowrap}

/* ===== Summary ===== */
#panel-summary{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.5rem 0.6rem calc(var(--bar-h) + var(--safe-bottom) + 0.5rem)}
.summary-card{background:var(--card);border-radius:var(--radius);padding:0.8rem 0.6rem;margin-bottom:0.6rem}
.summary-card .sc-title{font-weight:800;font-size:0.85rem;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.3rem}
.summary-card .sc-title .sc-icon{font-size:1rem}
.summary-row{display:flex;justify-content:space-between;align-items:center;padding:0.4rem 0;border-bottom:1px solid var(--card2);font-size:0.8rem}
.summary-row:last-child{border-bottom:none}
.summary-row .sr-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.summary-row .sr-users{font-size:0.65rem;color:var(--muted);margin-left:0.4rem;white-space:nowrap}
.summary-row .sr-right{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
.summary-row .sr-qty{font-weight:700;color:var(--accent)}
.summary-row .sr-sub{font-weight:600;min-width:3rem;text-align:right}
.summary-total{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0.8rem;background:var(--card);border-radius:var(--radius);font-size:0.9rem;font-weight:800}
.summary-total .st-price{color:var(--accent);font-size:1.1rem}
.summary-status{display:flex;flex-wrap:wrap;gap:0.3rem;margin-bottom:0.6rem}
.summary-status .ss-tag{font-size:0.68rem;padding:0.2rem 0.5rem;border-radius:99px;display:flex;align-items:center;gap:0.2rem}
.summary-status .ss-tag.done{background:#eafaf1;color:var(--green)}
.summary-status .ss-tag.pending{background:#fef9e7;color:#b7950b}

/* ===== Cart Drawer ===== */
.cart-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4);z-index:100;display:none}
.cart-overlay.show{display:block}
.cart-drawer{position:fixed;bottom:0;left:0;width:100%;max-height:70vh;background:var(--card);border-radius:var(--radius) var(--radius) 0 0;z-index:101;transform:translateY(100%);transition:transform .25s ease;display:flex;flex-direction:column;padding-bottom:var(--safe-bottom)}
.cart-drawer.show{transform:translateY(0)}
.cart-drawer .cd-header{display:flex;align-items:center;justify-content:space-between;padding:0.8rem 1rem;border-bottom:1px solid var(--rule);flex-shrink:0}
.cd-header .cd-title{font-weight:800;font-size:0.95rem}
.cd-header .cd-clear{font-size:0.72rem;color:#e74c3c;background:none;border:none;cursor:pointer;font-family:inherit;padding:0.3rem 0.5rem}
.cart-drawer .cd-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.5rem 0}
.cd-item{display:flex;align-items:center;gap:0.5rem;padding:0.55rem 1rem;border-bottom:1px solid var(--card2)}
.cd-item .cdi-name{flex:1;min-width:0;font-size:0.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-item .cdi-price{font-size:0.7rem;color:var(--muted)}
.cd-item .cdi-qty-ctrl{display:flex;align-items:center;gap:0.25rem}
.cd-item .cdi-qty-btn{width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid var(--rule);background:var(--card);font-size:0.95rem;display:flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;line-height:1;color:var(--ink)}
.cd-item .cdi-qty-btn:active{background:#f0ece6}
.cd-item .cdi-qty-num{font-size:0.85rem;font-weight:700;min-width:1.2rem;text-align:center}
.cd-item .cdi-del{color:#ccc;background:none;border:none;font-size:1.1rem;cursor:pointer;padding:0.2rem;font-family:inherit;line-height:1}
.cd-item .cdi-del:active{color:#e74c3c}
.cart-drawer .cd-footer{padding:0.8rem 1rem;border-top:1px solid var(--rule);flex-shrink:0}
.cd-footer .cd-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.6rem;font-size:0.85rem}
.cd-footer .cd-total .cdt-price{font-weight:800;color:var(--accent);font-size:1rem}

/* ===== Modal ===== */
.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4);z-index:110;display:none;align-items:center;justify-content:center;padding:1.5rem}
.modal-overlay.show{display:flex}
.modal-box{background:var(--card);border-radius:var(--radius);max-width:20rem;width:100%;overflow:hidden;animation:modalIn .2s ease}
@keyframes modalIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}

/* ===== Loading ===== */
.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(245,243,240,0.85);z-index:200;display:none;align-items:center;justify-content:center;flex-direction:column;gap:0.8rem}
.loading-overlay.show{display:flex}
.spinner{width:2rem;height:2rem;border:3px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-size:0.82rem;color:var(--muted)}

/* ===== Toast ===== */
.toast{position:fixed;bottom:5rem;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:0.5rem 1rem;border-radius:99px;font-size:0.8rem;z-index:150;opacity:0;pointer-events:none;transition:opacity .25s}
.toast.show{opacity:1}

/* ===== Confirm Dialog ===== */
.confirm-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.4);z-index:110;display:none;align-items:center;justify-content:center;padding:1.5rem}
.confirm-overlay.show{display:flex}
.confirm-box{background:var(--card);border-radius:var(--radius);max-width:18rem;width:100%;padding:1.2rem;text-align:center;animation:modalIn .2s ease}
.confirm-box .cf-msg{font-size:0.85rem;margin-bottom:1rem;line-height:1.5}
.confirm-box .cf-btns{display:flex;gap:0.5rem}
.confirm-box .cf-btns button{flex:1}

/* ===== History ===== */
#panel-history{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0.5rem 0.6rem calc(var(--bar-h) + var(--safe-bottom) + 0.5rem)}
.history-card{background:var(--card);border-radius:var(--radius);padding:0.7rem 0.8rem;margin-bottom:0.5rem;cursor:pointer;transition:all .15s;border:1.5px solid transparent}
.history-card:active{background:var(--card2)}
.history-card.today{border-color:var(--accent);background:#fef9f7}
.history-card .hc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.35rem}
.history-card .hc-date{font-weight:700;font-size:0.85rem;display:flex;align-items:center;gap:0.3rem}
.history-card .hc-badge{font-size:0.6rem;background:var(--accent);color:#fff;padding:0.1rem 0.4rem;border-radius:99px}
.history-card .hc-meta{display:flex;gap:1rem;font-size:0.7rem;color:var(--muted)}
.history-card .hc-meta span{display:flex;align-items:center;gap:0.2rem}
.history-card .hc-total{font-weight:700;color:var(--accent);font-size:0.82rem}
.history-card .hc-detail{display:none;margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--rule)}
.history-card .hc-detail.show{display:block}
.history-card .hc-dish{display:flex;justify-content:space-between;font-size:0.72rem;padding:0.2rem 0;color:var(--muted)}
.history-card .hc-dish .hcd-qty{color:var(--accent);font-weight:600}
.history-card .hc-dish .hcd-sub{min-width:2.8rem;text-align:right}
.history-stats{background:var(--card);border-radius:var(--radius);padding:0.8rem;margin-bottom:0.6rem;display:flex;justify-content:space-around;text-align:center}
.history-stats .hs-item{flex:1}
.history-stats .hs-val{font-size:1.3rem;font-weight:800;color:var(--accent)}
.history-stats .hs-label{font-size:0.65rem;color:var(--muted);margin-top:0.1rem}

/* ===== 管理员面板 ===== */
.admin-section{margin-top:0.8rem;border-top:2px solid var(--accent);background:var(--card);border-radius:var(--radius);overflow:hidden}
.admin-toggle{display:flex;align-items:center;justify-content:space-between;padding:0.7rem 0.9rem;cursor:pointer;font-size:0.82rem;font-weight:700;color:var(--ink);user-select:none}
.admin-toggle:active{background:var(--card2)}
.admin-toggle span:last-child{font-size:0.65rem;transition:transform .2s}
.admin-body{padding:0 0.7rem 0.7rem}
.admin-gate{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.5rem}
.admin-gate input{flex:1;min-width:0;padding:0.45rem 0.6rem;border:1.5px solid var(--rule);border-radius:0.4rem;font-size:0.78rem;font-family:inherit;outline:none;background:var(--card)}
.admin-gate input:focus{border-color:var(--accent)}
.admin-error{font-size:0.72rem;color:#e74c3c;white-space:nowrap}
.admin-card{background:var(--card2);border-radius:0.5rem;padding:0.6rem 0.7rem;margin-bottom:0.5rem}
.admin-card .ac-title{font-weight:700;font-size:0.78rem;margin-bottom:0.4rem;display:flex;align-items:center;gap:0.3rem}
.admin-card .ac-stat{display:flex;justify-content:space-between;padding:0.25rem 0;font-size:0.72rem;border-bottom:1px solid var(--rule)}
.admin-card .ac-stat:last-child{border-bottom:none}
.admin-card .ac-stat .acs-val{font-weight:700;color:var(--accent)}
.admin-card .ac-stat .acs-label{color:var(--muted)}
.admin-card .ac-btn-row{display:flex;gap:0.4rem;margin-top:0.5rem;flex-wrap:wrap}
.admin-card .ac-btn-row .btn{font-size:0.68rem;padding:0.3rem 0.55rem}
.admin-user-block{margin-bottom:0.5rem;padding:0.5rem;background:var(--card);border-radius:0.4rem;border:1px solid var(--rule)}
.admin-user-block .aub-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.3rem;font-size:0.75rem;font-weight:700}
.admin-user-block .aub-item{display:flex;justify-content:space-between;font-size:0.7rem;padding:0.15rem 0;color:var(--muted)}
.admin-room-row{display:flex;align-items:center;justify-content:space-between;padding:0.4rem 0;border-bottom:1px solid var(--rule);font-size:0.72rem}
.admin-room-row:last-child{border-bottom:none}
.admin-room-row .arr-left{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-room-row .arr-right{display:flex;align-items:center;gap:0.4rem;flex-shrink:0}
.admin-room-row .arr-status{font-size:0.62rem;padding:0.1rem 0.35rem;border-radius:99px;white-space:nowrap}
.admin-room-row .arr-status.active{background:#eafaf1;color:var(--green)}
.admin-room-row .arr-status.closed{background:#fef0ef;color:#e74c3c}
.admin-room-row .arr-delete{color:#ccc;cursor:pointer;font-size:0.85rem;padding:0.1rem 0.3rem;background:none;border:none;font-family:inherit}
.admin-room-row .arr-delete:hover{color:#e74c3c}
.admin-room-row .arr-price{font-weight:700;color:var(--accent);font-size:0.75rem}
.history-card.admin-mode{position:relative;padding-right:2.2rem}
.history-card .hc-admin-del{position:absolute;top:0.5rem;right:0.5rem;color:#ccc;cursor:pointer;font-size:0.9rem;background:none;border:none;padding:0.2rem 0.4rem;font-family:inherit;display:none}
.history-card .hc-admin-del.show{display:block}
.history-card .hc-admin-del:active{color:#e74c3c}

/* ===== 首页版本号 & 跳转链接 ===== */
.home-links{display:flex;gap:0.5rem;margin-top:-0.3rem;flex-wrap:wrap;justify-content:center}
.home-link{font-size:0.75rem;color:var(--accent);text-decoration:none;padding:0.25rem 0.65rem;border:1.5px solid var(--rule);border-radius:99px;background:var(--card);transition:all .15s}
.home-link:active{background:#fdf2f0;border-color:var(--accent)}
.ver-tag{font-size:0.68rem;color:var(--muted);margin-top:-0.3rem}
.ver-foot{font-size:0.65rem;color:var(--muted);text-align:center;padding:0.9rem 0 0.3rem;margin-top:0.6rem;border-top:1px dashed var(--rule)}
.ver-foot .vt-warn{color:#e67e22;font-weight:700}
