:root{--primary-color: #4a90e2;--primary-hover: #357abd;--primary-light: #e8f4fd;--success-color: #28a745;--warning-color: #ffc107;--danger-color: #dc3545;--info-color: #17a2b8;--text-primary: #2c3e50;--text-secondary: #666;--text-light: #999;--bg-primary: #ffffff;--bg-secondary: #f5f7fa;--bg-tertiary: #e9ecef;--border-color: #dee2e6;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .15);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--transition: all .3s ease;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.5rem;--font-size-xxxl: 2rem;--line-height: 1.6;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:var(--line-height);color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:1.3;color:var(--text-primary);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-xxxl)}h2{font-size:var(--font-size-xxl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-md)}p{margin-bottom:var(--spacing-md);color:var(--text-secondary)}a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}a:hover{color:var(--primary-hover);text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);line-height:1;color:#fff;background-color:var(--primary-color);border:none;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm)}.btn:hover{background-color:var(--primary-hover);text-decoration:none;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus{outline:none;box-shadow:0 0 0 3px #4a90e233}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background-color:#d4d9dd}.btn-success{background-color:var(--success-color)}.btn-success:hover{background-color:#218838}.btn-warning{background-color:var(--warning-color);color:var(--text-primary)}.btn-warning:hover{background-color:#e0a800}.btn-danger{background-color:var(--danger-color)}.btn-danger:hover{background-color:#c82333}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-lg)}.btn-round{border-radius:50px}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium);color:var(--text-primary)}.form-control{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-family:inherit;font-size:var(--font-size-md);color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition)}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a90e233}.card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-title{margin-bottom:var(--spacing-md);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.card-subtitle{margin-bottom:var(--spacing-lg);font-size:var(--font-size-md);color:var(--text-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:1fr 1fr}.grid-cols-3{grid-template-columns:1fr 1fr 1fr}.mt-0{margin-top:0}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mx-auto{margin-left:auto;margin-right:auto}.p-0{padding:0}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--primary-color)}.text-success{color:var(--success-color)}.text-warning{color:var(--warning-color)}.text-danger{color:var(--danger-color)}.text-info{color:var(--info-color)}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:50%}.transition{transition:var(--transition)}@media(max-width:768px){:root{--font-size-sm: .8125rem;--font-size-md: .9375rem;--font-size-lg: 1rem;--font-size-xl: 1.125rem;--font-size-xxl: 1.25rem;--font-size-xxxl: 1.5rem}.container{padding:0 var(--spacing-sm)}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}h1{font-size:var(--font-size-xxl)}h2{font-size:var(--font-size-xl)}.btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}}.loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-xl);color:var(--text-secondary)}.loading:before{content:"";width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{padding:var(--spacing-md);background-color:#dc35451a;border:1px solid rgba(220,53,69,.2);border-radius:var(--radius-md);color:var(--danger-color)}.success{padding:var(--spacing-md);background-color:#28a7451a;border:1px solid rgba(40,167,69,.2);border-radius:var(--radius-md);color:var(--success-color)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.hero-section{text-align:center;margin-bottom:var(--spacing-xl);padding:var(--spacing-xxl) var(--spacing-md);background-color:var(--primary-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.hero-section h1{font-size:var(--font-size-xxxl);margin-bottom:var(--spacing-sm);color:var(--primary-color)}.hero-section p{font-size:var(--font-size-lg);color:var(--text-secondary);margin:0 auto;max-width:800px}.stats-section{margin-bottom:var(--spacing-xl)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.stat-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--radius-md);transition:var(--transition)}.stat-icon{font-size:var(--font-size-xxl);color:var(--primary-color)}.stat-value{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.modes-section{margin-bottom:var(--spacing-xl)}.study-modes{display:flex;justify-content:center;gap:var(--spacing-xl);flex-wrap:wrap;margin:var(--spacing-lg) 0}.study-mode-card{flex:1;min-width:280px;max-width:350px}.mode-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl);text-align:center;transition:var(--transition)}.mode-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.mode-icon{width:80px;height:80px;border-radius:50%;display:flex;justify-content:center;align-items:center;margin:0 auto var(--spacing-lg);color:#fff;font-size:var(--font-size-xxl)}.mode-card h3{margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:var(--font-size-xl)}.mode-card p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0}.subjects-section{margin-bottom:var(--spacing-xl)}.section-title{text-align:center;margin-bottom:var(--spacing-xl);color:var(--text-primary);font-size:var(--font-size-xxl)}.subject-card{text-decoration:none;color:var(--text-primary);display:flex;flex-direction:column;transition:var(--transition);height:100%;overflow:hidden}.subject-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.subject-card:hover .subject-action{transform:translate(0)}.subject-icon{width:60px;height:60px;border-radius:var(--radius-md);background-color:var(--primary-color);color:#fff;display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}.subject-card h3{margin-bottom:var(--spacing-sm);color:var(--text-primary);font-size:var(--font-size-lg)}.subject-card p{color:var(--text-secondary);font-size:var(--font-size-sm);flex:1;margin-bottom:var(--spacing-lg)}.subject-action{margin-top:auto;text-align:right;color:var(--primary-color);font-weight:var(--font-weight-medium);transition:var(--transition);transform:translate(10px);display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-xs)}.subject-action:after{content:"→";font-size:var(--font-size-md);transition:var(--transition)}.subject-card:hover .subject-action:after{transform:translate(5px)}.empty-state{text-align:center;padding:var(--spacing-xxl);background-color:var(--bg-primary);border-radius:var(--radius-lg);color:var(--text-secondary);box-shadow:var(--shadow-sm)}@media(max-width:768px){.hero-section{padding:var(--spacing-xl) var(--spacing-sm)}.hero-section h1{font-size:var(--font-size-xxl)}.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.stat-item{padding:var(--spacing-md)}.stat-value{font-size:var(--font-size-xl)}.study-modes{gap:var(--spacing-lg)}.study-mode-card{min-width:100%;max-width:100%}}@media(max-width:576px){.stats-grid{grid-template-columns:1fr}.hero-section p{font-size:var(--font-size-md)}}.category-container{width:100%}.category-tree{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl);margin-bottom:var(--spacing-lg)}.category-list{list-style:none;padding:0;margin:0}.category-item{margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-sm);transition:var(--transition)}.category-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.category-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.category-info{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;flex:1;transition:var(--transition);padding:var(--spacing-sm);border-radius:var(--radius-sm)}.category-info:hover{background-color:var(--bg-secondary)}.category-info:hover .category-name{color:var(--primary-color)}.category-icon{font-size:var(--font-size-md);color:var(--primary-color);width:24px;text-align:center}.category-name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-primary);transition:var(--transition);flex:1}.expand-icon{font-size:var(--font-size-sm);color:var(--text-secondary);transition:var(--transition);width:16px;text-align:center}.expand-icon.expanded{transform:rotate(90deg);color:var(--primary-color)}.category-actions{display:flex;gap:var(--spacing-xs);align-items:center}.category-children{padding-left:var(--spacing-xl);margin-top:var(--spacing-sm);animation:fadeIn .3s ease-out}.level-0 .category-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.level-1 .category-name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.level-2 .category-name{font-size:var(--font-size-md);font-weight:var(--font-weight-normal)}.quick-start{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.quick-actions{display:flex;gap:var(--spacing-lg);flex-wrap:wrap;margin-top:var(--spacing-lg)}.quick-actions .btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}@media(max-width:768px){.category-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.category-actions{width:100%;justify-content:flex-start;padding:var(--spacing-sm) 0}.quick-actions{flex-direction:column}.quick-actions .btn{width:100%;justify-content:center}.category-children{padding-left:var(--spacing-lg)}.category-tree,.quick-start{padding:var(--spacing-lg)}}@media(max-width:576px){.category-info{gap:var(--spacing-sm)}.category-actions{flex-wrap:wrap}.category-actions .btn{flex:1;min-width:80px}}.study-container{width:100%;position:relative}.btn-back{position:absolute;top:0;left:0;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--info-color);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:var(--transition);box-shadow:var(--shadow-sm)}.btn-back:hover{background-color:#138496;box-shadow:var(--shadow-md)}.study-container h1{margin-bottom:var(--spacing-lg);padding-top:var(--spacing-sm)}.settings-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xxl);max-width:500px;margin:0 auto}.settings-actions{display:flex;justify-content:center;margin-top:var(--spacing-xl)}.study-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stat-item{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg);text-align:center;transition:var(--transition)}.stat-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-label{display:block;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.stat-value.correct{color:var(--success-color)}.stat-value.wrong{color:var(--danger-color)}.question-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.question-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.question-info{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.question-type{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--bg-secondary);border-radius:20px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);white-space:nowrap}.question-difficulty{padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.question-difficulty:contains("简单"){background-color:#28a7451a;color:var(--success-color)}.question-difficulty:contains("中等"){background-color:#ffc1071a;color:var(--warning-color)}.question-difficulty:contains("困难"){background-color:#dc35451a;color:var(--danger-color)}.question-progress{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--primary-color)}.question-content{margin-bottom:var(--spacing-xl)}.question-content h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:1.6;margin-bottom:0}.question-options{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.option-item{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-lg);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);background-color:#fff}.option-item:hover:not(.selected):not(.correct):not(.wrong){border-color:var(--primary-color);background-color:var(--primary-light);transform:translateY(-1px)}.option-item.selected{border-color:var(--primary-color);background-color:var(--primary-light)}.option-item.correct{border-color:var(--success-color);background-color:#28a7451a}.option-item.wrong{border-color:var(--danger-color);background-color:#dc35451a}.option-letter{width:36px;height:36px;display:flex;justify-content:center;align-items:center;border-radius:50%;background-color:var(--bg-secondary);color:var(--text-secondary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);flex-shrink:0;transition:var(--transition)}.option-item.selected .option-letter{background-color:var(--primary-color);color:#fff}.option-item.correct .option-letter{background-color:var(--success-color);color:#fff}.option-item.wrong .option-letter{background-color:var(--danger-color);color:#fff}.option-text{flex:1;font-size:var(--font-size-md);color:var(--text-primary)}.option-result{font-size:var(--font-size-lg);flex-shrink:0}.option-item.correct .option-result{color:var(--success-color)}.option-item.wrong .option-result{color:var(--danger-color)}.explanation{padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);border:1px solid transparent}.explanation.correct{background-color:#28a7451a;border-color:#28a74533;color:var(--success-color)}.explanation.wrong{background-color:#dc35451a;border-color:#dc354533;color:var(--danger-color)}.explanation-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.explanation-header h4{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.explanation-content p{margin-bottom:var(--spacing-sm);font-size:var(--font-size-md);line-height:1.6}.explanation-content p:last-child{margin-bottom:0}.question-actions{display:flex;justify-content:space-between;gap:var(--spacing-lg);flex-wrap:wrap}@media(max-width:768px){.btn-back{position:static;margin-bottom:var(--spacing-lg)}.study-container h1{padding-top:0}.study-stats{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.question-card{padding:var(--spacing-lg)}.question-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.question-options{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.option-item{padding:var(--spacing-md);gap:var(--spacing-md)}.option-letter{width:32px;height:32px;font-size:var(--font-size-sm)}.question-actions{flex-direction:column}.settings-card{padding:var(--spacing-xl)}}@media(max-width:576px){.study-stats{grid-template-columns:1fr}.option-text{font-size:var(--font-size-sm)}}@media(max-width:576px){.login-container,.register-container{padding:var(--spacing-sm)}.login-card,.register-card{padding:var(--spacing-xl);margin:var(--spacing-sm)}}.import-container{max-width:800px;margin:0 auto;padding:var(--spacing-xl);background-color:var(--bg-light);min-height:calc(100vh - 120px)}.import-card{background-color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.import-form{margin-top:var(--spacing-lg)}.form-group{margin-bottom:var(--spacing-xl)}.form-label{display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-md);color:var(--text-primary)}.file-upload-area{position:relative;border:2px dashed var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-xl);text-align:center;background-color:var(--bg-light);transition:var(--transition);cursor:pointer}.file-upload-area:hover{border-color:var(--primary-color);background-color:var(--primary-light)}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1}.file-upload-content{position:relative;z-index:0}.upload-icon{color:var(--primary-color);margin-bottom:var(--spacing-md)}.file-types{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}.selected-file{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:var(--spacing-sm)}.file-name{font-weight:var(--font-weight-medium)}.file-size{color:var(--text-secondary);font-size:var(--font-size-sm)}.format-examples{margin-top:var(--spacing-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.format-item{background-color:var(--bg-light);padding:var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--border-color)}.format-item h4{margin-bottom:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-primary)}.format-item pre{background-color:#f5f5f5;padding:var(--spacing-md);border-radius:var(--radius-sm);overflow-x:auto;font-size:var(--font-size-xs);line-height:1.5}.format-item ul{list-style-type:disc;padding-left:var(--spacing-xl);font-size:var(--font-size-sm);line-height:1.6}.format-item li{margin-bottom:var(--spacing-sm)}.form-actions{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.alert{padding:var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm)}.alert-success{background-color:#28a7451a;color:var(--success-color);border:1px solid rgba(40,167,69,.3)}.alert-danger{background-color:#dc35451a;color:var(--danger-color);border:1px solid rgba(220,53,69,.3)}.imported-count{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.login-card h1,.register-card h1{font-size:var(--font-size-xxl)}.login-card h2,.register-card h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}.login-form,.register-form{gap:var(--spacing-md)}.btn{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm)}.stats-container{width:100%}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl);background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition)}.stat-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md)}.stat-icon{width:60px;height:60px;border-radius:var(--radius-md);display:flex;justify-content:center;align-items:center;color:#fff;font-size:var(--font-size-xxl);flex-shrink:0}.stat-info{flex:1}.stat-title{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.stat-value{font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.charts-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.chart-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.chart-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-lg)}.chart-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.chart-item{display:flex;align-items:center;gap:var(--spacing-lg)}.chart-label{width:80px;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--text-primary);text-align:right}.chart-bar-container{flex:1;height:20px;background-color:var(--bg-secondary);border-radius:10px;overflow:hidden}.chart-bar{height:100%;border-radius:10px;transition:width .5s ease}.chart-percentage{width:60px;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);text-align:right}.suggestions-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.suggestions-list{margin-bottom:var(--spacing-xl)}.suggestion-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-md);color:var(--text-secondary)}.suggestion-item:last-child{margin-bottom:0}.suggestion-item svg{color:var(--warning-color);font-size:var(--font-size-lg);flex-shrink:0}.suggestion-actions{display:flex;justify-content:center}.profile-container{width:100%}.profile-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-lg)}.profile-info{display:flex;flex-direction:column;gap:var(--spacing-lg)}.info-item{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--radius-md)}.info-icon{width:40px;height:40px;border-radius:50%;background-color:var(--primary-color);color:#fff;display:flex;justify-content:center;align-items:center;font-size:var(--font-size-lg)}.info-content{flex:1}.info-label{display:block;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.info-value{display:block;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary)}.profile-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{margin-bottom:0}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stat-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--radius-md)}.stat-icon{width:45px;height:45px;border-radius:var(--radius-sm);background-color:var(--primary-color);color:#fff;display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xl)}.stat-content{flex:1}.stat-label{display:block;font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs)}.stat-value{display:block;font-size:var(--font-size-xxl);font-weight:var(--font-weight-bold);color:var(--text-primary)}.profile-actions,.view-stats,.account-actions{display:flex;justify-content:center;margin-top:var(--spacing-lg)}.account-actions .btn{width:200px}@media(max-width:768px){.profile-card{padding:var(--spacing-lg)}.stats-summary{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.stat-value{font-size:var(--font-size-xl)}.form-actions{flex-direction:column}.account-actions .btn{width:100%}}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.charts-section{grid-template-columns:1fr;gap:var(--spacing-lg)}.chart-card{padding:var(--spacing-lg)}.stat-value{font-size:var(--font-size-xl)}.chart-item{gap:var(--spacing-md)}.chart-label{width:60px;font-size:var(--font-size-sm)}.chart-percentage{width:50px;font-size:var(--font-size-sm)}.stat-icon{width:50px;height:50px;font-size:var(--font-size-xl)}}@media(max-width:576px){.stats-grid{grid-template-columns:1fr}.stat-card{padding:var(--spacing-lg)}.chart-label{width:50px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}.page-transition{transition:opacity .3s ease}.page-transition-enter{opacity:0}.page-transition-enter-active,.page-transition-exit{opacity:1}.page-transition-exit-active{opacity:0}.login-container,.register-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--spacing-md);position:relative;overflow:hidden}.login-container:before,.register-container:before{content:"";position:absolute;width:600px;height:600px;background:radial-gradient(circle,#ffffff26,#fff0 70%);border-radius:50%;top:-100px;left:-100px;animation:float 6s ease-in-out infinite}.login-container:after,.register-container:after{content:"";position:absolute;width:400px;height:400px;background:radial-gradient(circle,#ffffff1a,#fff0 70%);border-radius:50%;bottom:-150px;right:-150px;animation:float 8s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.login-card,.register-card{background-color:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:0 20px 40px #00000026,0 0 0 1px #ffffff1a;padding:var(--spacing-xxl);width:100%;max-width:420px;text-align:center;animation:fadeInUp .6s ease-out;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-card h1,.register-card h1{color:var(--primary-color);margin-bottom:var(--spacing-sm);font-size:var(--font-size-xxxl);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-card h2,.register-card h2{font-size:var(--font-size-xxl);margin-bottom:var(--spacing-xl);color:var(--text-primary);font-weight:var(--font-weight-semibold)}.login-form,.register-form{margin-bottom:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{margin-bottom:0;text-align:left}.form-label{display:block;margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium);color:var(--text-primary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.form-control{width:100%;padding:var(--spacing-md);font-family:inherit;font-size:var(--font-size-md);color:var(--text-primary);background-color:var(--bg-secondary);border:2px solid transparent;border-radius:var(--radius-md);transition:all .3s ease;box-shadow:0 2px 8px #00000014}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a90e21a,0 2px 12px #4a90e226;background-color:var(--bg-primary)}.form-control::placeholder{color:var(--text-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1;color:#fff;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #4a90e24d;text-transform:uppercase;letter-spacing:.5px}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #4a90e266;background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%)}.btn:active{transform:translateY(0);box-shadow:0 2px 8px #4a90e24d}.btn-secondary{background:linear-gradient(135deg,var(--bg-tertiary) 0%,#d4d9dd 100%);color:var(--text-primary);box-shadow:0 4px 12px #0000001a}.btn-secondary:hover{background:linear-gradient(135deg,#d4d9dd 0%,var(--bg-tertiary) 100%);box-shadow:0 6px 16px #00000026}.w-100{width:100%}.login-divider,.register-divider{margin:var(--spacing-lg) 0;position:relative;display:flex;align-items:center;justify-content:center}.login-divider span,.register-divider span{background-color:var(--bg-primary);padding:0 var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:1px;z-index:1}.login-divider:before,.register-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--border-color) 50%,transparent 100%)}.error{padding:var(--spacing-md);background-color:#dc354514;border:1px solid rgba(220,53,69,.2);border-radius:var(--radius-md);color:var(--danger-color);font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg);animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.login-register,.register-login{margin-top:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--text-secondary)}.login-register a,.register-login a{color:var(--primary-color);text-decoration:none;font-weight:var(--font-weight-semibold);transition:all .3s ease;position:relative}.login-register a:after,.register-login a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--primary-color);transition:width .3s ease}.login-register a:hover,.register-login a:hover{text-decoration:none;color:var(--primary-hover)}.login-register a:hover:after,.register-login a:hover:after{width:100%}@media(max-width:576px){.login-container,.register-container{padding:var(--spacing-sm)}.login-card,.register-card{padding:var(--spacing-xl);margin:var(--spacing-sm)}.login-card h1,.register-card h1{font-size:var(--font-size-xxl)}.login-card h2,.register-card h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg)}.login-form,.register-form{gap:var(--spacing-md)}.btn{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm)}}.app-container{display:flex;flex-direction:column;min-height:100vh}.navbar{background-color:var(--primary-color);color:#fff;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.navbar-container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);display:flex;justify-content:space-between;align-items:center;height:60px}.navbar-logo h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:#fff;margin:0}.navbar-toggle{display:none;background:none;border:none;color:#fff;font-size:var(--font-size-xxl);cursor:pointer}.navbar-nav{display:flex;gap:var(--spacing-lg)}.nav-link{display:flex;align-items:center;gap:var(--spacing-xs);color:#fff;text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:var(--transition);font-weight:var(--font-weight-medium)}.nav-link:hover{background-color:#ffffff1a;text-decoration:none}.nav-link.logout-btn{background:none;border:none;cursor:pointer;font-size:var(--font-size-md);font-family:inherit}.mobile-menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:101;display:flex;justify-content:flex-end;animation:fadeIn .3s ease-out}.mobile-menu{width:280px;background-color:var(--bg-primary);height:100%;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);box-shadow:var(--shadow-lg);transform:translate(0);animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.mobile-link{display:flex;align-items:center;gap:var(--spacing-md);color:var(--text-primary);text-decoration:none;padding:var(--spacing-md);border-radius:var(--radius-md);transition:var(--transition);font-weight:var(--font-weight-medium)}.mobile-link:hover{background-color:var(--bg-secondary)}.mobile-link.logout-btn{background:none;border:none;cursor:pointer;font-size:var(--font-size-md);font-family:inherit;text-align:left}.main-content{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:var(--spacing-lg)}.footer{background-color:var(--text-primary);color:#fff;padding:var(--spacing-xl) var(--spacing-md);text-align:center;margin-top:auto}@media(max-width:768px){.navbar-toggle{display:block}.navbar-nav{display:none}.main-content{padding:var(--spacing-sm)}}@media(min-width:1200px){.main-content{max-width:90%;padding:var(--spacing-xl)}.navbar-container{max-width:90%}}@media(min-width:1600px){.main-content,.navbar-container{max-width:80%}}
