:root{--blue:#244f82;--gold:#f2bd38;--bg1:#e4d18a;--bg2:#2b5a87;--text:#111b2e;--muted:#66728a;--card:#ffffffee;--line:#d8e1ed;--shadow:0 18px 45px rgba(9,25,54,.20);--green:#18c966;--danger:#e04747;--warn:#f59f2a}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 12% 0%,rgba(255,220,128,.9),transparent 28%),linear-gradient(145deg,var(--bg1),#8fa9bb 38%,var(--bg2));min-height:100vh;padding-bottom:calc(86px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent}.app{width:min(560px,100%);margin:auto;padding:18px}.hide{display:none!important}.toast{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#071225;color:white;border-radius:16px;padding:14px 18px;max-width:calc(100% - 32px);z-index:9999;display:none;box-shadow:0 12px 40px #0005}.brandbar{display:flex;align-items:center;justify-content:space-between;margin:4px 0 18px}.logo{display:flex;align-items:center;gap:10px}.globe{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,var(--blue),#061d39);box-shadow:0 10px 24px #0003;font-size:22px}.brand{font-size:34px;font-weight:900;letter-spacing:-1px;color:#0c2d55}.brand b{color:var(--gold)}.brand span{color:#082852}.link{color:var(--blue);font-weight:800;text-decoration:none;cursor:pointer}.center{text-align:center}.small{font-size:12px}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid rgba(255,255,255,.85);border-radius:26px;padding:20px;margin:14px 0;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.login{margin-top:70px}.input,input,select,textarea{width:100%;border:1px solid #cbd7e6;border-radius:15px;padding:14px 16px;margin:8px 0;background:#fff;color:var(--text);font:inherit;outline:none}textarea{min-height:110px;resize:vertical}.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 14%,transparent)}.btn{border:0;border-radius:15px;background:linear-gradient(135deg,var(--blue),#123a65);color:white;font-weight:900;letter-spacing:.2px;padding:15px 18px;width:100%;cursor:pointer;box-shadow:0 12px 28px rgba(20,60,105,.25)}.btn:active,.tile:active,.qa:active{transform:scale(.98)}.btn.secondary{background:#fff;color:var(--blue);border:1px solid #cbd7e6;box-shadow:none}.btn.mini{width:auto;padding:10px 16px}.btn.whats{background:linear-gradient(135deg,#13a984,#22d364)}button:disabled{opacity:.55;cursor:not-allowed}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.actions{display:flex;gap:10px}.hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#f3f7fc)}.hero:after{content:"";position:absolute;right:-44px;top:-58px;width:160px;height:160px;border-radius:50%;background:color-mix(in srgb,var(--gold) 35%,transparent)}.hello{position:relative;z-index:1}.hello h1{font-size:24px;line-height:1.15;margin:8px 0 14px}.statusline{display:flex;align-items:center;justify-content:space-between;gap:14px}.statuspill,.badge{border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;background:#e8fff0;color:#0b8f42}.statuspill.block,.badge.danger{background:#fff0ee;color:#c41e1e}.badge.warn{background:#fff4df;color:#ba5d00}.badge.ok{background:#e6fff0;color:#087a38}.quickstats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.stat{background:#fff;border:1px solid #e0e8f2;border-radius:18px;padding:15px;text-align:center;box-shadow:0 8px 18px rgba(10,35,70,.06)}.stat b{display:block;font-size:21px}.stat span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.contract .planpill{display:block;margin-top:12px;padding:15px;border-radius:15px;background:linear-gradient(135deg,var(--gold),var(--blue));color:#fff;text-align:center;font-weight:950;font-size:22px}.alert{text-align:center}.alert .ico{font-size:42px}.unlockbox{border:1px dashed #ff9b8e;background:#fff8f6}.finance-hero{display:none}.finance-hero.on{display:block;background:linear-gradient(135deg,#08172c,#163d68);color:white;position:relative;overflow:hidden}.finance-hero.on:after{content:"";position:absolute;right:-60px;bottom:-70px;width:170px;height:170px;border-radius:50%;background:rgba(255,255,255,.08)}.finance-hero .muted{color:#c8d5e8}.finance-hero .payline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.finance-hero .value{font-size:28px;font-weight:950}.mini-dashboard{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0}.mini-card{background:#ffffffd8;border:1px solid #ffffffb8;border-radius:20px;padding:16px;box-shadow:0 12px 28px rgba(9,25,54,.12)}.mini-card b{display:block;font-size:18px}.mini-card span{font-size:12px;color:var(--muted)}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.qa{border:0;border-radius:18px;background:#ffffffd9;color:var(--blue);font-weight:950;padding:14px 10px;box-shadow:0 8px 22px rgba(9,25,54,.13)}.qa.primary{background:linear-gradient(135deg,#35ed67,#00746c);color:white}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:16px}.tile{border:0;border-radius:20px;background:linear-gradient(145deg,var(--blue),#123d69);color:white;text-align:left;padding:20px 18px;min-height:112px;font-weight:950;font-size:15px;box-shadow:0 16px 35px rgba(12,45,85,.28)}.tile .i{display:block;font-size:31px;margin-bottom:12px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#eef3f8;border-radius:18px;padding:5px;margin:12px 0 16px}.tabs button{border:0;border-radius:14px;padding:12px;font-weight:900;color:var(--muted);background:transparent}.tabs button.on{background:white;color:var(--blue);box-shadow:0 5px 16px #0001}.item{background:#fff;border:1px solid #dbe5f0;border-radius:18px;padding:16px;margin:10px 0;box-shadow:0 8px 18px rgba(9,25,54,.06)}.item .stack{display:grid;gap:10px}.list .item:first-child{margin-top:0}.divider{height:1px;background:var(--line);margin:14px 0}.diag-card{background:#f8fbff}.diag-list{display:grid;gap:10px}.diag-row{display:flex;align-items:center;justify-content:space-between;background:white;border:1px solid #dbe5f0;border-radius:18px;padding:14px 16px}.diag-row span small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.diag-dot{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;font-size:22px}.diag-dot.ok{background:#e9fff0;color:#108a44}.diag-dot.bad{background:#fff0ee;color:#bf201d}.speed-frame{width:100%;height:72vh;border:0;border-radius:18px;background:#fff}.bottom{position:fixed;left:0;right:0;bottom:0;background:#ffffffee;border-top:1px solid #dbe5f0;padding-bottom:env(safe-area-inset-bottom);z-index:50;backdrop-filter:blur(14px)}.bottom nav{display:grid;grid-template-columns:repeat(5,1fr);max-width:680px;margin:auto}.bottom button{border:0;background:transparent;color:#606b7d;padding:9px 4px;font-size:12px;font-weight:700}.bottom button.on{color:#101c32;font-weight:950}.modal{display:none;position:fixed;inset:0;background:#0008;z-index:1000;padding:18px;align-items:center;justify-content:center}.modal.on{display:flex}.modal .card{width:min(480px,100%)}.notice-danger{border-color:#ffb8b1}.notice-warn{border-color:#ffd58a}@media (max-width:420px){.app{padding:16px}.brand{font-size:30px}.hero h1{font-size:22px}.grid{gap:12px}.tile{min-height:104px}.quick-actions{grid-template-columns:1fr}.quickstats{gap:8px}.stat{padding:12px}.mini-dashboard{grid-template-columns:1fr 1fr}.card{border-radius:24px;padding:18px}}@media print{body{background:#fff!important;padding:0}.bottom,.brandbar,.toast,.quick-actions{display:none!important}.app{width:100%;padding:0}.card{box-shadow:none;border:0}}

/* V23 FIX: comportamento real de aplicativo */
html,body{width:100%;min-height:100%;overflow-x:hidden;}
body{background-attachment:fixed;padding-bottom:calc(74px + env(safe-area-inset-bottom));}
.app{width:min(560px,100%);max-width:560px;margin:0 auto;padding:16px 16px 92px;}
#main.app{min-height:100svh;}
.screen{display:none!important;animation:appFade .16s ease-out;}
.screen.on{display:block!important;}
@keyframes appFade{from{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:none}}
.card{margin:12px 0;border-radius:22px;}
.brandbar{position:sticky;top:0;z-index:15;margin:0 -16px 10px;padding:12px 16px;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0));backdrop-filter:blur(2px)}
.brand{font-size:30px}.globe{width:42px;height:42px;border-radius:13px}
.hero h1,.hello h1{font-size:22px;line-height:1.16;word-break:break-word}.statusline{align-items:flex-start}.statuspill{flex:0 0 auto}
.quickstats{grid-template-columns:repeat(3,minmax(0,1fr));}.stat{min-width:0}.stat b{font-size:19px}.stat span{font-size:11px}
.contract .planpill{font-size:20px;white-space:normal;word-break:break-word;}
.finance-hero .payline{display:grid;grid-template-columns:1fr 1fr}.finance-hero .payline .btn{padding:13px 10px;font-size:13px;}
.mini-dashboard{grid-template-columns:repeat(2,minmax(0,1fr));}.mini-card{min-width:0}.mini-card b{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));}.qa{min-width:0;font-size:13px;padding:13px 8px;white-space:nowrap;}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:10px}.tile{min-height:104px;padding:18px 16px}.tile .i{font-size:29px}
.bottom{height:calc(64px + env(safe-area-inset-bottom));box-shadow:0 -10px 26px rgba(9,25,54,.12)}.bottom nav{height:64px}.bottom button{height:64px;line-height:1.15;cursor:pointer}.bottom button.on{color:var(--blue)}
.speed-frame{height:calc(100svh - 188px);min-height:520px;border-radius:16px;}
#speedtestScreen .card{height:calc(100svh - 112px);display:flex;flex-direction:column;overflow:hidden}#speedtestScreen .speed-frame{flex:1;min-height:0;height:auto;}
body.app-lock{overflow:hidden}select,textarea,input,.btn,.tile,.qa,.bottom button{-webkit-appearance:none;appearance:none;touch-action:manipulation}
@media(max-width:480px){.app{padding:12px 12px 88px}.brandbar{margin:0 -12px 8px;padding:10px 12px}.card{border-radius:22px;padding:18px}.brand{font-size:29px}.quick-actions{gap:8px}.grid{gap:10px}.tile{min-height:98px}.finance-hero .payline{grid-template-columns:1fr}.mini-dashboard{gap:10px}.quickstats{gap:8px}.stat{padding:12px 8px}.row{gap:8px}}
@media(max-width:360px){.brand{font-size:25px}.quickstats{grid-template-columns:1fr}.mini-dashboard{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.bottom button{font-size:11px}.statusline{display:block}.statuspill{display:inline-block;margin-top:10px}}

/* V24: acabamento app + suporte */
.ticket-card{border-left:4px solid var(--blue)}
#suporte .card:first-child{background:linear-gradient(145deg,#ffffff,#f7fbff)}
#suporte select,#suporte textarea{background:#fff}
#suporte .btn:not(.secondary){background:linear-gradient(135deg,var(--blue),#0f3562)}
#suporte .btn.whats{background:linear-gradient(135deg,#17b58d,#25d366)}
.badge.ok{background:#e7fff1;color:#087a3c}.badge.warn{background:#fff5df;color:#a85b00}.badge.danger{background:#fff0ee;color:#bd1f1f}
@media(max-width:480px){#suporte .row{align-items:center;flex-direction:row}#suporte .row h2{font-size:24px}.btn.mini{padding:10px 12px;font-size:12px}}
/* V25 app polish */
.ticket-thread{margin-top:12px;border-top:1px solid rgba(36,79,130,.14);padding-top:12px}.bubble{padding:10px 12px;border-radius:16px;margin:8px 0;max-width:92%;box-shadow:0 4px 12px rgba(0,0,0,.05)}.bubble p{margin:5px 0;white-space:pre-wrap}.bubble small{display:block;color:#667;margin-top:4px}.bubble.cliente{background:#eef5ff;margin-left:auto}.bubble.admin{background:#ecfff3;margin-right:auto}.reply-box{min-height:80px}.mini-full{width:100%;margin-top:8px}.screen{padding-bottom:88px}.bottom{position:fixed;left:0;right:0;bottom:0;z-index:30}.diag-row small{display:block;font-size:12px;color:#667;margin-top:3px}@media(max-width:720px){body{overflow-x:hidden}.app-shell{width:100%;max-width:560px}.card{border-radius:24px}.brand{padding-left:8px}.bottom nav{max-width:560px;margin:auto}}

/* V26 ajustes de UX */
.mini-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mini-card.tap{appearance:none;border:0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.mini-card.tap:active{transform:scale(.985)}
.mini-card.attention{border:1px solid rgba(220,38,38,.22);box-shadow:0 8px 24px rgba(220,38,38,.10)}
.item.overdue{border-color:rgba(220,38,38,.22)}
@media(max-width:640px){.mini-dashboard{gap:10px}.mini-card{min-height:76px}}

/* V27 diagnóstico inteligente e upgrade visual */
.diag-summary{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,rgba(36,79,130,.09),rgba(255,198,51,.12));border:1px solid rgba(36,79,130,.12);border-radius:18px;padding:14px;margin:12px 0 14px}
.diag-score{display:grid;place-items:center;min-width:76px;height:76px;border-radius:22px;background:linear-gradient(135deg,var(--blue),#133d67);color:#fff;box-shadow:0 12px 28px rgba(9,25,54,.18)}
.diag-score b{font-size:24px;line-height:1}.diag-score span{font-size:11px;opacity:.85}.conn-item b{font-size:16px}.upgrade-card{background:linear-gradient(135deg,#ffffff,#f2fbff);border-color:rgba(36,79,130,.16)}.plano-atual{border-left:4px solid var(--blue)}
.diag-row{transition:transform .12s ease, box-shadow .12s ease}.diag-row:active{transform:scale(.99)}
@media(max-width:480px){.diag-summary{align-items:flex-start}.diag-score{min-width:66px;height:66px}.diag-score b{font-size:20px}}
/* Minha Conexão - visão simplificada para cliente final */
.conn-details summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}
.conn-details summary::-webkit-details-marker{display:none}
.conn-details summary:after{content:'⌄';font-weight:800;color:var(--primary)}
.conn-details[open] summary:after{content:'⌃'}
.conn-line{border-top:1px solid #e8eef6;margin-top:12px;padding-top:12px}
.conn-line:first-of-type{border-top:0}
