:root{--nav:#112b2a;--green:#1f7a62;--mint:#eaf5f1;--gold:#d7a84a;--ink:#172322;--muted:#6b7876;--line:#dfe7e5;--bg:#f5f7f6;--white:#fff;--red:#b54a4a}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink);text-transform:uppercase}button,input,select,textarea{font:inherit;text-transform:uppercase}input[type="password"]{text-transform:none}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#2b816b,#112b2a 55%);padding:20px}.login-card{width:min(420px,100%);background:#fff;padding:36px;border-radius:20px;box-shadow:0 24px 80px #07181688}.login-logo{display:block;width:min(250px,82%);height:128px;object-fit:contain;margin:0 auto 10px}.login-card p{color:var(--muted);margin:0 0 24px;text-align:center}.login-card label{display:block;font-weight:700;margin:14px 0}.login-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;margin-top:7px}.login-card button,.primary{width:100%;border:0;border-radius:9px;background:var(--green);color:#fff;padding:12px;font-weight:800;cursor:pointer}.login-card small{display:block;color:var(--muted);line-height:1.6;margin-top:18px}.error{color:var(--red);margin-top:10px}
.session-loading{text-align:center}.session-loading p{font-weight:800}.session-spinner{width:38px;height:38px;border:4px solid var(--mint);border-top-color:var(--green);border-radius:50%;margin:0 auto;animation:session-spin .8s linear infinite}@keyframes session-spin{to{transform:rotate(360deg)}}
.location-policy{text-align:center;font-size:11px}.login-card button:disabled,.location-gate-card button:disabled{opacity:.65;cursor:wait}.location-gate{position:fixed;inset:0;z-index:50;background:#071c1aeF;display:grid;place-items:center;padding:20px}.location-gate-card{width:min(430px,100%);background:#fff;border-radius:20px;padding:30px;text-align:center;box-shadow:0 25px 90px #0008}.location-gate-card>img{width:145px;height:74px;object-fit:contain}.gps-symbol{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--mint);color:var(--green);font-size:34px;font-weight:900;margin:16px auto 8px}.location-gate-card h2{margin:8px 0}.location-gate-card p{color:var(--muted);line-height:1.55}.location-gate-card button{display:block;width:100%;border:0;border-radius:9px;padding:12px;font-weight:800;cursor:pointer;margin-top:9px}.location-gate-card small{display:block;color:var(--muted);margin-top:16px;line-height:1.5}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{background:var(--nav);color:#fff;padding:24px 16px;display:flex;flex-direction:column}.logo{display:flex;gap:11px;align-items:center;padding:0 8px 26px}.logo img{width:42px;height:42px;border-radius:11px;object-fit:contain;background:#fff;padding:3px}.logo small{display:block;color:#9eb6b1;margin-top:2px}.logo b{display:block;letter-spacing:.3px;font-size:14px;line-height:1.2}nav{display:grid;gap:5px}nav button,.logout{border:0;background:transparent;color:#bcd0cc;text-align:left;padding:12px;border-radius:9px;cursor:pointer;font-weight:650}nav button:hover,nav button.active{background:#ffffff16;color:#fff}.logout{margin-top:auto;color:#ffcece}main{min-width:0}header{height:74px;background:#fff;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;justify-content:space-between}header>div{display:flex;align-items:center;gap:12px}header h2{font-size:21px}.menu-btn{display:none;border:0;background:none;font-size:22px}.user{text-align:right}.user span{background:var(--mint);color:var(--green);padding:5px 9px;border-radius:999px;font-size:12px}.user b{font-size:14px}
#content{padding:26px;max-width:1500px;margin:auto}.hero{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:18px}.hero h1{margin:0;font-size:26px}.hero p{margin:6px 0 0;color:var(--muted)}
.hero .app-download{display:inline-flex;width:auto;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}
.filters{background:#fff;border:1px solid var(--line);padding:16px;border-radius:13px;display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:18px}.filters label,.form-grid label{font-size:12px;font-weight:800;color:#4b5d5a}.filters input,.filters select,.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.filter-actions{display:flex;align-items:end;gap:8px}.filter-actions button,.action{border:0;border-radius:8px;padding:10px 13px;font-weight:750;cursor:pointer}.apply{background:var(--green);color:#fff}.clear{background:#edf1f0;color:#344845}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.card small{color:var(--muted);font-weight:700}.card strong{display:block;font-size:26px;margin-top:8px}.card em{font-style:normal;color:var(--green);font-size:12px}.grid2{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.panel h3{margin:0 0 15px;font-size:16px}.progress{height:10px;background:#e8eeec;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#62b59d)}.bar-row{display:grid;grid-template-columns:120px 1fr 70px;gap:10px;align-items:center;margin:12px 0;font-size:13px}.bar{height:8px;background:#edf1f0;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--green)}
.dashboard-period{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.dashboard-period b{color:var(--ink)}.dashboard-cards{grid-template-columns:repeat(5,1fr)}.dashboard-cards .card strong{font-size:22px}.forecast-card{background:linear-gradient(135deg,#fffaf0,#fff)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wide-panel{grid-column:1/-1}.meta-values{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.meta-values>div{background:var(--bg);padding:12px;border-radius:9px}.meta-values small{display:block;color:var(--muted)}.meta-values b{display:block;margin-top:5px;font-size:18px}.big-progress{height:14px}.meta-panel>p{margin:8px 0 0;color:var(--green);font-weight:800;font-size:13px}.funnel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:end}.funnel>div{background:var(--mint);padding:15px 8px;text-align:center;border-radius:10px;min-height:90px;display:flex;flex-direction:column;justify-content:center}.funnel>div:nth-child(2){min-height:75px}.funnel>div:nth-child(3){min-height:60px;background:#fff3d9}.funnel b{font-size:23px}.funnel span{font-size:11px;color:var(--muted);margin-top:5px}.dashboard-bar{grid-template-columns:135px 1fr 95px}.dashboard-bar>b{text-align:right}.ranking-table{display:grid}.ranking-head,.ranking-table>div{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;padding:11px;border-bottom:1px solid var(--line);align-items:center}.ranking-head{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.ranking-table>div:last-child{border:0}.ranking-table>div>span:not(:first-child){text-align:right}.ranking-table>div>span:first-child b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--mint);color:var(--green);margin-right:7px}.forecast-box{display:grid;gap:5px;text-align:center;background:linear-gradient(135deg,var(--mint),#fff);border-radius:12px;padding:20px}.forecast-box small{color:var(--muted)}.forecast-box b{font-size:19px}.forecast-box strong{font-size:28px;color:var(--green)}.forecast-box em{font-style:normal;font-size:12px;color:var(--green);font-weight:800}
.toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.toolbar input{min-width:240px;padding:10px;border:1px solid var(--line);border-radius:8px}.toolbar .primary{width:auto}
.client-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.client-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.client-summary small{display:block;color:var(--muted);font-weight:700}.client-summary b{display:block;font-size:24px;margin-top:6px}.client-filters{background:#fff;border:1px solid var(--line);padding:14px;border-radius:12px;display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:10px;margin-bottom:14px}.client-filters label{font-size:12px;font-weight:800;color:#4b5d5a}.client-filters input,.client-filters select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.quadrant{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;color:#fff;font-weight:900;margin-right:7px}.q-A{background:#18785d}.q-B{background:#2f77a6}.q-C{background:#d09a2e}.q-D{background:#7a8583}.quadrant-copy{display:block;margin-top:5px;color:var(--muted);white-space:nowrap}.quadrant-row{display:flex;gap:7px;margin-top:6px}.quadrant-row select{margin-top:0}.quadrant-row button{border:0;border-radius:8px;background:var(--nav);color:#fff;padding:0 12px;font-weight:700;cursor:pointer}
.quick-periods{display:flex;align-items:center;gap:7px;margin-bottom:10px}.quick-periods span{font-size:12px;font-weight:800;color:var(--muted)}.quick-periods button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer;font-size:12px;font-weight:700}.quick-periods button:hover{border-color:var(--green);color:var(--green)}.visit-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.visit-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.visit-summary small{display:block;color:var(--muted);font-weight:700}.visit-summary b{display:block;font-size:22px;margin-top:6px}.success.action{background:var(--mint);color:var(--green)}
.goal-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.goal-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.goal-summary small{display:block;color:var(--muted);font-weight:700}.goal-summary b{display:block;font-size:22px;margin-top:6px}.goal-summary em{display:block;font-style:normal;color:var(--green);font-size:12px;margin-top:4px}.goal-progress,.goal-detail-progress{height:9px;background:#e6ecea;border-radius:9px;overflow:hidden}.goal-progress span,.goal-detail-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#65bea4)}.goal-detail-head{display:flex;align-items:flex-start;justify-content:space-between;padding-right:35px}.goal-detail-head h2{margin:8px 0 3px}.goal-detail-head p{margin:0;color:var(--muted)}.goal-detail-head>b{font-size:27px;color:var(--green)}.goal-detail-progress{height:13px;margin:18px 0}
.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.report-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.report-summary small{display:block;color:var(--muted);font-weight:700}.report-summary b{display:block;font-size:22px;margin-top:6px}.report-summary em{display:block;font-style:normal;color:var(--green);font-size:12px;margin-top:4px}.form-section-title{border-top:1px solid var(--line);padding-top:14px;font-size:14px;font-weight:900;color:var(--green)}.report-detail-head{display:flex;align-items:flex-start;justify-content:space-between;padding-right:35px;border-bottom:1px solid var(--line);padding-bottom:15px}.report-detail-head h2{margin:8px 0 3px}.report-detail-head p{margin:0;color:var(--muted)}.report-sale{text-align:right}.report-sale small{display:block;color:var(--muted)}.report-sale b{display:block;color:var(--green);font-size:24px;margin-top:4px}
.follow-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.follow-summary>div{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.follow-summary small{display:block;color:var(--muted);font-weight:700}.follow-summary b{display:block;font-size:22px;margin-top:6px}.auto-alerts{background:#fff9ec;border:1px solid #f0d79f;border-radius:12px;padding:15px;margin-bottom:14px}.auto-alert-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.auto-alert-head h3{margin:0 0 4px;font-size:15px}.auto-alert-head p{margin:0;color:#80652b;font-size:13px}.suggestion-list{display:grid;gap:9px;margin-top:13px}.suggestion-item{background:#fff;border:1px solid #eedbb3;border-radius:10px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:15px}.suggestion-item b{margin:0 8px}.suggestion-item span{font-size:12px;color:var(--muted)}.suggestion-item p{margin:6px 0 0;font-size:13px}.follow-detail-head{display:flex;align-items:flex-start;justify-content:space-between;padding-right:35px;border-bottom:1px solid var(--line);padding-bottom:15px}.follow-detail-head h2{margin:8px 0 3px}.follow-detail-head p{margin:0;color:var(--muted)}
table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:11px;border-bottom:1px solid var(--line)}td{padding:12px 11px;border-bottom:1px solid #edf1f0}tr:last-child td{border:0}.tag{display:inline-block;padding:5px 8px;border-radius:999px;background:var(--mint);color:var(--green);font-size:11px;font-weight:800}.tag.warn{background:#fff3d9;color:#936b17}.tag.red{background:#fdeaea;color:#a33b3b}.empty{text-align:center;padding:35px;color:var(--muted)}
.row-actions{display:flex;gap:6px}.row-actions button{border:0;border-radius:7px;padding:7px 9px;cursor:pointer;font-weight:700;font-size:12px}.row-actions button:first-child{background:#e8efed;color:#294944}.row-actions .danger{background:#fdeaea;color:#9b3535}.row-actions .success{background:var(--mint);color:var(--green)}.row-actions button:disabled{opacity:.4;cursor:not-allowed}
.account-panel{max-width:760px}.account-summary{display:flex;align-items:center;justify-content:space-between;background:var(--mint);border-radius:12px;padding:17px;margin-bottom:20px}.account-summary small,.account-summary span{display:block;color:var(--muted)}.account-summary b{display:block;font-size:20px;margin:4px 0}.security-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:var(--green);color:#fff;font-size:25px;font-weight:900}.password-notice{background:#fff8e9;border:1px solid #eed7a4;border-radius:9px;padding:12px;color:#765c22;font-size:13px;line-height:1.5}.delete-action{border:0;border-radius:8px;background:#b84242;color:#fff;padding:10px 13px;font-weight:800;cursor:pointer}.delete-action:disabled{opacity:.5;cursor:not-allowed}.delete-warning{text-align:center}.delete-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin:0 auto 12px;background:#fdeaea;color:#a93636;font-size:29px;font-weight:900}.delete-warning h2{margin:0 0 8px}.delete-warning>p{color:var(--muted);line-height:1.55}.delete-impact{display:grid;grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:9px;margin:17px 0}.delete-impact span{background:#fff4f4;border:1px solid #f2cccc;border-radius:9px;padding:12px;color:#8f3939}.delete-impact b{display:block;font-size:21px}.delete-warning label{display:block;text-align:left;font-weight:800;margin-top:16px}.delete-warning input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid var(--line);border-radius:8px}.transfer-box{margin:16px 0;padding:14px;text-align:left;background:#fff8e9;border:1px solid #eed7a4;border-radius:10px}.transfer-box label{margin:0}.transfer-box select{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid var(--line);border-radius:8px;background:#fff}.transfer-error{margin:10px 0 0;color:#a93636;font-weight:800;font-size:13px}
.modal{position:fixed;inset:0;background:#061a1899;display:grid;place-items:center;padding:20px;z-index:10}.modal-card{background:#fff;border-radius:16px;width:min(760px,100%);max-height:90vh;overflow:auto;padding:24px;position:relative}.modal-close{position:absolute;right:15px;top:12px;border:0;background:none;font-size:28px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid .wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px}.form-actions button{width:auto}
.modal-intro{margin-top:-8px;color:var(--muted)}.client-profile-head{display:flex;align-items:flex-start;justify-content:space-between;padding-right:35px;border-bottom:1px solid var(--line);padding-bottom:15px}.client-profile-head h2{display:inline-block;margin:0}.client-profile-head p{margin:5px 0 0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.detail-grid section{background:var(--bg);border-radius:10px;padding:14px}.detail-grid section.wide{grid-column:1/-1}.detail-grid h3{margin:0 0 9px;font-size:14px}.detail-grid p{margin:0;line-height:1.65;font-size:13px}
.visit-detail-head{display:flex;align-items:flex-start;justify-content:space-between;padding-right:35px;border-bottom:1px solid var(--line);padding-bottom:15px}.visit-detail-head h2{margin:8px 0 3px}.visit-detail-head p{margin:0;color:var(--muted)}
.cep-row{display:flex;gap:7px;margin-top:6px}.cep-row input{margin-top:0}.cep-row button{border:0;border-radius:8px;background:var(--nav);color:#fff;padding:0 12px;white-space:nowrap;cursor:pointer}.form-grid label>small{display:block;color:var(--muted);font-weight:500;margin-top:5px}
.location-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.location-card{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fbfcfc}.location-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.location-head h3{margin:0 0 4px}.location-card iframe{border:0;width:100%;height:230px;border-radius:9px;margin-top:14px;background:#e6ecea}.location-card p{font-size:13px;line-height:1.6}.location-empty{height:180px;background:var(--mint);border-radius:9px;margin-top:14px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:20px}.map-link{display:inline-block;background:var(--green);color:#fff;padding:9px 12px;border-radius:8px;text-decoration:none;font-weight:700;font-size:13px}
@media(max-width:1200px){.dashboard-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.filters{grid-template-columns:repeat(3,1fr)}.grid2,.dashboard-grid{grid-template-columns:1fr}.wide-panel{grid-column:auto}.client-summary,.visit-summary,.goal-summary,.report-summary,.follow-summary{grid-template-columns:repeat(2,1fr)}.client-filters{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.app{grid-template-columns:1fr}aside{position:fixed;inset:0 auto 0 0;width:250px;z-index:20;transform:translateX(-100%);transition:.2s}aside.open{transform:none}.menu-btn{display:inline}header{padding:0 16px}#content{padding:18px}.filters{grid-template-columns:1fr 1fr}.cards,.dashboard-cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.user span{display:none}.toolbar{flex-direction:column}.toolbar input{min-width:0;width:100%}.panel{overflow:auto}.location-grid{grid-template-columns:1fr}.client-summary,.client-filters,.detail-grid,.visit-summary,.goal-summary,.report-summary,.follow-summary{grid-template-columns:1fr}.detail-grid section.wide{grid-column:auto}.quick-periods{flex-wrap:wrap}.auto-alert-head,.suggestion-item{align-items:stretch;flex-direction:column}.ranking-head,.ranking-table>div{grid-template-columns:1.5fr repeat(3,1fr);font-size:11px}.meta-values{grid-template-columns:1fr}.dashboard-bar{grid-template-columns:110px 1fr 80px}}
