*{margin:0;padding:0;box-sizing:border-box}body{font-family:Google Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f6f8;color:#374151;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-input-wrap:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}.container{max-width:1200px;margin:0 auto;padding:24px}.card{background:#fff;border-radius:10px;padding:24px;margin-bottom:24px;border:1px solid #e5e7eb}.btn,.card{box-shadow:0 1px 2px rgba(0,0,0,.04)}.btn{padding:10px 24px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;text-transform:none;letter-spacing:0}.btn:hover{box-shadow:0 2px 4px rgba(0,0,0,.06)}.btn:active{box-shadow:0 1px 2px rgba(0,0,0,.04)}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-success{background:#16a34a;color:#fff}.btn-success:hover{background:#15803d}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover{background:#4b5563}.btn-outlined{background:transparent;border:1px solid #d1d5db;color:#2563eb}.btn-outlined:hover{background:#f9fafb;border-color:#2563eb}.form-group{margin-bottom:24px}.form-group label{display:block;margin-bottom:8px;font-weight:500;font-size:14px;color:#6b7280}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;transition:border-color .2s ease;background:#fff;color:#374151}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.08)}.alert{padding:14px 16px;border-radius:6px;margin-bottom:24px;font-size:14px;border-left:3px solid}.alert-success{background:#f0fdf4;color:#166534;border-left-color:#22c55e}.alert-error{background:#fef2f2;color:#b91c1c;border-left-color:#ef4444}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:1000;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;padding:28px;border-radius:10px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.08);border:1px solid #e5e7eb}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:40px;height:40px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .7s linear infinite}.btn-interactive{transition:all .2s ease}.btn-interactive:hover:not(:disabled){transform:translateY(0);opacity:.9}.btn-secondary-hover:hover:not(:disabled){background:#e5e7eb!important;border-color:#d1d5db!important}.btn-primary-hover:hover:not(:disabled){box-shadow:0 2px 8px rgba(37,99,235,.25)!important}.btn-success-hover:hover:not(:disabled){box-shadow:0 2px 8px rgba(34,197,94,.25)!important}.option-unselected:hover{border-color:#d1d5db!important;background:#f9fafb!important}.nav-soal-btn{transition:all .2s ease}.nav-soal-btn:not(.nav-soal-active):hover{transform:none;opacity:.9}.nav-soal-btn:not(.nav-soal-active).nav-soal-unanswered:hover{background:#e5e7eb!important}.nav-soal-btn:not(.nav-soal-active).nav-soal-answered:hover{background:#dcfce7!important}.card-hover{transition:box-shadow .2s ease,border-color .2s ease}.card-hover:hover{box-shadow:0 2px 8px rgba(0,0,0,.06);border-color:#93c5fd!important}