.layout{min-height:100vh;display:flex;flex-direction:column}.navbar{background-color:#fff;box-shadow:0 2px 4px #0000001a;padding:0 20px;display:flex;align-items:center;justify-content:space-between;height:60px}.navbar-brand a{font-size:20px;font-weight:700;color:#007bff;text-decoration:none}.navbar-menu{display:flex;gap:20px;flex:1;margin-left:40px}.nav-link{color:#333;text-decoration:none;padding:8px 12px;border-radius:4px;transition:background-color .3s}.nav-link:hover{background-color:#f0f0f0}.navbar-user{display:flex;align-items:center;gap:15px}.username{color:#666;font-size:14px}.main-content{flex:1;padding:20px}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f5f5f5;padding:20px}.auth-card{background:#fff;padding:40px;border-radius:12px;box-shadow:0 2px 8px #00000014;width:100%;max-width:450px}.auth-card h2{margin-bottom:30px;text-align:center;color:#1e293b;font-size:28px;font-weight:600}.auth-card .form-group{margin-bottom:24px}.auth-card .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#334155;font-size:14px}.auth-card .form-group input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .2s;background-color:#fff}.auth-card .form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.auth-card .form-group input:hover{border-color:#cbd5e1}.auth-card .btn{width:100%;padding:12px 24px;font-size:15px;font-weight:500;border-radius:8px;margin-top:8px}.auth-link{text-align:center;margin-top:24px;color:#64748b;font-size:14px}.auth-link a{color:#2563eb;text-decoration:none;font-weight:500}.auth-link a:hover{text-decoration:underline;color:#1d4ed8}.auth-card .error{margin-bottom:20px;padding:12px 16px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px}.auth-card .success{margin-bottom:20px;padding:12px 16px;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#16a34a;font-size:14px}.dashboard{max-width:1200px;margin:0 auto}.dashboard h1{margin-bottom:30px;color:#1e293b;font-size:28px;font-weight:600}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.progress-info{margin:24px 0}.progress-info p{margin-top:12px;color:#475569;font-size:14px}.progress-bar{width:100%;height:24px;background-color:#e2e8f0;border-radius:12px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 1px 2px #0000000d}.progress-fill{height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6);transition:width .3s ease;border-radius:12px}.task-list-container{max-height:400px;overflow-y:auto;margin:0 0 16px;padding-right:4px}.task-list-container::-webkit-scrollbar{width:6px}.task-list-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.task-list-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.task-list-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.task-list{list-style:none;padding:0;margin:0}.task-list li{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e2e8f0;transition:all .2s ease;border-radius:4px;margin:0}.task-list li:last-child{border-bottom:none}.task-list li:hover{background-color:#f1f5f9;padding-left:8px;padding-right:8px}.task-list a{color:#2563eb;text-decoration:none;font-weight:500;flex:1;transition:color .2s}.task-list a:hover{color:#1d4ed8;text-decoration:none}.no-tasks{color:#94a3b8;font-style:italic;margin:20px 0}.quick-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.quick-actions .btn{width:auto;min-width:160px;display:inline-block;text-align:center;padding:10px 24px}.dashboard .card h3{margin-bottom:20px;color:#1e293b;font-size:18px;font-weight:600}.dashboard .card{margin-bottom:0}.problem-detail{max-width:800px}.problem-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.problem-header h1{margin:0;flex:1}.problem-actions{display:flex;gap:10px}.problem-info{background:#fff;padding:20px;border-radius:8px;margin-bottom:20px}.problem-info p{margin-bottom:15px}.back-link{margin-top:20px}.back-link a{color:#007bff;text-decoration:none}.back-link a:hover{text-decoration:underline}.user-problem-info{background:#fff;padding:20px;border-radius:8px;margin-bottom:20px}.user-problem-info h3{margin-top:0;margin-bottom:15px}.progress-stats p{margin-bottom:10px}.status-completed{color:#28a745;font-weight:500}.status-not-completed{color:#dc3545;font-weight:500}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}.problem-form{max-width:700px;margin:0 auto}.problem-form h1{margin-bottom:30px;color:#1e293b;font-size:28px;font-weight:600}.problem-form form{background:#fff;padding:30px;border-radius:12px;box-shadow:0 2px 8px #00000014}.problem-form .form-group{margin-bottom:24px}.problem-form .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#334155;font-size:14px}.problem-form .form-group label .required{color:#dc2626;margin-left:4px}.problem-form .form-group input,.problem-form .form-group select{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .2s;background-color:#fff}.problem-form .form-group input:focus,.problem-form .form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.problem-form .form-group input:hover,.problem-form .form-group select:hover{border-color:#cbd5e1}.tags-selector{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;padding:16px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;min-height:60px}.tags-empty{color:#94a3b8;font-size:14px;font-style:italic;width:100%;text-align:center;padding:20px}.tag-checkbox{display:inline-flex;align-items:center;padding:8px 16px;background:#fff;border:2px solid #e2e8f0;border-radius:20px;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500;color:#475569;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.tag-checkbox input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0;pointer-events:none}.tag-checkbox span{display:inline-block;position:relative;z-index:1;white-space:nowrap;line-height:1.4}.tag-checkbox:hover:not(.checked){border-color:#3b82f6;background:#eff6ff;color:#2563eb;transform:translateY(-1px);box-shadow:0 2px 8px #2563eb26}.tag-checkbox.checked{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 2px 8px #2563eb40}.tag-checkbox.checked:hover{background:#2563eb;border-color:#2563eb;box-shadow:0 4px 12px #2563eb59;transform:translateY(-1px)}.form-actions{display:flex;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid #e2e8f0}.form-actions .btn{flex:1;padding:12px 24px;font-size:15px;font-weight:500;border-radius:8px}.problem-form .error{margin-bottom:20px;padding:12px 16px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px}@media (max-width: 640px){.tags-selector{gap:8px;padding:12px}.tag-checkbox{padding:6px 12px;font-size:13px;gap:6px}}.problem-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.problem-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.problem-header h3{margin:0}.problem-header a{color:#333;text-decoration:none}.problem-header a:hover{color:#007bff}.leetcode-id{color:#666;font-size:14px;margin-bottom:10px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:15px;align-items:center}.tag{display:inline-flex;align-items:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);padding:6px 14px;border-radius:16px;font-size:12px;font-weight:500;color:#475569;border:1px solid #cbd5e1;white-space:nowrap;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000d;position:relative;overflow:hidden}.tag:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transition:left .5s}.tag:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.tag:hover:before{left:100%}.problem-stats{margin-top:10px;font-size:14px;color:#666}.problem-stats p{margin:5px 0}.problem-actions{display:flex;gap:10px;margin-top:15px}.pagination{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.my-problems .filters{display:flex;gap:10px;margin-bottom:20px}.my-problems .filters select{padding:8px 12px;border:1px solid #ddd;border-radius:4px}.my-problems .problems-list{display:grid;gap:20px}.reviews-page h1{margin-bottom:20px}.progress-card{margin-bottom:30px}.tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #e0e0e0}.tab{padding:10px 20px;border:none;background:none;cursor:pointer;font-size:16px;color:#666;border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:#2563eb}.tab.active{color:#2563eb;border-bottom-color:#2563eb}.filter-tabs{display:flex;gap:8px;margin-bottom:20px;margin-top:10px}.filter-tab{padding:6px 16px;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;color:#64748b;transition:all .2s}.filter-tab:hover{border-color:#2563eb;color:#2563eb}.filter-tab.active{background-color:#2563eb;color:#fff;border-color:#2563eb}.tasks-list{display:grid;gap:20px}.task-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.task-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.task-header h3{margin:0}.task-header a{color:#333;text-decoration:none}.task-header a:hover{color:#007bff}.task-info{margin:15px 0;font-size:14px;color:#666}.task-info p{margin:5px 0}.task-actions{margin-top:15px}.empty-state{text-align:center;padding:40px;color:#999}.review-detail{max-width:800px;margin:0 auto}.review-detail h1{margin-bottom:24px;color:#1e293b;font-size:28px;font-weight:600}.problem-info{margin-bottom:30px}.problem-info p{margin-bottom:10px}.rating-section{margin:30px 0;padding:20px;background-color:#f8f9fa;border-radius:8px}.rating-section h3{margin-bottom:15px}.rating-description{margin-bottom:20px;color:#666}.rating-options{display:flex;flex-direction:column;gap:10px}.rating-option{display:flex;align-items:center;padding:15px;background:#fff;border-radius:4px;cursor:pointer;transition:background-color .3s}.rating-option:hover{background-color:#f0f0f0}.rating-option input{margin-right:15px}.rating-value{font-size:24px;font-weight:700;color:#007bff;margin-right:15px;min-width:30px}.rating-label{color:#333}.review-actions{display:flex;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid #e2e8f0}.completed-card{text-align:center}.completed-header{display:flex;flex-direction:column;align-items:center;margin-bottom:32px}.completed-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;margin-bottom:16px;box-shadow:0 4px 12px #10b9814d}.completed-header h2{margin:0;color:#1e293b;font-size:24px;font-weight:600}.completed-info{display:flex;flex-direction:column;gap:20px;margin-bottom:32px;padding:24px;background:#f8fafc;border-radius:12px}.info-item{display:flex;flex-direction:column;align-items:center;gap:8px}.info-label{font-size:14px;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:18px;color:#1e293b;font-weight:600}.rating-display{display:flex;flex-direction:column;align-items:center;gap:8px}.rating-stars{font-size:24px;color:#fbbf24;letter-spacing:2px}.btn-full{width:100%;max-width:300px;margin:0 auto}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:all .3s}.btn-primary{background-color:#2563eb;color:#fff!important;border:none;text-decoration:none}.btn-primary:hover{background-color:#1d4ed8;color:#fff!important}a.btn-primary,a.btn-primary:hover{color:#fff!important}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{background-color:#545b62}.btn-success{background-color:#28a745;color:#fff}.btn-success:hover{background-color:#218838}.btn-danger{background-color:#dc3545;color:#fff}.btn-danger:hover{background-color:#c82333}.btn-warning{background-color:#ffc107;color:#212529}.btn-warning:hover{background-color:#e0a800}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.error{color:#dc3545;font-size:14px;margin-top:5px;padding:10px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px}.success{color:#155724;font-size:14px;margin-top:5px;padding:10px;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px}.loading{text-align:center;padding:20px}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-easy{background-color:#d4edda;color:#155724}.badge-medium{background-color:#fff3cd;color:#856404}.badge-hard{background-color:#f8d7da;color:#721c24}.badge-todo{background-color:#e2e3e5;color:#383d41}.badge-done{background-color:#d4edda;color:#155724}.badge-missed{background-color:#f8d7da;color:#721c24}
