:root{--bg:#f6f8fb;--surface:#fff;--ink:#0b1524;--muted:#5b6b80;--line:#e6ecf3;--accent:#4f46e5;--accent-soft:#eef0ff;--good:#157144;--good-soft:#e7f8ef;--danger:#b3261e;--danger-soft:#fdecec;--radius:14px;--rail:248px;--shadow:0 1px 2px #1018280a, 0 8px 24px #1018280f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}input,select,button{font:inherit}.app-shell{grid-template-columns:var(--rail) 1fr;min-height:100vh;display:grid}.rail{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:18px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.rail-brand{align-items:center;gap:10px;padding:4px 8px;font-size:16px;font-weight:800;display:flex}.rail-nav{gap:4px;display:grid}.rail-nav a{color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:9px 11px;font-weight:650;display:flex}.rail-nav a.active{color:var(--accent);background:var(--accent-soft)}.rail-nav svg{width:18px;height:18px}.rail-foot{color:var(--muted);gap:8px;margin-top:auto;font-size:12px;display:grid}.main{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:5;justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:18px}.global-search{border:1px solid var(--line);background:var(--bg);max-width:420px;height:40px;color:var(--ink);border-radius:12px;flex:1;padding:0 14px}.content{gap:22px;padding:28px;display:grid}.vswitch{background:var(--bg);border:1px solid var(--line);border-radius:12px;gap:4px;padding:4px;display:flex}.vswitch button{height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;font-weight:700}.vswitch button.active{color:var(--accent);background:var(--surface);box-shadow:var(--shadow)}.type-select{gap:5px;display:grid}.type-select span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px;font-weight:800}.type-select select{border:1px solid var(--line);background:var(--bg);height:40px;color:var(--ink);cursor:pointer;border-radius:11px;padding:0 12px;font-weight:750}.topbar-type{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:5px 11px;font-size:12px;font-weight:800}.ov-cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.ov-list{margin:0;padding:0;list-style:none}.ov-list li{border-top:1px solid var(--line);align-items:center;gap:10px;padding:12px 18px;display:flex}.ov-list li:first-child{border-top:0}.ov-name{flex:1;min-width:0;font-weight:650}.ov-tags{flex-wrap:wrap;gap:6px;display:flex}.ov-rank{background:var(--bg);width:22px;height:22px;color:var(--muted);border-radius:99px;place-items:center;font-size:12px;font-weight:800;display:grid}@media (max-width:760px){.ov-cols{grid-template-columns:1fr}}.trend{align-items:flex-end;gap:10px;height:180px;padding:16px 18px 0;display:flex}.trend-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.trend-val{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:800}.trend-bar{background:linear-gradient(180deg, var(--accent), #6366f1);border-radius:8px 8px 0 0;width:100%;max-width:46px;min-height:3px}.trend-x{color:var(--muted);text-transform:capitalize;font-size:11px;font-weight:700}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);gap:6px;padding:18px;display:grid}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:700}.kpi .value{font-size:30px;font-weight:820;line-height:1}.kpi .hint{color:var(--muted);font-size:12px}.kpi.is-soon{opacity:.55}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--muted);cursor:pointer;border-radius:99px;padding:0 14px;font-size:13px;font-weight:700}.chip.active{color:var(--accent);background:var(--accent-soft);border-color:#0000}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:10px 18px;font-size:11px}.tbl td{border-bottom:1px solid var(--line);padding:12px 18px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover{background:var(--bg)}.badge{border-radius:99px;padding:3px 9px;font-size:11px;font-weight:800;display:inline-block}.badge.plan{color:var(--accent);background:var(--accent-soft)}.badge.dormant{color:var(--danger);background:var(--danger-soft)}.badge.ok{color:var(--good);background:var(--good-soft)}.btn{border:1px solid var(--line);background:var(--surface);height:40px;color:var(--ink);cursor:pointer;border-radius:11px;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.btn.primary{background:var(--accent);color:#fff;border-color:#0000}.btn.danger{color:var(--danger);border-color:var(--danger-soft)}.btn:disabled{opacity:.6;cursor:default}.sheet-scrim{z-index:40;background:#0b152473;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.sheet{background:var(--surface);border-radius:18px;align-content:start;gap:16px;width:min(560px,96vw);max-height:88vh;padding:24px;display:grid;overflow-y:auto;box-shadow:0 24px 70px #0000004d}.sheet-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sheet-head h2{margin:0;font-size:20px}.sheet-sub{margin:0 0 8px;font-size:14px}.icon-btn{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--muted);cursor:pointer;border-radius:11px;place-items:center;display:grid}.owner-row{border:1px solid var(--line);border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;display:flex}.owner-id{gap:2px;min-width:0;display:grid}.owner-id strong{word-break:break-word}.owner-id small{color:var(--muted)}.invite{gap:8px;display:flex}.invite input{border:1px solid var(--line);background:var(--surface);height:40px;color:var(--ink);border-radius:11px;flex:1;padding:0 12px;font-weight:600}.invite input:focus{border-color:var(--accent);outline:none}.skeleton{background:linear-gradient(90deg,#eef2f7,#f6f8fb,#eef2f7) 0 0/200% 100%;border-radius:8px;animation:1.2s infinite sk}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.empty{text-align:center;color:var(--muted);place-items:center;gap:10px;padding:40px;display:grid}.toaster{z-index:60;gap:8px;display:grid;position:fixed;bottom:18px;right:18px}.toast{background:var(--ink);color:#fff;box-shadow:var(--shadow);border-radius:12px;padding:12px 16px;font-weight:600}.toast.error{background:var(--danger)}.login-wrap{background:radial-gradient(1200px 500px at 50% -10%, var(--accent-soft), transparent), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:18px;gap:14px;padding:28px;display:grid}.login-brand{align-items:center;gap:12px;display:flex}.login-brand strong{font-size:16px;display:block}.login-brand small{color:var(--muted)}.login-logo{color:#fff;background:linear-gradient(150deg, var(--accent), #312e81);border-radius:13px;place-items:center;width:44px;height:44px;display:grid}.login-logo svg{width:22px;height:22px}.login-card h1{margin:6px 0 0;font-size:24px}.login-sub{color:var(--muted);margin:0 0 4px}.login-error{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:10px 12px;font-size:13px;font-weight:700}.login-card label{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.login-card input{border:1px solid var(--line);background:var(--bg);height:44px;color:var(--ink);border-radius:12px;padding:0 14px;font-weight:500}.login-card input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.login-submit{justify-content:center;width:100%;height:46px;margin-top:4px}.cfg{border:1px solid var(--line);background:var(--bg);border-radius:14px;gap:14px;padding:16px;display:grid}.cfg-title{gap:3px;display:grid}.cfg-title h3{margin:0;font-size:15px}.cfg-title small{color:var(--muted)}.cfg-field{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.cfg-field select,.cfg-field input{border:1px solid var(--line);background:var(--surface);height:42px;color:var(--ink);border-radius:11px;padding:0 12px;font-weight:600}.cfg-field input:focus,.cfg-field select:focus{border-color:var(--accent);outline:none}.ovr{gap:14px;display:grid}.ovr-item{gap:8px;display:grid}.ovr-top{align-items:center;gap:10px;display:flex}.ovr-top>span{color:var(--ink);font-weight:650}.ovr-eff{text-transform:uppercase;letter-spacing:.03em;margin-left:auto;font-size:10px;font-weight:800}.ovr-eff.on{color:var(--good)}.ovr-eff.off{color:var(--danger)}.tri{background:var(--surface);border:1px solid var(--line);border-radius:11px;gap:4px;padding:4px;display:flex}.tri button{height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;font-size:13px;font-weight:700}.tri button.active{color:var(--accent);background:var(--accent-soft)}.cfg-mensal{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.cfg-mensal strong{color:var(--ink)}.plan-price{color:var(--muted);gap:6px;font-size:13px;font-weight:700;display:grid}.plan-price-input{border:1px solid var(--line);background:var(--bg);border-radius:11px;align-items:center;gap:8px;height:42px;padding:0 12px;display:flex}.plan-price-input span{color:var(--muted);font-weight:700}.plan-price-input input{color:var(--ink);background:0 0;border:0;flex:1;width:100%;font-size:16px;font-weight:700}.plan-price-input input:focus{outline:none}@media (max-width:820px){.app-shell{grid-template-columns:1fr}.rail{flex-flow:wrap;align-items:center;height:auto;position:static}.rail-foot{display:none}}
