:root{
  --bg:#f5f5f5;--card:#fff;--text:#333;--text-sub:#666;--text-meta:#888;
  --border:#ddd;--border-soft:#eee;--input-bg:#fff;--btn-bg:#333;--btn-hover:#555;
  --btn-text:#fff;--nav-bg:#fff;--nav-text:#555;--nav-border:#ddd;--hover:#fafafa;
  --item-bg:#f7f9ff;--icon-color:#666;
}
body.overcast{
  --bg:#d5d5d5;--card:#e8e8e8;--text:#3a3a3a;--text-sub:#5a5a5a;--text-meta:#777;
  --border:#b8b8b8;--border-soft:#c8c8c8;--input-bg:#f0f0f0;--btn-bg:#5a5a5a;
  --btn-hover:#6a6a6a;--nav-bg:#e8e8e8;--nav-text:#555;--nav-border:#b8b8b8;
  --hover:#e0e0e0;--item-bg:#d8dde3;--icon-color:#888;
}
body.dark{
  --bg:#121212;--card:#1e1e1e;--text:#e0e0e0;--text-sub:#aaa;--text-meta:#888;
  --border:#3a3a3a;--border-soft:#2c2c2c;--input-bg:#2a2a2a;--btn-bg:#444;
  --btn-hover:#555;--nav-bg:#1e1e1e;--nav-text:#ccc;--nav-border:#3a3a3a;
  --hover:#2a2a2a;--item-bg:#2a3344;--icon-color:#aaa;
}
body{font-family:sans-serif;max-width:600px;margin:0 auto;padding:20px 20px 100px;background:var(--bg);color:var(--text);transition:background .3s,color .3s}
.card{background:var(--card);border-radius:12px;padding:20px;margin:16px 0;box-shadow:0 2px 8px rgba(0,0,0,.08)}
textarea,input{width:100%;padding:10px;margin:6px 0;border:1px solid var(--border);border-radius:8px;font-size:16px;box-sizing:border-box;background:var(--input-bg);color:var(--text)}
textarea{height:100px}
button{padding:10px 20px;margin:4px;border:none;border-radius:8px;font-size:16px;background:var(--btn-bg);color:var(--btn-text);cursor:pointer}
button:hover{background:var(--btn-hover)}

/* 手机号 + 验证码一行（通用模板：注册与忘记密码共用） */
.phone-row{display:flex;gap:8px;align-items:center}
.phone-row input{flex:1;min-width:0;margin:6px 0}
.phone-row button{flex:0 0 auto;margin:6px 0;padding:10px 12px;font-size:14px;white-space:nowrap}
.phone-row button:disabled{background:var(--border);color:var(--text-meta);cursor:not-allowed}
.hidden{display:none!important}
.topbar{display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-size:14px;color:var(--text-sub)}
.topbar-row{display:flex;align-items:center;gap:8px}
.topbar .theme-btn{background:transparent;border:1px solid var(--border);color:var(--icon-color);padding:6px 12px;font-size:20px;line-height:1;border-radius:10px;margin:0;cursor:pointer}
.topbar .theme-btn:hover{background:var(--hover)}
.topbar .logout-btn{background:transparent;border:1px solid var(--border);color:var(--text-sub);padding:8px 20px;font-size:14px;border-radius:10px;margin:0;cursor:pointer}
.topbar .logout-btn:hover{background:var(--hover);color:var(--text)}
h1{text-align:center;font-weight:300;letter-spacing:2px}
h3{font-weight:400;margin-top:0;color:var(--text)}
img{max-width:100%;border-radius:8px}

