:root{
/* === Cores === */
--bg0:#FAFBFD;--bg1:#F0F2F7;--bg2:#E2E5ED;--bg3:#fff;
--hv:rgba(22,33,62,.04);--tx0:#1A1A2E;--tx1:#5A5E72;--tx2:#737891;--tx:var(--tx0);
--br:rgba(22,33,62,.10);--sh:0 4px 16px rgba(26,26,46,.08);
--blue:#007AFF;--blueL:rgba(0,122,255,.08);
--green:#34C759;--greenL:rgba(52,199,89,.08);
--red:#FF3B30;--redL:rgba(255,59,48,.08);
--orange:#FF9500;--orangeL:rgba(255,149,0,.08);
--purple:#AF52DE;--teal:#5AC8FA;
--ov:rgba(26,26,46,.32);--ibg:#F0F2F7;--bbg:#E2E5ED;
--grd:rgba(22,33,62,.05);--scr:rgba(22,33,62,.15);
--pri:#007AFF;--priL:var(--blueL);--navy:#1A1A2E;--navyM:#16213E;--gold:#D4AF37;
/* === Border Radius === */
--r1:8px;--r2:12px;--r3:16px;--r-pill:14px;--r-full:50%;
/* === Transição === */
--t:.18s cubic-bezier(.25,.1,.25,1);
/* === Tipografia === */
--fs-hero:44px;--fs-price:38px;--fs-value:24px;--fs-login:22px;
--fs-summary:18px;--fs-page:16px;--fs-section:14px;--fs-body:13px;
--fs-label:12px;--fs-caption:11px;--fs-micro:10px;--fs-tiny:9px;
--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:800;
/* === Espaçamento === */
--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:10px;--sp-6:12px;
--sp-7:14px;--sp-8:16px;--sp-9:18px;--sp-10:20px;--sp-11:22px;--sp-12:24px;
--sp-14:32px;--sp-16:40px;
/* === Sombras === */
--sh-modal:0 20px 60px rgba(0,0,0,.3);--sh-toast:0 4px 20px rgba(0,0,0,.15);
--sh-toggle:0 1px 3px rgba(0,0,0,.2);--sh-dp:0 12px 40px rgba(0,0,0,.12);
/* === Sidebar === */
--sb-bg:#F0F2F7;--sb-tx:#1A1A2E;--sb-tx2:#9498AB;
--sb-hv:rgba(22,33,62,.06);--sb-on:rgba(0,122,255,.1);--sb-br:rgba(22,33,62,.08);
--sb-ni:#5A5E72;--sb-ni-hv:#1A1A2E;--sb-ni-on:#007AFF;
--sb-logo-shield:rgba(26,26,46,.06);--sb-logo-stroke:#1A1A2E;
--sb-logo-inner:rgba(26,26,46,.08);--sb-logo-v:#1A1A2E
}
[data-theme="dark"]{--bg0:#111318;--bg1:#191C23;--bg2:#232730;--bg3:#1E2128;--hv:rgba(255,255,255,.06);--tx0:#E8E9F0;--tx1:#9498AB;--tx2:#5F6478;--br:rgba(255,255,255,.08);--sh:0 4px 16px rgba(0,0,0,.45);--ov:rgba(0,0,0,.6);--ibg:#1A1D24;--bbg:#282D38;--grd:rgba(255,255,255,.04);--scr:rgba(255,255,255,.15);--blueL:rgba(0,122,255,.18);--greenL:rgba(52,199,89,.12);--redL:rgba(255,59,48,.12);--orangeL:rgba(255,149,0,.12);--sb-bg:linear-gradient(180deg,#0E1015 0%,#151920 100%);--sb-tx:#E8E9F0;--sb-tx2:rgba(255,255,255,.45);--sb-hv:rgba(255,255,255,.07);--sb-on:rgba(0,122,255,.2);--sb-br:rgba(255,255,255,.07);--sb-ni:rgba(255,255,255,.55);--sb-ni-hv:rgba(255,255,255,.9);--sb-ni-on:#fff;--sb-logo-shield:rgba(255,255,255,.06);--sb-logo-stroke:rgba(255,255,255,.5);--sb-logo-inner:rgba(255,255,255,.08);--sb-logo-v:#fff;--tx:var(--tx0);--priL:var(--blueL)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* P4: Skeleton loading animation */
@keyframes shimmer{0%{background-position:-200px 0}100%{background-position:200px 0}}
.skeleton{background:linear-gradient(90deg,var(--bg1) 25%,var(--bg2) 50%,var(--bg1) 75%);background-size:400px 100%;animation:shimmer 1.5s infinite;border-radius:var(--r1);height:20px;margin:4px 0}
/* P4: Screen reader only text */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
/* Lucide Icons */
.lc{width:18px;height:18px;stroke-width:1.75;flex-shrink:0}
.ni .lc{width:18px;height:18px;stroke-width:1.75}
.btn .lc,.bgh .lc{width:14px;height:14px;stroke-width:2}
.bi .lc{width:18px;height:18px;stroke-width:1.75}
.lc-lg{width:24px;height:24px;stroke-width:1.5}
.lc-sm{width:14px;height:14px;stroke-width:2}
.search-wrap{position:relative}.search-wrap .lc-search{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--tx2);pointer-events:none}.search-wrap .fi{padding-left:32px}
body{font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;background:var(--bg0);color:var(--tx0);line-height:1.47;-webkit-font-smoothing:antialiased;overflow:hidden;height:100vh}
body.land-active{overflow:auto;height:auto}
::selection{background:var(--blue);color:#fff}
.app{display:flex;height:100vh}

/* Sidebar */
.sb{width:250px;min-width:250px;background:var(--sb-bg);border-right:1px solid var(--sb-br);display:flex;flex-direction:column;z-index:100;transition:background .2s}
.sb-h{padding:20px 16px 8px;display:flex;align-items:center;gap:10px;cursor:pointer}
.sb-logo{width:36px;height:36px;border-radius:var(--r1);display:flex;align-items:center;justify-content:center}
.sb-nm{font-size:var(--fs-section);font-weight:var(--fw-bold);line-height:1.2;color:var(--sb-tx);letter-spacing:.3px}.sb-sub{font-size:var(--fs-caption);color:var(--sb-tx2)}
.sb-nav{padding:8px;flex:1;overflow-y:auto}.sb-nav::-webkit-scrollbar{width:4px}.sb-nav::-webkit-scrollbar-thumb{background:var(--scr);border-radius:2px}
.sb-sec{margin-bottom:16px}.sb-st{font-size:var(--fs-micro);font-weight:var(--fw-bold);color:var(--sb-tx2);text-transform:uppercase;letter-spacing:.8px;padding:0 var(--sp-4);margin-bottom:var(--sp-3)}
.ni{display:flex;align-items:center;gap:var(--sp-4);padding:7px var(--sp-5);border-radius:var(--r1);cursor:pointer;color:var(--sb-ni);font-size:var(--fs-body);font-weight:var(--fw-medium);transition:var(--t);border:none;background:none;width:100%;text-align:left;font-family:inherit}
.ni:hover{background:var(--sb-hv);color:var(--sb-ni-hv)}.ni.on{background:var(--sb-on);color:var(--sb-ni-on)}.ni .ic{font-size:16px;width:22px;text-align:center}
.sb-ft{padding:8px;border-top:1px solid var(--sb-br)}.sy{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r1);font-size:12px;color:var(--sb-tx2);cursor:pointer}.sy:hover{background:var(--sb-hv)}
.sd{width:8px;height:8px;border-radius:50%;background:var(--sb-tx2)}.sd.ok{background:#34C759}.sd.er{background:#FF3B30}.sd.ig{background:var(--orange);animation:pu 1s infinite}@keyframes pu{0%,100%{opacity:1}50%{opacity:.4}}

/* Main */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.top{height:50px;min-height:50px;border-bottom:1px solid var(--br);display:flex;align-items:center;justify-content:space-between;padding:0 20px}
.top-l{display:flex;align-items:center;gap:var(--sp-6)}.top-t{font-size:var(--fs-page);font-weight:var(--fw-semibold)}
.top-r{display:flex;align-items:center;gap:6px}
.ms{display:flex;align-items:center;background:var(--bg1);border-radius:var(--r1);padding:2px}
.ms button{border:none;background:none;padding:8px 12px;border-radius:6px;cursor:pointer;color:var(--tx1);font-size:16px;font-family:inherit;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.ms button:hover{color:var(--tx0);background:var(--hv)}
.ms .cur{font-size:13px;font-weight:600;color:var(--tx0);padding:4px 8px;min-width:100px;text-align:center}
.ys select{background:var(--bg1);border:1px solid var(--br);border-radius:6px;padding:4px 8px;font-size:13px;font-weight:600;color:var(--tx0);font-family:inherit;outline:none}
.bi{width:32px;height:32px;border-radius:var(--r1);border:none;background:none;color:var(--tx1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;transition:var(--t)}.bi:hover{background:var(--hv);color:var(--tx0)}
.ct{flex:1;overflow-y:auto;padding:var(--sp-10)}.ct::-webkit-scrollbar{width:5px}.ct::-webkit-scrollbar-thumb{background:var(--scr);border-radius:3px}

/* Components */
.cg{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--sp-6);margin-bottom:var(--sp-10)}
.card{background:var(--bg3);border:1px solid var(--br);border-radius:var(--r2);padding:var(--sp-8);transition:var(--t)}.card:hover{box-shadow:var(--sh)}
.card-ic{width:32px;height:32px;border-radius:var(--r1);display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:8px}
.card-lb{font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--tx1);margin-bottom:var(--sp-2)}
.card-v{font-family:'JetBrains Mono',monospace;font-size:var(--fs-value);font-weight:var(--fw-semibold);line-height:1.1}.card-v.pos{color:var(--green)}.card-v.neg{color:var(--red)}
.sr{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.sc{flex:1;min-width:160px;background:var(--bg3);border:1px solid var(--br);border-radius:var(--r2);padding:12px 16px;text-align:center}.sc .lb{font-size:11px;color:var(--tx1);font-weight:500}.sc .vl{font-family:'JetBrains Mono',monospace;font-size:18px;font-weight:600;margin-top:3px}
.tw{background:var(--bg3);border:1px solid var(--br);border-radius:var(--r2);overflow:hidden;margin-bottom:20px}
.tw-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--br);flex-wrap:wrap;gap:8px}.tw-h h3{font-size:14px;font-weight:600}
table{width:100%;border-collapse:collapse}
th{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--tx1);text-align:left;padding:var(--sp-4) var(--sp-6);border-bottom:1px solid var(--br);background:var(--bg1);cursor:pointer;user-select:none;white-space:nowrap}th:hover{color:var(--tx0)}
td{padding:var(--sp-4) var(--sp-6);font-size:var(--fs-body);border-bottom:1px solid var(--br)}
tr[style*="cursor"]:hover td{background:var(--bg2)}
td[onclick]:hover{background:var(--bg2)!important;opacity:.85}
.cat-search-wrap{position:relative;display:inline-block;min-width:160px}
.ai-report{font-size:14px;line-height:1.7;color:var(--tx0)}.ai-report h2.ai-section{margin:24px 0 12px;padding:10px 14px;background:var(--bg2);border-radius:var(--r1);font-size:16px;border-left:4px solid var(--pri)}.ai-report h3{margin:16px 0 8px;font-size:14px;color:var(--tx0)}.ai-report ul{margin:8px 0;padding-left:20px}.ai-report li{margin:4px 0}.ai-report table.ai-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}.ai-report table.ai-table th{background:var(--bg2);padding:8px 10px;text-align:left;font-weight:600;border-bottom:2px solid var(--br)}.ai-report table.ai-table td{padding:6px 10px;border-bottom:1px solid var(--br)}.ai-report table.ai-table tr:hover{background:var(--bg2)}.ai-report strong{color:var(--tx0)}.spinner-lg{width:40px;height:40px;border:4px solid var(--br);border-top:4px solid var(--pri);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite;vertical-align:middle;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}
.cat-search-btn{width:100%;padding:4px 24px 4px 8px;font-size:11px;border:1px solid var(--br);border-radius:var(--r1);background:var(--bg1);color:var(--tx);cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;appearance:none;-webkit-appearance:none}
.cat-search-btn::after{content:'▾';position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:11px;pointer-events:none;color:var(--tx1)}
.cat-search-dd{position:absolute;top:100%;left:0;right:0;background:var(--bg1);border:1px solid var(--br);border-radius:var(--r1);box-shadow:0 4px 16px rgba(0,0,0,.18);z-index:999;display:none;min-width:220px}
.cat-search-dd.open{display:block}
.cat-search-dd input{width:100%;padding:6px 8px;font-size:12px;border:none;border-bottom:1px solid var(--br);outline:none;background:var(--bg1);color:var(--tx);box-sizing:border-box}
.cat-search-dd ul{list-style:none;margin:0;padding:0;max-height:200px;overflow-y:auto}
.cat-search-dd li{padding:5px 10px;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--tx)}
.cat-search-dd li:hover,.cat-search-dd li.hl{background:var(--pri);color:#fff}
.cat-search-dd li.optgrp{font-size:11px;font-weight:700;color:var(--tx2);padding:6px 10px 3px;cursor:default;text-transform:uppercase;background:var(--bg2)}
.xTab{background:var(--bg2);color:var(--tx1);border:1px solid var(--br);font-size:12px;padding:6px 12px;cursor:pointer;border-radius:var(--r1);transition:all .15s}
.xTab.on{background:var(--pri);color:#fff;border-color:var(--pri)}
.al-badge{background:var(--red);color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;margin-left:6px;min-width:16px;text-align:center;display:inline-block}
.proj-alert{background:var(--redL);border:1px solid var(--red);border-radius:var(--r1);padding:10px 14px;margin-top:8px;font-size:12px;color:var(--red);display:flex;align-items:center;gap:8px}
/* Wizard */
.wiz-wrap{display:flex;height:100vh;background:var(--bg3)}
.wiz-side{width:260px;background:linear-gradient(180deg,#1a1a2e 0%,#16213e 100%);color:#fff;display:flex;flex-direction:column;flex-shrink:0}
.wiz-steps{padding:0 8px}
.wiz-step{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:13px;color:rgba(255,255,255,.5);margin-bottom:2px;transition:all .2s}
.wiz-step.on{background:rgba(255,255,255,.1);color:#fff}
.wiz-step.done{color:rgba(255,255,255,.7)}
.wiz-step.done .wiz-sn{background:#34C759;color:#fff}
.wiz-sn{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.wiz-step.on .wiz-sn{background:var(--pri);color:#fff}
.wiz-body{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:40px}
.wiz-content{flex:1;max-width:600px;margin:0 auto;width:100%}
.wiz-footer{display:flex;align-items:center;padding:20px 0 0;max-width:600px;margin:0 auto;width:100%}
.wiz-content h2{font-size:22px;font-weight:700;margin-bottom:6px;color:var(--tx)}
.wiz-content .wiz-sub{font-size:14px;color:var(--tx2);margin-bottom:24px}
.wiz-content .wiz-fg{margin-bottom:16px}
.wiz-content .wiz-fg label{display:block;font-size:12px;font-weight:600;color:var(--tx1);margin-bottom:4px}
.wiz-content .wiz-fg input,.wiz-content .wiz-fg select,.wiz-content .wiz-fg textarea{width:100%;padding:10px 12px;border:1px solid var(--br);border-radius:var(--r1);font-size:14px;background:var(--bg1);color:var(--tx);box-sizing:border-box}
.wiz-content .wiz-fg textarea{min-height:70px;resize:vertical}
.wiz-content .wiz-fg input:focus,.wiz-content .wiz-fg textarea:focus{border-color:var(--pri);outline:none}
.wiz-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.wiz-rate{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.wiz-rate label{font-size:13px;min-width:140px;color:var(--tx)}
.wiz-rate input[type=range]{flex:1}
.wiz-rate span{font-size:14px;font-weight:700;color:var(--pri);min-width:24px;text-align:center}
.wiz-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:8px}
.wiz-cat{border:1px solid var(--br);border-radius:var(--r1);padding:10px;background:var(--bg1)}
.wiz-cat h4{font-size:12px;font-weight:700;margin-bottom:6px;color:var(--tx)}
.wiz-cat-add{font-size:11px;color:var(--pri);cursor:pointer;margin-top:4px}
.wiz-cat-item{font-size:11px;color:var(--tx1);padding:2px 0;display:flex;justify-content:space-between}
.wiz-cat-item button{color:var(--red);background:none;border:none;cursor:pointer;font-size:11px}
.wiz-done{text-align:center;padding:30px 0}
.wiz-done .wiz-check{font-size:48px;margin-bottom:16px}
@media(max-width:768px){.wiz-side{width:200px;font-size:12px}.wiz-body{padding:20px}}
tr:last-child td{border-bottom:none}tr:hover{background:var(--hv)}
.tm{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:500}.tm.pos{color:var(--green)}.tm.neg{color:var(--red)}
.bdg{display:inline-flex;align-items:center;padding:var(--sp-1) var(--sp-4);border-radius:var(--r1);font-size:var(--fs-caption);font-weight:var(--fw-medium)}
.bdg.pago{background:var(--greenL);color:var(--green)}.bdg.pendente{background:var(--orangeL);color:var(--orange)}.bdg.vencido{background:var(--redL);color:var(--red)}
.btn{display:inline-flex;align-items:center;gap:5px;padding:7px var(--sp-7);border-radius:var(--r1);font-size:var(--fs-body);font-weight:var(--fw-medium);cursor:pointer;transition:var(--t);border:none;font-family:inherit}
.btn-p{background:var(--blue);color:#fff}.btn-p:hover{filter:brightness(.9)}
.btn-s{background:var(--bg1);color:var(--tx0);border:1px solid var(--br)}.btn-s:hover{background:var(--bg2)}
.btn-d{background:var(--redL);color:var(--red)}.btn-d:hover{background:var(--red);color:#fff}
.btn-sm{padding:var(--sp-2) var(--sp-5);font-size:var(--fs-label)}
.bgh{background:none;border:none;color:var(--blue);padding:6px 10px;font-size:13px;cursor:pointer;font-family:inherit;border-radius:6px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.bgh:hover{background:var(--blueL)}
.fc{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-pill);border:1px solid var(--br);background:none;font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--tx1);cursor:pointer;transition:var(--t);font-family:inherit}.fc:hover{background:var(--hv)}.fc.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.tabs{display:flex;border-bottom:1px solid var(--br);margin-bottom:18px}
.tab{padding:var(--sp-4) var(--sp-9);border:none;background:none;font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--tx1);cursor:pointer;position:relative;font-family:inherit}.tab:hover{color:var(--tx0)}.tab.on{color:var(--blue)}.tab.on::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--blue);border-radius:1px 1px 0 0}
.mo{position:fixed;inset:0;background:var(--ov);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.mo.on{opacity:1;pointer-events:all}
.mo-bx{background:var(--bg3);border-radius:var(--r3);width:500px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:var(--sh-modal);transform:scale(.96) translateY(10px);transition:transform .25s cubic-bezier(.25,.1,.25,1)}
.mo.on .mo-bx{transform:scale(1) translateY(0)}
.mo-hd{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-9) var(--sp-11) 0}.mo-hd h2{font-size:var(--fs-summary);font-weight:var(--fw-bold)}
.mo-x{width:36px;height:36px;border-radius:var(--r-full);background:var(--bg2);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--tx1);font-size:16px}.mo-x:hover{background:var(--hv)}
.mo-bd{padding:var(--sp-9) var(--sp-11)}.mo-ft{padding:var(--sp-6) var(--sp-11);border-top:1px solid var(--br);display:flex;justify-content:flex-end;gap:8px}
.fg{margin-bottom:var(--sp-6)}.fl{display:block;font-size:var(--fs-label);font-weight:var(--fw-semibold);color:var(--tx1);margin-bottom:var(--sp-2)}
.fi,.fs{width:100%;padding:9px var(--sp-6);background:var(--ibg);border:1px solid var(--br);border-radius:var(--r1);font-size:var(--fs-body);font-family:inherit;color:var(--tx0);outline:none;transition:border-color .2s,box-shadow .2s}.fi:focus,.fs:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blueL)}.fi.valid{border-color:var(--green)}.fi.invalid{border-color:var(--red)}
/* Focus visible for keyboard navigation */
:focus-visible{outline:2px solid var(--pri);outline-offset:2px}
button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ck{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.ck input[type=checkbox]{width:16px;height:16px;accent-color:var(--blue)}
.rp{background:var(--bg1);border-radius:var(--r1);padding:10px 14px;margin-top:8px}
.tg-r{display:flex;align-items:center;justify-content:space-between;padding:8px 0}
.tg{width:42px;height:24px;background:var(--bg2);border-radius:12px;border:none;cursor:pointer;position:relative;transition:var(--t)}.tg.on{background:var(--green)}.tg::after{content:'';width:20px;height:20px;background:#fff;border-radius:var(--r-full);position:absolute;top:2px;left:2px;transition:var(--t);box-shadow:var(--sh-toggle)}.tg.on::after{left:20px}
.em{text-align:center;padding:40px 20px;color:var(--tx2)}.em .ei{font-size:40px;margin-bottom:8px}
.al-i{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--br)}.al-i:last-child{border-bottom:none}.al-i:hover{background:var(--hv)}
.al-d{width:8px;height:8px;border-radius:50%}.al-d.red{background:var(--red)}.al-d.org{background:var(--orange)}.al-d.grn{background:var(--green)}
.al-nf{flex:1}.al-nf .at{font-size:13px;font-weight:500}.al-nf .ad{font-size:11px;color:var(--tx2)}
.al-v{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:600}
.pg{display:none}.pg.on{display:block}
.chg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.chc{background:var(--bg3);border:1px solid var(--br);border-radius:var(--r2);padding:16px}.chc.fw{grid-column:1/-1}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dash-col-left,.dash-col-right{display:flex;flex-direction:column;gap:0}
.dash-ind{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.dash-ind-lg{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.cht{font-size:14px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.cht .tg2{font-size:11px;background:var(--bbg);color:var(--tx1);padding:2px 8px;border-radius:8px}
.chb{position:relative;height:200px}
@media(min-width:1600px){.dash-grid{grid-template-columns:1fr 1.2fr}.dash-ind{grid-template-columns:repeat(4,1fr)}.cg{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1024px){.chg{grid-template-columns:1fr}.dash-grid{grid-template-columns:1fr}}
@media(max-width:768px){.sb{position:fixed;left:-250px;top:0;bottom:0;z-index:200;box-shadow:0 0 30px rgba(0,0,0,.4)}.sb.open{left:0}.mbo{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:199;display:none}.mbo.on{display:block}.fr{grid-template-columns:1fr}.bmm{display:flex!important}}
@media(max-width:480px){.cg{grid-template-columns:1fr}.ct{padding:14px}}
.bmm{display:none!important}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.sw-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg1);border-radius:var(--r1);margin-bottom:4px;font-size:13px}
.sw-item:hover{background:var(--bg2)}.sw-item .sw-del{margin-left:auto;cursor:pointer;opacity:.4;font-size:11px}.sw-item .sw-del:hover{opacity:1;color:var(--red)}
.prog-bar{height:8px;background:var(--bg2);border-radius:4px;overflow:hidden;margin-top:4px}.prog-fill{height:100%;border-radius:4px;transition:width .3s}
.score-card{text-align:center;padding:16px}.score-num{font-size:48px;font-weight:700;font-family:'JetBrains Mono',monospace}.score-label{font-size:12px;color:var(--tx2);margin-top:4px}
.ind-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--br);font-size:13px}.ind-row:last-child{border:0}.ind-val{font-weight:600;font-family:'JetBrains Mono',monospace}
/* Login Screen */
/* Theme-adaptive logos */
.logo-light{display:block}.logo-dark{display:none}
[data-theme="dark"] .logo-light{display:none}
[data-theme="dark"] .logo-dark{display:block}
.login-wrap{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg0);z-index:9999;display:flex;align-items:center;justify-content:center}
.login-wrap.hidden{display:none}
.login-box{background:var(--bg3);border:1px solid var(--br);border-radius:var(--r3);padding:40px;width:100%;max-width:400px;box-shadow:var(--sh)}
.login-logo{width:56px;height:56px;background:var(--blue);border-radius:var(--r2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:24px;margin:0 auto 16px}
.login-title{text-align:center;font-size:var(--fs-login);font-weight:var(--fw-bold);margin-bottom:var(--sp-2)}
.login-sub{text-align:center;font-size:var(--fs-body);color:var(--tx1);margin-bottom:var(--sp-12)}
.login-fg{margin-bottom:14px}
.login-fg label{display:block;font-size:12px;font-weight:600;color:var(--tx1);margin-bottom:4px}
.login-fg input{width:100%;padding:10px 12px;border:1px solid var(--br);border-radius:var(--r1);background:var(--ibg);color:var(--tx0);font-size:14px;font-family:inherit;outline:none;transition:var(--t)}
.login-fg input:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blueL)}
.login-btn{width:100%;padding:var(--sp-6);border:none;border-radius:var(--r1);background:var(--blue);color:#fff;font-size:var(--fs-section);font-weight:var(--fw-semibold);cursor:pointer;font-family:inherit;transition:var(--t)}
.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.5;cursor:not-allowed}
.login-err{color:var(--red);font-size:12px;text-align:center;margin-top:10px;min-height:16px}
.login-toggle{text-align:center;margin-top:16px;font-size:13px;color:var(--tx1)}
.login-toggle a{color:var(--blue);cursor:pointer;font-weight:600;text-decoration:none}
.login-toggle a:hover{text-decoration:underline}
.logout-btn{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r1);cursor:pointer;color:var(--red);font-size:13px;font-weight:500;transition:var(--t);border:none;background:none;width:100%;text-align:left;font-family:inherit;margin-top:4px}
.logout-btn:hover{background:var(--redL)}
.login-loading{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:6px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
/* Spin inline (botões loading) */
.spin-inline{display:inline-block;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* Toast */
.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{padding:var(--sp-5) var(--sp-9);border-radius:var(--sp-5);font-size:var(--fs-body);font-weight:var(--fw-medium);color:#fff;box-shadow:var(--sh-toast);animation:toastIn .3s ease,toastOut .3s ease 2.7s;pointer-events:auto;max-width:340px}
.toast.ok{background:#34C759}.toast.err{background:#FF3B30}.toast.warn{background:#FF9500}.toast.info{background:#007AFF}
@keyframes toastIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateY(-10px)}}
/* Loading overlay */
.loading-ov{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.15);z-index:9998;display:flex;align-items:center;justify-content:center}
.loading-sp{width:36px;height:36px;border:3px solid rgba(0,122,255,.2);border-top-color:#007AFF;border-radius:50%;animation:spin .7s linear infinite}
/* Mobile responsive tables */
@media(max-width:768px){
  table{font-size:11px}
  .tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
  th,td{padding:6px 4px!important}
  .grid2{grid-template-columns:1fr!important}
  .grid4{grid-template-columns:1fr 1fr!important}
  .sc{min-width:auto!important;padding:10px!important}
  .sr{flex-wrap:wrap}
  .chg{grid-template-columns:1fr!important}
  .chc.fw{grid-column:auto!important}
  .top-r{gap:4px}
  .top-t{font-size:14px}
  .mo-bx{width:95%!important;max-width:95%!important;max-height:90vh}
  .fr{flex-direction:column}
  .wiz-wrap{flex-direction:column}
  .wiz-side{width:100%;flex-direction:row;overflow-x:auto}
  .wiz-steps{display:flex;flex-direction:row;overflow-x:auto;gap:4px}
  .wiz-body{padding:16px}
}
/* Help tooltip */
.help-btn{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--pri);background:none;color:var(--pri);font-size:14px;font-weight:700;cursor:pointer;margin-left:8px;display:flex;align-items:center;justify-content:center;transition:var(--t);flex-shrink:0}
.help-btn:hover{background:var(--pri);color:#fff}
.top-l{position:relative}
.help-tip{display:none;position:absolute;top:100%;left:0;margin-top:8px;background:var(--bg3);border:1px solid var(--br);border-radius:var(--r2);padding:14px 16px;font-size:12px;line-height:1.6;color:var(--tx1);box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:100;max-width:420px;min-width:280px}
.help-tip.on{display:block}
.help-tip h4{font-size:13px;font-weight:700;color:var(--pri);margin-bottom:6px}
.help-tip p{margin:4px 0;font-size:11.5px}
.help-tip .ht-label{font-weight:600;color:var(--tx0)}
.ind-card:hover{border-color:var(--pri)!important;box-shadow:0 2px 8px rgba(0,122,255,.1)}
.ind-tip{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);min-width:280px;max-width:380px;background:var(--bg3);border:1px solid var(--pri);border-radius:var(--r2);padding:16px 18px;box-shadow:0 12px 40px rgba(0,0,0,.2);z-index:200}
.ind-tip-ov{position:fixed;inset:0;background:rgba(0,0,0,.15);z-index:199}
/* Landing */
.land{min-height:100vh;background:linear-gradient(160deg,#080818 0%,#1a1a2e 35%,#16213e 65%,#0d1b2a 100%);color:#fff;overflow-y:auto;position:relative}
.land::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(0,122,255,.08) 0%,transparent 70%);pointer-events:none}
.land-nav{display:flex;justify-content:space-between;align-items:center;padding:20px 40px;max-width:1200px;margin:0 auto;position:relative;z-index:2}
.land-logo{font-size:22px;font-weight:800;color:#fff;display:inline-flex;align-items:center;gap:10px;letter-spacing:.5px}
.land-hero{text-align:center;padding:70px 20px 30px;max-width:820px;margin:0 auto;position:relative;z-index:2}
.land-hero h1{font-size:var(--fs-hero);font-weight:var(--fw-black);margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#5AC8FA 50%,#007AFF 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.15}
.land-hero p{font-size:18px;color:rgba(255,255,255,.6);line-height:1.7;max-width:640px;margin:0 auto}
.land-hero .land-cta-row{display:flex;gap:12px;justify-content:center;margin-top:28px}
.land-section-title{text-align:center;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:rgba(0,122,255,.7);margin:50px 0 8px}
.land-section-sub{text-align:center;font-size:26px;font-weight:700;color:#fff;margin-bottom:36px}
.land-diff{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1000px;margin:0 auto 50px;padding:0 20px}
.land-diff-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:28px 22px;text-align:center;transition:all .3s;position:relative;overflow:hidden}
.land-diff-card::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:60px;height:2px;background:linear-gradient(90deg,transparent,rgba(0,122,255,.5),transparent)}
.land-diff-card:hover{border-color:rgba(0,122,255,.25);transform:translateY(-2px);background:rgba(255,255,255,.06)}
.land-diff-card .ic{font-size:32px;margin-bottom:12px;display:block}
.land-diff-card h4{font-size:15px;font-weight:700;margin-bottom:8px;color:#fff}
.land-diff-card p{font-size:12.5px;color:rgba(255,255,255,.5);line-height:1.5}
.land-plans{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:780px;margin:0 auto 50px;padding:0 20px}
.land-plan{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:32px 26px;text-align:center;transition:all .3s;position:relative}
.land-plan:hover{transform:translateY(-4px);border-color:rgba(0,122,255,.3);box-shadow:0 12px 40px rgba(0,0,0,.3)}
.land-plan.pop{border-color:rgba(0,122,255,.4);background:linear-gradient(180deg,rgba(0,122,255,.08) 0%,rgba(0,122,255,.02) 100%);position:relative}
.land-plan.pop::before{content:'MAIS ESCOLHIDO';position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#007AFF,#5AC8FA);color:#fff;font-size:10px;font-weight:800;padding:4px 14px;border-radius:10px;letter-spacing:.5px}
.land-plan .plan-icon{font-size:36px;margin-bottom:8px;display:block}
.land-plan h3{font-size:20px;font-weight:700;margin-bottom:4px;color:#fff}
.land-plan .plan-desc{font-size:12px;color:rgba(255,255,255,.4);margin-bottom:14px}
.land-price{font-size:var(--fs-price);font-weight:var(--fw-black);color:var(--pri);margin:10px 0 4px}
.land-price span{font-size:14px;font-weight:400;color:rgba(255,255,255,.35)}
.land-feat{list-style:none;padding:0;margin:16px 0;text-align:left;font-size:13px;color:rgba(255,255,255,.65)}
.land-feat li{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:6px}
.land-feat li::before{content:'✓';color:#34C759;font-weight:700;font-size:12px;width:18px;height:18px;background:rgba(52,199,89,.12);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.land-feat li.no::before{content:'—';color:#636366;background:rgba(255,255,255,.05)}.land-feat li.no{opacity:.35}
.land-btn{display:block;width:100%;padding:13px;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;margin-top:18px;transition:all .25s;letter-spacing:.3px}
.land-btn.pri{background:linear-gradient(135deg,#007AFF,#0066DD);color:#fff;box-shadow:0 4px 16px rgba(0,122,255,.25)}.land-btn.pri:hover{box-shadow:0 6px 24px rgba(0,122,255,.4);transform:translateY(-1px)}
.land-btn.sec{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.15)}.land-btn.sec:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25)}
.land-btn.gold{background:linear-gradient(135deg,#D4AF37,#B8962E);color:#fff;box-shadow:0 4px 16px rgba(212,175,55,.2)}.land-btn.gold:hover{box-shadow:0 6px 24px rgba(212,175,55,.35)}
.land-trust{text-align:center;padding:30px 20px 10px;position:relative;z-index:2}
.land-trust p{font-size:12px;color:rgba(255,255,255,.3);letter-spacing:.5px}
.land-trust .trust-icons{display:flex;justify-content:center;gap:24px;margin-top:12px;font-size:22px;opacity:.4}
.land-ft{text-align:center;padding:40px 20px;color:rgba(255,255,255,.25);font-size:12px;border-top:1px solid rgba(255,255,255,.04);max-width:1000px;margin:0 auto}
.land-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:40px auto;padding:0 20px}
.land-feature{text-align:center;padding:20px}
.land-feature .ic{font-size:32px;margin-bottom:10px}
.land-feature h4{font-size:15px;margin-bottom:6px}
.land-feature p{font-size:12px;color:rgba(255,255,255,.5)}
@media(max-width:768px){.land-plans{grid-template-columns:1fr}.land-diff{grid-template-columns:1fr}.land-hero h1{font-size:28px}.land-nav{padding:16px 20px}.land-hero .land-cta-row{flex-direction:column;align-items:center}.land-features{grid-template-columns:1fr}}
/* Plan badge */
.plan-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px;margin-left:6px}
.plan-badge.starter{background:#FF950030;color:#FF9500}
.plan-badge.pro{background:#007AFF30;color:#007AFF}
.plan-badge.cortesia{background:#34C75930;color:#34C759}
/* ═══ Date Picker ═══ */
.dp-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);z-index:1000;justify-content:center;align-items:center}
.dp-overlay.open{display:flex}
.dp-container{background:var(--bg1);border-radius:var(--r-pill);box-shadow:var(--sh-dp);padding:0;overflow:hidden;max-width:640px;width:95%}
.dp-top{display:flex;gap:0}
.dp-calendars{flex:1;display:flex;padding:14px 16px;gap:20px}
.dp-shortcuts{width:170px;background:var(--bg2);padding:8px 6px;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--br)}
.dp-sc-section{font-size:9px;font-weight:700;color:var(--tx2);text-transform:uppercase;letter-spacing:.6px;padding:3px 8px 1px;margin-top:2px}
.dp-sc-section:first-child{margin-top:0}
.dp-sc-row{display:flex;flex-wrap:wrap;gap:2px;padding:0 2px}
.dp-shortcut{padding:3px 7px;font-size:10px;border-radius:5px;cursor:pointer;border:1px solid transparent;background:var(--bg1);text-align:center;color:var(--tx);transition:var(--t);font-family:inherit;white-space:nowrap;line-height:1.4}
.dp-shortcut:hover{border-color:var(--pri);color:var(--pri);background:var(--priL)}
.dp-shortcut.active{background:var(--pri);color:#fff;border-color:var(--pri)}
.dp-shortcut.full{width:100%;text-align:left;padding:4px 8px}
.dp-cal{flex:1;min-width:0}
.dp-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.dp-cal-title{font-size:12px;font-weight:600;color:var(--tx)}
.dp-cal-nav{width:24px;height:24px;border:1px solid var(--br);border-radius:5px;background:var(--bg1);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--tx1);transition:var(--t)}
.dp-cal-nav:hover{background:var(--bg2);color:var(--tx)}
.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:2px}
.dp-weekday{font-size:9px;font-weight:600;color:var(--tx2);text-align:center;padding:2px 0;text-transform:uppercase}
.dp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.dp-day{width:30px;height:28px;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:6px;cursor:pointer;transition:var(--t);color:var(--tx);border:none;background:none;font-family:inherit;margin:0 auto}
.dp-day:hover{background:var(--priL);color:var(--pri)}
.dp-day.other{color:var(--tx2);opacity:.4}
.dp-day.today{font-weight:700;box-shadow:inset 0 0 0 1.5px var(--pri)}
.dp-day.selected{background:var(--pri);color:#fff;font-weight:600}
.dp-day.in-range{background:var(--priL);color:var(--pri);border-radius:0}
.dp-day.range-start{background:var(--pri);color:#fff;font-weight:600;border-radius:6px 0 0 6px}
.dp-day.range-end{background:var(--pri);color:#fff;font-weight:600;border-radius:0 6px 6px 0}
.dp-day.range-start.range-end{border-radius:6px}
.dp-inputs{display:flex;gap:12px;padding:10px 16px;background:var(--bg2)}
.dp-input-group{flex:1}
.dp-input-label{font-size:9px;font-weight:600;color:var(--tx2);margin-bottom:2px;text-transform:uppercase;letter-spacing:.4px}
.dp-input{width:100%;padding:5px 8px;font-size:12px;border:1px solid var(--br);border-radius:6px;background:var(--bg1);color:var(--tx);font-family:inherit;text-align:center}
.dp-input:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 2px rgba(0,122,255,.12)}
.dp-footer{display:flex;justify-content:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--br)}
.dp-btn{padding:6px 16px;font-size:12px;font-weight:600;border-radius:6px;cursor:pointer;border:none;transition:var(--t);font-family:inherit}
.dp-btn-cancel{background:var(--bg2);color:var(--tx1)}
.dp-btn-cancel:hover{background:#ddd}
.dp-btn-apply{background:var(--pri);color:#fff}
.dp-btn-apply:hover{background:#0066DD}
.dp-month-grid{display:none;grid-template-columns:repeat(3,1fr);gap:6px;padding:14px 16px;flex:1}
.dp-month-grid.open{display:grid}
.dp-month-item{padding:8px 6px;text-align:center;font-size:11px;border-radius:6px;cursor:pointer;border:none;background:none;color:var(--tx);transition:var(--t);font-family:inherit}
.dp-month-item:hover{background:var(--priL);color:var(--pri)}
.dp-month-item.current{font-weight:700;box-shadow:inset 0 0 0 1.5px var(--pri)}
.dp-month-item.selected{background:var(--pri);color:#fff}
.ms .cur{cursor:pointer;padding:4px 12px;border-radius:var(--r1);transition:var(--t)}
.ms .cur:hover{background:var(--priL);color:var(--pri)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}}
