/* =========================================================
   NS主题样式 · 轻奢微古配色（柔和浅线版）
   ========================================================= */
   :root{
    /* ---- 基底：羊皮纸/象牙纸 ---- */
    --ns-bg:          #fffbf3;
    --ns-card:        #fffdf8;
    --ns-card-alt:    #faf5ea;
    --ns-grid:        rgba(150, 120, 90, .035);   /* 更浅的网格 */
    --ns-line:        #e8ddcc;                     /* 柔和浅线，替代原 #dccdb4 */

    /* ---- 墨色：暖褐层次 ---- */
    --ns-ink:         #3d2e1e;
    --ns-ink-2:       #6b5a44;
    --ns-ink-3:       #a8957e;

    /* ---- 主色：棕金 ---- */
    --ns-gold:        #8b6b4a;
    --ns-gold-light:  #c9b294;
    --ns-gold-soft:   #f1e7d6;

    /* ---- 高光：香槟金 ---- */
    --ns-accent:      #b8894f;
    --ns-accent-soft: #e8d5b5;

    /* ---- 阴影 ---- */
    --ns-shadow:      rgba(120, 90, 60, .06);
    --ns-shadow-lg:   rgba(100, 70, 40, .10);

    /* ---- 圆角 ---- */
    --ns-radius:      8px;
    --ns-radius-md:   5px;
    --ns-radius-sm:   3px;

    /* ---- 兼容旧变量名 ---- */
    --ns-green:        var(--ns-gold);
    --ns-green-ligth:  var(--ns-gold-light);
    --ns-green-light:  var(--ns-gold-light);
    --ns-green-soft:   var(--ns-gold-soft);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}

body.ns-body{
    background-color: var(--ns-bg);
    background-image:
        linear-gradient(var(--ns-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--ns-grid) 1px, transparent 1px),
        radial-gradient(ellipse at 20% 30%, rgba(200,170,130,.10) 0%, transparent 55%),
        radial-gradient(ellipse at 80% 70%, rgba(180,150,110,.08) 0%, transparent 60%),
        radial-gradient(ellipse at 50% 100%, rgba(139,107,74,.04) 0%, transparent 70%);
    background-size: 24px 24px, 24px 24px, 100% 100%, 100% 100%, 100% 100%;
    color: var(--ns-ink);
    font: 14px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.ns-body-wrap{flex: 1;}
a{color:inherit;text-decoration: none;}
[class^="icon-"], [class*=" icon-"] {
    font-family: "iconfont" !important;
    font-weight: normal;
    font-style: normal;
    text-decoration: inherit;
    -webkit-font-smoothing: antialiased;
}
.ns-wrap{max-width:1080px;margin:0 auto;padding:0 10px;}

/* ============ 顶栏 ============ */
.ns-topbar{
    background: var(--ns-card);
    border-bottom: 1px solid var(--ns-line);
    position: sticky; top:0; z-index: 100;
    box-shadow: 0 1px 0 var(--ns-accent-soft), 0 1px 4px var(--ns-shadow);
}
.ns-topbar-inner{
    display:flex; align-items:center; justify-content:space-between; position: relative;
    height:56px; gap:16px;
}
.ns-topbar-left{display:flex;align-items:center;gap:16px;min-width:0;}
.ns-logo{
    font-weight:700; font-size:17px; color: var(--ns-gold);
    text-decoration:none; flex:0 0 auto; letter-spacing:-.3px;
}
.ns-nav-toggle{
    display:none; background:none; border:1px solid var(--ns-line);
    border-radius: var(--ns-radius-sm); padding:4px 10px; cursor:pointer;
    font-size:14px; color:var(--ns-ink-2);
}
.ns-nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap;}
.ns-nav a{
    padding:5px 10px; border-radius: var(--ns-radius-sm);
    text-decoration:none; color: var(--ns-ink-2); font-size:13px;
    transition: background .15s, color .15s;
}
.ns-nav a:hover{background:var(--ns-gold-soft);color:var(--ns-ink);}
.ns-nav a.active{background: var(--ns-gold-soft); color: var(--ns-accent); font-weight:600;}

