.login-container{background:linear-gradient(180deg, var(--white) 0%, var(--bg-soft) 100%);flex-direction:column;justify-content:center;min-height:100vh;padding:40px 24px;display:flex}.login-header{text-align:center;margin-bottom:40px}.login-logo-wrapper{background:var(--primary-light);width:80px;height:80px;color:var(--primary);border-radius:24px;justify-content:center;align-items:center;margin:0 auto 20px;display:flex;box-shadow:0 10px 25px #3b82f626}.login-title{color:var(--text-main);letter-spacing:-1px;margin-bottom:8px;font-size:1.75rem;font-weight:800}.login-subtitle{color:var(--text-muted);font-size:.9rem;font-weight:500}.login-card{background:var(--white);box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:20px;padding:24px}.login-form{flex-direction:column;gap:20px;display:flex}.error-message{color:#dc2626;background:#fef2f2;border:1px solid #fee2e2;border-radius:12px;align-items:center;gap:8px;padding:12px;font-size:.85rem;font-weight:500;display:flex}.input-field-wrapper{flex-direction:column;gap:8px;display:flex}.input-field-wrapper label{color:var(--text-main);margin-left:4px;font-size:.85rem;font-weight:600}.input-inner{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;height:52px;padding:0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.input-inner:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light);background:var(--white)}.input-icon{color:var(--text-muted)}.input-inner input{color:var(--text-main);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.forgot-password{justify-content:flex-end;display:flex}.login-btn{background:var(--primary);color:var(--white);cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:10px;height:52px;margin-top:10px;font-size:1rem;font-weight:700;display:flex;box-shadow:0 8px 20px #3b82f633}.login-footer{text-align:center;color:var(--text-muted);margin-top:32px;font-size:.9rem}.highlight{color:var(--primary);font-weight:700}.dashboard-container{flex-direction:column;gap:24px;display:flex}.search-section{background:var(--white);z-index:10;margin:-20px -20px 0;padding:10px 20px 20px;position:sticky;top:70px}.search-bar{background-color:var(--bg-soft);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;height:48px;padding:0 12px;display:flex}.search-icon{color:var(--text-muted)}.search-bar input{color:var(--text-main);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.filter-button{background:var(--white);border:1px solid var(--border);width:32px;height:32px;color:var(--primary);box-shadow:var(--shadow);border-radius:8px;justify-content:center;align-items:center;display:flex}.hero-banner{background:linear-gradient(135deg, var(--primary) 0%, #60a5fa 100%);border-radius:var(--radius);color:var(--white);justify-content:space-between;align-items:center;padding:20px;display:flex;position:relative;overflow:hidden}.hero-content{z-index:2;flex:1}.hero-badge{text-transform:uppercase;background:#fff3;border-radius:20px;margin-bottom:8px;padding:4px 10px;font-size:.7rem;font-weight:600;display:inline-block}.hero-content h3{margin-bottom:8px;font-size:1.25rem;font-weight:700}.hero-content p{opacity:.9;max-width:80%;margin-bottom:16px;font-size:.85rem}.hero-btn{background:var(--white);color:var(--primary);cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:600}.hero-image{justify-content:center;align-items:center;width:100px;height:100px;display:flex}.hero-image img{width:140%;height:auto;transform:translate(10px)}.section{flex-direction:column;gap:16px;display:flex}.section-header{justify-content:space-between;align-items:center;display:flex}.section-title{color:var(--text-main);font-size:1.1rem;font-weight:700}.text-button{color:var(--primary);cursor:pointer;background:0 0;border:none;font-size:.85rem;font-weight:600}.categories-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.category-item{flex-direction:column;align-items:center;gap:10px;display:flex}.category-icon{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;display:flex;box-shadow:0 4px 10px #00000005}.category-name{color:var(--text-main);text-align:center;font-size:.8rem;font-weight:500}.exams-list{flex-direction:column;gap:16px;display:flex}.exam-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:16px;display:flex}.exam-level{color:var(--primary);background:var(--primary-light);border-radius:6px;margin-bottom:8px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.exam-title{margin-bottom:8px;font-size:1rem;font-weight:700}.exam-meta{color:var(--text-muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.exam-progress-container{flex-direction:column;gap:8px;display:flex}.progress-label{color:var(--text-muted);justify-content:space-between;font-size:.75rem;font-weight:500;display:flex}.progress-bar-bg{background-color:var(--bg-soft);border-radius:4px;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--primary) 0%, #60a5fa 100%);border-radius:4px;height:100%;transition:width .5s}.exam-card-footer{border-top:1px solid var(--border);justify-content:flex-end;padding-top:12px;display:flex}.start-button{background:var(--primary);color:var(--white);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:4px;padding:8px 16px;font-size:.9rem;font-weight:600;display:flex}.skeleton-card{pointer-events:none;height:180px}.skeleton-title{border-radius:4px;width:80%;height:24px;margin-bottom:12px}.skeleton-meta{border-radius:4px;width:40%;height:16px;margin-bottom:24px}.skeleton-progress{border-radius:4px;width:100%;height:12px}.layout-root{flex-direction:column;min-height:100vh;padding-bottom:70px;display:flex}.header{z-index:100;background-color:var(--white);border-bottom:1px solid var(--border);padding:16px 20px;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;display:flex}.app-title{color:var(--primary);letter-spacing:-.5px;font-size:1.25rem;font-weight:700}.header-actions{align-items:center;gap:12px;display:flex}.icon-button{background:var(--bg-soft);width:36px;height:36px;color:var(--text-main);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.profile-avatar{border:2px solid var(--primary-light);border-radius:50%;width:36px;height:36px;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.main-content{flex:1;padding:20px}.bottom-nav{background-color:var(--white);border-top:1px solid var(--border);z-index:100;justify-content:space-around;max-width:480px;margin:0 auto;padding:10px 0 20px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 10px #00000008}.nav-item{color:var(--text-muted);flex-direction:column;align-items:center;gap:4px;font-size:.75rem;text-decoration:none;display:flex}.nav-item.active{color:var(--primary)}.nav-item span{font-weight:500}:root{--primary:#3b82f6;--primary-dark:#2563eb;--primary-light:#eff6ff;--bg-soft:#f9fafb;--text-main:#1f2937;--text-muted:#6b7280;--white:#fff;--border:#e5e7eb;--shadow:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000005;--radius:16px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-soft);color:var(--text-main);line-height:1.5;overflow-x:hidden}.app-container{background-color:var(--white);max-width:480px;min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 50px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes skeleton{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#f8f8f8 50%,#f0f0f0 75%) 0 0/200px 100%;animation:1.5s infinite skeleton}.fade-in{animation:.4s ease-out forwards fadeIn}.clickable{transition:transform .1s,opacity .1s}.clickable:active{opacity:.8;transform:scale(.96)}::-webkit-scrollbar{background:0 0;width:0}
