/* Mobile-first visual layer inspired by modern ISP self-service apps. */
[hidden]{display:none!important}
body{background:#eef4fb}
.topbar{position:sticky;top:0;z-index:20;height:72px;padding:0 max(4vw,24px);border-top:0;border-bottom:0;background:linear-gradient(120deg,#083b82,#0878df);box-shadow:0 7px 24px rgba(8,55,118,.2)}
.brand,.brand small{color:#fff}.brand-mark{background:#fff;color:#0a57ad;border-radius:14px;box-shadow:0 6px 18px rgba(0,0,0,.16)}
.topbar .nav-btn{color:#dcecff}.topbar .nav-btn.active{background:#fff;color:#0a4f9e;box-shadow:0 5px 14px rgba(0,0,0,.14)}
.view{padding-top:34px}.hero{padding:32px;border-radius:24px;background:linear-gradient(130deg,#073b82,#0b7ee5);color:#fff;box-shadow:0 20px 45px rgba(9,70,145,.2)}
.hero h1,.hero h1 em,.hero p,.hero .eyebrow{color:#fff}.hero h1{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:850;font-size:clamp(32px,5vw,56px)}.hero h1 em{font-style:normal}.hero .eyebrow{opacity:.78}.hero-status{border-left-color:#ff313d;background:rgba(255,255,255,.12);border-radius:0 16px 16px 0}.hero-status span,.hero-status small,.hero-status strong{color:#fff}
.client-nav{position:sticky;top:82px;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:10px;margin:22px 0;background:rgba(255,255,255,.94);border:1px solid #dbe7f5;border-radius:18px;box-shadow:0 12px 28px rgba(11,63,125,.12);backdrop-filter:blur(12px)}
.client-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70px;padding:9px 6px;border:0!important;border-radius:13px;font-size:11px;line-height:1.2}.client-tab span{margin:0 0 6px;background:#e9f2ff;color:#0a58ad}.client-tab.active{background:#0b70d1;color:#fff;box-shadow:0 8px 17px rgba(11,112,209,.26)}.client-tab.active span{background:#fff;color:#0b70d1}
.card{border:0;border-radius:20px;box-shadow:0 12px 34px rgba(15,62,119,.11)}.form-card,.tracking-card,.account-card,.router-card,.speed-card,.cases,.detail{padding:25px}.card-head h2{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:850}.step{border-radius:13px;background:#e8f2ff;color:#0757aa}.account-stat,.device-metrics div,.speed-results>div,.detail-info{background:#f3f7fc;border:1px solid #e5edf7;border-radius:14px}
input,select,textarea{border:1px solid #cfdded;background:#f8fbff;border-radius:12px;padding:14px}input:focus,select:focus,textarea:focus{border-color:#1475d4;box-shadow:0 0 0 4px rgba(20,117,212,.12)}
.primary,.secondary,.search button{border-radius:12px;min-height:48px;background:#0b70d1;box-shadow:0 8px 18px rgba(10,92,181,.19)}.primary{background:linear-gradient(100deg,#0755aa,#0b7ce2)}.danger,.badge.Alta,.badge.Critica{color:#c61f2a}.location-preview,.router-notice{border-radius:14px;background:#edf5ff;border-left:4px solid #0b70d1}.gps-button,.location-preview a{background:#e52935}.metric{border-top:0;border-left:4px solid #e52935;border-radius:16px}.report-item{border-radius:14px;background:#fff;padding:16px}.report-item:hover,.report-item.selected{border-color:#0b70d1;box-shadow:0 7px 18px rgba(11,112,209,.12)}
body:not(.customer-authenticated){min-height:100vh;background:linear-gradient(155deg,#073b82 0,#0c79dd 48%,#eef5ff 48%)}body:not(.customer-authenticated) .topbar{background:transparent;box-shadow:none}body:not(.customer-authenticated) #cliente{padding-top:8vh}body:not(.customer-authenticated) .account-card{padding:32px;border-radius:24px;background:#fff;box-shadow:0 25px 60px rgba(0,36,85,.25)}body:not(.customer-authenticated) .account-card .step{background:#e52935;color:#fff}body:not(.customer-authenticated) .account-login button{background:#ed2733}
.photo-form{display:flex;align-items:end;gap:10px;margin:18px 0;padding:15px;border:1px dashed #9cb8da;border-radius:14px;background:#f5f9ff}.photo-form label{flex:1;margin:0}.photo-form input{padding:10px;background:#fff}.photo-form button{white-space:nowrap}.report-photos{margin:20px 0}.report-photos>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-photos a{display:block;overflow:hidden;border:1px solid #dce7f3;border-radius:13px;background:#fff;color:#52657c;text-decoration:none}.report-photos img{display:block;width:100%;height:145px;object-fit:cover}.report-photos small{display:block;padding:7px;font-size:10px}
.closure-form{margin:18px 0;padding:20px;border:1px solid #d8e5f4;border-radius:16px;background:#f7faff}.closure-form legend{padding:0 8px;color:#0a529f;font-weight:850}.closure-form textarea{min-height:74px}.check-row{display:flex;align-items:center;gap:10px;padding:12px;border-radius:12px;background:#fff}.check-row input{width:auto;margin:0}.closure-summary{margin:18px 0;padding:18px;border-left:5px solid #e52935;border-radius:14px;background:#eef5ff}.closure-summary h3{margin-top:0}.closure-summary>div{display:grid;grid-template-columns:1fr 1fr;gap:3px 15px}.closure-summary p{margin:3px 0}
.ont-lights{padding:15px;border:1px solid #ffd1d4;border-left:5px solid #e52935;border-radius:14px;background:#fff5f6}.ont-lights small{display:block;margin-top:7px;color:#8a5960}.ont-reading{padding:11px 13px;border-radius:10px;background:#fff0f1;color:#a71923}
.role-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 20px;padding:5px;border-radius:14px;background:#edf3fa}.role-picker button{padding:12px;border:0;border-radius:10px;background:transparent;color:#607188;font-weight:850;cursor:pointer}.role-picker button.active{background:#0b70d1;color:#fff;box-shadow:0 6px 14px rgba(11,112,209,.22)}body.customer-authenticated .role-picker{display:none}.password-form{margin-top:22px;padding-top:20px;border-top:1px solid #dce6f2}.password-form h3{color:#0a529f}.password-form button{width:100%}.operator-actions{display:flex;gap:8px}.operator-actions #operator-exit{background:#e52935}
body.role-client .topbar .nav-btn[data-view="operador"]{display:none}body.role-operator .topbar .nav-btn[data-view="cliente"]{display:none}
.client-user-menu{position:relative}.client-menu-button span{font-size:13px}.client-dropdown{position:absolute;top:calc(100% + 9px);right:0;min-width:185px;padding:7px;border:1px solid #d9e5f3;border-radius:14px;background:#fff;box-shadow:0 16px 35px rgba(3,39,83,.23)}.client-dropdown button{display:block;width:100%;padding:12px 14px;border:0;border-radius:9px;background:transparent;color:#163a67;text-align:left;font-weight:800;cursor:pointer}.client-dropdown button:hover{background:#edf5ff}.client-dropdown #client-close-session{color:#c8202b}.role-client #account-exit{display:none}
.password-form.password-modal{position:fixed;z-index:100;top:50%;left:50%;width:min(520px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto;transform:translate(-50%,-50%);margin:0;padding:25px;border:0;border-radius:20px;background:#fff;box-shadow:0 0 0 100vmax rgba(3,28,61,.72),0 24px 70px rgba(0,20,50,.35)}.password-modal h3{margin:0 45px 20px 0}.password-close{position:absolute;top:15px;right:15px;width:38px;height:38px;border:0;border-radius:50%;background:#fff0f1;color:#c8202b;font-size:25px;line-height:1;cursor:pointer}
.operator-nav{display:flex;gap:8px;margin-bottom:20px}.operator-nav button{padding:11px 18px;border:1px solid #d6e2f0;border-radius:12px;background:#fff;color:#49627e;font-weight:850;cursor:pointer}.operator-nav button.active{background:#0b70d1;color:#fff}.operator-pane{display:none}.operator-pane.active{display:block}.staff-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.staff-list{display:flex;flex-direction:column;gap:9px}.staff-list article{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid #deE8f3;border-radius:13px}.staff-list article>div:nth-child(2){flex:1}.staff-list small{display:block;color:#6a7d92}.staff-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e8f2ff;color:#0b65bd;font-weight:900}
@media(max-width:700px){
  .topbar{height:64px;padding:0 16px}.brand{font-size:15px}.brand small{display:none}.brand-mark{width:38px;height:38px}.topbar nav{flex-direction:row;gap:3px}.topbar .nav-btn{padding:9px 10px;font-size:10px}
  .view{padding:18px 13px 105px}.hero{display:block;padding:22px;margin-bottom:15px;border-radius:0 0 25px 25px}.hero h1{margin:8px 0;font-size:29px}.hero p{margin-bottom:0;font-size:14px}.hero-status{display:none}
  .client-nav{top:auto;bottom:10px;position:fixed;left:10px;right:10px;z-index:30;margin:0;padding:7px;gap:4px;border-radius:20px}.client-tab{min-height:62px;font-size:9px}.client-tab span{width:24px;height:24px;font-size:9px}
  .client-grid,.dashboard{gap:14px}.form-card,.tracking-card,.account-card,.router-card,.speed-card,.cases,.detail{padding:18px;border-radius:18px}.card-head{margin-bottom:20px}.card-head h2{font-size:22px}.account-summary-grid{grid-template-columns:1fr 1fr}.account-login{grid-template-columns:1fr}.fields.two{grid-template-columns:1fr}.operator-head{align-items:flex-start}.operator-head h1{font-size:34px}.metrics{grid-template-columns:1fr 1fr}.status-controls{grid-template-columns:1fr}.location-preview{align-items:flex-start;flex-direction:column}.location-preview a{width:100%;text-align:center}
  body:not(.customer-authenticated) #cliente{padding:7vh 15px 25px}body:not(.customer-authenticated) .account-card{padding:25px}
  .photo-form{align-items:stretch;flex-direction:column}.photo-form button{width:100%}.report-photos>div{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photos img{height:125px}
  .closure-form{padding:15px}.closure-summary>div{grid-template-columns:1fr}
  .staff-grid{grid-template-columns:1fr}.operator-nav{overflow:auto}
}