.bottomNav{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:12px;z-index:900;width:33.33%}
.bottomNav button{flex:1;padding:14px 0;background:var(--nav-bg);color:var(--nav-text);border:1px solid var(--nav-border);border-radius:24px;box-shadow:0 2px 8px rgba(0,0,0,.08);font-size:14px;font-weight:500;transition:all .3s;margin:0;position:relative}
.bottomNav button:hover{background:var(--hover)}
#navPrecious.active{background:linear-gradient(135deg,#f7c948,#d4a017);color:#fff;border-color:#d4a017}
#navMyPrecious.active{background:linear-gradient(135deg,#8b6bb1,#5a3ea8);color:#fff;border-color:#5a3ea8}
.nav-dot{position:absolute;top:6px;right:8px;background:#e33;color:#fff;font-size:11px;font-weight:bold;min-width:16px;height:16px;border-radius:8px;padding:0 4px;line-height:16px;text-align:center;box-sizing:border-box}
.nav-dot-empty{display:none}

.bottleItem{border-bottom:1px solid var(--border-soft);padding:12px 0;cursor:pointer;color:var(--text)}
.bottleItem:hover{background:var(--hover)}
.bottleItem:last-child{border-bottom:none}
.bottleItem .meta{color:var(--text-meta);font-size:13px;margin-top:6px}
.bottleItem.gone-item{opacity:.4}
.alive{color:#2a7}
.gone{color:var(--text-meta);text-decoration:line-through}
.removed{color:#c33;text-decoration:line-through}
.medal{display:inline-block;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500}
.flower-badge{background:#ffe0ec;color:#c2417a}
.star-badge{background:#fff3c4;color:#b8860b}
.grabber-badge{background:#e8dcff;color:#6a3eb8}
.medal-inline{color:var(--text-meta);font-size:13px;font-weight:normal;margin-left:6px}
.mine-header{display:flex;align-items:center;gap:12px}
.mine-header .name{font-weight:bold;font-size:16px}
.mine-badges{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}

.mine-actions{display:flex;gap:8px;margin-top:14px}
.mine-actions button{flex:1;padding:10px 0;font-size:13px;margin:0;background:var(--hover);color:var(--text);border:1px solid var(--border-soft);border-radius:8px;font-weight:400}
.mine-actions button:hover{background:var(--item-bg)}

.mine-sub-actions{display:flex;gap:8px;margin-top:8px;font-size:12px}
.mine-sub-actions button{flex:1;padding:6px 0;font-size:12px;margin:0;background:transparent;color:var(--text-meta);border:1px dashed var(--border-soft);border-radius:6px;font-weight:400}
.mine-sub-actions button:hover{background:var(--hover);color:var(--text)}
.mine-sub-actions button.danger:hover{color:#c33;border-color:#c33}

.admin-badge{background:#ffe0ec;color:#c2417a;font-size:11px;padding:2px 8px;border-radius:10px;margin-left:6px;font-weight:normal}

.modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);align-items:center;justify-content:center}
.modal>div{background:var(--card);color:var(--text);border-radius:16px;padding:24px;max-width:400px;width:90%;max-height:80vh;overflow-y:auto}
.modal.wide>div{max-width:560px}
#viewer{background:rgba(0,0,0,.95);cursor:zoom-out}
#viewer img{max-width:95%;max-height:95%;margin:0}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.modal>div{animation:slideUp .3s}

#rankHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
#sortTypeBtn{padding:6px 14px;background:var(--hover);color:var(--text);font-size:14px;border-radius:20px;margin:0;display:flex;align-items:center;gap:4px;border:1px solid var(--border-soft)}
#sortOrderBtn{padding:6px 14px;background:var(--hover);color:var(--text);font-size:14px;border-radius:20px;margin:0;min-width:38px;text-align:center;border:1px solid var(--border-soft)}

#notifCard{padding:14px 16px}
#notifCard h3{font-size:15px;margin-bottom:8px}
.notif-scroll{max-height:220px;overflow-y:auto;margin:0 -4px;padding:0 4px}
.notif-item{padding:8px 0 8px 14px;line-height:1.4;position:relative;font-size:14px;border-bottom:1px solid var(--border-soft)}
.notif-item:last-child{border-bottom:none}
.notif-item::before{content:'';position:absolute;left:2px;top:14px;width:5px;height:5px;border-radius:50%;background:transparent}
.notif-item.unread::before{background:#e33}
.notif-item.unread{font-weight:500}
.notif-item .time{color:var(--text-meta);font-size:11px;margin-top:2px;font-weight:normal}
.notif-empty{color:var(--text-meta);text-align:center;padding:14px 0;font-size:13px}
.notif-actions{margin-top:10px;display:flex;gap:6px}
.notif-actions button{flex:1;padding:6px 0;font-size:13px;margin:0;border-radius:6px}

.envelope{cursor:pointer;padding:16px;text-align:center}
.envelope-hint{color:var(--text-meta);font-size:13px;margin-top:12px}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:50%;width:36px;height:36px;padding:0;font-size:20px;line-height:1;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}
.gallery-arrow:hover{background:rgba(0,0,0,.7)}

.avatar-wrap{display:inline-block;border-radius:50%;vertical-align:middle;transition:all .3s;box-sizing:border-box}
.avatar-wrap.sm{padding:2px}
.avatar-wrap.lg{padding:3px}
.avatar-wrap img,.avatar-wrap .placeholder{display:block;border-radius:50%;object-fit:cover}
.avatar-wrap.sm img,.avatar-wrap.sm .placeholder{width:28px;height:28px}
.avatar-wrap.lg img,.avatar-wrap.lg .placeholder{width:50px;height:50px}
.avatar-wrap .placeholder{background:#88888844}
.avatar-wrap.none{background:transparent;padding:2px}
.avatar-wrap.ripple{background:linear-gradient(135deg,#a8d8ea,#d0e8f2)}
.avatar-wrap.tide{background:linear-gradient(135deg,#4a90a4,#7ec8b8)}
.avatar-wrap.star{background:linear-gradient(135deg,#5a3ea8,#2d1b69)}
.avatar-wrap.shore{background:linear-gradient(135deg,#f7c948,#d4a017)}
.avatar-wrap.stargazer{background:linear-gradient(135deg,#b87fc9,#e8a4d0)}
.avatar-wrap.aurora{background:conic-gradient(from 0deg,#ff9a9e,#fad0c4,#a1c4fd,#c2e9fb,#a1c4fd,#fad0c4,#ff9a9e)}

.frame-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:8px 0}
.frame-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:10px;cursor:pointer;border:2px solid transparent;transition:all .2s}
.frame-item:hover{background:var(--hover)}
.frame-item.current{border-color:var(--btn-bg);background:var(--item-bg)}
.frame-name{font-size:12px;color:var(--text-meta)}
.frame-item.current .frame-name{color:var(--text);font-weight:500}

.reason-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.reason-item{padding:10px 12px;border:1px solid var(--border-soft);border-radius:8px;cursor:pointer;font-size:14px;transition:all .2s}
.reason-item:hover{background:var(--hover)}
.reason-item.selected{border-color:var(--btn-bg);background:var(--item-bg);font-weight:500}

.admin-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid var(--border-soft);padding-bottom:0}
.admin-tab{flex:1;padding:8px 0;background:transparent;color:var(--text-sub);border:none;border-bottom:2px solid transparent;border-radius:0;font-size:14px;margin:0;font-weight:400}
.admin-tab.active{color:var(--text);border-bottom-color:var(--btn-bg);font-weight:500}
.admin-tab:hover{background:var(--hover)}
.admin-list{max-height:60vh;overflow-y:auto}
.admin-item{padding:10px 0;border-bottom:1px solid var(--border-soft);font-size:13px;line-height:1.5}
.admin-item:last-child{border-bottom:none}
.admin-item .meta{color:var(--text-meta);font-size:12px;margin-top:4px}
.admin-item .actions{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.admin-item .actions button{padding:4px 10px;font-size:12px;margin:0}
.admin-empty{color:var(--text-meta);text-align:center;padding:20px 0;font-size:13px}

/* ֪ͨ     */
#notifPopupModal>div{border-top:4px solid #5a3ea8}
#notifPopupModal .tag-broadcast{color:#5a3ea8}
#notifPopupModal .tag-warning{color:#c2417a}
#notifPopupModal .tag-removed{color:#c33}

/*     ʾ toast */
#toastContainer{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{background:rgba(0,0,0,.85);color:#fff;padding:10px 20px;border-radius:24px;font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,.2);opacity:0;transform:translateY(-10px);transition:opacity .3s,transform .3s;max-width:80vw;text-align:center}
.toast.show{opacity:1;transform:translateY(0)}
.toast.toast-error{background:rgba(180,40,40,.9)}
.toast.toast-success{background:rgba(40,140,90,.9)}

/*  ҵ ƿ   tab */
.my-tabs{display:flex;gap:6px;margin-bottom:12px;border-bottom:1px solid var(--border-soft)}
.my-tab{flex:1;padding:8px 0;background:transparent;color:var(--text-sub);border:none;border-bottom:2px solid transparent;border-radius:0;font-size:14px;margin:0;font-weight:400}
.my-tab.active{color:var(--text);border-bottom-color:var(--btn-bg);font-weight:500}
.my-tab:hover{background:var(--hover)}

/*        */
.loading{color:var(--text-meta);text-align:center;padding:20px 0;font-size:13px}

/*  ϴ ״̬ */
#postStatus{transition:color .2s}

.pwd-hint{font-size:12px;color:var(--text-meta);margin:-2px 0 8px;line-height:1.4}

.notif-tabs{display:flex;gap:6px;margin:10px 0 8px;border-bottom:1px solid var(--border-soft)}
.notif-tab{flex:1;padding:6px 0;background:transparent;color:var(--text-sub);border:none;border-bottom:2px solid transparent;border-radius:0;font-size:13px;margin:0;font-weight:400}
.notif-tab.active{color:var(--text);border-bottom-color:var(--btn-bg);font-weight:500}
.notif-tab:hover{background:var(--hover)}

/*   ¼/ע Ტ Ű ť */
.auth-btns{display:flex;gap:8px;margin-top:12px}
.auth-btn{flex:1;padding:10px 0;background:var(--hover);color:var(--text-sub);border:1px solid var(--border-soft);border-radius:8px;font-size:15px;margin:0;font-weight:400}
.auth-btn:hover{background:var(--item-bg)}
.auth-btn.active{background:var(--btn-bg);color:var(--btn-text);border-color:var(--btn-bg);font-weight:500}

/*    ڰ ť       Σ          */
.about-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--border);color:var(--text-sub);border-radius:10px;font-size:11px;line-height:1.2;margin:0;cursor:pointer}
.about-btn:hover{background:var(--hover);color:var(--text)}
.about-btn span{display:block}

/*   ¼  Ƭ  խһ 㡢  һ   */
#authArea .card{max-width:369px;margin-left:auto;margin-right:auto;padding:28px 24px}
#authArea input{padding:14px 12px;font-size:16px;margin:10px 0}
#authArea .auth-btns{margin-top:20px}
#authArea .auth-btn{padding:12px 0}

/* logo              */

/*   ¼  Ƭ         */

/*   ¼  Ƭ   ƣ logo         */

/*  ƶ        */
/*  ҵ ҳ 棺ͷ   ǳ  */
.mine-profile{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.mine-profile .name{font-weight:500;font-size:16px}
.mine-info{display:none;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-meta);margin-bottom:10px}
.admin-label{color:#c2417a;font-weight:500}

/*  ƶ        */
@media (max-width: 600px) {
  body {
    padding: 12px 12px 80px;
    font-size: 15px;
    overflow-x: hidden;
  }
  h1 {
    font-size: 22px;
    margin: 10px 0;
  }
  .card {
    padding: 16px;
    margin: 12px 0;
    border-radius: 10px;
  }
  textarea, input {
    font-size: 15px;
    padding: 10px;
  }
  button {
    font-size: 15px;
    padding: 10px 16px;
  }
  .topbar {
    align-items: stretch;
  }
  .topbar-row {
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
  }
  .topbar .logout-btn {
    padding: 8px 14px;
    font-size: 13px;
  }
  .about-btn {
    width: 40px;
    height: 40px;
    font-size: 10px;
  }
  /*  ײ      ̶  */
  .bottomNav {
    position: fixed;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: 86%;
    gap: 8px;
    z-index: 900;
  }
  .bottomNav button {
    padding: 12px 0;
    font-size: 13px;
  }
  /*   ¼  Ƭ */
  #authArea .card {
    max-width: 100%;
    margin-top: 0;
    padding: 24px 20px;
  }
  #authArea input {
    padding: 14px 12px;
    font-size: 16px;
  }
  #authArea .auth-btn {
    padding: 14px 0;
    font-size: 15px;
  }
  /*      */
  .modal > div {
    max-width: 92%;
    padding: 20px;
  }
  /* tab */
  .my-tab, .notif-tab, .admin-tab {
    font-size: 13px;
    padding: 10px 0;
  }
  .mine-actions button {
    font-size: 13px;
    padding: 10px 0;
  }
  .mine-sub-actions {
    flex-wrap: wrap;
  }
  .mine-sub-actions button {
    flex: 1 1 30%;
    font-size: 12px;
  }
}

/*  ҵ ҳ 棺    Ա/ѫ  С   */
.mine-info{display:none;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--text-meta);min-height:0;margin-bottom:10px}
.admin-label{color:#c2417a;font-weight:500}

/*  ƶ  ˶             ť   ţ          */
@media (max-width: 600px) {
  .topbar .logout-btn {
    width: auto;
    padding: 8px 14px;
    font-size: 13px;
  }
}
#authArea{padding-top:120px}
#authArea .card{margin-bottom:200px}
#authArea .card{margin-top:-40px}

/* 手机端：去掉电脑端的大间距，底部 tab 已默认固定 */
@media (max-width: 600px) {
  #authArea{padding-top:0}
  #authArea .card{margin-bottom:0;margin-top:0;max-width:100%}
  #authArea input{padding:14px 12px;font-size:16px}
  #authArea .auth-btn{padding:14px 0;font-size:15px}
  .bottomNav{width:80%}
}

/* 移动端：底栏和内容留足空间 */
@media (max-width: 600px) {
  body {
    padding-bottom: 140px;
  }
  .bottomNav {
    background: var(--bg);
    padding: 8px 6px;
    border-radius: 28px;
    box-shadow: 0 -2px 12px rgba(0,0,0,.08);
  }
  .bottomNav button {
    background: var(--card);
    border: 1px solid var(--border);
  }
}

/* ===== 我的页面：折叠菜单 ===== */
.toggle-btn{position:relative}
.toggle-btn .arrow{display:inline-block;transition:transform .2s;font-size:12px;opacity:.6;margin-left:2px}
.toggle-btn.open .arrow{transform:rotate(180deg)}
.mine-group{display:flex;gap:8px;margin-top:8px;font-size:12px}
.mine-group button{flex:1;padding:8px 0;font-size:12px;margin:0;background:transparent;color:var(--text-sub);border:1px solid var(--border-soft);border-radius:6px;font-weight:400}
.mine-group button:hover{background:var(--hover);color:var(--text)}
.mine-group button.danger:hover{color:#c33;border-color:#c33}

/* ===== 备案信息（法律规定须展示，勿隐藏）===== */
.site-footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border-soft);text-align:center;font-size:12px;line-height:1.8;color:var(--text-sub)}
.site-footer a{color:var(--text-sub);text-decoration:none;transition:color .2s}
.site-footer a:hover{color:var(--text);text-decoration:underline}