@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,600&family=Noto+Serif:ital,wght@0,600;0,700;0,800;0,900;1,600;1,700&family=Noto+Serif+TC:wght@700;900&family=Playfair+Display:ital,wght@0,600;0,700;0,800;0,900;1,600&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-card:#fff;--bg-card-hover:#fff;--bg-accent:#fefce8;--border-gold:#ca8a0473;--border-gold-bright:#d97706;--border-subtle:#e2e8f0e6;--gold-300:#ca8a04;--gold-400:#b45309;--gold-500:#92400e;--gold-600:#78350f;--text-main:#0f172a;--text-muted:#475569;--text-dim:#64748b;--hanh-kim:#334155;--hanh-moc:#15803d;--hanh-thuy:#0369a1;--hanh-hoa:#dc2626;--hanh-tho:#b45309;--tuhoa-loc:#059669;--tuhoa-quyen:#dc2626;--tuhoa-khoa:#0284c7;--tuhoa-ky:#7c3aed;--font-sans:"Be Vietnam Pro", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-serif:"Noto Serif", "Playfair Display", "Be Vietnam Pro", Georgia, serif;--font-royal:"Noto Serif", "Playfair Display", "Be Vietnam Pro", Georgia, serif;--font-han:"Noto Serif TC", "KaiTi", "STKaiti", "Noto Serif", serif;--gold-glow:0 4px 20px #ca8a0440;--gold-glow-strong:0 8px 30px #d9770659;--card-shadow:0 4px 25px -4px #00000012, 0 2px 10px -2px #ca8a0414}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 50% -10%,#fef08a73 0%,#0000 65%),radial-gradient(at 90% 90%,#e0e7ff73 0%,#0000 55%),radial-gradient(at 10% 80%,#fee2e259 0%,#0000 55%);background-attachment:fixed;min-height:100vh;line-height:1.55}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:#ca8a0459;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ca8a0499}.glass-panel{background:var(--bg-card);border:1px solid var(--border-gold);box-shadow:var(--card-shadow);border-radius:14px}.gold-text{background:linear-gradient(135deg,#b45309 0%,#d97706 45%,#92400e 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.gold-gradient-bg{color:#fff;background:linear-gradient(135deg,#d97706 0%,#b45309 100%);border:none;font-weight:700;transition:all .2s;box-shadow:0 4px 15px #d9770640}.gold-gradient-bg:hover{filter:brightness(1.08);box-shadow:var(--gold-glow);transform:translateY(-1px)}button{cursor:pointer;font-family:var(--font-sans);transition:all .2s}input,select{font-family:var(--font-sans);color:var(--text-main);background:#fff;border:1px solid #ca8a0459;border-radius:8px;outline:none;padding:8px 12px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus{border-color:var(--gold-400);box-shadow:0 0 0 3px #d9770626}.nh-kim{color:var(--hanh-kim)}.nh-moc{color:var(--hanh-moc)}.nh-thuy{color:var(--hanh-thuy)}.nh-hoa{color:var(--hanh-hoa)}.nh-tho{color:var(--hanh-tho)}.badge-mieu-ham{border-radius:3px;margin-left:2px;padding:1px 4px;font-size:10px;font-weight:800}.badge-mieu-ham.nho{margin-left:0;padding:0 3px;font-size:9px;font-weight:700}.badge-mieu-ham.m{color:#b45309;background:#f59e0b2e}.badge-mieu-ham.v{color:#15803d;background:#16a34a2e}.badge-mieu-ham.d{color:#0369a1;background:#0284c72e}.badge-mieu-ham.b{color:#64748b;background:#94a3b82e}.badge-mieu-ham.h{color:#dc2626;background:#dc262629}.tuhoa-badge{border-radius:4px;align-items:center;margin-left:4px;padding:1px 5px;font-size:10px;font-weight:900;display:inline-flex;box-shadow:0 1px 3px #00000026}.tuhoa-badge.loc{background:var(--tuhoa-loc);color:#fff}.tuhoa-badge.quyen{background:var(--tuhoa-quyen);color:#fff}.tuhoa-badge.khoa{background:var(--tuhoa-khoa);color:#fff}.tuhoa-badge.ky{background:var(--tuhoa-ky);color:#fff}@keyframes tuhoaGlow{0%{transform:scale(1);box-shadow:0 0 #d9770699}70%{transform:scale(1.04);box-shadow:0 0 0 5px #d9770600}to{transform:scale(1);box-shadow:0 0 #d9770600}}@keyframes dashAnim{to{stroke-dashoffset:-40px}}.menh-tai-quan-line{animation:2s linear infinite dashAnim}@keyframes spinSlow{to{transform:rotate(360deg)}}.spin-slow{animation:2.2s linear infinite spinSlow}.animate-spin{animation:1s linear infinite spinSlow}@keyframes classicsShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes classicsFloat{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-5px)rotate(1.5deg)}}@keyframes classicsPageFlip{0%{opacity:1;transform:scaleX(1)}50%{opacity:1;transform:scaleX(0)}to{opacity:.15;transform:scaleX(-1)}}@media (prefers-reduced-motion:reduce){.spin-slow,.animate-spin,.classics-anim{animation:none!important}}
