/* ============================================================
   NAILUOYU 前台 · shadcn/ui 设计令牌与基础组件库
   主色由 inc/color-system.php 经 wp_head 注入（--site-primary），
   此处仅留 fallback，被注入值实时覆盖。
   ============================================================ */

/* ---------- shadcn/ui 设计令牌 ---------- */
:root{
  --site-primary: 262 84% 58%;        /* fallback：violet-600 */
  --site-primary-deep: 262 84% 44%;
  --site-primary-soft: 262 84% 95%;
  --background: 0 0% 100%;
  --foreground: 240 10% 3.9%;
  --card: 0 0% 100%;
  --muted: 240 4.8% 95.9%;
  --muted-foreground: 240 3.8% 46.1%;
  --secondary: 240 4.8% 95.9%;
  --secondary-foreground: 240 5.9% 10%;
  --accent: 240 4.8% 95.9%;
  --accent-foreground: 240 5.9% 10%;
  --border: 240 5.9% 90%;
  --input: 240 5.9% 90%;
  --ring: 262 84% 58%;
  --radius: 0.75rem;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  background:hsl(var(--background));color:hsl(var(--foreground));
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:hover{color:hsl(var(--site-primary-deep))}
ul,ol{list-style:none}
img{display:block;max-width:100%}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3,h4{line-height:1.35}

.pp-wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.pp-muted{color:hsl(var(--muted-foreground))}

/* ---------- 按钮 ---------- */
.sc-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  height:40px;padding:0 16px;border-radius:calc(var(--radius) - 2px);
  font-size:14px;font-weight:500;white-space:nowrap;
  border:1px solid transparent;user-select:none;
  transition:background .18s,color .18s,border-color .18s,transform .1s,box-shadow .18s;
}
.sc-btn:active{transform:translateY(1px)}
.sc-btn:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}
.sc-btn--default{background:hsl(var(--site-primary));color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.sc-btn--default:hover{background:hsl(calc(var(--site-primary) + 5) 84% 52%)}
.sc-btn--outline{background:transparent;border-color:hsl(var(--border));color:hsl(var(--foreground))}
.sc-btn--outline:hover{background:hsl(var(--accent))}
.sc-btn--secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}
.sc-btn--secondary:hover{background:hsl(var(--muted))}
.sc-btn--ghost{background:transparent;color:hsl(var(--muted-foreground))}
.sc-btn--ghost:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}
.sc-btn--sm{height:34px;padding:0 12px;font-size:13px}
.sc-btn--lg{height:48px;padding:0 26px;font-size:15px}
.sc-btn[disabled]{opacity:.55;pointer-events:none}

/* ---------- 徽章 ---------- */
.sc-badge{
  display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;
  border-radius:9999px;font-size:12px;font-weight:500;line-height:1;
  white-space:nowrap;border:1px solid transparent;
}
.sc-badge--primary{background:hsl(var(--site-primary-soft));color:hsl(var(--site-primary-deep))}
.sc-badge--outline{border-color:hsl(var(--border));color:hsl(var(--muted-foreground))}
.sc-badge--muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}
.sc-badge--success{background:#E8F5E9;color:#1B5E20}
.sc-badge--coin{background:#FEF3C7;color:#92400E}
.sc-badge--danger{background:#FEE2E2;color:#991B1B}
.sc-badge--vip{background:linear-gradient(135deg,#F7C948,#F59E0B);color:#7C2D12;font-weight:600}

/* ---------- 卡片 / 输入 / 头像 ---------- */
.sc-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius)}
.sc-input{
  height:40px;width:100%;padding:0 12px;border:1px solid hsl(var(--input));
  border-radius:calc(var(--radius) - 2px);background:transparent;
  font-size:14px;color:hsl(var(--foreground));transition:border-color .15s,box-shadow .15s;
}
.sc-input::placeholder{color:hsl(var(--muted-foreground))}
.sc-input:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsla(var(--site-primary)/.15)}
.sc-avatar{width:34px;height:34px;border-radius:9999px;object-fit:cover;background:hsl(var(--muted))}

/* ---------- 面包屑 ---------- */
.sc-crumb{font-size:13px;color:hsl(var(--muted-foreground));padding:16px 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sc-crumb a:hover{color:hsl(var(--site-primary-deep))}
.sc-crumb .sep{color:hsl(var(--border))}

/* ---------- 分页 ---------- */
.sc-pager{display:flex;justify-content:center;align-items:center;gap:8px;padding:22px 0 10px}
.sc-pager a,.sc-pager .cur,.sc-pager .dots,.sc-pager .prev,.sc-pager .next{
  min-width:36px;height:36px;padding:0 12px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid hsl(var(--border));font-size:13.5px;color:hsl(var(--muted-foreground));
}
.sc-pager a:hover{background:hsl(var(--accent))}
.sc-pager .cur{background:hsl(var(--site-primary));border-color:hsl(var(--site-primary));color:#fff;font-weight:600}
.sc-pager .prev.disabled,.sc-pager .next.disabled{opacity:.4;pointer-events:none}

/* ---------- Toast ---------- */
#nal-toast{position:fixed;left:50%;bottom:44px;transform:translateX(-50%) translateY(20px);background:#111;color:#fff;font-size:13.5px;padding:10px 20px;border-radius:10px;opacity:0;pointer-events:none;transition:.25s;z-index:9999}
#nal-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- 动效 ---------- */
@keyframes nal-fade{from{opacity:0}to{opacity:1}}
@keyframes nal-pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- 打印 ---------- */
@media print{ .announce,.tools,.sc-pager,.bar,.mbar{display:none!important} }