*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--red:#e3350d;--dark:#1a1a2e;--card-bg:#16213e;--surface:#0f3460;--text:#eee;--text-muted:#aaa;--radius:12px}body{background:var(--dark);color:var(--text);min-height:100vh;font-family:Segoe UI,sans-serif}.auth-page{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{background:var(--card-bg);border-radius:var(--radius);text-align:center;width:100%;max-width:400px;padding:2.5rem 2rem;box-shadow:0 8px 32px #0006}.auth-logo img{width:64px;margin-bottom:.5rem}.auth-card h1{color:var(--red);margin-bottom:.25rem;font-size:2rem}.auth-card h2{color:var(--text-muted);margin-bottom:1.5rem;font-size:1.1rem;font-weight:400}.form-group{text-align:left;margin-bottom:1rem}.form-group label{color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem;display:block}.form-group input{width:100%;color:var(--text);background:#0d1b2a;border:1.5px solid #333;border-radius:8px;padding:.7rem 1rem;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:var(--red);outline:none}.btn-primary{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:.8rem;font-size:1rem;font-weight:600;transition:opacity .2s}.btn-primary:hover:not(:disabled){opacity:.9}.error{color:#ff6b6b;text-align:left;margin:.5rem 0;font-size:.875rem}.auth-link{color:var(--text-muted);margin-top:1.25rem;font-size:.9rem}.auth-link a{color:var(--red);font-weight:600;text-decoration:none}.auth-link a:hover{text-decoration:underline}.pokedex-header{background:var(--red);z-index:10;padding:0 1rem;position:sticky;top:0;box-shadow:0 2px 8px #0006}.pokedex-header-inner{justify-content:space-between;align-items:center;max-width:1200px;height:60px;margin:0 auto;display:flex}.pokedex-title{align-items:center;gap:.6rem;display:flex}.pokedex-title h1{color:#fff;font-size:1.4rem}.header-logo{width:32px}.btn-logout{color:#fff;cursor:pointer;background:#fff3;border:1px solid #fff6;border-radius:6px;padding:.4rem .9rem;font-size:.9rem;transition:background .2s}.btn-logout:hover{background:#ffffff59}.btn-secondary{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;padding:.4rem .9rem;font-size:.9rem;text-decoration:none;transition:background .2s}.btn-secondary:hover{background:#ffffff40}.btn-primary{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1.2rem;font-size:.95rem;font-weight:600;transition:opacity .2s}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.header-actions{align-items:center;gap:.5rem;display:flex}.profile-main{max-width:500px;margin:2rem auto;padding:0 1rem}.profile-card{background:var(--card-bg);border-radius:var(--radius);border:1.5px solid #2a2a4a;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem;display:flex}.profile-avatar img{object-fit:contain;border:2px solid #2a2a4a;border-radius:50%;width:80px;height:80px}.profile-name-row{align-items:center;gap:.75rem;display:flex}.profile-name{text-transform:capitalize;margin:0;font-size:1.4rem;font-weight:700}.btn-edit{cursor:pointer;opacity:.7;background:0 0;border:none;font-size:1rem;transition:opacity .2s}.btn-edit:hover{opacity:1}.profile-date{color:#888;margin:0;font-size:.85rem}.profile-form{flex-direction:column;gap:.75rem;width:100%;display:flex}.profile-form-actions{gap:.5rem;display:flex}.profile-stats{flex-direction:column;gap:1rem;width:100%;display:flex}.stat-progress-header{color:#ccc;justify-content:space-between;margin-bottom:.3rem;font-size:.85rem;display:flex}.progress-bar-bg{background:#2a2a4a;border-radius:99px;height:10px;overflow:hidden}.progress-bar-fill{border-radius:99px;height:100%;transition:width .4s}.progress-seen{background:#6890f0}.progress-caught{background:#4caf50}.mark-section{flex-wrap:wrap;gap:.75rem;display:flex}.btn-mark{background:var(--card-bg);color:var(--text);cursor:pointer;border:1.5px solid #2a2a4a;border-radius:8px;flex:1;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:all .2s}.btn-mark:hover:not(:disabled){background:#1a1a2e;border-color:#555}.btn-mark:disabled{opacity:.5;cursor:not-allowed}.btn-mark.active-seen{color:#6890f0;border-color:#6890f0}.btn-mark.active-caught{color:#4caf50;border-color:#4caf50}.pokedex-main{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.search-input,.type-select{background:var(--card-bg);color:var(--text);border:1.5px solid #333;border-radius:8px;padding:.65rem 1rem;font-size:.95rem;transition:border-color .2s}.search-input{flex:1;min-width:200px}.search-input:focus,.type-select:focus{border-color:var(--red);outline:none}.type-select option{background:var(--card-bg)}.results-count{color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.pokemon-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.pokemon-card{background:var(--card-bg);border-radius:var(--radius);text-align:center;color:var(--text);border:1.5px solid #2a2a4a;flex-direction:column;justify-content:center;align-items:center;min-height:140px;padding:1rem .75rem;text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.card-image{object-fit:contain;width:90px;height:90px}.img-silhouette{filter:brightness(0)saturate(0)opacity(.6)}.card-unseen{opacity:.75;border-color:#1a1a2e!important}.card-seen{border-color:#6890f0}.card-caught{border-color:#4caf50}.card-badge{font-size:.75rem;font-weight:700;position:absolute;top:6px;right:8px}.caught-badge{color:#4caf50}.pokemon-card{position:relative}.trainer-notice{text-align:center;color:#aaa;margin-bottom:1rem;font-size:.9rem}.trainer-notice a{color:var(--red)}.encounter-section{flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;display:flex}.encounter-text{color:#fff;margin:0;font-size:1rem;font-weight:600}.capture-game{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}.game-hint{color:#aaa;text-align:center;margin:0;font-size:.85rem}.catch-bar{background:#c0392b;border-radius:99px;width:100%;max-width:340px;height:28px;position:relative;overflow:hidden}.catch-zone{background:#2ecc71;border-radius:4px;height:100%;position:absolute;top:0}.catch-indicator{will-change:left;background:#fff;border-radius:50%;width:20px;height:20px;position:absolute;top:4px;box-shadow:0 0 6px #fffc}.btn-throw{background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.6rem;font-size:1rem;font-weight:700;transition:transform .1s,opacity .2s}.btn-throw:hover{opacity:.85}.btn-throw:active{transform:scale(.96)}.game-result{text-align:center;padding:.5rem 0}.result-caught{color:#2ecc71;margin:0;font-size:1.1rem;font-weight:700}.result-seen{color:#e67e22;margin:0;font-size:.95rem}.pokemon-number{color:#888;margin-top:.25rem;font-size:.75rem}.pokemon-card:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:0 4px 16px #e3350d40}.pokemon-name{text-transform:capitalize;font-size:.95rem;font-weight:600}.no-results{color:var(--text-muted);text-align:center;grid-column:1/-1;padding:2rem}.loading{text-align:center;color:var(--text-muted);padding:3rem;font-size:1.1rem}.loading.centered{margin-top:30vh}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:2rem;display:flex}.pagination button{background:var(--card-bg);color:var(--text);cursor:pointer;border:1.5px solid #333;border-radius:8px;padding:.5rem 1.2rem;transition:border-color .2s}.pagination button:hover:not(:disabled){border-color:var(--red)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{color:var(--text-muted);font-size:.9rem}.detail-page{max-width:700px;margin:0 auto;padding:1.5rem 1rem 3rem}.back-link{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;text-decoration:none;transition:color .2s;display:inline-block}.back-link:hover{color:var(--text)}.detail-card{border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 32px #0006}.detail-header{justify-content:space-between;align-items:center;gap:1rem;padding:2rem 1.5rem;display:flex}.detail-dex-id{color:#ffffffb3;margin-bottom:.25rem;font-size:.9rem}.detail-name{color:#fff;text-transform:capitalize;margin-bottom:.5rem;font-size:2rem;font-weight:700}.detail-types{flex-wrap:wrap;gap:.5rem;display:flex}.type-badge{color:#fff;text-shadow:0 1px 2px #0000004d;border-radius:20px;padding:.25rem .75rem;font-size:.8rem;font-weight:600;box-shadow:0 54px 55px #00000040,0 -12px 30px #0000001f,0 4px 6px #0000001f,0 12px 13px #0000002b,0 -3px 5px #00000017}.detail-image{object-fit:contain;filter:drop-shadow(0 4px 8px #0006);flex-shrink:0;width:140px;height:140px}.detail-body{background:var(--card-bg);flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.detail-description{color:#ccc;border-left:3px solid var(--type-color,var(--red));margin:0;padding-left:.75rem;font-size:.95rem;font-style:italic;line-height:1.6}.detail-specs{gap:1.5rem;display:flex}.spec{flex-direction:column;gap:.2rem;display:flex}.spec-label{color:var(--text-muted);font-size:.8rem}.spec-value{font-size:1.1rem;font-weight:600}.detail-section h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:1rem}.stat-row{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.stat-label{width:90px;color:var(--text-muted);flex-shrink:0;font-size:.85rem}.stat-value{text-align:right;flex-shrink:0;width:30px;font-size:.85rem;font-weight:600}.stat-bar-bg{background:#2a2a4a;border-radius:4px;flex:1;height:8px;overflow:hidden}.stat-bar-fill{border-radius:4px;height:100%;transition:width .4s}.tag-list{flex-wrap:wrap;gap:.5rem;display:flex}.tag{background:var(--surface);text-transform:capitalize;border-radius:20px;padding:.3rem .75rem;font-size:.8rem}.tag-more{opacity:.6}.audio-player{border-radius:8px;width:100%}.error.centered{text-align:center;color:#ff6b6b;margin-top:30vh}
