/* sales-agents: existing theme styles, loaded by page type. */
.rep-page{font-family:inherit;color:#484a53;line-height:1.8}
.rep-page .rep-hero{background:linear-gradient(135deg,var(--brand-red, #e63946) 0%,var(--dark-red, #b91c1c) 100%);padding:100px 0 60px;position:relative;overflow:hidden}
.rep-page .rep-hero::before{content:"";position:absolute;top:-50%;right:-30%;width:600px;height:600px;background:radial-gradient(circle,rgba(255,166,40,0.1) 0%,transparent 70%)}
.rep-page .rep-hero::after{content:"";position:absolute;bottom:-40%;left:-20%;width:500px;height:500px;background:radial-gradient(circle,rgba(39,129,59,0.1) 0%,transparent 70%)}
.rep-page .rep-hero h1{color:#fff;font-size:2.5rem;font-weight:700;text-align:center;margin:0;position:relative;z-index:1;text-shadow:2px 2px 4px rgba(0,0,0,0.3)}
.rep-page .rep-hero p{color:rgba(255,255,255,0.9);text-align:center;font-size:1.1rem;margin-top:1rem;position:relative;z-index:1}
.rep-page .rep-stats{background:#fff;margin-top:-40px;position:relative;z-index:10;border-radius:20px;box-shadow:0 10px 40px rgba(0,0,0,0.1);padding:40px 20px}
.rep-page .stats-grid{display:flex;justify-content:center;gap:60px;flex-wrap:wrap}
.rep-page .stat-item{text-align:center;position:relative}
.rep-page .stat-number{font-size:3rem;font-weight:700;color:var(--brand-green, #2a9d8f);margin:0;line-height:1}
.rep-page .stat-label{color:#666;font-size:1rem;margin-top:5px}
.rep-page .stat-item::after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);width:1px;height:40px;background:#e0e0e0;margin-right:30px}
.rep-page .stat-item:last-child::after{display:none}
.rep-page .map-controls{margin:50px 0 30px}
.rep-page .search-wrapper{max-width:500px;margin:0 auto;position:relative}
.rep-page .search-input{width:100%;padding:15px 50px 15px 20px;border:2px solid #e0e0e0;border-radius:50px;font-size:1rem;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease;text-align:right;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,0.05)}
.rep-page .search-input:focus{outline:none;border-color:var(--brand-green, #2a9d8f);box-shadow:0 4px 20px rgba(39,129,59,0.15)}
.rep-page .search-icon{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--brand-green, #2a9d8f);font-size:1.2rem;pointer-events:none}
.rep-page .map-section{background:var(--light-gray, #f8f9fa);padding:60px 0;position:relative}
.rep-page .map-card{background:#fff;border-radius:24px;padding:40px;box-shadow:0 8px 32px rgba(0,0,0,0.08);position:relative;overflow:hidden}
.rep-page .map-card::before{content:"";position:absolute;top:-100px;right:-100px;width:200px;height:200px;background:radial-gradient(circle,var(--accent-orange, #f4a261) 0%,transparent 70%);opacity:0.05}
.rep-page #map-container{position:relative;background:#fafafa;border-radius:20px;padding:30px;min-height:500px}
.rep-page #map-container svg{width:100%;height:auto;max-height:650px;filter:drop-shadow(0 4px 20px rgba(0,0,0,0.08))}
.rep-page #map-container path.province{cursor:pointer;fill:#e8f5e9;stroke:#57735b;stroke-width:0.85;transition:fill 0.18s ease,opacity 0.18s ease}
.rep-page #map-container path.province:hover{fill:#bdddbe}
.rep-page #map-container path.province.has-multiple-reps{fill:#c8e6c9}
.rep-page #map-container path.province.active{fill:var(--accent-orange, #f4a261)}
.rep-page #map-container path.province.dimmed{fill:#f5f5f5;opacity:0.5}
.rep-page #map-container svg text{font-family:inherit;font-weight:650;fill:#000;pointer-events:none}
.rep-page .rep-marker{cursor:pointer}
.rep-page .marker-dot{fill:var(--accent-orange, #f4a261);stroke:#fff;stroke-width:1.4}
.rep-page .marker-pulse{fill:none;stroke:var(--accent-orange, #f4a261);stroke-width:2;opacity:0}
.rep-page .map-loading{text-align:center;padding:100px 20px}
.rep-page .loading-spinner{width:60px;height:60px;border:4px solid #f3f3f3;border-top:4px solid var(--brand-green, #2a9d8f);border-radius:50%;animation:rep-spinner 1s linear infinite;margin:0 auto 20px}
.rep-page .rep-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:100010;padding:20px}
.rep-page .modal-dialog{background:#fff;border-radius:24px;max-width:550px;width:100%;max-height:85vh;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,0.3);animation:rep-modal-enter 0.3s ease}
@keyframes rep-modal-enter{from{opacity:0;transform:translateY(30px) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}
.rep-page .modal-header{background:linear-gradient(135deg,var(--brand-green, #2a9d8f) 0%,var(--dark-green, #264653) 100%);color:#fff;padding:30px;position:relative}
.rep-page .modal-header h3{margin:0;font-size:1.4rem;font-weight:700;display:flex;align-items:center;gap:10px;color:#fff}
.rep-page .modal-close{position:absolute;top:20px;left:20px;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.2);border:none;color:#fff;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease}
.rep-page .modal-close:hover{background:rgba(255,255,255,0.3);transform:rotate(90deg)}
.rep-page .modal-body{padding:30px;max-height:calc(85vh - 100px);overflow-y:auto}
.rep-page .rep-info-card{background:#f8f9fa;border-radius:16px;padding:25px;margin-bottom:20px;border:2px solid transparent;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease}
.rep-page .rep-info-card:hover{border-color:var(--brand-green, #2a9d8f);box-shadow:0 4px 20px rgba(39,129,59,0.1)}
.rep-page .rep-info-card:last-child{margin-bottom:0}
.rep-page .rep-name{font-size:1.2rem;font-weight:700;color:var(--dark-green, #264653);margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}
.rep-page .rep-badge{background:var(--accent-orange, #f4a261);color:#fff;padding:4px 12px;border-radius:20px;font-size:0.8rem;font-weight:600}
.rep-page .info-row{display:flex;align-items:flex-start;margin-bottom:15px;gap:15px}
.rep-page .info-row:last-child{margin-bottom:0}
.rep-page .info-icon{width:35px;height:35px;background:var(--accent-orange, #f4a261);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.1rem;flex-shrink:0}
.rep-page .info-content{flex:1;text-align:right;line-height:1.6}
.rep-page .info-label{font-size:0.85rem;color:#666;margin-bottom:2px}
.rep-page .info-value{color:#333;font-weight:600}
.rep-page .reps-list-section{padding:60px 0}
.rep-page .section-header{text-align:center;margin-bottom:50px}
.rep-page .section-header h2{font-size:2rem;color:var(--dark-green, #264653);font-weight:700;margin-bottom:10px}
.rep-page .section-header p{color:#666;font-size:1rem}
.rep-page .reps-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:25px}
.rep-page .rep-card{background:#fff;border-radius:16px;padding:25px;box-shadow:0 4px 16px rgba(0,0,0,0.06);cursor:pointer;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease;border:2px solid transparent;position:relative;overflow:hidden;font:inherit;text-align:right;width:100%;min-width:0}
.rep-page .rep-card::before{content:"";position:absolute;top:-50px;right:-50px;width:100px;height:100px;background:var(--accent-orange, #f4a261);border-radius:50%;opacity:0.05;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease}
.rep-page .rep-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px rgba(0,0,0,0.12);border-color:var(--brand-green, #2a9d8f)}
.rep-page .rep-card:hover::before{transform:scale(1.5)}
.rep-page .rep-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.rep-page .province-label{font-size:1.1rem;font-weight:700;color:var(--dark-green, #264653);display:flex;align-items:center;gap:8px}
.rep-page .rep-count-badge{background:var(--accent-orange, #f4a261);color:#fff;padding:2px 10px;border-radius:15px;font-size:0.8rem;font-weight:600}
.rep-page .rep-card-content{color:#666;font-size:0.9rem;display:block}
.rep-page .contact-section{background:var(--light-gray, #f8f9fa);padding:80px 0}
.rep-page .contact-info{margin-top:50px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:30px}
.rep-page .info-card{background:#fff;border-radius:16px;padding:30px;box-shadow:0 4px 16px rgba(0,0,0,0.06);display:flex;align-items:center;gap:20px;transition:color 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease}
.rep-page .info-card:hover{transform:translateY(-5px);box-shadow:0 8px 30px rgba(0,0,0,0.12)}
.rep-page .info-card-icon{width:60px;height:60px;background:linear-gradient(135deg,var(--brand-green, #2a9d8f) 0%,var(--dark-green, #264653) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;flex-shrink:0}
.rep-page .info-card-content h4{margin:0 0 5px 0;color:var(--dark-green, #264653);font-size:1rem;font-weight:700}
.rep-page .info-card-content p{margin:0;color:#666;font-size:0.95rem}
.rep-page .notification{position:fixed;bottom:30px;right:30px;background:var(--dark-green, #264653);color:#fff;padding:16px 24px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.2);display:flex;align-items:center;gap:12px;z-index:100020}
.rep-page .notification.show{display:flex}
.rep-page .notification.error{background:var(--brand-red, #e63946)}
.rep-page .notification.warning{background:var(--accent-orange, #f4a261)}
.rep-page [hidden]{display:none!important}
.rep-page :is(input,button){font-family:inherit}
.rep-page :is(button,a,input,[tabindex]):focus-visible{outline:3px solid var(--brand-green, #27813b);outline-offset:3px}
.rep-page #map-container svg{display:block;margin:0 auto;overflow:visible}
.rep-page .marker-hit{fill:transparent;stroke:none}
.rep-page .marker-pulse{opacity:0.25;animation:rep-marker-pulse 2.2s ease-in-out infinite;pointer-events:none}
.rep-page .marker-dot{pointer-events:none}
.rep-page .rep-marker.dimmed{opacity:0.25}
.rep-page .rep-marker.dimmed .marker-pulse,.rep-page.rep-motion-paused .marker-pulse{animation-play-state:paused}
.rep-page .rep-marker:focus-visible{outline:none}
.rep-page .rep-marker:focus-visible .marker-hit{stroke:var(--brand-green, #27813b);stroke-width:1.5}
.rep-page .modal-dialog{display:flex;flex-direction:column;margin:0;pointer-events:auto}
.rep-page .modal-header{flex-shrink:0;display:block;padding-left:76px}
.rep-page .modal-header h3{line-height:1.7;font-size:1.25rem}
.rep-page .modal-body{min-height:0;overscroll-behavior:contain}
.rep-page .rep-name{align-items:flex-start;gap:10px;overflow-wrap:anywhere}
.rep-page .rep-badge{flex-shrink:0}
.rep-page .info-value{overflow-wrap:anywhere;white-space:pre-line}
.rep-page a.info-value{display:inline-block;min-height:40px;padding-block:7px;color:var(--brand-green, #27813b)}
.rep-page .rep-ltr{direction:ltr;unicode-bidi:plaintext;text-align:right}
.rep-page .rep-results-status{margin:-24px 0 24px;color:#666;text-align:center;font-size:0.85rem}
.rep-page .rep-load-error{padding:24px;color:#555;text-align:center;grid-column:1/-1}
.rep-page .rep-map-credit{margin:14px 0 0;text-align:center;color:#777;font-size:10px}
.rep-page .rep-map-credit a{color:inherit}
.rep-page .notification{max-width:min(440px,calc(100vw - 32px))}
.rep-page .rep-screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@keyframes rep-marker-pulse{0%,100%{opacity:0.15}50%{opacity:0.8}}
@keyframes rep-spinner{to{transform:rotate(360deg)}}
@media (max-width:767px){.rep-page .rep-hero{padding:65px 0 60px}.rep-page .rep-hero h1{font-size:1.8rem}.rep-page .rep-hero p{font-size:1rem}.rep-page .rep-stats{padding:25px 16px}.rep-page .stats-grid{gap:28px}.rep-page .stat-number{font-size:2.2rem}.rep-page .stat-label{font-size:0.85rem}.rep-page .stat-item::after{margin-right:14px}.rep-page .map-controls{margin:30px 0 24px}.rep-page .map-section,.rep-page .reps-list-section{padding:30px 0}.rep-page .map-card{padding:12px;border-radius:18px}.rep-page #map-container{padding:6px;min-height:280px}.rep-page .section-header h2{font-size:1.45rem}.rep-page .rep-card{padding:20px}.rep-page .rep-modal{padding:12px}.rep-page .modal-dialog{max-height:88vh;max-height:calc(100dvh - 24px);border-radius:18px}.rep-page .modal-header{padding:18px 18px 18px 62px}.rep-page .modal-header h3{font-size:1.1rem}.rep-page .modal-close{top:14px;left:12px;width:44px;height:44px}.rep-page .modal-body{padding:16px}.rep-page .rep-info-card{padding:18px}.rep-page .rep-name{font-size:1.05rem}.rep-page .contact-section{padding:35px 0}.rep-page .contact-info{margin-top:0}.rep-page .info-card{padding:20px}.rep-page .notification{right:16px;bottom:16px}}
@media (prefers-reduced-motion:reduce){.rep-page *,.rep-page *::before,.rep-page *::after{animation:none!important;transition:none!important}}
