/* ============================================================
   浆果AI · Berry Garden 设计系统 v2
   全局主题：字体 / 背景 / 按钮 / 卡片 / 响应式
   与 18 个工具页既有样式共存（仅用低侵入选择器）
   ============================================================ */

:root {
  --berry-50:#f6f2ff; --berry-100:#ece4ff; --berry-200:#d5c5ff;
  --berry-400:#9d7bfa; --berry-500:#7c5cfc; --berry-600:#6b4fe8; --berry-700:#5a3fd0;
  --berry-900:#3a2a6b;
  --leaf-500:#5cd65c; --leaf-600:#3fbf6b;
  --pink-500:#ff8fab; --honey-500:#ffb347;
  --bg-cream:#faf7f2; --bg-lav:#f4f0fb;
  --ink:#3d3450; --ink-soft:#7a7290; --line:#e9e2f5;
  --card:#ffffff;
  --r-lg:22px; --r-md:16px; --r-sm:12px;
  --shadow-soft:0 4px 20px rgba(107,79,232,.10);
  --shadow-card:0 6px 24px rgba(107,79,232,.12);
  --font-num:'Fredoka','Baloo 2',-apple-system,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
}

/* --- 字体：数字/英文走圆润体，中文走系统圆体 --- */
body {
  font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB','HarmonyOS Sans','Microsoft YaHei','Noto Sans CJK SC',sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
/* 数字与英文自动圆润化 */
button, input, select, .num, .score, h1, h2, h3 {
  font-family:var(--font-num);
}

/* --- 页面背景：奶油 + 淡紫渐变光斑 --- */
body {
  background:
    radial-gradient(1200px 500px at 85% -100px, rgba(157,123,250,.10), transparent 60%),
    radial-gradient(900px 420px at -100px 30%, rgba(255,143,171,.08), transparent 60%),
    linear-gradient(180deg, var(--bg-lav) 0%, var(--bg-cream) 320px);
  background-attachment:fixed;
  min-height:100vh;
}

/* --- 卡片容器通用增强 --- */
.sheet, .card, .panel, .box, .block, .module, .wrap-card, .container-card {
  border-radius:var(--r-md);
  background:var(--card);
  box-shadow:var(--shadow-soft);
}

/* --- 按钮：浆果圆角胶囊 + 按压反馈 --- */
button {
  border-radius:14px;
  transition:transform .1s ease, box-shadow .15s ease, filter .15s ease;
  letter-spacing:.3px;
}
button:not(:disabled):active { transform:scale(.965); }
button:not(:disabled):hover { filter:brightness(1.04); }

/* --- 输入框 --- */
input[type=text], input[type=number], input[type=search], textarea, select {
  border-radius:14px !important;
}

/* --- 首页专用（berry 命名空间，零冲突） --- */
.berry-home { max-width:1080px; margin:0 auto; padding:0 14px 30px; }

.berry-hero {
  display:flex; align-items:center; gap:14px;
  padding:22px 4px 10px;
}
.berry-hero .mascot {
  width:74px; height:74px; border-radius:20px; flex:none;
  box-shadow:0 8px 24px rgba(107,79,232,.30);
  animation:berry-bob 3.2s ease-in-out infinite;
}
@keyframes berry-bob { 0%,100%{transform:translateY(0) rotate(-2deg);} 50%{transform:translateY(-7px) rotate(2deg);} }
.berry-hero h1 {
  font-size:30px; font-weight:900; margin:0;
  background:linear-gradient(120deg, var(--berry-600), var(--pink-500));
  -webkit-background-clip:text; background-clip:text; color:transparent;
  letter-spacing:1px;
}
.berry-hero .slogan { color:var(--ink-soft); font-size:13px; margin-top:4px; }

.berry-search {
  display:flex; gap:8px; margin:14px 0 4px;
}
.berry-search input {
  flex:1; height:46px; border:2px solid var(--berry-200); background:#fff;
  font-size:15px; padding:0 16px; outline:none; color:var(--ink);
}
.berry-search input:focus { border-color:var(--berry-400); box-shadow:0 0 0 4px rgba(157,123,250,.14); }

.berry-cat {
  display:flex; gap:8px; overflow-x:auto; padding:12px 0 4px;
  scrollbar-width:none;
}
.berry-cat::-webkit-scrollbar { display:none; }
.berry-cat button {
  flex:none; height:34px; padding:0 16px; border:none; cursor:pointer;
  border-radius:17px; font-size:13.5px; font-weight:600;
  background:#fff; color:var(--ink-soft); box-shadow:var(--shadow-soft);
}
.berry-cat button.on {
  background:linear-gradient(120deg, var(--berry-500), var(--berry-400));
  color:#fff; box-shadow:0 4px 14px rgba(107,79,232,.35);
}

.berry-grid {
  display:grid; grid-template-columns:repeat(2, 1fr);
  gap:12px; margin-top:12px;
}
@media (min-width:640px) { .berry-grid { grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px) { .berry-grid { grid-template-columns:repeat(4,1fr); gap:14px; } }

.berry-sec-title {
  font-size:15px; font-weight:800; color:var(--ink);
  margin:18px 2px 2px; display:flex; align-items:center; gap:6px;
}
.berry-sec-title::before {
  content:""; width:4px; height:15px; border-radius:2px;
  background:linear-gradient(180deg, var(--berry-500), var(--pink-500));
}

.berry-card {
  display:block; text-decoration:none; position:relative;
  background:var(--cc, var(--berry-50));
  border-radius:var(--r-lg); padding:16px 14px 14px;
  box-shadow:var(--shadow-soft);
  transition:transform .14s ease, box-shadow .14s ease;
  overflow:hidden;
}
.berry-card:active { transform:scale(.97); }
@media (hover:hover) {
  .berry-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-card); }
}
.berry-card .icon {
  width:44px; height:44px; border-radius:14px;
  background:#fff; display:flex; align-items:center; justify-content:center;
  font-size:24px; box-shadow:0 3px 10px rgba(0,0,0,.08); margin-bottom:10px;
}
.berry-card .t { font-size:15.5px; font-weight:800; color:var(--ink); line-height:1.3; }
.berry-card .d { font-size:11.5px; color:rgba(61,52,80,.62); margin-top:4px; line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.berry-card .tag {
  position:absolute; top:12px; right:12px; font-size:10px; font-weight:700;
  color:rgba(61,52,80,.45); background:rgba(255,255,255,.65);
  padding:2px 8px; border-radius:8px;
}
.berry-card .glow {
  position:absolute; right:-30px; bottom:-30px; width:110px; height:110px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.5), transparent 70%);
}

