.studfinder-container{min-height:100vh;background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%)}.studfinder-auth-required{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem}.auth-required-content{text-align:center;max-width:400px;padding:3rem;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--border-color)}.auth-icon{font-size:4rem;color:var(--color-primary);margin-bottom:1.5rem;animation:pulse 2s infinite}.auth-required-content h2{margin-bottom:1rem;color:var(--text-primary)}.auth-required-content p{color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.auth-buttons{display:flex;gap:1rem;justify-content:center}.studfinder-hero{text-align:center;padding:4rem 2rem 3rem;position:relative;overflow:hidden}.studfinder-hero-content{position:relative;z-index:1;max-width:600px;margin:0 auto}.hero-icon-container{position:relative;margin-bottom:2rem;height:80px}.hero-heart{font-size:3rem;color:var(--color-danger);animation:heartbeat 2s ease-in-out infinite}.hero-pet{position:absolute;font-size:1.5rem;color:var(--color-primary);animation:float 3s ease-in-out infinite}.hero-dog{top:10px;left:-40px;animation-delay:0s}.hero-cat{top:10px;right:-40px;animation-delay:1s}.studfinder-hero h1{font-size:3rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.studfinder-hero p{font-size:1.2rem;color:var(--text-secondary);margin-bottom:2rem}.hero-stats{display:flex;justify-content:center;gap:2rem}.stat{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.9rem}.stat svg{color:var(--color-primary)}.preferences-form-container{max-width:700px;margin:40px auto;padding:1rem}.step-indicator{display:flex;justify-content:center;margin-bottom:1.5rem;gap:1.5rem}.step{display:flex;flex-direction:column;align-items:center;gap:.25rem;opacity:.5;transition:opacity .3s ease}.step.active{opacity:1}.step.completed{opacity:.8}.step span{width:32px;height:32px;border-radius:50%;background:var(--border-color);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;transition:all .3s ease}.step.active span{background:#1c5235;color:white}.step.completed span{background:#b83c56;color:white}.step label{font-size:.8rem;font-weight:500;color:var(--text-secondary);transition:color .3s ease}.step.active label{color:var(--text-primary)}.form-step{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.preferences-form{background:#ffffff;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.08);border:1px solid #edf2f7;padding:2rem}.form-section{margin-bottom:1.25rem}.form-section h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:#1c5235;text-align:center;letter-spacing:-.3px}.form-section h3{font-size:1.2rem;font-weight:600;margin-bottom:1rem;color:#1c5235;letter-spacing:-.2px}.pet-type-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:1rem}.pet-type-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;border:none;border-radius:10px;background:#DCE3E0;color:#1c5235;font-weight:500;cursor:pointer;transition:all .25s ease;font-size:1rem}.pet-type-btn:hover{background:#c5d0cc;transform:translateY(-1px)}.pet-type-btn.active{background:#1c5235;color:white;box-shadow:0 4px 10px rgba(28,82,53,.15)}.pet-type-btn.active:hover{background:#26683f;transform:translateY(-2px);box-shadow:0 6px 15px rgba(28,82,53,.2)}.pet-type-btn svg{font-size:1.5rem}.boolean-filters{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem}@media (min-width:768px){.boolean-filters{grid-template-columns:1fr 1fr 1fr;gap:1.5rem}}.filter-group{display:flex;flex-direction:column;gap:.5rem}.boolean-buttons{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem;gap:.75rem}.boolean-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;border:none;border-radius:10px;background:#1c5235;color:white;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .25s ease;box-shadow:0 4px 10px rgba(28,82,53,.15)}.boolean-btn:hover{background:#26683f;transform:translateY(-2px);box-shadow:0 6px 15px rgba(28,82,53,.2)}.boolean-btn.active.yes{background:#22c55e;color:white;box-shadow:0 4px 10px rgba(34,197,94,.2)}.boolean-btn.active.no{background:#ef4444;color:white;box-shadow:0 4px 10px rgba(239,68,68,.2)}.toggle-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:none;border-radius:10px;background:#DCE3E0;color:#1c5235;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .25s ease;width:100%}.toggle-btn:hover{background:#c5d0cc;color:#1c5235}.toggle-btn.active{background:#1c5235;color:white;box-shadow:0 4px 10px rgba(28,82,53,.15)}.toggle-btn.active:hover{background:#26683f;transform:translateY(-1px)}.postcode-group{margin-bottom:1.5rem}.postcode-input-container{display:flex;align-items:center;gap:.75rem}.postcode-input-container .petconnect-input{flex:1 1}.postcode-lookup-btn{padding:16px;background:#1c5235;color:white;border:none;border-radius:10px;font-size:.875rem;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;justify-content:center;min-width:50px;height:54px}.postcode-lookup-btn:hover:not(:disabled){background:#26683f;transform:translateY(-1px);box-shadow:0 4px 10px rgba(28,82,53,.15)}.postcode-lookup-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-message{color:#b83c56}.error-message,.success-message{font-size:.875rem;margin-top:.5rem;display:block}.success-message{color:#1c5235;font-weight:500}.studfinder-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-icon{font-size:2rem;margin-bottom:1rem}.loading-icon,.studfinder-loading .loading-icon{color:#1c5235!important}.studfinder-loading p{color:#1c5235;font-size:1rem;font-weight:500;margin:0}.alert-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.alert-modal{background:white;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.3);min-width:300px;max-width:400px;margin:1rem;animation:alertSlideIn .3s ease-out}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.alert-content{padding:2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.alert-message{color:#1c5235;font-size:1.1rem;font-weight:500;margin:0;line-height:1.5}.alert-btn{min-width:120px;padding:12px 24px!important}.studfinder-container .petconnect-input{border:2px solid #e7ecf3;border-radius:10px;padding:16px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.studfinder-container .petconnect-input:focus{border-color:#1c5235;box-shadow:0 0 0 3px rgba(28,82,53,.1)}.studfinder-container .petconnect-input::placeholder{color:#a0aec0}.studfinder-container .petconnect-btn-primary{background:#1c5235;border-radius:10px;padding:16px 24px;font-weight:600;font-size:.95rem;transition:all .25s ease}.studfinder-container .petconnect-btn-primary:hover{background:#26683f;transform:translateY(-2px);box-shadow:0 6px 15px rgba(28,82,53,.2)}.studfinder-container .petconnect-btn-secondary{background:#DCE3E0;color:#1c5235;border:2px solid #dce3e0;border-radius:10px;padding:16px 24px;font-weight:600;font-size:.95rem;transition:all .25s ease}.studfinder-container .petconnect-btn-secondary:hover{border-color:#1c5235;background:#c5d0cc}.range-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:#e7ecf3;outline:none;cursor:pointer;border:none}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#1c5235;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.1);border:none}.range-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#1c5235;cursor:pointer;border:none;box-shadow:0 2px 4px rgba(0,0,0,.1)}.range-slider::-moz-range-track{height:6px;border-radius:3px;background:#e7ecf3;border:none}.range-slider::-ms-thumb{width:20px;height:20px;border-radius:50%;background:#1c5235;cursor:pointer;border:none;box-shadow:0 2px 4px rgba(0,0,0,.1)}.range-slider::-ms-track{height:6px;border-radius:3px;background:#e7ecf3;border:none;color:transparent}.range-labels{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.75rem;color:var(--text-muted)}.price-inputs{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.price-input{position:relative}.price-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#a0aec0;pointer-events:none;z-index:1}.price-input .petconnect-input{padding-left:2.75rem!important}.form-actions{text-align:center;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border-color);display:flex;gap:.75rem;justify-content:center}.submit-btn{padding:1rem 2rem;font-size:1rem;font-weight:600;min-width:200px;gap:.75rem}.swipe-interface{position:relative;width:100%;min-height:100vh}.mobile-swipe-container{display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--bg-primary);width:100vw;height:100vh;height:100dvh;overflow:hidden}.desktop-swipe-container{display:none}.mobile-close-btn{position:absolute;top:1rem;right:1rem;width:44px;height:44px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:white;display:flex;align-items:center;justify-content:center;font-size:1.25rem;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-md);z-index:15}.mobile-close-btn:hover{background:rgba(0,0,0,.8);transform:scale(1.05)}.mobile-close-btn:active{transform:scale(.95)}.mobile-content{flex:1 1;display:flex;align-items:center;justify-content:center;padding:0;height:calc(100vh - 80px);height:calc(100dvh - 80px);position:relative;overflow:hidden}.mobile-card{width:100vw;height:100%;transition:transform .2s ease,opacity .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.mobile-card.swiping-right{filter:brightness(1.1) saturate(1.2)}.mobile-card.swiping-left{filter:brightness(.8) saturate(.6)}.mobile-card.swiping-up{filter:brightness(.7) saturate(.8);transform-origin:center bottom;transition:transform .1s ease-out,opacity .1s ease-out,filter .1s ease-out}.mobile-instructions{flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-primary);border-top:1px solid var(--border-color);height:60px;flex-shrink:0;width:100%}.mobile-info-btn,.mobile-instructions{display:flex;align-items:center;justify-content:center}.mobile-info-btn{width:50px;height:50px;border-radius:50%;border:2px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:1.125rem;cursor:pointer;transition:all .2s ease}.mobile-info-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--bg-primary)}.mobile-action-menu-overlay{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;animation:slideUpIn .3s ease-out}.mobile-action-menu{background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:1.5rem;box-shadow:0 -10px 30px rgba(0,0,0,.3)}.action-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.action-menu-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.close-menu-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.875rem;transition:all .2s ease}.close-menu-btn:hover{background:var(--bg-tertiary);border-color:var(--color-primary);color:var(--color-primary)}.action-menu-buttons{display:flex;gap:1rem;margin-bottom:1.5rem}.action-menu-btn{flex:1 1;padding:1rem;border:2px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s ease;font-weight:500}.action-menu-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.action-menu-btn.message-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:rgba(59,130,246,.05)}.action-menu-btn.call-btn:hover{border-color:var(--color-success);color:var(--color-success);background:rgba(16,185,129,.05)}.action-menu-btn svg{font-size:1.5rem}.action-menu-footer{padding-top:1rem;border-top:1px solid var(--border-color)}.skip-btn{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s ease;font-size:.875rem}.skip-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.swipe-instructions{font-size:.75rem;margin:0}.swipe-instructions p{margin:0}.swipe-interface.complete,.swipe-interface.empty,.swipe-interface.loading{justify-content:center;align-items:center;text-align:center}.complete-content,.empty-content,.loading-content{max-width:300px;padding:2rem}.image-preload-progress{margin-top:1rem}.image-preload-progress p{margin-bottom:.5rem;color:var(--text-secondary);font-size:.9rem}.progress-bar{width:100%;height:4px;background-color:var(--border-color);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background-color:#1c5235;transition:width .3s ease;border-radius:2px}.complete-icon,.empty-icon,.loading-icon{font-size:4rem;margin-bottom:1.5rem;color:var(--color-primary)}.loading-icon{animation:spin 1s linear infinite}.complete-icon{color:var(--color-danger);animation:pulse 2s infinite}.match-summary{display:flex;gap:2rem;justify-content:center;margin:1.5rem 0;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-lg)}.summary-stat{display:flex;align-items:center;gap:.5rem;font-weight:500}.liked-icon{color:var(--color-danger)}.passed-icon{color:var(--text-muted)}.complete-actions,.empty-actions{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.swipe-header{justify-content:space-between;padding:1rem 0 2rem}.back-btn,.swipe-header{display:flex;align-items:center}.back-btn{gap:.5rem;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;cursor:pointer;transition:all .2s ease}.back-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.match-counter{font-weight:500;color:var(--text-secondary);background:var(--bg-secondary);padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.card-stack{flex:1 1;position:relative;display:flex;justify-content:center;align-items:flex-start;padding:1rem 0 2rem;min-height:600px}.background-card{position:absolute;z-index:1;transform:scale(.95) translateY(10px);opacity:.5}.current-card{position:relative;z-index:2;cursor:-webkit-grab;cursor:grab;transition:transform .3s ease,opacity .3s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.current-card:active{cursor:-webkit-grabbing;cursor:grabbing}.current-card.swiping-right{border-color:var(--color-success);box-shadow:0 0 20px rgba(16,185,129,.3)}.current-card.swiping-left{border-color:var(--color-danger);box-shadow:0 0 20px rgba(239,68,68,.3)}.swipe-actions{gap:2rem;padding:1rem 0}.action-btn,.swipe-actions{display:flex;justify-content:center}.action-btn{width:60px;height:60px;border-radius:50%;border:none;align-items:center;font-size:1.5rem;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md)}.action-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:var(--shadow-lg)}.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.pass-btn{background:var(--color-danger);color:white}.like-btn{background:var(--color-success);color:white}.swipe-instructions{text-align:center;padding:1rem;color:var(--text-muted);font-size:.875rem}.stud-card{width:350px;height:600px;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:2px solid var(--border-color);overflow:hidden;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column}.stud-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.15);transform:translateY(-2px)}.stud-card.background{width:320px;height:550px;filter:blur(2px);opacity:.7}.card-image-container{position:relative;height:75%;overflow:hidden;flex-shrink:0}.card-image{transition:transform .3s ease}.stud-card:hover .card-image{transform:scale(1.02)}.status-overlay{position:absolute;top:1rem;left:1rem;padding:.5rem 1rem;border-radius:var(--radius-lg);font-size:.75rem;font-weight:600;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);z-index:5}.status-overlay.available{background:rgba(16,185,129,.9);color:white}.status-overlay.busy{background:rgba(245,158,11,.9);color:white}.status-overlay.unavailable{background:rgba(239,68,68,.9);color:white}.attributes-overlay{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:5}.overlay-badge{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);font-size:.875rem}.overlay-badge.kc{background:rgba(59,130,246,.9);color:white}.overlay-badge.proven{background:rgba(245,158,11,.9);color:white}.overlay-badge.mobile{background:rgba(16,185,129,.9);color:white}.overlay-badge.verified{background:rgba(139,69,19,.9);color:white}.stats-overlay{position:absolute;bottom:1rem;left:1rem;display:flex;flex-direction:column;gap:.25rem;z-index:5}.overlay-stat{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:rgba(0,0,0,.8);color:white;border-radius:var(--radius-lg);font-size:.75rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.overlay-stat svg{font-size:.75rem;color:var(--color-warning)}.image-indicators{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.375rem;z-index:5}.indicator{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transition:background-color .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.indicator.active{background:white;box-shadow:0 0 8px rgba(255,255,255,.5)}.indicator-more{background:rgba(255,255,255,.9);color:black;padding:.125rem .375rem;border-radius:var(--radius-sm);font-size:.625rem;font-weight:600}.indicator-more,.price-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.price-overlay{position:absolute;bottom:1rem;right:1rem;display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:rgba(16,185,129,.9);color:white;border-radius:var(--radius-lg);font-size:.875rem;font-weight:700;border:1px solid rgba(255,255,255,.2);z-index:5}.card-content{height:25%;padding:1rem;justify-content:space-between}.card-content,.content-main{display:flex;flex-direction:column}.content-main{gap:.5rem}.title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.stud-name{font-size:1.25rem;font-weight:700;color:var(--text-primary);line-height:1.2;margin:0;flex:1 1}.breed-info{display:flex;align-items:center;gap:.375rem;color:var(--text-secondary);font-weight:500;font-size:.875rem;flex-shrink:0}.breed-info svg{color:var(--color-primary);font-size:.875rem}.location-row{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.875rem}.location-row svg{color:var(--color-primary);font-size:.75rem}.details-row{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted);font-weight:500}.details-row span{padding:.25rem .5rem;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.mobile-stud-card{background:black}.mobile-image-container,.mobile-stud-card{width:100%;height:100%;position:relative;overflow:hidden}.mobile-image{transition:transform .3s ease}.mobile-overlay-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;z-index:5;background:linear-gradient(180deg,rgba(0,0,0,.6),rgba(0,0,0,.2) 50%,transparent)}.mobile-status{padding:.5rem 1rem;border-radius:var(--radius-lg);font-size:.75rem;font-weight:600;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.mobile-status.available{background:rgba(16,185,129,.9);color:white}.mobile-status.busy{background:rgba(245,158,11,.9);color:white}.mobile-status.unavailable{background:rgba(239,68,68,.9);color:white}.mobile-attributes{display:flex;gap:.5rem}.mobile-badge{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.3);font-size:.875rem;color:white}.mobile-badge.kc{background:rgba(59,130,246,.9)}.mobile-badge.proven{background:rgba(245,158,11,.9)}.mobile-badge.mobile{background:rgba(16,185,129,.9)}.mobile-badge.verified{background:rgba(139,69,19,.9)}.mobile-image-dots{position:absolute;top:50%;right:1rem;transform:translateY(-50%);display:flex;flex-direction:column;gap:.5rem;z-index:5}.mobile-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);transition:all .2s ease;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.mobile-dot.active{background:white;transform:scale(1.25);box-shadow:0 0 10px rgba(255,255,255,.5)}.mobile-dot-more{background:rgba(255,255,255,.9);color:black;padding:.125rem .25rem;border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;text-align:center}.mobile-overlay-bottom{position:absolute;bottom:0;left:0;right:0;z-index:5}.mobile-info-gradient{background:linear-gradient(transparent,rgba(0,0,0,.4) 30%,rgba(0,0,0,.8));padding:1rem 1.5rem 1.5rem;color:white}.mobile-main-info,.mobile-stud-name{margin-bottom:.5rem}.mobile-stud-name{font-size:1.75rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5);line-height:1.2}.mobile-all-attributes,.mobile-attributes-text,.mobile-breed-location{display:flex;flex-direction:column;gap:.375rem}.mobile-attribute,.mobile-breed,.mobile-location{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:rgba(255,255,255,.9);text-shadow:0 1px 2px rgba(0,0,0,.5)}.mobile-attribute svg,.mobile-breed svg,.mobile-location svg{font-size:.75rem;color:var(--color-warning)}.mobile-star-rating-section{margin-top:.5rem;margin-bottom:1rem}.star-rating{display:flex;gap:.125rem}.star-rating svg{font-size:.65rem}.star-rating .star-filled{color:#ffd700}.star-rating .star-empty{color:rgba(255,255,255,.3)}.mobile-stats-row{display:flex;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.mobile-stat{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem;background:rgba(255,255,255,.15);border-radius:var(--radius-lg);font-size:.75rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.mobile-stat svg{font-size:.75rem;color:var(--color-warning)}.mobile-price{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:rgba(16,185,129,.9);color:white;border-radius:var(--radius-lg);font-size:.875rem;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);margin-left:auto}.mobile-details-row{display:flex;gap:.75rem;flex-wrap:wrap}.mobile-detail{padding:.25rem .625rem;background:rgba(255,255,255,.1);color:rgba(255,255,255,.9);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(255,255,255,.1)}.mobile-detail,.mobile-tap-hint{font-size:.75rem;font-weight:500}.mobile-tap-hint{position:absolute;bottom:50%;left:50%;transform:translate(-50%,50%);padding:.5rem 1rem;background:rgba(0,0,0,.6);color:white;border-radius:var(--radius-lg);z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);animation:fadeInOut 3s infinite}@keyframes fadeInOut{0%,70%,to{opacity:0}10%,60%{opacity:1}}.mobile-description-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;display:flex;flex-direction:column;animation:slideUpIn .3s ease-out}@keyframes slideUpIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.mobile-description-content{display:flex;flex-direction:column;height:100%;color:white;padding:1rem}.description-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.2);margin-bottom:1rem}.description-header h3{font-size:1.5rem;font-weight:700;margin:0;color:white}.close-description{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all .2s ease}.close-description:hover{background:rgba(255,255,255,.2)}.description-body{flex:1 1;overflow-y:auto;padding-right:.5rem}.description-text{line-height:1.6;color:rgba(255,255,255,.9)}.description-text,.no-description{font-size:1rem;margin-bottom:1.5rem}.no-description{color:rgba(255,255,255,.6);font-style:italic}.extended-details{display:flex;flex-direction:column;gap:1rem}.detail-section{background:rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:1rem;border:1px solid rgba(255,255,255,.1)}.detail-section h4{font-size:.875rem;font-weight:600;margin-bottom:.75rem;color:white;display:flex;align-items:center;gap:.5rem}.detail-section h4 svg{color:var(--color-warning);font-size:.75rem}.detail-tags{display:flex;flex-wrap:wrap;gap:.5rem}.detail-tag{padding:.375rem .75rem;background:rgba(255,255,255,.1);color:rgba(255,255,255,.9);border-radius:var(--radius-md);font-size:.75rem;font-weight:500;border:1px solid rgba(255,255,255,.2)}.detail-section p{color:rgba(255,255,255,.9);font-size:.875rem;line-height:1.5}.description-footer{padding-top:1rem;border-top:1px solid rgba(255,255,255,.2);margin-top:1rem}.view-full-listing-btn{width:100%;padding:1rem;background:var(--color-primary);color:white;border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.75rem;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-md)}.view-full-listing-btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.view-full-listing-btn:active{transform:translateY(0)}@keyframes heartbeat{0%,50%,to{transform:scale(1)}25%{transform:scale(1.1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (min-width:769px){.mobile-swipe-container{display:none}.desktop-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000;z-index:9999}.desktop-modal-content,.desktop-modal-overlay{display:flex;align-items:center;justify-content:center}.desktop-modal-content{position:relative;width:100%;height:100%}.desktop-close-btn{position:absolute;top:2rem;right:2rem;background:rgba(255,255,255,.2);border:none;border-radius:50%;width:50px;height:50px;color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:all .2s ease;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.desktop-close-btn:hover{background:rgba(255,255,255,.3);transform:scale(1.1)}.desktop-match-counter{position:absolute;top:2rem;left:2rem;background:rgba(255,255,255,.1);color:rgba(255,255,255,.7);padding:.4rem .8rem;border-radius:20px;font-weight:400;font-size:.8rem;z-index:1000;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.desktop-card-container{width:375px;height:95vh;max-height:95vh;background:transparent;border-radius:25px;overflow:hidden;box-shadow:0 20px 60px rgba(255,255,255,.1);position:relative}.desktop-nav-bottom,.desktop-nav-top{position:absolute;left:0;right:0;height:80px;display:flex;align-items:center;justify-content:center;color:white;font-size:24px;background:linear-gradient(180deg,rgba(0,0,0,.3),transparent);opacity:0;transition:opacity .3s ease;cursor:pointer;z-index:1003;pointer-events:none}.desktop-nav-top{top:0;background:linear-gradient(180deg,rgba(0,0,0,.4),transparent);border-radius:25px 25px 0 0}.desktop-nav-bottom{bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.4),transparent);border-radius:0 0 25px 25px}.desktop-card-container:hover .desktop-nav-bottom,.desktop-card-container:hover .desktop-nav-top{opacity:1;pointer-events:auto}.desktop-nav-bottom:hover,.desktop-nav-top:hover{opacity:1;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent)}.desktop-nav-bottom:hover{background:linear-gradient(0deg,rgba(0,0,0,.6),transparent)}.desktop-action-menu-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1001}.desktop-action-menu{background:white;border-radius:var(--radius-xl);padding:2rem;max-width:400px;width:90%;max-height:80vh;overflow-y:auto}}@media (max-width:768px){.studfinder-hero{padding:3rem 1rem 2rem}.studfinder-hero h1{font-size:2.5rem}.hero-stats{flex-direction:column;gap:1rem;align-items:center}.preferences-form-container{margin:10px auto;min-height:auto;padding:1rem 1rem 4rem;max-height:none}.studfinder-container{min-height:100vh;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0)}.preferences-form{padding:1.5rem}.location-inputs,.price-inputs{grid-template-columns:1fr}.swipe-interface{padding:.5rem}.stud-card{width:100%;max-width:350px;height:550px}.swipe-header{padding:.5rem 0 1rem}.back-btn{padding:.5rem .75rem;font-size:.875rem}.match-counter{padding:.375rem .75rem;font-size:.875rem}.swipe-actions{gap:1.5rem}.action-btn{width:50px;height:50px;font-size:1.25rem}.card-content{padding:.75rem}.stud-name{font-size:1.125rem}.breed-info,.location-row{font-size:.75rem}.match-summary{flex-direction:column;gap:1rem;align-items:center}.complete-actions,.empty-actions{flex-direction:column;gap:.75rem}}@media (max-width:480px){.studfinder-hero h1{font-size:2rem}.hero-icon-container{height:60px}.hero-heart{font-size:2.5rem}.hero-pet{font-size:1.25rem}.boolean-buttons,.pet-type-buttons{grid-template-columns:1fr}.auth-buttons{flex-direction:column}.stud-card{height:500px}.stud-name{font-size:1rem}.breed-info,.details-row,.location-row{font-size:.625rem}.overlay-badge{width:28px;height:28px;font-size:.75rem}.overlay-stat{padding:.25rem .5rem;font-size:.625rem}.price-overlay{padding:.375rem .75rem;font-size:.75rem}.status-overlay{padding:.375rem .75rem;font-size:.625rem}}