:root{--primary: #7c3aed;--primary-light: #a78bfa;--primary-dark: #5b21b6;--primary-bg: #f5f3ff;--accent: #f59e0b;--accent-light: #fde68a;--accent-dark: #d97706;--text: #0f172a;--text-secondary: #475569;--text-light: #94a3b8;--border: #e2e8f0;--border-light: #f1f5f9;--bg: #ffffff;--bg-gray: #f8fafc;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;font-family:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--border-light)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .2s;cursor:pointer;border:none;text-decoration:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-outline{background:transparent;color:var(--primary);border:1.5px solid var(--primary)}.btn-outline:hover{background:var(--primary-bg)}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-dark);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1.5px solid var(--border)}.btn-ghost:hover{background:var(--bg-gray);color:var(--text)}.btn-sm{padding:6px 14px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--radius-lg)}.card{background:#fff;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(0);background:#1e293b;color:#fff;padding:12px 24px;border-radius:24px;font-size:14px;z-index:9999;box-shadow:var(--shadow-lg);animation:toastIn .3s ease}@keyframes toastIn{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.spinner-primary{border:2px solid var(--primary-bg);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500}.tag-purple{background:var(--primary-bg);color:var(--primary)}.tag-amber{background:#fffbeb;color:var(--accent-dark)}.tag-green{background:#ecfdf5;color:#059669}.tag-blue{background:#eff6ff;color:#2563eb}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:14px;font-weight:500;color:var(--text)}.form-input{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);font-size:14px;color:var(--text);background:#fff;transition:border-color .2s,box-shadow .2s;outline:none}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #7c3aed1a}.form-input::placeholder{color:var(--text-light)}@media(max-width:768px){.container{padding:0 14px}.btn-lg{padding:12px 18px;font-size:14px}.dashboard-grid{grid-template-columns:1fr!important}.nav-label{display:none}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions a,.hero-actions button{text-align:center;justify-content:center}.stats-strip{grid-template-columns:repeat(2,1fr)!important;gap:16px!important}.feature-grid{grid-template-columns:1fr!important}.auth-box{padding:32px 20px!important;margin:16px!important}.admin-table-wrap{overflow-x:auto}.mode-grid{grid-template-columns:1fr!important}.style-grid,.book-grid{grid-template-columns:repeat(2,1fr)!important}nav .nav-links{display:none}}@media(max-width:480px){.stats-strip{grid-template-columns:1fr 1fr!important}.book-grid{grid-template-columns:1fr!important}}
