/* ============================================================
 * common.css — AI 游戏创作乐园 全局样式
 * 风格：卡通活泼 / 明亮配色 / 大按钮 / 圆角
 * ============================================================ */
:root{
  --bg:#FFF6EA; --card:#ffffff; --ink:#41322E; --muted:#A5908A;
  --red:#FF6B6B;   --red-d:#E85555;
  --orange:#FF922B;--orange-d:#E8791A;
  --yellow:#FFD93D;
  --blue:#4DABF7;  --blue-d:#339AF0;
  --green:#51CF66; --green-d:#40C057;
  --purple:#9775FA;--purple-d:#845EF7;
  --pink:#F783AC;
  --radius:20px;
  --shadow:0 8px 20px rgba(65,50,46,.08);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Comic Sans MS","Chalkboard SE",sans-serif;
  background:var(--bg); color:var(--ink); min-height:100vh;
}
a{color:var(--blue-d);text-decoration:none}
img{max-width:100%}

/* ---------- 布局 ---------- */
.wrap{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
.wrap-narrow{max-width:520px;margin:0 auto;padding:20px 16px 60px}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky;top:0;z-index:50;background:#fff;
  border-bottom:3px solid #FFE8CC;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 16px;
}
.topbar .logo{font-size:22px;font-weight:900;display:flex;align-items:center;gap:6px}
.topbar nav{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.topbar nav a{
  color:var(--ink);font-weight:700;font-size:15px;padding:8px 14px;border-radius:999px;
}
.topbar nav a.on{background:var(--yellow);box-shadow:0 3px 0 #E9C02E}
.topbar nav a:hover{background:#FFF1D6}
.topbar .me{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.topbar .pill{background:#FFF1D6;border-radius:999px;padding:6px 12px;font-weight:800}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  border:none;cursor:pointer;font-family:inherit;
  font-size:16px;font-weight:800;padding:12px 26px;border-radius:999px;
  color:#fff;background:var(--red);box-shadow:0 4px 0 var(--red-d);
  transition:transform .12s, box-shadow .12s; user-select:none;
}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--red-d)}
.btn.blue  {background:var(--blue);  box-shadow:0 4px 0 var(--blue-d)}
.btn.green {background:var(--green); box-shadow:0 4px 0 var(--green-d)}
.btn.orange{background:var(--orange);box-shadow:0 4px 0 var(--orange-d)}
.btn.purple{background:var(--purple);box-shadow:0 4px 0 var(--purple-d)}
.btn.ghost {background:#fff;color:var(--ink);box-shadow:0 4px 0 #E7DCD3}
.btn.small {padding:7px 16px;font-size:14px;box-shadow:0 3px 0 rgba(0,0,0,.15)}
.btn.big   {padding:16px 36px;font-size:19px}
.btn.block {width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ---------- 卡片 ---------- */
.card{
  background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);
  padding:20px;
}
.card + .card{margin-top:16px}
.card h3{font-size:18px;margin-bottom:12px}

/* ---------- 标签 ---------- */
.tag{display:inline-block;font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;background:#F1F3F5;color:#666}
.tag.diff-简单{background:#D3F9D8;color:#2B8A3E}
.tag.diff-中等{background:#FFF3BF;color:#E67700}
.tag.diff-困难{background:#FFE3E3;color:#C92A2A}
.r-N  {background:#E9ECEF;color:#666}
.r-R  {background:#DBE9FF;color:#1971C2}
.r-SR {background:#E7DCFF;color:#7048E8}
.r-SSR{background:#FFE3C2;color:#D9480F}
.r-UR {background:linear-gradient(90deg,#FFD6E0,#D6F0FF,#FFF3C2);color:#C2255C}

/* ---------- 网格 ---------- */
.grid{display:grid;gap:16px}
.grid.games{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.grid.cols-2{grid-template-columns:1fr 1fr}
@media (max-width:720px){.grid.cols-2{grid-template-columns:1fr}}

/* ---------- 游戏卡片 ---------- */
.game-card{cursor:pointer;overflow:hidden;padding:0;text-align:left;border:none;font-family:inherit;transition:transform .15s}
.game-card:hover{transform:translateY(-4px) rotate(-1deg)}
.game-cover{height:130px;display:flex;align-items:center;justify-content:center;font-size:64px;position:relative}
.game-info{padding:14px 16px}
.game-info .name{font-size:17px;font-weight:900;margin-bottom:6px}
.game-info .row{display:flex;gap:6px;align-items:center}

/* ---------- 表单 ---------- */
.input,select.input,textarea.input{
  width:100%;font-family:inherit;font-size:16px;color:var(--ink);
  border:3px solid #FFE1B3;border-radius:14px;padding:12px 14px;background:#FFFCF7;outline:none;
}
.input:focus{border-color:var(--orange)}
textarea.input{min-height:90px;resize:vertical}
label.f{display:block;font-weight:800;margin:14px 0 6px;font-size:15px}

/* ---------- 表格 ---------- */
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{background:#FFF1D6;text-align:left;padding:10px;font-weight:900}
.tbl td{padding:10px;border-bottom:2px solid #FFF1D6}
.tbl tr:hover td{background:#FFFCF5}

/* ---------- 弹窗 ---------- */
.mask{position:fixed;inset:0;background:rgba(65,50,46,.45);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:#fff;border-radius:24px;padding:24px;max-width:560px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal h3{margin-bottom:14px}
.hidden{display:none !important}

/* ---------- 提示 ---------- */
#toast{
  position:fixed;top:18px;left:50%;transform:translateX(-50%) translateY(-80px);
  background:var(--ink);color:#fff;font-weight:700;font-size:15px;
  padding:12px 24px;border-radius:999px;z-index:200;transition:transform .3s;box-shadow:var(--shadow);
  max-width:90vw;text-align:center;
}
#toast.show{transform:translateX(-50%) translateY(0)}

/* ---------- 桌宠 ---------- */
.pet-ava{
  display:inline-flex;align-items:center;justify-content:center;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,#FFE8CC);
  border:3px solid #FFD9A0;box-shadow:var(--shadow);flex:none;
}
.pet-ava.bounce{animation:bounce 1.6s ease-in-out infinite}
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ---------- 聊天 ---------- */
.chat-box{display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:6px}
.msg{max-width:85%;padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.5;white-space:pre-wrap}
.msg.user{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:#FFF1D6;border-bottom-left-radius:4px}
.msg .sys{display:block;font-size:12px;color:var(--orange-d);font-weight:800;margin-top:4px}

/* ---------- 空状态 ---------- */
.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:15px}
.empty .big{font-size:52px;display:block;margin-bottom:8px}

/* ---------- 工具 ---------- */
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.between{justify-content:space-between}
.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}
.muted{color:var(--muted);font-size:13px}
.center{text-align:center}
/* 页面底部备案信息（直接写在 HTML 里，不是 JS 生成，爬虫/核查工具能读到） */
.beian{text-align:center;padding:26px 0 44px;font-size:12px;line-height:2;color:#B7A69F}
.beian a{color:inherit;text-decoration:none}
