:root{
  --cream:#fff8fb; --pink:#ffd9e8; --pink-deep:#e0568c; --pink-soft:#fff2f8;
  --ink:#5b3a48; --ink-soft:#9a7d89; --ink-faint:#c0a5b0;
  --card:#ffffff; --mint:#d9f6ef; --lilac:#ece6ff; --butter:#fff3d6;
  --line:#ffe1ee; --shadow:0 10px 30px rgba(214,131,166,.16);
  --radius:20px; --radius-sm:13px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(900px 500px at 12% -8%, #fff0f7 0%, rgba(255,240,247,0) 60%),
    radial-gradient(800px 500px at 92% 4%, #f2ecff 0%, rgba(242,236,255,0) 55%),
    var(--cream);
  color:var(--ink);
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15.5px; line-height:1.75; min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--pink-deep);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:8px;border-radius:8px;z-index:99}

/* ---------------------------------------------------------- 顶栏 */
.topbar{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;
  padding:11px 20px;background:rgba(255,248,251,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:baseline;gap:2px;font-weight:800;font-size:17px;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-mark{color:var(--pink-deep);display:inline-block;animation:blink 7.3s infinite}
@keyframes blink{0%,92%{transform:scaleY(1)}94%{transform:scaleY(.06)}96%{transform:scaleY(1)}100%{transform:scaleY(1)}}
.brand-tail{color:var(--pink-deep)}
.nav{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nav-a{padding:6px 12px;border-radius:999px;color:var(--ink);font-size:14.5px}
.nav-a:hover{background:var(--pink-soft);text-decoration:none}
.nav-active{background:var(--pink);color:#fff}
.nav-active:hover{background:var(--pink)}
.nav-cta{background:var(--pink-deep);color:#fff}
.nav-cta:hover{background:#d24b80;color:#fff}
.nav-quiet{color:var(--ink-soft);font-size:13.5px}
.nav-me{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--ink)}
.nav-me:hover{text-decoration:none}
.burger{display:none;margin-left:auto;font-size:20px;background:none;border:0;color:var(--ink);cursor:pointer}
.dot{background:var(--pink-deep);color:#fff;border-radius:999px;font-size:11px;padding:0 5px;font-style:normal;margin-left:5px}
.ticker{overflow:hidden;height:26px;background:#fff;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink-faint)}
.ticker-in{padding:2px 20px;white-space:nowrap;animation:slide 26s linear infinite;letter-spacing:.4px}
@keyframes slide{0%{transform:translateX(6%)}92%{transform:translateX(-58%)}92.4%{transform:translateX(-57%)}100%{transform:translateX(-58%)}}

/* ---------------------------------------------------------- 容器 */
.wrap{max-width:880px;margin:0 auto;padding:22px 18px 60px}
.wrap-narrow{max-width:560px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow);margin-bottom:18px}
.card-tight{padding:14px 16px}
.card-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.card-head h2,.card-head h3{margin:0;font-size:17px}
.card-sub{color:var(--ink-soft);font-size:13.5px;margin:2px 0 0}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row-end{justify-content:flex-end}
.spread{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.muted{color:var(--ink-soft);font-size:13.5px}
.faint{color:var(--ink-faint);font-size:12.5px}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace}
.center{text-align:center}
.mt{margin-top:14px}
.mb{margin-bottom:14px}
hr.sep{border:0;border-top:1px dashed var(--line);margin:16px 0}

/* ---------------------------------------------------------- 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:9px 18px;border-radius:999px;border:1.5px solid var(--line);background:#fff;
  color:var(--ink);font-size:14.5px;cursor:pointer;font-family:inherit;line-height:1.2;
  transition:transform .12s ease, box-shadow .12s ease}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 16px rgba(214,131,166,.18)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}
.btn-primary:hover{background:#d24b80}
.btn-ghost{background:var(--pink-soft);border-color:transparent}
.btn-danger{background:#fff0f2;border-color:#ffd0d8;color:#c0392b}
.btn-sm{padding:5px 12px;font-size:13px}
.btn-block{width:100%}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

/* ---------------------------------------------------------- 表单 */
.field{margin-bottom:14px}
.label{display:block;font-size:13.5px;color:var(--ink-soft);margin-bottom:6px}
.input,.textarea,.select{
  width:100%;padding:11px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--line);
  background:#fff;font-family:inherit;font-size:15px;color:var(--ink);outline:none}
.input:focus,.textarea:focus,.select:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,217,232,.5)}
.textarea{min-height:120px;resize:vertical;line-height:1.7}
.hint{font-size:12.5px;color:var(--ink-faint);margin-top:5px}
.checkline{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft)}
input[type=checkbox],input[type=radio]{accent-color:var(--pink-deep)}
.code-input{letter-spacing:9px;font-size:21px;text-align:center;font-weight:700}
.tabbar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{padding:7px 15px;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-size:14px;color:var(--ink)}
.tab:hover{text-decoration:none}
.tab-on{background:var(--pink);border-color:var(--pink);color:#fff}

/* ---------------------------------------------------------- 提示 */
.flash{padding:11px 15px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:14px;border:1px solid transparent}
.flash.ok{background:#eefaf2;border-color:#c9ecd8;color:#2f7d52}
.flash.err{background:#fff0f2;border-color:#ffd0d8;color:#c0392b}
.flash.warn{background:var(--butter);border-color:#ffe6ad;color:#8a6521}
.empty{text-align:center;color:var(--ink-soft);padding:30px 10px}
.empty-face{display:block;font-size:19px;color:var(--ink-faint);margin-bottom:6px;letter-spacing:2px}
.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;background:var(--pink-soft);color:var(--pink-deep);white-space:nowrap}
.badge-soft{background:var(--mint);color:#2f7d6a}
.badge-warn{background:var(--butter);color:#8a6521}
.badge-gray{background:#f2eef0;color:var(--ink-soft)}
.badge-admin{background:var(--lilac);color:#6b4bb5}

/* ---------------------------------------------------------- 头像 */
.av{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:50%;background:var(--pink-soft);font-size:21px;line-height:1;flex:0 0 auto;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.av-sm{width:28px;height:28px;font-size:15px}
.av-lg{width:64px;height:64px;font-size:31px}
.av-dead{background:#f2eef0;filter:grayscale(1)}

/* ---------------------------------------------------------- 帖子 */
.post{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:17px 19px;margin-bottom:14px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.post::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--pink)}
.post.mood-sad::after{background:#bcd4f6}
.post.mood-note::after{background:var(--lilac)}
.post-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.post-who{font-weight:700;font-size:14.5px}
.post-when{color:var(--ink-faint);font-size:12.5px;margin-left:auto;white-space:nowrap}
.post-title{font-size:16.5px;font-weight:800;margin:2px 0 6px}
.post-body{white-space:pre-wrap;word-break:break-word;font-size:15px}
.post-body a{word-break:break-all}
.post-media{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
.post-media img{max-height:260px;border-radius:var(--radius-sm);border:1px solid var(--line);cursor:zoom-in}
.post-media video{max-height:300px;width:100%;max-width:460px;border-radius:var(--radius-sm);background:#000}
.post-foot{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:13px;color:var(--ink-soft)}
.post-foot a{color:var(--ink-soft)}
.pill{background:var(--pink-soft);color:var(--pink-deep);border-radius:999px;padding:1px 10px;font-size:12.5px}
.pill-sad{background:#eef3ff;color:#4b6fb5}
.pill-note{background:var(--lilac);color:#6b4bb5}
.comment{border-top:1px dashed var(--line);padding:10px 0 0;margin-top:9px;font-size:14.5px}
.comment-head{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);margin-bottom:3px}
.comment-body{white-space:pre-wrap;word-break:break-word}

/* ---------------------------------------------------------- 好友/私聊 */
.chat-box{height:56vh;min-height:320px;overflow-y:auto;padding:12px;background:var(--pink-soft);
  border-radius:var(--radius-sm);border:1px solid var(--line)}
.msg{display:flex;gap:8px;margin-bottom:12px;align-items:flex-end}
.msg-body{background:#fff;padding:8px 13px;border-radius:14px;max-width:75%;word-break:break-word;box-shadow:0 2px 8px rgba(214,131,166,.12)}
.msg-me{flex-direction:row-reverse}
.msg-me .msg-body{background:var(--pink);color:#fff}
.msg-when{font-size:11px;color:var(--ink-faint);align-self:flex-end;margin:0 4px}
.chat-form{display:flex;gap:8px;margin-top:10px}
.chat-form .input{flex:1}
.user-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px dashed var(--line)}
.user-row:last-child{border-bottom:0}
.user-row .grow{flex:1;min-width:0}
.user-name{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------------------------------------------------------- 设置 */
.set-list{display:flex;flex-direction:column;gap:2px}
.set-item{display:flex;align-items:center;gap:11px;padding:13px 2px;border-bottom:1px dashed var(--line)}
.set-item:last-child{border-bottom:0}
.set-item .grow{flex:1}
.set-item .val{color:var(--ink-soft);font-size:14px}
.set-icon{width:30px;text-align:center;font-size:17px}
.av-pick{display:flex;flex-wrap:wrap;gap:7px}
.av-pick label{cursor:pointer}
.av-pick input{display:none}
.av-pick .av{transition:transform .12s,box-shadow .12s}
.av-pick input:checked+.av{box-shadow:0 0 0 3px var(--pink-deep);transform:scale(1.06)}

/* ---------------------------------------------------------- 表格/后台 */
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th,.table td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.table th{color:var(--ink-soft);font-weight:600;font-size:13px}
.table-wrap{overflow-x:auto}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px 16px;text-align:center}
.stat b{display:block;font-size:25px;color:var(--pink-deep);line-height:1.3}
.stat span{font-size:13px;color:var(--ink-soft)}

/* ---------------------------------------------------------- 错误页 */
.err-box{text-align:center;padding:60px 20px}
.err-code{font-size:64px;font-weight:800;color:var(--pink);letter-spacing:6px}
.err-msg{color:var(--ink-soft)}
.err-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}

/* ---------------------------------------------------------- 登录页 */
.auth-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:26px 16px}
.auth-wrap{width:100%;max-width:430px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:24px;
  padding:26px 26px 22px;box-shadow:var(--shadow)}
.auth-head{display:flex;gap:13px;align-items:center;margin-bottom:18px}
.auth-head h1{font-size:19px;margin:0}
.auth-mark{font-size:33px;color:var(--pink-deep);animation:blink 7.3s infinite}
.auth-sub{margin:3px 0 0;font-size:13.5px;color:var(--ink-soft)}
.auth-foot{text-align:center;font-size:12.5px;color:var(--ink-faint);margin-top:16px}
.divider{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:12.5px;margin:16px 0}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.guest-box{background:var(--pink-soft);border-radius:var(--radius-sm);padding:13px 15px;font-size:13.5px;color:var(--ink-soft)}

/* ---------------------------------------------------------- 页脚 */
.foot{text-align:center;color:var(--ink-faint);font-size:12.5px;padding:24px 16px 34px}
.foot-sep{margin:0 6px}
.foot-hush{opacity:.75}

/* ---------------------------------------------------------- 补充：角标种类 */
.badge-wait{background:var(--butter);color:#8a6521}
.badge-no{background:#f2eef0;color:#9a7d89}
.badge-pin{background:var(--pink);color:#fff}
.badge-happy{background:#fff0d9;color:#a9761f}
.badge-sad{background:#eef3ff;color:#4b6fb5}
.badge-ok{background:var(--mint);color:#2f7d6a}

/* ---------------------------------------------------------- 补充：小工具类 */
.dim{color:var(--ink-faint)}
.inline-form{display:inline-block;margin:0}
.inline-form .input-sm{margin:0 6px 0 0;vertical-align:middle;width:auto;min-width:160px}
.lab{display:block;font-size:13.5px;color:var(--ink-soft);margin:12px 0 6px}
.counter{font-size:12px;color:var(--ink-faint);margin-left:auto;white-space:nowrap}
.notice{background:var(--butter);border:1px solid #ffe6ad;color:#8a6521;border-radius:var(--radius-sm);
  padding:10px 14px;font-size:13.5px;margin-bottom:12px}
.notice a{color:#8a6521;text-decoration:underline}
.notice-warn{background:#fff0f2;border-color:#ffd0d8;color:#c0392b}
.notice-warn a{color:#c0392b}
.input-sm{padding:7px 11px;font-size:13.5px}
.input-code{letter-spacing:9px;font-size:21px;text-align:center;font-weight:700;padding-left:14px}
.btn-xs{padding:3px 10px;font-size:12px}
.btn-xs.btn-danger{padding:3px 10px}
.btn-wide{width:100%}
.btn-link{background:none;border:0;padding:0;color:var(--pink-deep);font:inherit;cursor:pointer;text-decoration:underline}
.tab-on{background:var(--pink);border-color:var(--pink);color:#fff}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.two-col .field{margin-bottom:14px}
.crumb{font-size:13px;color:var(--ink-soft);margin:0 0 12px}
.crumb a{color:var(--ink-soft)}
.check-line{display:flex;gap:9px;align-items:center;font-size:13.5px;color:var(--ink-soft);margin:12px 0}
.err-page .wrap{padding-top:30px}
.brand-text{color:var(--ink)}
.auth-form{margin-top:4px}
.auth-form .field{margin-bottom:15px}
.auth-note{background:var(--pink-soft);border-radius:var(--radius-sm);padding:11px 14px;font-size:13.5px;
  color:var(--ink-soft);margin:0 0 15px}
.auth-alt{text-align:center;font-size:13.5px;color:var(--ink-soft);margin:16px 0 0}
.auth-alt a{text-decoration:underline}
.settings .wrap{max-width:960px}

/* ---------------------------------------------------------- 补充：板块/发帖 */
.board-head{margin:2px 0 16px}
.board-head h2{margin:0;font-size:22px}
.board-sub{color:var(--ink-soft);font-size:13.5px;margin:5px 0 0}
.compose{display:block}
details.compose-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;box-shadow:var(--shadow);margin-bottom:16px}
details.compose-box>summary{cursor:pointer;font-weight:700;font-size:15.5px;color:var(--pink-deep)}
details.compose-box[open]>summary{margin-bottom:12px}
.compose-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.compose-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.mood-row{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.mood-pick,.anon-pick{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;
  border:1.5px solid var(--line);background:#fff;font-size:13.5px;color:var(--ink-soft);cursor:pointer}
.mood-pick input,.anon-pick input{accent-color:var(--pink-deep);margin:0}
.mood-happy:has(input:checked){background:#fff0d9;border-color:#ffe0a8;color:#8a6521}
.mood-pick.mood-sad:has(input:checked){background:#eef3ff;border-color:#c9dcff;color:#4b6fb5}
.anon-pick:has(input:checked){background:var(--pink-soft);border-color:var(--pink);color:var(--pink-deep)}
.file-label{margin:0;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;
  background:var(--pink-soft);font-size:13.5px;cursor:pointer;transition:background-color .12s}
.file-label:hover{background:var(--pink)}
.file-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.file-label.file-inline{margin:10px 0}
.media-preview{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.media-preview img,.media-preview video{max-height:110px;border-radius:var(--radius-sm);border:1px solid var(--line)}
.pv{max-height:220px;border-radius:var(--radius-sm);background:#000;border:1px solid var(--line)}
.feed{display:block}
.pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:18px 0 6px}
.pager a,.pg{padding:5px 13px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:13.5px}
.pager a:hover{text-decoration:none;background:var(--pink-soft)}
.pager .pg-on,.pg-on{background:var(--pink-deep);border-color:var(--pink-deep);color:#fff}

/* ---------------------------------------------------------- 补充：帖子细节 */
.post-name{font-weight:700;font-size:14.5px}
.post-time{color:var(--ink-faint);font-size:12.5px;margin-left:8px;font-weight:400}
.post-chips{margin-left:auto;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.post-a{color:var(--ink-soft);font-size:13px}
.post-a:hover{color:var(--pink-deep);text-decoration:none}
.post-btn{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.post-like{color:var(--pink-deep)}
.post-del:hover{color:#c0392b}
.post-page .post{margin-bottom:20px}
.comment-form{margin-top:14px}
.cm-wrap{margin-top:18px}
.cm-title{font-weight:700;font-size:15px;margin:0 0 8px}
.cm-wrap .cm-title{margin-top:0}
.cm-head{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-faint)}
.cm-name{font-weight:600;color:var(--ink);font-size:13.5px;margin-left:2px}
.cm-time{margin-left:auto;font-size:12px;color:var(--ink-faint)}
.cm-body{white-space:pre-wrap;word-break:break-word;font-size:14.5px;margin-top:3px}

/* ---------------------------------------------------------- 补充：好友 */
.friends .find-form{margin:12px 0}
.find-form{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.find-form .input{flex:1;min-width:180px}
.find-box{background:var(--pink-soft);border-radius:var(--radius-sm);padding:12px 15px;margin:12px 0}
.f-block{margin:20px 0 0}
.f-block .u-chip{background:#fff}
.my-code{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(135deg,#fff4f9,#f4f0ff);
  border:1px dashed var(--pink);border-radius:var(--radius-sm);padding:13px 16px;margin:14px 0}
.my-code-label{font-size:12.5px;color:var(--ink-soft)}
.my-code-num{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:22px;font-weight:800;
  letter-spacing:4px;color:var(--pink-deep)}
.my-code-sm{padding:10px 13px;margin:6px 0 10px}
.my-code-sm .my-code-num{font-size:18px;letter-spacing:3px}
.u-chip{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px dashed var(--line)}
.u-chip:last-child{border-bottom:0}
.u-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.u-name{font-weight:600;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.u-code{font-size:12px;color:var(--ink-faint);font-family:ui-monospace,Consolas,monospace;letter-spacing:1px}
.u-last{font-size:13px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av-xs{width:26px;height:26px;font-size:14px}
.av-ghost{background:#f2eef0}
.av-grid{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}
.av-grid .av-pick{display:inline-flex}
.av-pick span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:50%;background:var(--pink-soft);font-size:20px;line-height:1;transition:transform .12s,box-shadow .12s}
.av-pick input:checked+span{box-shadow:0 0 0 3px var(--pink-deep);transform:scale(1.06)}

/* ---------------------------------------------------------- 补充：私聊 */
.chat-page .chat-box{margin-top:4px}
.chat-head{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.chat-head .u-name{font-size:16px}
.chat-head .btn{margin-left:auto}
.chat-empty{text-align:center;padding:26px 8px}
.chat-form{display:flex;gap:9px;align-items:flex-end}
.chat-form .textarea{flex:1;min-height:44px;max-height:120px;padding:11px 14px}

/* ---------------------------------------------------------- 补充：设置 */
.set-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}
.set-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:17px 19px;box-shadow:var(--shadow)}
.set-card .cm-title{margin-bottom:10px;color:var(--ink)}
.set-form .input,.set-form .select,.set-form .textarea{margin-bottom:2px}
.set-hr{border:0;border-top:1px dashed var(--line);margin:16px 0}
.set-danger{background:#fffafa;border-color:#ffd0d8}
.set-danger .cm-title{color:#c0392b}
.bind-box{background:var(--pink-soft);border-radius:var(--radius-sm);padding:12px 14px;margin:10px 0 0;font-size:13.5px}
.bind-box .inline-form{margin-top:9px}
.dev-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:7px}
.dev{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft);
  border-bottom:1px dashed var(--line);padding-bottom:7px}
.dev:last-child{border-bottom:0;padding-bottom:0}
.dev-ua{flex:1;min-width:120px;color:var(--ink);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dev-ip,.dev-time{color:var(--ink-faint);font-family:ui-monospace,Consolas,monospace}

/* ---------------------------------------------------------- 补充：后台 */
.stats{display:grid;gap:11px;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));margin:14px 0 18px}
.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 10px;text-align:center}
.stat-num{display:block;font-size:23px;font-weight:800;color:var(--pink-deep);line-height:1.3}
.stat-label{font-size:12.5px;color:var(--ink-soft)}
.stats-admin .stat-card{background:linear-gradient(180deg,#fffdfe,#fff6fa)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.admin-inner{display:block}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th,.tbl td{text-align:left;padding:9px 7px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl th{color:var(--ink-soft);font-weight:600;font-size:12.5px;white-space:nowrap}
.tbl td .inline-form{margin:2px 4px 2px 0}
.tbl .post-chips{margin-left:0}
.admin .post{box-shadow:none}

/* ---------------------------------------------------------- 注册页：邮箱前缀 + 后缀下拉 */
.mail-row{display:flex;gap:8px;align-items:stretch}
.mail-row .mail-user{flex:1 1 auto;min-width:0}
.mail-row .mail-dom{flex:0 0 auto;width:auto;min-width:118px;padding-right:8px;appearance:auto;-webkit-appearance:auto}
.mail-row .mail-dom:hover,.mail-row .mail-dom:focus{border-color:var(--pink)}

/* ---------------------------------------------------------- 响应式 */
@media (max-width:720px){
  .wrap{padding:16px 13px 50px}
  .card{padding:16px 15px;border-radius:17px}
  .post{padding:14px 15px}
  .burger{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
    border-bottom:1px solid var(--line);padding:12px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch}
  .nav-open .nav{display:flex}
  .nav-a,.nav-me{text-align:left}
  .ticker-in{animation-duration:18s}
  .msg-body{max-width:82%}
  .two-col{grid-template-columns:1fr}
  .set-grid{grid-template-columns:1fr}
  .chat-head{flex-wrap:wrap}
  .chat-head .btn{margin-left:0}
  .find-form .input{min-width:0}
  .dev-ua{white-space:normal}
  .mail-row .mail-dom{min-width:104px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
}
