:root{color-scheme:dark;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
--bg:#08090d;--sf:#0e1017;--card:#141721;--hov:#1a1e2c;--bd:rgba(255,255,255,.08);--bd2:rgba(255,255,255,.18);--tx:#fff;--t2:#94a3b8;--t3:#64748b;--ok:#10b981;--ease:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:inherit;margin:0;padding:0}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;overflow-x:hidden;font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
.hide{display:none!important}
.logo{display:block;height:36px;width:auto;filter:drop-shadow(0 0 10px rgba(255,255,255,.2))}
/* loading */
#ld{position:fixed;inset:0;background:var(--bg);z-index:99;display:grid;place-items:center;transition:clip-path 1s var(--ease);clip-path:inset(0)}
#ld.out{clip-path:inset(0 0 100% 0)}
.ldc{display:grid;gap:22px;justify-items:center;animation:in .9s var(--ease) both}
.ldc .logo{height:84px;filter:drop-shadow(0 0 22px rgba(255,255,255,.35))}
.lbar{width:170px;height:3px;background:var(--bd);border-radius:3px;overflow:hidden}
.lbar i{display:block;height:100%;background:#fff;box-shadow:0 0 12px #fff;transform:translateX(-100%);animation:fill 2s var(--ease) .3s forwards}
.ldt{font-size:.68rem;letter-spacing:3.5px;color:var(--t2);font-weight:700}
@keyframes in{from{opacity:0;transform:scale(.92)}}
@keyframes fill{to{transform:none}}
/* login */
#login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 10% 10%,#121520,var(--bg) 60%)}
.box{width:min(390px,100%);background:var(--card);border:1px solid var(--bd);border-radius:20px;padding:36px 28px;display:grid;gap:18px;justify-items:center;text-align:center}
.box .logo{height:56px}.box h1{font-size:1.2rem}.box p{color:var(--t2);font-size:.82rem}
.shake{animation:sh .35s}@keyframes sh{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}
.err{color:#ff8a8a;font-size:.8rem;min-height:16px}
/* inputs */
input,select,textarea{background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:12px 14px;width:100%;outline:none;transition:.25s var(--ease)}
input:focus,select:focus,textarea:focus{border-color:var(--bd2);box-shadow:0 0 0 3px rgba(255,255,255,.06)}
label{display:grid;gap:6px;font-size:.72rem;color:var(--t2);font-weight:600;letter-spacing:.5px;text-align:left}
.btn{background:#fff;color:#000;border:0;border-radius:12px;padding:12px 18px;font-weight:700;cursor:pointer;transition:.25s var(--ease);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover{box-shadow:0 0 18px rgba(255,255,255,.45);transform:translateY(-1px)}
.btn.gh{background:transparent;color:var(--tx);border:1px solid var(--bd2)}.btn.gh:hover{background:var(--hov);box-shadow:none}
.btn.sm{padding:8px 13px;font-size:.78rem;border-radius:10px}
.btn svg{width:16px;height:16px}
/* layout */
#app{display:flex;min-height:100vh;background:radial-gradient(circle at 10% 10%,#121520,var(--bg) 60%)}
aside{width:270px;background:var(--sf);border-right:1px solid var(--bd);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:30}
.sh{height:84px;display:flex;align-items:center;padding:0 24px;border-bottom:1px solid var(--bd)}
nav{padding:26px 18px;display:grid;gap:8px;align-content:start;flex:1}
nav a{display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:12px;color:var(--t2);text-decoration:none;font-weight:500;position:relative;transition:.3s var(--ease);cursor:pointer;border:1px solid transparent}
nav a:hover{color:#fff;background:var(--card)}
nav a.on{color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.04));border-color:var(--bd2);box-shadow:0 4px 20px rgba(0,0,0,.4)}
nav a.on::before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:3px;background:#fff;border-radius:0 4px 4px 0;box-shadow:0 0 12px #fff}
nav svg{width:18px;height:18px;flex:none}
.sf{padding:18px 24px;border-top:1px solid var(--bd);display:flex;align-items:center;gap:12px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}
.sf b{display:block;font-size:.78rem}.sf span{font-size:.68rem;color:var(--t3)}
.sf button{margin-left:auto;background:none;border:0;color:var(--t3);cursor:pointer;font-size:.72rem}.sf button:hover{color:#fff}
.mc{margin-left:270px;flex:1;min-width:0}
header{height:84px;background:rgba(14,16,23,.8);backdrop-filter:blur(12px);border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;padding:0 40px;position:sticky;top:0;z-index:20}
header h1{font-size:1.3rem;font-weight:700;letter-spacing:-.2px}
.meta{display:flex;gap:12px;align-items:center;margin-top:4px}
.mt{font-size:.65rem;letter-spacing:1.5px;color:var(--t3);font-weight:700}
.live{display:flex;align-items:center;gap:6px;font-size:.65rem;font-weight:700;letter-spacing:1px;color:var(--ok)}
.live i{width:6px;height:6px;border-radius:50%;background:var(--ok);animation:pl 1.6s infinite}
@keyframes pl{50%{opacity:.3;box-shadow:0 0 8px var(--ok)}}
.pg{padding:34px 40px;display:grid;gap:22px;max-width:1200px}
.mg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}
.m{background:var(--card);border:1px solid var(--bd);border-radius:18px;padding:22px;transition:.3s var(--ease)}
.m:hover{border-color:var(--bd2);transform:translateY(-2px)}
.m .l{font-size:.68rem;letter-spacing:1.5px;color:var(--t3);font-weight:700}
.m .v{font-size:1.75rem;font-weight:700;margin:8px 0 6px;letter-spacing:-.5px}
.m .s{font-size:.74rem;color:var(--t2)}
.p{background:var(--card);border:1px solid var(--bd);border-radius:18px;padding:24px}
.ph{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.ph h2{font-size:1.02rem;font-weight:700}.ph p{color:var(--t3);font-size:.78rem;margin-top:2px}
.per{display:flex;background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:4px;gap:2px}
.per button{background:none;border:0;border-radius:9px;padding:7px 14px;font-size:.76rem;font-weight:600;color:var(--t2);cursor:pointer;transition:.25s}
.per button.on{background:#fff;color:#000}
svg.ch{width:100%;height:auto;aspect-ratio:800/260;display:block}
.ch text{fill:var(--t3);font-size:11px;font-family:inherit}
.two{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}
.fn{display:grid;gap:12px}.fn div{display:grid;grid-template-columns:96px 1fr 28px;gap:10px;align-items:center;font-size:.8rem;color:var(--t2)}
.fn i{display:block;height:8px;border-radius:8px;background:var(--bd);overflow:hidden}.fn i b{display:block;height:100%;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.6);transition:width .9s var(--ease)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--bd);background:transparent;border-radius:999px;padding:8px 15px;cursor:pointer;color:var(--t2);font-weight:500;transition:.25s}
.chip:hover{color:#fff;border-color:var(--bd2)}.chip.on{background:#fff;color:#000;border-color:#fff;box-shadow:0 0 14px rgba(255,255,255,.4)}
.fr{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end}
.gd{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.c{background:var(--card);border:1px solid var(--bd);border-radius:16px;padding:18px;display:grid;gap:10px;align-content:start}
.c h3{font-size:.98rem}.mu{color:var(--t2);font-size:.78rem}
.tag{justify-self:start;border:1px solid var(--bd2);border-radius:999px;padding:2px 10px;font-size:.68rem;font-weight:700;letter-spacing:.5px}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.tb{width:100%;border-collapse:collapse}
.tb th{text-align:left;font-size:.66rem;letter-spacing:1.5px;color:var(--t3);padding:10px 12px;border-bottom:1px solid var(--bd)}
.tb td{padding:13px 12px;border-bottom:1px solid var(--bd);font-size:.84rem}
.tw{overflow-x:auto}
.em{color:var(--t3);text-align:center;padding:30px;border:1px dashed var(--bd2);border-radius:14px}
.note{border:1px solid var(--bd2);background:var(--sf);border-radius:14px;padding:16px;color:var(--t2);font-size:.82rem;line-height:1.6}
.note b{color:#fff}
select.st{width:auto;padding:7px 10px;font-size:.78rem}
.goal{height:8px;background:var(--bd);border-radius:8px;overflow:hidden;margin:12px 0 6px}.goal i{display:block;height:100%;width:0;background:#fff;box-shadow:0 0 10px #fff;transition:width .9s var(--ease)}
.pg-s{animation:pgin .55s var(--ease) both}@keyframes pgin{from{opacity:0;transform:translateY(14px)}}
.c,.m{animation:rise .6s var(--ease) both;animation-delay:calc(var(--i,0)*70ms)}@keyframes rise{from{opacity:0;transform:translateY(18px) scale(.97)}}
.c{transition:.3s var(--ease)}.c:hover{border-color:var(--bd2);transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.sk{height:170px;border-radius:16px;background:linear-gradient(100deg,var(--card) 30%,var(--hov) 50%,var(--card) 70%);background-size:300% 100%;animation:sk 1.2s linear infinite}@keyframes sk{to{background-position:-300% 0}}
.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:dr 1.5s var(--ease) .1s forwards}@keyframes dr{to{stroke-dashoffset:0}}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,30px);background:#fff;color:#000;padding:12px 22px;border-radius:12px;font-weight:700;opacity:0;pointer-events:none;transition:.4s var(--ease);z-index:90;box-shadow:0 0 24px rgba(255,255,255,.4)}.toast.on{opacity:1;transform:translate(-50%,0)}
.btn:active{transform:scale(.96)}nav a.on::before{animation:bar .45s var(--ease)}@keyframes bar{from{top:50%;bottom:50%}}
details.p summary{cursor:pointer;font-weight:700;list-style:none}details.p summary::after{content:"+";float:right;font-size:1.2rem;color:var(--t2)}details[open].p summary::after{content:"–"}details.p .fr{margin-top:16px}
.hello{color:var(--t2);font-size:.9rem;margin-top:-6px}
.pwd{-webkit-text-security:disc;text-security:disc}
:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media(max-width:860px){
aside{position:static;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center}
.sh{height:64px;border:0;padding:0 16px}nav{flex:1 1 100%;order:3;display:flex;overflow-x:auto;padding:6px 12px 12px;gap:6px}nav a{padding:10px 14px;white-space:nowrap}nav a.on::before{display:none}
.sf{margin-left:auto;border:0;padding:0 16px}.sf div{display:none}
#app{display:block}.mc{margin:0}header{padding:0 18px;height:70px;position:static}.pg{padding:20px 16px}.two{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01s!important;transition-duration:.01s!important}}

/* Estado indisponível para telefone ausente */
.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none;filter:grayscale(1)}