.berry-parent {
  margin-top:20px; background:linear-gradient(120deg, var(--berry-600), var(--berry-400));
  border-radius:var(--r-lg); padding:16px 18px; color:#fff;
  box-shadow:0 8px 26px rgba(107,79,232,.30);
}
.berry-parent h3 { margin:0 0 6px; font-size:15px; font-weight:800; }
.berry-parent p { margin:0; font-size:12px; line-height:1.7; color:rgba(255,255,255,.88); }

.berry-foot { text-align:center; color:#b3aacd; font-size:11px; padding:22px 0 10px; }

/* ═══════════ v3 学科门户（一级入口）═══════════ */
.subj-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 8px;}
@media(min-width:820px){.subj-grid{gap:16px;}}
.subj-card{position:relative;overflow:hidden;text-align:left;border:none;cursor:pointer;
  border-radius:22px;padding:16px 16px 14px;color:#fff;min-height:96px;
  display:flex;flex-direction:column;gap:3px;
  box-shadow:0 10px 26px -12px rgba(90,70,180,.45);
  transition:transform .15s,box-shadow .15s,filter .15s;}
.subj-card:active{transform:scale(.98);}
.subj-card.soon{filter:saturate(.82);}
.subj-card.soon::after{content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.22) 45%,transparent 60%);}
.subj-card.on{transform:translateY(-3px);box-shadow:0 16px 34px -12px rgba(90,70,180,.6);
  outline:3px solid rgba(255,255,255,.9);outline-offset:-3px;}
.subj-en{font-family:'Fredoka',sans-serif;font-size:10px;letter-spacing:3px;opacity:.75;font-weight:600;}
.subj-name{font-size:21px;font-weight:800;letter-spacing:1px;}
.subj-desc{font-size:12px;opacity:.9;}
.subj-badge{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.28);
  border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;
  backdrop-filter:blur(4px);}

/* 学科分区标题 */
.berry-sec-title{margin:18px 2px 10px;font-size:17px;font-weight:800;color:#4a4560;
  display:flex;align-items:center;gap:8px;}
.sec-count{font-size:11px;font-weight:700;background:#efe9ff;color:#6b54e8;
  border-radius:999px;padding:2px 10px;}

/* 卡片右上角学科标签 */
.berry-card .tag{position:absolute;top:10px;right:12px;font-size:10px;font-weight:700;
  color:#6b54e8;background:rgba(255,255,255,.75);border:1px solid #d9ccff;
  border-radius:999px;padding:2px 9px;backdrop-filter:blur(2px);}

