:root{--bg-primary:200 6% 10%;--bg-secondary:0 0% 16%;--bg-tertiary:20 5% 22%;--text-primary:49 87% 93%;--text-secondary:43 41% 89%;--text-muted:34 15% 59%;--primary:108 40% 62%;--primary-glow:108 40% 62% / .15;--secondary:26 99% 55%;--success:61 66% 44%;--success-glow:61 66% 44% / .15;--danger:6 96% 59%;--danger-glow:6 96% 59% / .15;--warning:42 95% 58%;--warning-glow:42 95% 58% / .15;--border-glow:26 99% 55% / .1;--border-muted:20 6% 26%;--font-display:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--safe-area-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}body{background-color:hsl(var(--bg-primary));color:hsl(var(--text-primary));font-family:var(--font-body);flex-direction:column;height:100dvh;margin:0;padding:0;display:flex;overflow-x:hidden}#root{flex-direction:column;height:100%;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.app-container{flex-direction:column;height:100dvh;display:flex;position:relative}.main-content{padding:1.25rem;padding-bottom:calc(5.5rem + var(--safe-area-bottom));flex:1;overflow-y:auto}.app-header{background:hsla(var(--bg-secondary) / .8);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid hsl(var(--border-muted));z-index:100;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;align-items:center;gap:.5rem;font-size:1.35rem;font-weight:800;display:flex}.brand svg{stroke:hsl(var(--primary));filter:drop-shadow(0 0 8px hsl(var(--primary) / .5))}.offline-badge{background:hsl(var(--warning-glow));border:1px solid hsl(var(--warning) / .3);color:hsl(var(--warning));border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;font-weight:500;display:flex}.glass-panel{background:hsl(var(--bg-secondary));border:2px solid hsl(var(--border-muted));box-shadow:4px 4px 0px 0px hsl(var(--border-muted) / .7);border-radius:12px}.glass-card{background:hsl(var(--bg-tertiary));border:2px solid hsl(var(--border-muted));box-shadow:3px 3px 0px 0px hsl(var(--border-muted) / .4);border-radius:8px;padding:1rem;transition:transform .15s,border-color .15s,box-shadow .15s}.glass-card:hover{border-color:hsl(var(--primary));box-shadow:3px 3px 0px 0px hsl(var(--primary) / .5);transform:translate(-1px,-1px)}.tab-bar{background:hsla(var(--bg-secondary) / .85);-webkit-backdrop-filter:blur(20px);border-top:1px solid hsl(var(--border-muted));padding:.6rem .5rem calc(.6rem + var(--safe-area-bottom));z-index:100;justify-content:space-around;display:flex;position:absolute;bottom:0;left:0;right:0}.tab-button{color:hsl(var(--text-muted));font-family:var(--font-body);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.3rem;width:20%;font-size:.72rem;font-weight:500;transition:color .25s;display:flex}.tab-button.active{color:hsl(var(--primary));font-weight:600}.tab-button.active svg{stroke:hsl(var(--primary));filter:drop-shadow(0 0 6px hsl(var(--primary) / .4))}.tab-button svg{stroke:currentColor;stroke-width:2px;width:22px;height:22px;transition:transform .2s}.tab-button:active svg{transform:scale(.9)}.swipe-screen-container{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex;position:relative;overflow:hidden}.swiper-deck{justify-content:center;align-items:center;width:100%;max-width:380px;height:480px;display:flex;position:relative}.swipe-card{width:100%;height:100%;box-shadow:6px 6px 0px 0px hsl(var(--border-muted) / .8);cursor:grab;transform-origin:50% 99%;background:hsl(var(--bg-secondary));border:2px solid hsl(var(--text-primary));touch-action:none;border-radius:16px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.swipe-card:active{cursor:grabbing}.swipe-card-image{background-position:50%;background-size:cover;flex:1;position:relative}.swipe-card-gradient{background:linear-gradient(to top, hsl(var(--bg-secondary)) 5%, transparent 70%);position:absolute;inset:0}.swipe-card-category{-webkit-backdrop-filter:blur(8px);color:hsl(var(--secondary));border:1px solid hsl(var(--secondary) / .3);text-transform:uppercase;letter-spacing:.05em;background:#0009;border-radius:9999px;padding:.35rem .75rem;font-size:.75rem;font-weight:600;position:absolute;top:1.25rem;left:1.25rem}.swipe-stamp{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;opacity:0;z-index:10;border:4px solid;border-radius:8px;padding:.5rem 1rem;font-size:1.8rem;font-weight:800;position:absolute;top:2rem;transform:rotate(-15deg)}.swipe-stamp.like{color:hsl(var(--success));border-color:hsl(var(--success));right:2rem;transform:rotate(15deg)}.swipe-stamp.nope{color:hsl(var(--danger));border-color:hsl(var(--danger));left:2rem;transform:rotate(-15deg)}.swipe-stamp.never{color:hsl(var(--warning));border-color:hsl(var(--warning));font-size:1.5rem;top:40%;left:50%;transform:translate(-50%,-50%)rotate(-5deg)}.swipe-card-details{flex-direction:column;gap:.4rem;padding:1.25rem;display:flex}.swipe-card-details h3{font-size:1.4rem;font-family:var(--font-display);color:hsl(var(--text-primary))}.rating-row{color:hsl(var(--warning));align-items:center;gap:.3rem;font-size:.85rem;font-weight:600;display:flex}.rating-row span{color:hsl(var(--text-secondary));font-weight:400}.swipe-card-address{color:hsl(var(--text-secondary));align-items:center;gap:.35rem;font-size:.85rem;line-height:1.35;display:flex}.swipe-controls{z-index:10;justify-content:center;align-items:center;gap:1.25rem;margin-top:1.5rem;display:flex}.circle-btn{background:hsl(var(--bg-secondary));border:2px solid hsl(var(--border-muted));cursor:pointer;width:58px;height:58px;box-shadow:3px 3px 0px 0px hsl(var(--border-muted) / .6);border-radius:50%;justify-content:center;align-items:center;transition:transform .1s,box-shadow .1s;display:flex}.circle-btn svg{stroke-width:2.5px;width:24px;height:24px}.circle-btn.nope-btn{color:hsl(var(--danger));border-color:hsl(var(--danger))}.circle-btn.nope-btn:hover{background:hsl(var(--danger-glow));box-shadow:3px 3px 0px 0px hsl(var(--danger))}.circle-btn.never-btn{color:hsl(var(--warning));border-color:hsl(var(--warning));width:46px;height:46px}.circle-btn.never-btn:hover{background:hsl(var(--warning-glow));box-shadow:3px 3px 0px 0px hsl(var(--warning))}.circle-btn.like-btn{color:hsl(var(--success));border-color:hsl(var(--success))}.circle-btn.like-btn:hover{background:hsl(var(--success-glow));box-shadow:3px 3px 0px 0px hsl(var(--success))}.circle-btn:active{box-shadow:1px 1px 0px 0px hsl(var(--border-muted) / .6);transform:translate(2px,2px)}.circle-btn.nope-btn:active{box-shadow:1px 1px 0px 0px hsl(var(--danger))}.circle-btn.never-btn:active{box-shadow:1px 1px 0px 0px hsl(var(--warning))}.circle-btn.like-btn:active{box-shadow:1px 1px 0px 0px hsl(var(--success))}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;margin-bottom:1.5rem;display:grid}.dashboard-stats{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.stat-card{text-align:center;background:hsla(var(--bg-secondary) / .5);border:1px solid hsl(var(--border-muted));border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:.85rem .5rem;display:flex}.stat-val{font-family:var(--font-display);margin-bottom:.15rem;font-size:1.5rem;font-weight:700}.stat-card.osv .stat-val{color:hsl(var(--secondary))}.stat-card.pb .stat-val{color:hsl(var(--primary))}.stat-card.appt .stat-val{color:hsl(var(--success))}.stat-lbl{color:hsl(var(--text-muted));text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.map-panel{border:1px solid hsl(var(--border-muted));border-radius:16px;height:350px;position:relative;overflow:hidden}.leaflet-placeholder{background:linear-gradient(135deg, hsl(var(--bg-secondary)), hsl(var(--bg-tertiary)));width:100%;height:100%;color:hsl(var(--text-muted));flex-direction:column;justify-content:center;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.map-control-overlay{z-index:10;gap:.5rem;display:flex;position:absolute;top:10px;right:10px}.map-btn{background:hsla(var(--bg-secondary) / .8);-webkit-backdrop-filter:blur(8px);border:1px solid hsl(var(--border-muted));color:hsl(var(--text-primary));cursor:pointer;border-radius:8px;align-items:center;gap:.3rem;padding:.4rem .8rem;font-size:.75rem;font-weight:500;display:flex}.progress-section{flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.progress-header{justify-content:space-between;align-items:center;display:flex}.progress-title{font-family:var(--font-display);color:hsl(var(--text-primary));font-size:1rem}.progress-week-indicator{color:hsl(var(--text-muted));font-size:.75rem}.progress-bar-container{flex-direction:column;gap:.4rem;display:flex}.progress-bar-label{color:hsl(var(--text-secondary));justify-content:space-between;font-size:.78rem;display:flex}.progress-track{background:hsl(var(--bg-tertiary));border:1px solid hsl(var(--border-muted));border-radius:9999px;height:8px;overflow:hidden}.progress-fill{border-radius:9999px;width:0%;height:100%;transition:width .8s cubic-bezier(.1,.8,.25,1)}.progress-fill.osv{background:linear-gradient(to right, hsl(var(--secondary)), hsl(var(--primary)))}.progress-fill.calls{background:linear-gradient(to right, hsl(var(--primary)), hsl(var(--danger)))}.progress-fill.appointments{background:linear-gradient(to right, hsl(var(--success)), hsl(var(--secondary)))}.lead-manager-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.search-input-wrapper{flex:1;max-width:300px;position:relative}.search-input-wrapper svg{color:hsl(var(--text-muted));width:16px;height:16px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input{background:hsl(var(--bg-secondary));border:1px solid hsl(var(--border-muted));width:100%;color:hsl(var(--text-primary));font-family:var(--font-body);border-radius:8px;padding:.45rem .75rem .45rem 2.2rem;font-size:.85rem}.search-input:focus{border-color:hsl(var(--primary));outline:none}.filter-tabs{scrollbar-width:none;flex-shrink:0;gap:.35rem;margin-bottom:1rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{white-space:nowrap;background:hsla(var(--bg-secondary) / .5);border:1px solid hsl(var(--border-muted));color:hsl(var(--text-secondary));cursor:pointer;border-radius:8px;padding:.35rem .75rem;font-size:.75rem}.filter-tab.active{background:hsl(var(--primary-glow));border-color:hsl(var(--primary));color:hsl(var(--text-primary));font-weight:500}.lead-list{flex-direction:column;gap:.75rem;display:flex}.lead-list-item{background:hsla(var(--bg-secondary) / .4);border:1px solid hsl(var(--border-muted));cursor:pointer;border-radius:12px;justify-content:space-between;align-items:center;padding:1rem;transition:all .2s;display:flex}.lead-list-item:hover{background:hsla(var(--bg-tertiary) / .4);border-color:hsl(var(--primary) / .3)}.lead-info{flex-direction:column;gap:.25rem;max-width:70%;display:flex}.lead-name{font-family:var(--font-display);font-size:.95rem;font-weight:600}.lead-address{color:hsl(var(--text-muted));white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.lead-action-badge{text-transform:uppercase;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:600}.lead-action-badge.pending_osv{background:hsl(var(--primary-glow));color:hsl(var(--primary));border:1px solid hsl(var(--primary) / .3)}.lead-action-badge.phone_block{background:hsl(var(--warning-glow));color:hsl(var(--warning));border:1px solid hsl(var(--warning) / .3)}.lead-action-badge.appointment_set{background:hsl(var(--success-glow));color:hsl(var(--success));border:1px solid hsl(var(--success) / .3)}.lead-action-badge.snoozed_osv{background:hsl(var(--border-glow));color:hsl(var(--text-secondary));border:1px solid hsl(var(--border-muted))}.drawer-backdrop{-webkit-backdrop-filter:blur(4px);z-index:200;background:#000000bf;justify-content:flex-end;display:flex;position:absolute;inset:0}.drawer-content{background:hsl(var(--bg-secondary));border-left:1px solid hsl(var(--border-muted));flex-direction:column;width:100%;max-width:480px;height:100%;animation:.3s cubic-bezier(.1,.8,.25,1) slideIn;display:flex;box-shadow:-10px 0 30px #00000080}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid hsl(var(--border-muted));justify-content:space-between;align-items:center;padding:1.25rem;display:flex}.drawer-body{flex-direction:column;flex:1;gap:1.25rem;padding:1.25rem;display:flex;overflow-y:auto}.close-btn{color:hsl(var(--text-muted));cursor:pointer;background:0 0;border:none}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:hsl(var(--text-secondary));font-size:.8rem;font-weight:500}.form-control{background:hsl(var(--bg-tertiary));border:1px solid hsl(var(--border-muted));color:hsl(var(--text-primary));font-family:var(--font-body);border-radius:8px;padding:.6rem .8rem;font-size:.88rem}.form-control:focus{border-color:hsl(var(--primary));outline:none}.radio-group{grid-template-columns:1fr;gap:.5rem;display:grid}@media (width>=480px){.radio-group{grid-template-columns:repeat(2,1fr)}}.radio-card{border:1px solid hsl(var(--border-muted));background:hsla(var(--bg-tertiary) / .4);cursor:pointer;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem;transition:all .2s;display:flex}.radio-card.active{border-color:hsl(var(--primary));background:hsl(var(--primary-glow))}.radio-card input{display:none}.radio-card-title{align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.btn-primary{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:#fff;font-weight:600;font-family:var(--font-display);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.2rem;font-size:.92rem;transition:opacity .2s;display:flex}.btn-primary:active{opacity:.85}.btn-secondary{background:hsla(var(--bg-tertiary) / .5);border:1px solid hsl(var(--border-muted));color:hsl(var(--text-secondary));font-weight:600;font-family:var(--font-display);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:.75rem 1.2rem;font-size:.92rem;display:flex}.btn-danger{background:hsl(var(--danger-glow));border:1px solid hsl(var(--danger) / .3);color:hsl(var(--danger));cursor:pointer;border-radius:10px;padding:.75rem 1.2rem;font-weight:600}.phone-block-container{flex-direction:column;height:100%;display:flex}.dialer-swiper-deck{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:1rem 0;display:flex;position:relative}.dialer-card{background:hsl(var(--bg-secondary));border:1.5px solid hsl(var(--border-muted));touch-action:none;border-radius:20px;flex-direction:column;gap:1.25rem;width:100%;max-width:380px;padding:1.5rem;display:flex;position:relative;box-shadow:0 12px 36px #00000059}.dialer-card-header{border-bottom:1px solid hsl(var(--border-muted));padding-bottom:.85rem}.dialer-lead-name{font-family:var(--font-display);margin-bottom:.25rem;font-size:1.35rem;font-weight:700}.dialer-contact-detail{color:hsl(var(--text-secondary));align-items:center;gap:.35rem;font-size:.8rem;display:flex}.phone-action-btn{background:hsl(var(--success-glow));border:1px solid hsl(var(--success) / .3);color:hsl(var(--success));border-radius:8px;align-items:center;gap:.4rem;margin-top:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.dialer-history-section{background:hsla(var(--bg-tertiary) / .3);border:1px solid hsl(var(--border-muted));border-radius:10px;flex:1;max-height:150px;padding:.75rem;overflow-y:auto}.history-item{border-bottom:1px dashed hsl(var(--border-muted));margin-bottom:.5rem;padding-bottom:.4rem;font-size:.78rem}.history-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.history-date{color:hsl(var(--text-muted));margin-bottom:.15rem;font-weight:500}.history-notes{color:hsl(var(--text-secondary))}.swipe-help-text{color:hsl(var(--text-muted));text-align:center;justify-content:center;align-items:center;gap:.75rem;margin-top:1rem;font-size:.75rem;display:flex}.swipe-help-text span{align-items:center;gap:.25rem;display:flex}.planner-table{border-collapse:collapse;width:100%;margin-top:.5rem}.planner-table th,.planner-table td{text-align:left;border-bottom:1px solid hsl(var(--border-muted));padding:.5rem}.planner-table th{text-transform:uppercase;color:hsl(var(--text-muted));font-size:.7rem}.planner-table td input{background:hsl(var(--bg-tertiary));border:1px solid hsl(var(--border-muted));width:50px;color:hsl(var(--text-primary));text-align:center;border-radius:4px;padding:.25rem}.category-checklist{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;display:grid}.category-card{background:hsla(var(--bg-tertiary) / .5);border:1px solid hsl(var(--border-muted));cursor:pointer;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem;font-size:.78rem;display:flex}.category-card.active{border-color:hsl(var(--primary));background:hsl(var(--primary-glow))}.modal-overlay{-webkit-backdrop-filter:blur(5px);z-index:300;background:#000c;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:absolute;inset:0}.modal-content{background:hsl(var(--bg-secondary));border:1px solid hsl(var(--border-muted));border-radius:16px;width:100%;max-width:400px;padding:1.25rem;box-shadow:0 15px 30px #0006}.modal-title{font-family:var(--font-display);margin-bottom:.85rem;font-size:1.15rem}.empty-state{text-align:center;color:hsl(var(--text-muted));flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1.5rem;display:flex}.empty-state svg{width:48px;height:48px;color:hsl(var(--text-muted) / .5)}@keyframes glow-sage{0%,to{box-shadow:0 0 8px hsla(var(--primary) / .15);border-color:hsl(var(--primary) / .8)}50%{box-shadow:0 0 20px hsla(var(--primary) / .45);border-color:hsl(var(--primary))}}.badge-unlocked{animation:3s ease-in-out infinite glow-sage}@keyframes scaleUp{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