.ns-topbar-right{display:flex;align-items:center;gap:14px;}
.ns-search{
    display: flex;
    align-items: center;
    background: var(--ns-gold-soft);
    border-radius: 999px;
    padding: 2px 3px 2px 12px;
    border: 1px solid var(--ns-gold-light);
    transition: border-color .15s, background .15s;
}
.ns-search:focus-within{border-color: var(--ns-accent); background: var(--ns-card-alt);}
.ns-search input{
    border: 0;
    background: transparent;
    outline: none;
    width: 100%;
    font-size: 13px;
    color: var(--ns-ink);
}
.ns-search input::placeholder{color:var(--ns-ink-3);}
.ns-search-btn{
    border:0; background: var(--ns-gold); color: var(--ns-card);
    border-radius:999px; padding:6px 12px; font-size:12px; cursor:pointer;
    min-width: 55px;
    transition: filter .15s;
}
.ns-search-btn:hover{filter: brightness(1.08);}
.ns-login-nav{display: flex; gap: 12px;align-items: center;}
.ns-user-nav{display: none;}
.ns-user-nav a{
    padding:5px 8px; border-radius: var(--ns-radius-sm);
    text-decoration:none; color: var(--ns-ink-2); font-size:13px;
    transition: background .15s, color .15s;
}
.ns-user-nav a:hover{background:var(--ns-gold-soft);color:var(--ns-ink);}
.ns-user-nav.open{
    display: block;
    position: absolute;
    right: 10px;
    top: 50px;
    background: var(--ns-card-alt);
    width: 120px;
    padding: 10px;
    border: 1px solid var(--ns-line);
    border-radius: var(--ns-radius-md);
    box-shadow: 0 4px 12px var(--ns-shadow-lg);
}
.ns-user-nav.open a{display: block;}
.ns-btn-primary{
    background: linear-gradient(180deg, #9a7a56, var(--ns-gold)) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px var(--ns-shadow);
    color: var(--ns-card) !important;
    padding:5px 14px !important; border-radius: var(--ns-radius-sm) !important;
    font-weight:500;
}
.ns-btn-primary:hover{
    background: linear-gradient(180deg, #a8875f, #96755a) !important;
    filter: none;
}
.ns-btn-ghost{
    display:inline-block; padding:6px 14px; font-size:13px;
    color:var(--ns-ink-2); background: var(--ns-card-alt);
    border:1px solid var(--ns-line); border-radius: var(--ns-radius-sm);
    text-decoration:none; cursor:pointer; font-family:inherit;
    transition: border-color .15s, color .15s;
}
.ns-btn-ghost:hover{border-color:var(--ns-accent); color:var(--ns-accent);}
.ns-btn-ghost small{font-size:12px;}
.ns-search-toggle{display:none;}
.ns-user-toggle{
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
}
.ns-user-toggle .avatar{
    width:20px; height:20px; border-radius:50%;
    object-fit:cover; background:#e6d9c5; display:block;
}
.ns-user-toggle span{font-weight: 600;}

/* ============ 通知 ============ */
.ns-notice-wrap{margin-top:14px;}
.ns-notice{
    background: var(--ns-card-alt); border:1px solid var(--ns-line);
    border-radius: var(--ns-radius); padding:10px 16px;
    font-size:13px; color: var(--ns-ink-2);
}
.ns-badge{
    display:inline-block; min-width:18px; padding:0 5px; margin-right:4px;
    background: var(--ns-gold); color: var(--ns-card); border-radius:999px;
    font-size:11px; font-style:normal; text-align:center;
}

/* ============ 布局 ============ */
.ns-layout{
    display:flex;
    gap: 16px;
    margin-top: 12px;
    align-items: start;
}
.ns-main {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 75%;
}
.ns-side{display:flex;flex-direction:column;gap:14px; width: 25%;}
.ns-mx{margin: 0 auto;}

/* ============ 选项卡（简洁流行版） ============ */
.ns-tabs-bar{
    display: inline-flex;
    gap: 6px;
    flex-wrap: nowrap;
    border-radius: var(--ns-radius);
    padding: 6px 6px;
    margin-bottom: -5px;
}
.ns-tabs-bar::-webkit-scrollbar{display: none;}

.ns-tab{
    flex: 0 0 auto;
    padding: 4px 16px;
    border-radius: 999px;
    text-decoration: none;
    color: var(--ns-ink-2);
    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;
    transition: background .15s, color .15s;
}
.ns-tab:hover{
    background: var(--ns-gold-soft);
    color: var(--ns-ink);
}
.ns-tab.active{
    background: linear-gradient(180deg, #9a7a56, var(--ns-gold));
    color: var(--ns-card);
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 3px var(--ns-shadow);
}

@media (max-width: 560px){
    .ns-tabs-bar{padding: 5px; gap: 4px;}
    .ns-tab{padding: 6px 13px; font-size: 12.5px;}
}

/* ============ 表单 ============ */
.ns-form .ns-form-field{
    display:flex; align-items:center; gap:12px;
    padding-bottom:10px;
}
.ns-form .ns-form-field:last-of-type{border-bottom:0;}
.ns-form-field label{
    flex:0 0 88px; text-align:right;
    font-size:13px; color:var(--ns-ink-3);
}

/* ---- 登录页：表单链接组 ---- */
.ns-form-field-links{align-items:flex-start;}
.ns-form-links{
    display:flex; flex-wrap:wrap; gap:8px; align-items:center;
}

/* ---- 注册页：验证码输入组 ---- */
.ns-input-group{
    display:flex; gap:8px; flex:1; min-width:0;
}
.ns-input-group .ns-ipt{flex:1;}
.ns-input-group .ns-btn-ghost{flex:0 0 auto; white-space:nowrap;}

.ns-ipt{
    flex:1; min-width:0;
    padding:6px 10px; font-size:14px; color:var(--ns-ink);
    background:#f5ede1; border:1px solid var(--ns-line);
    border-radius:var(--ns-radius-sm); outline:none;
    transition:border-color .15s, background .15s;
    font-family:inherit;
}
.ns-ipt:focus{border-color:var(--ns-accent); background: var(--ns-card-alt);}
.ns-ipt:disabled{
    background:var(--ns-gold-soft); color:var(--ns-ink-3); cursor:not-allowed;
}

/* 提交按钮 */
.ns-submit{
    display:inline-block; padding:6px 16px; font-size:14px; font-weight:500;
    color: var(--ns-card); background: linear-gradient(180deg, #9a7a56, var(--ns-gold));
    border:0; cursor:pointer;
    border-radius: var(--ns-radius-sm);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px var(--ns-shadow);
    transition: background .15s;
    font-family:inherit;
}
.ns-submit:hover{background: linear-gradient(180deg, #a8875f, #96755a); filter:none;}

/* ============ 帖子列表 ============ */
.ns-feed{
    background: var(--ns-card);
    border:1px solid var(--ns-line);
    border-radius: var(--ns-radius);
    overflow:hidden;
    box-shadow: inset 0 1px 0 #fff, 0 1px 3px var(--ns-shadow);
    padding: 8px 0;
}
.ns-item{
    display:flex; align-items:flex-start; gap:10px;
    margin: 0 16px;
    padding: 12px 0;
    transition: background .12s;
    border-bottom: 1px solid var(--ns-gold-soft);
}
.ns-item:last-child{border-bottom:0;}
.ns-item:hover{background: var(--ns-card-alt);}
.ns-item-avatar{flex:0 0 auto; display:block;}
.ns-avatar{
    width:35px; height:35px; border-radius:50%;
    object-fit:cover; background:#e6d9c5; display:block;
}
.ns-avatar-lg{width:44px;height:44px;}
.ns-item-body{flex:1; min-width:0;}
.ns-item-title{
    margin:0 0 3px; font-size:15px; font-weight:500; line-height:1.45;
    word-break:break-word;
}
.ns-item-title a{text-decoration:none; color: var(--ns-ink);}
.ns-item-title a:hover{color: var(--ns-accent);}
.ns-item-meta{
    display:flex; flex-wrap:wrap; align-items:center;
    gap:4px 10px; font-size:11px; color: var(--ns-ink-3);
}
.ns-item-meta a{color: var(--ns-ink-3); text-decoration:none;}
.ns-item-meta a:hover{color: var(--ns-accent);}
.ns-item-meta i{font-size:11px; margin-right:2px;}
.ns-time{color: var(--ns-ink-3);}
.ns-item-reply{
    flex:0 0 auto; align-self:center;
    min-width:26px; text-align:center;
    padding:0px 7px; border-radius:999px;
    background: var(--ns-gold-soft); color: var(--ns-ink-3);
    font-size:11.5px; text-decoration:none;
    transition: background .12s, color .12s;
}
.ns-item-reply:hover{background: var(--ns-accent-soft); color: #7a5a38;}
.ns-empty{padding:40px;text-align:center;color:var(--ns-ink-3);font-size:13px;}

/* ============ 分页 ============ */
.ns-pager{margin-top:14px;text-align:center;padding:0 16px 16px;}
.ns-pager a,.ns-pager span{
    display:inline-block; min-width:30px; padding:5px 10px; margin:0 2px;
    border-radius: var(--ns-radius-sm); background: var(--ns-card-alt);
    border:1px solid var(--ns-line);
    text-decoration:none; font-size:12.5px; color: var(--ns-ink-2);
}
.ns-pager .current,.ns-pager .active{
    background: linear-gradient(180deg, #9a7a56, var(--ns-gold));
    border-color: var(--ns-gold);
    color: var(--ns-card);
}
.ns-pager a:hover{
    background: var(--ns-gold);
    border-color: var(--ns-gold);
    color: var(--ns-card);
}

/* ============ 管理面板 ============ */
.ns-mod-panel{
    background: var(--ns-card-alt); border:1px solid var(--ns-line);
    border-radius: var(--ns-radius); padding:12px 16px; margin-top:14px;
}
.ns-label{font-size:13px;color:var(--ns-ink-2);}
.ns-mod-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.ns-btn-sm{
    padding:4px 12px; border-radius: var(--ns-radius-sm);
    background: var(--ns-gold-soft); border:1px solid transparent;
    font-size:12.5px; cursor:pointer; color: var(--ns-ink-2);
    font-family:inherit; transition:border-color .15s, color .15s;
}
.ns-btn-sm:hover{border-color: var(--ns-accent); color: var(--ns-accent);}

/* ============ 帖子头部 ============ */
.ns-thread-head{
    padding:16px;
    border-bottom: 1px solid var(--ns-line);
}
.ns-breadcrumb{margin-bottom: 10px;}
.ns-breadcrumb a{text-decoration:none;color:var(--ns-ink-2);}
.ns-breadcrumb a:hover{color:var(--ns-accent);}
.ns-thread-title-row{display:flex;align-items:flex-start;gap:12px;}
.ns-thread-title{
    flex:1; min-width:0; margin:0;
    font-size:19px; font-weight:600; line-height:1.4;
    word-break:break-word; color:var(--ns-ink);
}
.ns-thread-avatar{flex:0 0 auto;margin-left: auto;}
.ns-thread-avatar img{
    width:42px;height:42px;border-radius:50%;object-fit:cover;background:#e6d9c5;display:block;
}
.ns-thread-meta{
    display:flex; flex-wrap:wrap; align-items:center;
    gap:4px 12px; font-size:12px; color: var(--ns-ink-3);
    list-style:none; margin:0; padding:0;
    margin-top: 8px;
}
.ns-thread-meta a{color: var(--ns-ink-2); text-decoration:none;}
.ns-thread-meta a:hover{color: var(--ns-accent);}
.ns-thread-meta i{font-size:11px;margin-right:2px;}

/* ============ 帖子正文 ============ */
.ns-post-content{padding:16px;font-size:14.5px;line-height:1.8;color:var(--ns-ink);word-break:break-word;}
.ns-post-content img{max-width:100%;height:auto;border-radius:var(--ns-radius-sm);}
.ns-post-content pre{background:var(--ns-gold-soft);border:1px solid var(--ns-line);border-radius:var(--ns-radius-sm);padding:12px;overflow:auto;}
.ns-post-content blockquote{
    margin:12px 0;padding:8px 14px;border-left:3px solid var(--ns-gold);
    background:var(--ns-gold-soft);border-radius:0 var(--ns-radius-sm) var(--ns-radius-sm) 0;
    color:var(--ns-ink-2);
}
.ns-post-content a{color:var(--ns-accent);text-decoration:none;}
.ns-post-content a:hover{text-decoration:underline;}
.ns-post-content p{margin:5px 0}
.ns-post-tags{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;}
.ns-post-tags a{
    display:inline-block;padding:2px 10px;background:var(--ns-gold-soft);border-radius:999px;
    font-size:12px;color:var(--ns-ink-2);text-decoration:none;
}
.ns-post-tags a:hover{background:var(--ns-accent-soft);color:#7a5a38;}

/* 收藏条 */
.ns-thread-actions{
    display:flex;align-items:center;gap:10px;
    padding:10px 16px;border-top:1px solid var(--ns-line);
    margin: 0;
}
.ns-star{
    display:inline-flex;align-items:center;gap:6px;
    padding:4px 12px;border-radius:999px;
    background:var(--ns-gold-soft);color:var(--ns-ink-2);
    font-size:12.5px;cursor:pointer;
    transition:background .12s,color .12s;
}
.ns-star:hover{background:var(--ns-accent-soft);color:#7a5a38;}
.ns-star em{font-style:normal;font-weight:700;color:var(--ns-ink);}

/* ============ 回复列表 ============ */
.ns-reply{
    display:flex;gap:10px;padding:10px 16px;
    border-bottom:1px solid var(--ns-line);
}
.ns-reply:last-child{border-bottom:0;}
.ns-reply.quote-ref{background: var(--ns-gold-soft);}
.ns-reply-avatar{flex:0 0 auto;margin-top: 3px;}
.ns-reply-avatar img{
    width:36px;height:36px;border-radius:50%;object-fit:cover;background:#e6d9c5;display:block;
}
.ns-reply-body{flex:1;min-width:0;}
.ns-reply-head{
    display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;
    font-size:11px;color:var(--ns-ink-3);margin-bottom:4px;
}
.ns-reply-head a{color:var(--ns-ink-2);text-decoration:none;font-weight:500;}
.ns-reply-head a:hover{color:var(--ns-accent);}
.ns-reply-head .ns-floor{margin-left:auto;color:var(--ns-ink-3);}
.ns-reply-subject{margin:0 0 4px;font-size:13px;font-weight:600;}
.ns-reply-subject a{color:var(--ns-ink-2);text-decoration:none;}
.ns-reply-subject a:hover{color:var(--ns-accent);}
.ns-reply-content{font-size:14px;line-height:1.75;color:var(--ns-ink);word-break:break-word;}
.ns-reply-content img{max-width:100%;height:auto;border-radius:var(--ns-radius-sm);}
.ns-reply-content .blockquote{
    margin:10px 0;
    padding:2px 5px;
    background:var(--ns-gold-soft);
    border-left:3px solid var(--ns-gold);
    font-size:13px; line-height:1.6;
    color:var(--ns-ink-2);
    word-break:break-word;
}
.ns-reply-content .blockquote p{margin:0;}
.ns-reply-content .blockquote p+p{margin-top:6px;}
.ns-reply-content .blockquote-mention{color:var(--ns-accent); font-weight:600;}
.ns-reply-content .blockquote a{color:var(--ns-accent); text-decoration:none;}
.ns-reply-content .blockquote a:hover{text-decoration:underline;}
.ns-reply-content .blockquote .gray,
.ns-reply-content .blockquote .text-muted{color:var(--ns-ink-3); font-size:12px;}

.ns-reply-actions{display:flex;gap:12px;margin-top: 8px;}
.ns-reply-actions a{
    color:var(--ns-ink-3);text-decoration:none;font-size:12px;
}
.ns-reply-actions a:hover{color:var(--ns-accent);}

/* ============ 回复表单 ============ */
.ns-form-body{padding:16px;}
.ns-form-body .reply_ing{display: block;}
.ns-form-body .reply_no{color: var(--ns-gold);cursor: pointer;}
.ns-textarea{
    width:100%;min-height:90px;resize:vertical;
    border:1px solid var(--ns-line);border-radius:var(--ns-radius-sm);
    padding:10px 12px;font:inherit;font-size:14px;color:var(--ns-ink);
    background: var(--ns-card-alt);outline:none;transition:border-color .15s;
}
.ns-textarea:focus{border-color:var(--ns-accent);}
.ns-form-actions{margin-top:10px;display:flex;align-items:center;gap:10px;}
.ns-btn{
    display:inline-block;border:0;cursor:pointer;
    background:var(--ns-gold);color:var(--ns-card);
    padding:6px 15px;border-radius:var(--ns-radius-sm);
    font-size:13px;font-weight:500;text-decoration:none;
    transition:filter .15s;
}
.ns-btn:hover{filter:brightness(1.08);}
.ns-btn-light{
    background:var(--ns-gold-soft);color:var(--ns-ink-2);
}
.ns-btn-light:hover{background:var(--ns-accent-soft);color:#7a5a38;filter:none;}
.ns-form-tip{font-size:12.5px;color:var(--ns-ink-3);margin:12px 0;text-align:center;}
.ns-form-tip a{color:var(--ns-gold);text-decoration:none;font-weight:500;}

/* ============ 侧栏卡片 ============ */
.ns-card{
    background: var(--ns-card);
    border:1px solid var(--ns-line);
    border-radius: var(--ns-radius);
    overflow:hidden;
    box-shadow: inset 0 1px 0 #fff, 0 1px 2px var(--ns-shadow);
}
.ns-card-head{
    display: flex;
    padding:10px 16px; border-bottom:1px solid var(--ns-line);
    font-size:13px; font-weight:600; color: var(--ns-ink);
}
.ns-card-head .back-top-btn{
    text-decoration: none;
    font-weight: 400;
    margin-left: auto;
    color: var(--ns-ink-3);
}
.ns-card-body{padding: 15px;}

/* 游客 */
.ns-guest-inner{padding:16px;}
.ns-guest-inner strong{font-size:14px;}
.ns-guest-inner p{margin:4px 0 12px;color:var(--ns-ink-3);font-size:12.5px;}
.ns-guest-actions{display:flex;gap:8px;}

/* 用户 */
.ns-user-card{padding:16px;}
.ns-user-head{display:flex;align-items:center;gap:10px;}
.ns-user-name{
    font-weight:600; font-size:14px; text-decoration:none;
    color: var(--ns-ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    margin: 0;
}
.ns-user-name:hover{color: var(--ns-accent);}
.ns-stats{
    display: flex;
    list-style: none;
    margin: 12px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--ns-line);
    justify-content: space-around;
}
.ns-stats li{text-align:center;font-size:11.5px;color:var(--ns-ink-3);}
.ns-stats li span{display:block;font-size:16px;font-weight:700;color:var(--ns-ink);line-height:1.2;}
.ns-user-action{margin-top:12px;}
.ns-user-action a{
    display:block; text-align:center; padding:7px;
    background: var(--ns-gold-soft); color: var(--ns-gold);
    border-radius: var(--ns-radius-sm);
    text-decoration:none; font-size:13px; font-weight:500;
}
.ns-user-action a:hover{background:var(--ns-accent-soft);}

/* 介绍 */
.ns-bbs-title{
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    color: var(--ns-ink);
}
.ns-bbs-info{
    line-height: 2;
    margin-top: 5px;
    color: var(--ns-ink-2);
}

/* 热门 */
.ns-hot-list{display:flex;flex-direction:column;}
.ns-hot-item{
    display:block; padding:10px 16px;
    border-bottom:1px solid var(--ns-line);
    text-decoration:none; color: var(--ns-ink-2);
    font-size:13px; line-height:1.5;
    transition: background .12s;
}
.ns-hot-item:last-child{border-bottom:0;}
.ns-hot-item:hover{background:var(--ns-card-alt);color:var(--ns-accent);}

/* 标签 */
.ns-tag-body{padding:12px 16px;line-height:2.2;font-size:12.5px;}
.ns-tag-body a{
    display:inline-block; margin:0 5px 5px 0; padding:2px 10px;
    background:var(--ns-gold-soft); border-radius:999px;
    text-decoration:none; color: var(--ns-ink-2);
    font-size:12px;
}
.ns-tag-body a:hover{background:var(--ns-accent-soft); color:#7a5a38;}

/* 最新加入 */
.ns-avatar-wall{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px 8px;
    padding:14px 16px;
}
.ns-avatar-wall-item{
    display:flex; flex-direction:column; align-items:center;
    min-width:0;
}
.ns-avatar-wall-img{
    width:40px; height:40px; border-radius:50%;
    object-fit:cover; display:block;
    background:#e6d9c5; border:2px solid var(--ns-line);
    transition:border-color .15s;
}
.ns-avatar-wall-item:hover .ns-avatar-wall-img{border-color:var(--ns-accent);}
.ns-avatar-wall-name{
    margin:5px 0 0; width:100%;
    text-align:center; font-size:11.5px; line-height:1.3;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ns-avatar-wall-name a{color:var(--ns-ink-2); text-decoration:none;}
.ns-avatar-wall-name a:hover{color:var(--ns-accent);}

@media (max-width:560px){
    .ns-avatar-wall{grid-template-columns:repeat(5,1fr); gap:10px 6px; padding:12px;}
    .ns-avatar-wall-img{width:34px; height:34px;}
    .ns-avatar-wall-name{font-size:11px;}
}

/* ===== 友情链接列表 ===== */
.ns-link-list{display:flex; flex-direction:column;}
.ns-link-item{
    display:flex; align-items:center; gap:4px;
    padding:10px 16px;
    border-bottom:1px solid var(--ns-line);
    text-decoration:none; color:var(--ns-ink-2);
    font-size:13px; line-height:1.5;
    transition:background .12s, color .12s;
    word-break:break-word;
}
.ns-link-item:last-child{border-bottom:0;}
.ns-link-item:hover{background:var(--ns-gold-soft); color:var(--ns-accent);}
.ns-link-arrow{color:var(--ns-ink-3); font-size:12px; flex:0 0 auto;}
.ns-link-item:hover .ns-link-arrow{color:var(--ns-accent);}

@media (max-width:560px){
    .ns-link-item{padding:9px 12px; font-size:12.5px;}
}

/* ============ 页脚 ============ */
.ns-footer{
    margin-top:30px; padding:20px 0 28px;
    text-align:center; font-size:12px; color: var(--ns-ink-3);
}
.ns-footer a{color:var(--ns-ink-3);text-decoration:none;}
.ns-footer a:hover{color:var(--ns-accent);}

/* ============ 响应式 ============ */
@media (max-width:860px){
    .ns-layout{flex-direction: column;}
    .ns-main{width: 100%;}
    .ns-side{display: none;}
    .ns-nav-toggle{display:inline-block;}
    .ns-nav{
        display:none; position:absolute; left:0; right:0; top:56px;
        background: var(--ns-card-alt); border-bottom:1px solid var(--ns-line);
        padding:8px 16px; flex-direction:column; align-items:stretch;
    }
    .ns-nav.open{display:flex;}
    .ns-nav a{padding:9px 10px;}
}
@media (max-width:560px){
    .ns-thread-head,.ns-post-content,.ns-thread-actions,.ns-card-head,.ns-reply,.ns-form-body,.ns-card-body {
        padding: 10px 12px;
    }
    .ns-search.show{
        display:flex; position:absolute; left:16px; right:16px; top:60px;
        background: var(--ns-card-alt); border:1px solid var(--ns-line);
        border-radius: var(--ns-radius-sm); padding:6px;
        z-index:101;
    }
    .ns-search-toggle{
        display:inline-block;
        text-decoration: none;
        color: var(--ns-ink-2);
    }
    .ns-search input{width:100%;}
    .ns-item {margin: 0 12px; padding: 12px 0;}
    .ns-avatar{width:32px;height:32px;}

    /* 表单移动端 */
    .ns-form .ns-form-field{flex-wrap:wrap; gap:4px 10px;}
    .ns-form-field label{flex:1 1 100%; text-align:left;}
    .ns-ipt{flex:1 1 100%;}
    .ns-form-field-links{flex-wrap:wrap; gap:4px 10px;}
    .ns-form-field-links label{flex:1 1 100%; text-align:left;}
    .ns-form-links{flex:1 1 100%;}
    .ns-input-group{flex-wrap:wrap;}
    .ns-input-group .ns-ipt{flex:1 1 100%;}
    .ns-input-group .ns-btn-ghost{width:100%; text-align:center;}
    
}

/* ===== 发帖表单 ===== */
.ns-form .ns-cell{margin-top: 10px;}
.ns-form .ns-cell:last-child{border-bottom:0;}
.ns-form .ns-cell.ns-p0{padding:0;}
.ns-form .ns-label-row{
    display:flex;justify-content:space-between;align-items:center;
    font-size:12px;color:var(--ns-ink-3);margin-bottom:6px;
}
.ns-form select.topic-select-btn,
.ns-form input.title{
    padding:6px 10px; font-size:14px; color:var(--ns-ink);
    background:#f5ede1; border:1px solid var(--ns-line);
    border-radius: var(--ns-radius-sm); outline:none;
    transition: border-color .15s, background .15s;
    font-family: inherit;
}
.ns-form select.topic-select-btn:focus,
.ns-form input.title:focus{
    border-color: var(--ns-accent); background: var(--ns-card-alt);
}
.ns-form input.title{font-weight:500;width: 100%;}
.ns-form #editor-container{
    border:1px solid var(--ns-line); border-radius: var(--ns-radius-sm);
    background: var(--ns-card-alt); min-height:280px;
}
.ns-form .ql-editor{min-height:260px;font-size:14px;}
.ns-form .ql-editor.ql-blank::before{font-style:normal;color:var(--ns-ink-3);}
.ns-form .ql-container.ql-snow{border:0;}
.ns-form textarea#message{display:none;}

/* 附件 */
#attachment-list{padding:12px 16px;border-bottom:1px solid var(--ns-line);}
.attachment-header{font-size:12px;color:var(--ns-ink-3);margin-bottom:6px;}
.attachment-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}

/* ===== 侧栏提示 ===== */
.ns-tips{font-size:13px;color:var(--ns-ink-2);}
.ns-tips ul{list-style:none;margin:0;padding:0;}
.ns-tips li{padding:8px 0;border-bottom:1px dashed var(--ns-line);}
.ns-tips li:last-child{border-bottom:0;}
.ns-tips p{margin:0;}
.ns-tips p:first-child{font-weight:600;color:var(--ns-ink);font-size:13px;}
.ns-tips p+p{margin-top:2px;color:var(--ns-ink-3);font-size:12.5px;line-height:1.55;}

/* ===== 用户资料 ===== */
.ns-info-list{
    list-style:none; margin:0; padding:0;
    display:grid; grid-template-columns:repeat(2,1fr);
    gap:0;
}
.ns-info-list li{
    display:flex; align-items:center; justify-content:space-between;
    gap:12px; padding:11px 16px;
    border-bottom:1px solid var(--ns-line);
    font-size:13px;
}
.ns-info-list li:nth-last-child(-n+2){border-bottom:0;}
.ns-info-label{color:var(--ns-ink-3); font-size:12.5px; flex:0 0 auto;}
.ns-info-value{
    color:var(--ns-ink); font-weight:500;
    text-align:right; word-break:break-all; min-width:0;
}
@media (max-width:560px){
    .ns-info-list{grid-template-columns:1fr;}
    .ns-info-list li{border-bottom:1px solid var(--ns-line);}
    .ns-info-list li:last-child{border-bottom:0;}
}

/* ===== 头像设置表单 ===== */
.ns-avatar-form{padding:20px 16px;}
.ns-avatar-preview-wrap{
    display:flex; justify-content:center; align-items:center;
    margin-bottom:16px;
}
.ns-avatar-preview{
    width:96px; height:96px; border-radius:50%;
    object-fit:cover; display:block;
    background:#e6d9c5; border:2px solid var(--ns-line);
}
.ns-avatar-upload{
    display:flex; justify-content:center; align-items:center;
}
.ns-avatar-upload input[type="file"]{
    position:absolute; width:1px; height:1px;
    opacity:0; overflow:hidden; clip:rect(0 0 0 0);
}
.ns-avatar-upload .ns-btn-ghost{
    cursor:pointer; padding:7px 18px;
    border-radius:var(--ns-radius-sm);
    border:1px solid var(--ns-line);
    background: var(--ns-card-alt); color:var(--ns-ink-2);
    font-size:13px; transition:border-color .15s, color .15s;
}
.ns-avatar-upload .ns-btn-ghost:hover{
    border-color:var(--ns-accent); color:var(--ns-accent);
}

/* ===== 个性签名 ===== */
.ns-textarea-wrap{
    display: flex;position:relative; flex:1; min-width:0;
}
.ns-ipt.ns-textarea{
    width:100%; min-height:160px; resize:vertical;
    line-height:1.6; padding:10px 12px 28px;
}
.label-char-count{
    position:absolute; right:8px; bottom:12px;
    background:var(--ns-gold); color:var(--ns-card);
    border-radius:6px; padding:1px 6px;
    font-size:11px; line-height:1.5;
    pointer-events:none;
}

/* ===== 消息通知 ===== */
.ns-notice-head{
    display:flex; align-items:center; justify-content:space-between;
    gap:12px; flex-wrap:wrap;
}
.ns-notice-actions{display:flex; gap:6px; flex-wrap:wrap;}

.ns-notice-list{display:flex; flex-direction:column;}
.ns-notice-list > li,
.ns-notice-list > .cell{
    display:flex; align-items:flex-start; gap:10px;
    padding:12px 16px;
    border-bottom:1px solid var(--ns-line);
    font-size:13px; color:var(--ns-ink-2);
    transition:background .12s;
}
.ns-notice-list > li:last-child,
.ns-notice-list > .cell:last-child{border-bottom:0;}
.ns-notice-list > li:hover,
.ns-notice-list > .cell:hover{background:var(--ns-card-alt);}
.ns-notice-list .unread{background:var(--ns-gold-soft);}
.ns-notice-list .unread:hover{background:var(--ns-accent-soft);}

.ns-notice-item{
    border-bottom:1px solid var(--ns-line);
    transition:background .12s;
}
.ns-notice-item:last-child{border-bottom:0;}
.ns-notice-item:hover{background:var(--ns-card-alt);}
.ns-notice-item:not(.isread){background:var(--ns-gold-soft);}
.ns-notice-item:not(.isread):hover{background:var(--ns-accent-soft);}

.ns-notice-meta{
    display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px;
    padding:10px 16px 4px;
    font-size:12.5px; color:var(--ns-ink-2);
}
.ns-notice-meta a{color:var(--ns-ink); font-weight:500; text-decoration:none;}
.ns-notice-meta a:hover{color:var(--ns-accent);}
.ns-notice-name{font-weight:600; color:var(--ns-ink);}
.ns-notice-time{color:var(--ns-ink-3); font-size:12px;}
.ns-notice-dynamic{color:var(--ns-ink-2);}

.ns-notice-body{
    padding:2px 16px 12px;
    font-size:13px; color:var(--ns-ink-2); line-height:1.6;
    word-break:break-word;
}
.ns-notice-item.isread .ns-notice-body,
.ns-notice-item.isread .ns-notice-meta{color:var(--ns-ink-3);}

/* ===== 提示消息 ===== */
.ns-toast{
    display:inline-flex; align-items:center; gap:6px;
    font-size:13px; line-height:1.5;
    color:var(--ns-ink-2);
}
.ns-toast-error{border-color:#e8c4b0; color:#b5533a;}
.ns-toast-success{border-color:var(--ns-gold-light); color:var(--ns-gold);}
.ns-toast-info{border-color:var(--ns-gold-light); color:var(--ns-ink-2);}
.ns-toast-warning{border-color:var(--ns-gold-light); color:#a8763a;}

#feedback_area{margin:8px 0;}
#feedback_area:empty{display:none;}

@media (max-width:560px){
    .ns-toast{padding:7px 12px; font-size:12.5px;}
}

/* =========================================================
   其他
   ========================================================= */

/* 趋势统计条 */
.ns-trend-bar{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--ns-line);
    border: 1px solid var(--ns-line);
    border-radius: var(--ns-radius);
    overflow: hidden;
    margin-bottom: 12px;
}
.ns-trend-item{background: var(--ns-card); padding: 10px 8px; text-align: center;}
.ns-trend-label{display: block; font-size: 11px; color: var(--ns-ink-3); margin-bottom: 2px;}
.ns-trend-value{display: block; font-size: 18px; font-weight: 700; color: var(--ns-ink); line-height: 1.2;}

/* 签到按钮 */
.ns-checkin-btn{
    background: linear-gradient(135deg, #9a7a56, #6b4f33);
    color: var(--ns-card) !important;
    padding: 5px 12px !important;
    border-radius: var(--ns-radius-sm) !important;
    font-size: 12.5px !important;
    font-weight: 500;
}
.ns-checkin-btn:hover{filter: brightness(1.08);}

@keyframes ns-pulse{
    0%,100%{transform: scale(1);opacity: 1;}
    50%{transform: scale(1.25);opacity: .7;}
}

/* 用户等级 */
.ns-user-info{display: flex; flex-direction: column; gap: 2px; min-width: 0;}
.ns-user-level{
    font-size: 11px;
    font-weight: 600;
    color: var(--ns-accent);
    background: var(--ns-gold-soft);
    display: inline-block;
    padding: 0 6px;
    border-radius: 4px;
    width: fit-content;
}

/* 积分其他 */
.ns-chicken-bar{
    display: flex;
    gap: 12px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--ns-line);
    font-size: 12px;
    color: var(--ns-ink-3);
}
.ns-chicken-item{display: flex; align-items: center; gap: 4px;}
.ns-chicken-item em{font-style: normal; font-weight: 700; color: var(--ns-ink);}

/* 响应式补充 */
@media (max-width: 640px){
    .ns-quick-item{padding: 10px 4px; font-size: 11px;}
    .ns-quick-icon{font-size: 16px;}
    .ns-trend-bar{grid-template-columns: repeat(2, 1fr);}
    .ns-item-actions{opacity: 1;}
}

/* ============ 弹窗 mutai ============ */
#ui-modal{
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}
#ui-modal .modal-mask{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(60, 40, 20, 0.45);
}
#ui-modal .modal-box{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    background: var(--ns-card-alt);
    border-radius: 8px;
    box-shadow: 0 8px 30px var(--ns-shadow-lg);
    max-width: 500px;
    width: 95%;
    overflow: hidden;
}
#ui-modal .modal-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--ns-line);
    font-size: 16px;
    font-weight: 600;
    color: var(--ns-ink);
}
#ui-modal .modal-close{
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    color: var(--ns-ink-3);
}
#ui-modal .modal-close:hover{color: var(--ns-ink);}
#ui-modal .modal-body{
    padding: 16px;
    font-size: 14px;
    color: var(--ns-ink);
    line-height: 1.6;
    max-height: 60vh;
    overflow-y: auto;
}
#ui-modal .modal-footer{
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 16px 16px;
}
#ui-modal .modal-btn{
    padding: 6px 16px;
    border-radius: 4px;
    border: 1px solid var(--ns-line);
    background: var(--ns-card-alt);
    cursor: pointer;
    font-size: 14px;
    color: var(--ns-ink-2);
}
#ui-modal .modal-btn.modal-confirm{
    background: var(--ns-gold);
    border-color: var(--ns-gold);
    color: var(--ns-card);
}
#ui-modal .modal-btn.modal-confirm:hover{background: var(--ns-accent);}
#ui-modal .modal-btn.modal-cancel:hover{background: var(--ns-gold-soft);}
#ui-modal .modal-loading,
#ui-modal .modal-error{
    padding: 30px 10px;
    text-align: center;
    color: var(--ns-ink-3);
    font-size: 14px;
}
#ui-modal .modal-error{color: #b5533a;}