/* 即将上线卡 */
.berry-card-soon{cursor:default;opacity:.85;}
.berry-card-soon .t::after{content:" ⏳";font-size:13px;}
.soon-note{margin:10px 4px;font-size:13px;color:#8a82a6;background:#f4f0ff;
  border:1px dashed #cbb9ff;border-radius:14px;padding:10px 14px;}

.grid-empty{margin:26px 8px;text-align:center;color:#8a82a6;font-size:14px;
  background:#f7f4ff;border-radius:16px;padding:22px;}

/* ═══════════ v4 首页：广告轮播 + AI 助手 ═══════════ */
.berry-hero.slim{padding:14px 16px 4px;margin-top:0;}
.berry-hero.slim .mascot{width:44px;height:44px;}
.berry-hero.slim h1{font-size:20px;}
.berry-hero.slim .slogan{font-size:12px;}
.home-sec{margin:16px 2px 10px;}

/* ── 广告轮播 ── */
.ad-carousel{position:relative;margin:14px 0 4px;border-radius:20px;overflow:hidden;
  box-shadow:0 12px 30px -14px rgba(90,70,180,.4);}
.ad-track{display:flex;transition:transform .45s cubic-bezier(.4,0,.2,1);}
.ad-slide{flex:0 0 100%;height:118px;position:relative;display:flex;align-items:center;
  justify-content:center;padding:0 22px;}
@media(min-width:720px){.ad-slide{height:150px;}}
.ad-txt{color:#fff;}
.ad-t{font-size:20px;font-weight:800;letter-spacing:1px;text-shadow:0 2px 8px rgba(0,0,0,.18);}
.ad-sub{font-size:12px;opacity:.92;margin-top:5px;}
.ad-link{position:absolute;inset:0;}
.ad-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;}
.ad-dots i{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.5);
  transition:all .25s;cursor:pointer;}
.ad-dots i.on{width:18px;background:#fff;}

/* ── AI 学习助手卡 ── */
.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(min-width:820px){.ai-grid{grid-template-columns:repeat(4,1fr);gap:14px;}}
.ai-card{position:relative;overflow:hidden;border-radius:20px;padding:14px 14px 12px;color:#fff;
  min-height:118px;display:flex;flex-direction:column;gap:3px;
  box-shadow:0 10px 26px -12px rgba(90,70,180,.45);transition:transform .15s;}
.ai-card:active{transform:scale(.98);}
.ai-badge{font-family:'Fredoka',sans-serif;font-size:9px;letter-spacing:1.5px;font-weight:700;
  background:rgba(255,255,255,.24);align-self:flex-start;border-radius:999px;padding:2px 9px;
  backdrop-filter:blur(4px);}
.ai-icon{font-size:26px;margin:6px 0 2px;}
.ai-t{font-size:15px;font-weight:800;letter-spacing:.5px;}
.ai-d{font-size:11px;opacity:.9;line-height:1.4;}
.ai-soon{position:absolute;bottom:10px;right:12px;font-size:10px;font-weight:700;
  background:rgba(255,255,255,.28);border-radius:999px;padding:2px 9px;}

/* 省份/教材面板 */
.prov-panel{background:#fff;border-radius:16px;padding:14px;margin:0 14px 18px;
  box-shadow:0 2px 12px rgba(90,60,180,.07);border:1px solid #efe9fb;}
.prov-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.prov-lab{font-size:13px;color:#8b83ad;font-weight:700;flex:0 0 62px;}
.prov-sel{flex:1;min-width:130px;padding:9px 12px;border:1px solid #e6dffa;border-radius:10px;
  font-size:14px;background:#fbfaff;font-family:inherit;color:#3d3450;outline:none;}
.prov-sel:focus{border-color:#a184fb;background:#fff;}
.prov-grades{display:flex;flex-wrap:wrap;gap:6px;flex:1;}
.pg{padding:6px 11px;border-radius:14px;border:1px solid #e6dffa;background:#fbfaff;
  font-size:12.5px;color:#6b5fa8;cursor:pointer;font-family:inherit;transition:all .15s;}
.pg.on{background:linear-gradient(135deg,#7c5cfc,#a184fb);color:#fff;border-color:transparent;font-weight:700;}
.prov-books{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;}
.pb{background:linear-gradient(150deg,#f7f4ff,#efeaff);border-radius:11px;padding:10px 8px;text-align:center;
  border:1px solid #ece4fd;}
.pb-s{font-size:11px;color:#8b83ad;font-weight:700;}
.pb-n{font-size:13.5px;color:#5b4bb0;font-weight:800;margin:3px 0;line-height:1.3;}
.pb-t{font-size:10.5px;color:#a89fc4;}
@media(max-width:360px){.prov-books{grid-template-columns:1fr;}}
.ai-card.act{cursor:pointer;transition:transform .15s,box-shadow .15s;}
.ai-card.act:active{transform:scale(.97);}
