/* ======================================================================
   神秘礼物交换分配器 · 圣诞松林礼盒主题
   浅色 = 热红酒米纸 + 松绿 + 朱红 + 烫金；深色 = 夜色壁炉
   ====================================================================== */
.snt{
  --ink:#2c1a12; --sub:#6b5548; --faint:#a89184;
  --bg:#fbf4ea; --card:#fffdf9; --card2:#f5ead9; --line:#e7d7c2; --line2:#efe3d2;
  --pine:#14532d; --pine-2:#16a34a; --pine-soft:#e3f2e6;
  --red:#b91c1c; --red-2:#dc2626; --red-soft:#fdeaea;
  --gold:#b45309; --gold-2:#f59e0b; --gold-soft:#fdf1dc;
  --r:16px;
  --shadow:0 1px 2px rgba(44,26,18,.06),0 12px 30px rgba(44,26,18,.08);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.75;
  background:
    radial-gradient(760px 340px at 90% -120px, rgba(22,163,74,.10), transparent 62%),
    radial-gradient(620px 320px at -6% 120px, rgba(185,28,28,.07), transparent 60%),
    repeating-linear-gradient(115deg, transparent 0 26px, rgba(180,83,9,.025) 26px 27px),
    var(--bg);
  padding:0 16px 56px;
}
:root[data-theme="dark"] .snt{
  --ink:#f3e9dd; --sub:#c3ac9c; --faint:#8a7466;
  --bg:#17110c; --card:#221812; --card2:#2b1f17; --line:#3d2c20; --line2:#33251b;
  --pine:#4ade80; --pine-2:#86efac; --pine-soft:rgba(74,222,128,.12);
  --red:#f87171; --red-2:#fca5a5; --red-soft:rgba(248,113,113,.12);
  --gold:#fbbf24; --gold-2:#fcd34d; --gold-soft:rgba(251,191,36,.12);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 34px rgba(0,0,0,.45);
}
.snt *{box-sizing:border-box;}
.snt b{font-weight:700;}
.snt-wrap{max-width:1100px;margin:0 auto;}
.snt textarea,.snt input{font-family:inherit;}

/* ---------- Hero：礼盒横幅 ---------- */
.snt-hero{margin-top:22px;border:1px solid var(--line);border-radius:20px;overflow:hidden;
  background:linear-gradient(135deg,var(--pine) 0%,#0c3b20 55%,#082a16 100%);
  box-shadow:var(--shadow);position:relative;}
:root[data-theme="dark"] .snt-hero{background:linear-gradient(135deg,#123524 0%,#0b2417 60%,#081a10 100%);}
.snt-hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(3px 3px at 12% 22%,rgba(255,255,255,.5),transparent 60%),
  radial-gradient(2px 2px at 32% 66%,rgba(255,255,255,.35),transparent 60%),
  radial-gradient(3px 3px at 58% 30%,rgba(255,255,255,.4),transparent 60%),
  radial-gradient(2px 2px at 78% 58%,rgba(255,255,255,.35),transparent 60%),
  radial-gradient(3px 3px at 90% 24%,rgba(255,255,255,.45),transparent 60%);}
.snt-hero-in{padding:30px 30px 26px;position:relative;z-index:1;}
.snt-hero h1{margin:0 0 8px;font-size:clamp(24px,3.6vw,33px);font-weight:900;color:#fdf6e3;line-height:1.3;}
.snt-hero h1 .snt-gift{display:inline-block;transform:rotate(-8deg);}
.snt-hero p{margin:0;color:#c9e4cf;font-size:15px;max-width:780px;}
.snt-hero p em{font-style:normal;color:#ffd76a;font-weight:700;}
.snt-ribbon{display:inline-block;background:var(--red);color:#fff;font-size:12px;font-weight:800;
  letter-spacing:.12em;border-radius:999px;padding:4px 14px;margin-bottom:12px;}

/* ---------- 工作台 ---------- */
.snt-desk{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px;}
@media (max-width:920px){.snt-desk{grid-template-columns:1fr;}}
.snt-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;}
.snt-card h2{margin:0 0 4px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;}
.snt-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:8px;
  background:var(--pine);color:#fff;font-size:12px;font-weight:800;flex:none;}
.snt-tip{font-size:12.5px;color:var(--sub);margin:0 0 10px;}
.snt-ta{width:100%;min-height:150px;resize:vertical;padding:12px 14px;border-radius:12px;
  border:1px solid var(--line);background:var(--card2);color:var(--ink);font-size:14px;line-height:1.8;outline:none;}
.snt-ta:focus{border-color:var(--pine-2);box-shadow:0 0 0 3px var(--pine-soft);}
.snt-ta.small{min-height:88px;}
.snt-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;}
.snt-btn{border:none;border-radius:11px;padding:9px 18px;font-size:14px;font-weight:800;cursor:pointer;transition:all .15s;}
.snt-btn-go{background:var(--red);color:#fff;}
.snt-btn-go:hover{background:var(--red-2);transform:translateY(-1px);}
.snt-btn-ghost{background:var(--card2);color:var(--pine);border:1px solid var(--line);}
.snt-btn-ghost:hover{border-color:var(--pine-2);}
.snt-msg{margin-top:10px;font-size:13px;min-height:20px;font-weight:700;}
.snt-msg.err{color:var(--red);}
.snt-msg.ok{color:var(--pine);}
.snt-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.snt-stat{font-size:12.5px;color:var(--sub);background:var(--card2);border:1px solid var(--line2);border-radius:9px;padding:4px 10px;}
.snt-stat b{color:var(--gold);}

/* ---------- 密封卡片 ---------- */
.snt-seals{margin-top:18px;}
.snt-seal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.snt-seal{border:1.5px dashed var(--gold-2);border-radius:14px;background:var(--gold-soft);
  padding:14px;text-align:center;transition:all .2s;}
.snt-seal .snt-who{font-weight:900;font-size:15px;}
.snt-seal .snt-env{font-size:26px;margin:4px 0;}
.snt-seal .snt-to{font-size:14px;color:var(--sub);min-height:24px;}
.snt-seal.opened{border-style:solid;border-color:var(--pine-2);background:var(--pine-soft);}
.snt-seal.opened .snt-to{color:var(--pine);font-weight:800;}
.snt-seal button{margin-top:8px;border:1px solid var(--gold);background:transparent;color:var(--gold);
  border-radius:9px;padding:4px 14px;font-size:12.5px;font-weight:700;cursor:pointer;}
.snt-seal.opened button{display:none;}
.snt-empty{color:var(--faint);font-size:14px;text-align:center;padding:26px 0;}

/* ---------- FAQ ---------- */
.snt-faq{margin-top:34px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);}
.snt-faq h2{margin:0 0 12px;font-size:19px;font-weight:900;}
.snt-faq h3{margin:18px 0 6px;font-size:15.5px;font-weight:800;color:var(--pine);}
.snt-faq p{margin:0;color:var(--sub);font-size:14px;}
.snt-faq p b{color:var(--ink);}
