/* ========== Reset ========== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'PingFang SC','Microsoft YaHei',-apple-system,sans-serif;-webkit-font-smoothing:antialiased;background:#F5F6FA;color:#111827;line-height:1.5}
::-webkit-scrollbar{display:none}
select option:disabled{color:#9CA3AF}
select option{color:#1F2937;background:#fff}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

/* ========== Animations ========== */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateY(-12px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

.fade-up{animation:fadeUp .35s cubic-bezier(.22,1,.36,1) both}
.s1{animation-delay:.04s}.s2{animation-delay:.08s}.s3{animation-delay:.12s}
.s4{animation-delay:.16s}.s5{animation-delay:.2s}.s6{animation-delay:.24s}

/* ========== Toast ========== */
.toast-box{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:9999;pointer-events:none;display:flex;flex-direction:column;gap:8px;align-items:center;width:90%;max-width:360px}
.toast{pointer-events:auto;padding:12px 18px;border-radius:12px;font-size:13px;font-weight:500;box-shadow:0 4px 20px rgba(0,0,0,.12);animation:fadeUp .3s ease both;display:flex;align-items:center;gap:8px}
.toast-info{background:rgba(59,130,246,.92);color:#fff}
.toast-warn{background:rgba(245,158,11,.92);color:#fff}
.toast-error{background:rgba(220,38,38,.92);color:#fff}
.toast-success{background:rgba(22,163,74,.92);color:#fff}

/* ========== Layout ========== */
@media(min-width:768px){.pc-wrap{max-width:480px;margin:0 auto;min-height:100vh}}

/* ========== Component Classes ========== */
/* Cards */
.card{background:#fff;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden}
.card-interactive{transition:transform .15s,box-shadow .15s;cursor:pointer}
.card-interactive:active{transform:scale(.98);box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* Buttons */
.btn-primary{width:100%;padding:14px;border-radius:14px;background:linear-gradient(135deg,#E87A3D,#F59E0B);color:#fff;font-size:15px;font-weight:700;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(232,122,61,.4);transition:transform .15s,box-shadow .15s}
.btn-primary:active{transform:scale(.97);box-shadow:0 2px 8px rgba(232,122,61,.3)}
.btn-secondary{padding:6px 14px;border-radius:20px;font-size:11px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .15s}
.btn-secondary.active{border-color:#2563eb;background:#2563eb;color:#fff;font-weight:600}
.btn-call{padding:6px 14px;background:#2563eb;color:#fff;border-radius:8px;font-size:10px;font-weight:600;text-decoration:none;text-align:center;display:block;border:none;cursor:pointer;transition:background .15s}
.btn-call:active{background:#1d4ed8}

/* Tags */
.tag{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;display:inline-block}
.tag-a{background:#FEF2F2;color:#DC2626}
.tag-b{background:#FFF7ED;color:#EA580C}
.tag-c{background:#F9FAFB;color:#6B7280}
.tag-d{background:#F9FAFB;color:#9CA3AF}

/* Thumb */
.thumb{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700;flex-shrink:0}

/* Select */
.select-glass{width:100%;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:15px;font-weight:500;border:1px solid rgba(255,255,255,.15);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27><path fill=%27white%27 d=%27M6 8L1 3h10z%27/></svg>");background-repeat:no-repeat;background-position:right 16px center}

/* Phone links */
.phone-link{display:inline-block;padding:5px 12px;background:#2563eb;color:#fff;border-radius:8px;font-size:11px;font-weight:600;text-decoration:none;margin:2px;transition:background .15s}
.phone-link:active{background:#1d4ed8}

/* Stat card */
.stat-card{background:#fff;border-radius:12px;padding:10px 4px;text-align:center;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:transform .15s}
.stat-card:active{transform:scale(.95)}

/* Grade bar */
.grade-bar{width:100%;height:6px;background:#f3f4f6;border-radius:3px;overflow:hidden}
.grade-bar-fill{height:100%;border-radius:3px;transition:width .5s}

/* Summary box */
.summary-box{font-size:11px;color:#4b5563;background:#eff6ff;padding:8px 10px;border-radius:8px;margin-top:8px;line-height:1.6}

/* Sticky header */
.header-bar{background:linear-gradient(135deg,#0A355C,#0F4C81);color:#fff;padding:14px 16px;position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(10,53,92,.3)}

/* Tab bar */
.tab-bar{background:#fff;display:flex;border-bottom:1px solid #e5e7eb;position:sticky;top:52px;z-index:40;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.tab-btn{padding:12px 16px;font-size:13px;font-weight:500;color:#9ca3af;border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;flex-shrink:0;white-space:nowrap;transition:all .15s}
.tab-btn.active{color:#2563eb;font-weight:600;border-bottom-color:#2563eb}

/* Bottom bar */
.bottom-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;padding:12px 16px;box-shadow:0 -2px 8px rgba(0,0,0,.06);z-index:50}

/* Glass card (home page) */
.glass-card{background:rgba(255,255,255,.06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:14px;border:1px solid rgba(255,255,255,.08)}

/* Picker sheet */
.picker-overlay{position:fixed;inset:0;z-index:60}
.picker-bg{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.picker-sheet{position:absolute;bottom:0;left:0;right:0;background:#fff;border-radius:20px 20px 0 0;animation:slideUp .3s cubic-bezier(.22,1,.36,1)}

/* Loading shimmer */
.shimmer{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
