:root{
  --bg:#050306;--bg2:#0c0810;--panel:#121016;--panel2:#19151f;--stroke:#2a2430;
  --text:#fff;--muted:#a7a0ad;--pink:#ff2e5d;--hot:#ff174c;--purple:#9a4dff;--violet:#c05cff;--cyan:#3ee3c1;--orange:#ff9d4f;--danger:#ff5964;
  --shadow:0 20px 60px rgba(0,0,0,.34);--radius:22px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 85% 8%,rgba(255,46,93,.10),transparent 28%),radial-gradient(circle at 12% 0%,rgba(154,77,255,.12),transparent 30%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.glass{background:rgba(12,9,15,.80);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}button,input,select{font:inherit}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--stroke);padding:28px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 26px}.brand-mark{width:42px;height:42px;border-radius:15px;display:grid;place-items:center;font-weight:950;background:linear-gradient(145deg,var(--pink),var(--purple));box-shadow:0 0 30px rgba(255,46,93,.22)}.brand strong{display:block;font-size:17px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item,.mobile-nav-item{border:0;background:transparent;color:var(--muted);cursor:pointer}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;text-align:left;transition:.2s}.nav-item:hover,.nav-item.active{background:linear-gradient(90deg,rgba(255,46,93,.18),rgba(154,77,255,.08));color:#fff;transform:translateX(2px)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--stroke);padding:18px 10px 0;display:flex;gap:8px;color:var(--muted)}.sync-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 14px var(--cyan);margin-top:5px}.main{padding:28px clamp(18px,4vw,54px) 70px;min-width:0;max-width:1500px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.eyebrow,.bento-card small{letter-spacing:.15em;font-weight:850;font-size:10px;color:#918a9a}.topbar h1{font-size:clamp(26px,3.1vw,42px);margin:5px 0 0;letter-spacing:-.045em;line-height:1.05}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn,.avatar-btn,.close-btn{border:1px solid var(--stroke);background:var(--panel);color:#fff;cursor:pointer}.icon-btn{width:42px;height:42px;border-radius:14px;position:relative}.badge{position:absolute;right:-4px;top:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--pink);font-size:10px;display:grid;place-items:center}.avatar-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,var(--pink),var(--purple));font-weight:850;overflow:hidden}.avatar-btn img{width:100%;height:100%;object-fit:cover}.view{display:none}.active-view{display:block;animation:fade .28s ease}.bento-card{background:linear-gradient(145deg,rgba(25,21,31,.97),rgba(13,11,17,.97));border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;overflow:hidden}.finance-marquee{overflow:hidden;border-top:1px solid rgba(255,46,93,.48);border-bottom:1px solid rgba(255,46,93,.48);margin:0 0 16px;padding:10px 0;background:linear-gradient(90deg,rgba(255,46,93,.04),rgba(154,77,255,.03),rgba(255,46,93,.04));mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.marquee-track{display:flex;width:max-content;gap:34px;white-space:nowrap;animation:marquee 28s linear infinite}.marquee-item{display:flex;align-items:center;gap:10px;color:#d9d4df;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.marquee-item::before{content:"✦";color:var(--pink);font-size:15px}.dashboard-top-grid{display:grid;grid-template-columns:1fr 1.18fr;gap:16px;margin-bottom:16px}.snap-carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.snap-carousel::-webkit-scrollbar{display:none}.category-carousel,.upcoming-carousel{padding:2px 1px 4px}.category-card,.upcoming-card{scroll-snap-align:start;flex:0 0 min(250px,82%);border:1px solid #2c2632;border-radius:17px;background:linear-gradient(150deg,#17131d,#0e0c11);padding:15px;min-height:122px}.category-card{display:flex;flex-direction:column;justify-content:space-between}.category-card .cat-top,.upcoming-card .up-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.category-card strong,.upcoming-card strong{font-size:14px}.category-card b{font-size:19px;margin-top:14px}.category-card .cat-bar{height:5px;border-radius:99px;background:#211b27;overflow:hidden;margin-top:12px}.category-card .cat-bar span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--pink))}.cat-icon,.up-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(154,77,255,.24),rgba(255,46,93,.18));box-shadow:inset 0 1px rgba(255,255,255,.08)}.upcoming-card{flex-basis:min(300px,88%)}.upcoming-card span{display:block;color:var(--muted);font-size:11px;margin-top:8px}.upcoming-card b{display:block;color:#fff;font-size:16px;margin-top:15px}.hero{min-height:224px;display:flex;flex-direction:column;justify-content:space-between;position:relative;margin-bottom:16px}.gradient-card{background:linear-gradient(135deg,#201421 0%,#0e0b12 42%,#1b0c18 100%)}.hero h2{font-size:clamp(38px,6vw,66px);margin:6px 0;letter-spacing:-.065em;line-height:.98}.hero p{margin:0;color:var(--muted);max-width:700px}.hero>*{position:relative;z-index:2}.orb{position:absolute;border-radius:50%;opacity:.78;filter:blur(1px)}.orb-a{width:190px;height:190px;background:radial-gradient(circle at 35% 35%,#ff8ca7,#ff2e5d 35%,transparent 71%);right:4%;top:-55px}.orb-b{width:145px;height:145px;background:radial-gradient(circle,#9a4dff,transparent 70%);right:20%;bottom:-75px}.primary{border:0;border-radius:13px;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;font-weight:850;padding:12px 16px;cursor:pointer;box-shadow:0 10px 30px rgba(255,46,93,.16);transition:.2s}.primary:hover{transform:translateY(-2px);filter:brightness(1.08)}.hero .primary{align-self:flex-start}.metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:16px}.metric{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center;min-width:0}.metric-icon{grid-row:1/4;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:900}.metric-icon.income{background:rgba(62,227,193,.12);color:var(--cyan)}.metric-icon.expense{background:rgba(255,46,93,.12);color:var(--pink)}.metric-icon.pending{background:rgba(255,157,79,.12);color:var(--orange)}.metric strong{font-size:22px;min-width:0;white-space:nowrap}.metric em{font-style:normal;color:var(--muted);font-size:11px}.quick-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:16px 18px}.quick-strip-copy{min-width:180px}.quick-strip-copy strong{display:block;margin-top:4px}.quick-actions-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.quick-actions-scroll::-webkit-scrollbar{display:none}.quick-pill,.market-tab{flex:0 0 auto;border:1px solid #332b39;border-radius:999px;background:#0b090d;color:#c8c2cc;padding:10px 14px;cursor:pointer;white-space:nowrap}.quick-pill:hover,.market-tab.active,.market-tab:hover{border-color:rgba(255,46,93,.62);color:#fff;background:linear-gradient(135deg,rgba(255,46,93,.15),rgba(154,77,255,.11))}.timeline-at-end{margin-top:2px}.chart-card{min-height:390px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.card-head h3,.bento-card h3{margin:4px 0 0;font-size:18px}.card-head select,.filters select,.filters input,.inline-form input,.modal-form input,.modal-form select,.invite-card input,.profile-card input,.reminder-inline input{background:#0c090e;border:1px solid var(--stroke);border-radius:11px;color:#fff;padding:10px 12px;outline:none;min-width:0}.card-head select:focus,.filters input:focus,input:focus,select:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(154,77,255,.12)}canvas{width:100%;max-width:100%;display:block}.insight{margin-top:8px;color:var(--muted);font-size:12px}.chip{font-size:10px;color:#e0dbe4;background:#241e29;border:1px solid #38303f;padding:6px 9px;border-radius:999px;white-space:nowrap}.text-btn{border:0;background:none;color:#d08fff;font-weight:750;cursor:pointer}.section-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px}.section-head h2{font-size:clamp(28px,4vw,44px);letter-spacing:-.045em;margin:5px 0;line-height:1}.section-head p{margin:6px 0 0;color:var(--muted);max-width:760px}.filters{display:grid;grid-template-columns:180px 180px minmax(180px,1fr);gap:10px;margin-bottom:15px;padding:14px}.table-card{padding:10px}.transaction-list{display:flex;flex-direction:column;gap:2px}.tx-item,.grocery-item,.member-item,.admin-user{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #2b2630;background:#100d13;border-radius:14px}.tx-item{border:0;border-bottom:1px solid #29232e;border-radius:10px;background:transparent;cursor:pointer;transition:.18s}.tx-item:last-child{border-bottom:0}.tx-item:hover{background:linear-gradient(90deg,rgba(255,46,93,.06),rgba(154,77,255,.04));transform:translateX(2px)}.tx-icon{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:#241e2a;flex:0 0 auto}.grow{flex:1;min-width:0}.tx-item strong{display:block;font-size:13px}.tx-item span,.member-item span{color:var(--muted);font-size:11px}.amount.expense{color:#ff6f91}.amount.income{color:var(--cyan)}.tx-value{text-align:right;min-width:112px}.tx-actions{display:flex;gap:7px}.mini-btn{border:1px solid var(--stroke);background:#211b25;color:#cec7d2;border-radius:9px;padding:7px 9px;cursor:pointer}.recurring-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:15px;margin-bottom:15px}.muted-copy{color:var(--muted);font-size:12px;line-height:1.5;margin:0 0 12px}.fixed-list{display:flex;flex-direction:column;gap:9px;max-height:290px;overflow:auto;padding-right:3px}.fixed-item{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #2c2631;background:linear-gradient(145deg,#151019,#0d0a0f);border-radius:14px}.fixed-item .grow{flex:1;min-width:0}.fixed-item strong{display:block;font-size:13px}.fixed-item span{display:block;color:var(--muted);font-size:10px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fixed-icon{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;font-weight:900;background:linear-gradient(145deg,var(--purple),var(--pink));box-shadow:inset 0 1px 1px rgba(255,255,255,.35),0 8px 20px rgba(154,77,255,.18)}.reminder-card{display:flex;flex-direction:column}.reminder-inline{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:8px}.reminder-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.status-pill{font-size:9px;padding:6px 9px;border-radius:999px;background:rgba(62,227,193,.1);border:1px solid rgba(62,227,193,.2);color:var(--cyan);white-space:nowrap}.market-category-tabs{margin:-2px 0 15px;padding-bottom:2px}.market-tab{padding:9px 15px}.grocery-layout{display:grid;grid-template-columns:1.5fr .7fr;gap:16px}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:8px;margin-bottom:15px}.grocery-list{display:flex;flex-direction:column;gap:10px}.grocery-item.done{opacity:.56}.grocery-item.done .item-name{text-decoration:line-through}.grocery-check{width:24px;height:24px;border-radius:8px;border:1px solid #4b4250;background:transparent;color:#081512;cursor:pointer}.grocery-item.done .grocery-check{background:var(--cyan);border-color:var(--cyan)}.item-name{flex:1}.item-name strong{display:block}.item-name span{color:var(--muted);font-size:11px}.grocery-summary{display:flex;flex-direction:column;align-items:flex-start}.grocery-summary h2{font-size:36px;margin:8px 0}.grocery-summary p{color:var(--muted);line-height:1.5}.ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:18px auto;background:conic-gradient(var(--pink) 0deg,var(--purple) 0deg,#2a2430 0);position:relative;align-self:center}.ring:after{content:"";position:absolute;inset:13px;border-radius:50%;background:#120e15}.ring span{position:relative;z-index:2;font-weight:900;font-size:22px}.share-note{margin-top:auto;background:#0b090d;border:1px solid #2c2631;border-radius:12px;padding:12px;color:var(--muted);font-size:12px}.grocery-catalog{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.food-3d{position:relative;min-height:108px;border:1px solid rgba(255,255,255,.08);border-radius:19px;background:linear-gradient(145deg,#241c29,#0f0b12);color:#eee;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;overflow:hidden;box-shadow:inset 1px 1px 1px rgba(255,255,255,.12),inset -8px -9px 18px rgba(0,0,0,.22),0 13px 28px rgba(0,0,0,.22);transform:translateZ(0);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.food-3d:before{content:"";position:absolute;width:70px;height:32px;border-radius:50%;top:8px;left:10px;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 68%);filter:blur(2px);transform:rotate(-18deg)}.food-3d:hover{transform:translateY(-5px) scale(1.025) rotateX(3deg);border-color:rgba(255,46,93,.38);box-shadow:inset 1px 1px 1px rgba(255,255,255,.15),0 18px 34px rgba(0,0,0,.34),0 0 24px rgba(255,46,93,.08)}.food-3d:active{transform:translateY(-1px) scale(.97)}.food-emoji{font-size:39px;line-height:1;filter:drop-shadow(0 10px 8px rgba(0,0,0,.4));transform:translateY(-1px);transition:transform .18s ease}.food-3d:hover .food-emoji{transform:translateY(-4px) rotate(-4deg) scale(1.08)}.food-3d>span:last-child{font-size:10px;color:#e2dce5;font-weight:750}.catalog-divider{height:1px;background:linear-gradient(90deg,transparent,#342b39,transparent);margin:20px 0}.grocery-3d-mini{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:22px;background:linear-gradient(145deg,#261d2a,#100c13);box-shadow:inset 1px 1px 1px rgba(255,255,255,.12),0 8px 14px rgba(0,0,0,.24)}.family-grid,.profile-grid,.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.invite-card form,.profile-card form{display:flex;flex-direction:column;gap:10px;margin-top:16px}.invite-card p,.integration-note{color:var(--muted);line-height:1.55;font-size:13px}.invite-result{margin-top:12px}.invite-code{font-size:32px;font-weight:900;letter-spacing:.2em}.wa-link{display:inline-block;margin-top:8px;color:var(--cyan);text-decoration:none;font-weight:750}.member-avatar,.admin-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--pink),var(--purple));font-weight:850;overflow:hidden}.member-avatar img{width:100%;height:100%;object-fit:cover}.profile-card{display:grid;grid-template-columns:90px 1fr;align-items:center}.profile-photo{width:80px;height:80px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,var(--pink),var(--purple));font-size:28px;font-weight:900;cursor:pointer;overflow:hidden}.profile-photo img{width:100%;height:100%;object-fit:cover}.profile-card form{grid-column:1/3}.profile-card label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:5px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;border-bottom:1px solid #2b2530}.toggle-row strong{display:block;font-size:13px}.toggle-row span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.switch{position:relative;width:48px;height:27px;flex:0 0 auto}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:#312a36;border-radius:999px;cursor:pointer}.switch span:before{content:"";position:absolute;width:21px;height:21px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.switch input:checked+span{background:linear-gradient(90deg,var(--pink),var(--purple))}.switch input:checked+span:before{transform:translateX(21px)}.integration-note{margin-top:15px;background:#0b090d;border-radius:12px;padding:12px;border:1px solid #2c2631}.push-detail{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;margin-top:12px;background:#0b090d;border:1px solid #2c2631;border-radius:12px}.push-detail span{font-size:11px;color:var(--muted)}.feature-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #2c2631}.mobile-nav{display:none}dialog{border:1px solid var(--stroke);border-radius:22px;background:#120e15;color:#fff;box-shadow:0 30px 90px rgba(0,0,0,.58);padding:0;width:min(590px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}dialog::backdrop{background:rgba(3,2,4,.78);backdrop-filter:blur(8px)}.modal-form{padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h3{font-size:24px;margin:4px 0 14px}.close-btn{width:36px;height:36px;border-radius:11px;font-size:23px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:7px;background:#09070a;padding:5px;border-radius:13px;margin-bottom:14px}.segmented label input{display:none}.segmented span{display:block;text-align:center;padding:9px;border-radius:9px;color:var(--muted);cursor:pointer}.segmented input:checked+span{background:linear-gradient(90deg,rgba(255,46,93,.25),rgba(154,77,255,.22));color:#fff}.modal-form>label,.form-row label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px;margin-bottom:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkline{flex-direction:row!important;align-items:center}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:5px}.danger-btn{border:1px solid rgba(255,89,100,.42);border-radius:13px;background:rgba(255,89,100,.09);color:#ff8d96;font-weight:800;padding:12px 16px;cursor:pointer}.hidden{display:none!important}.toast{position:fixed;right:22px;bottom:22px;background:#211a25;border:1px solid #3b3142;color:#fff;padding:12px 16px;border-radius:13px;box-shadow:var(--shadow);transform:translateY(80px);opacity:0;transition:.3s;z-index:99}.toast.show{transform:translateY(0);opacity:1}.empty{padding:26px 12px;text-align:center;color:var(--muted);width:100%}.reveal{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}.reveal:nth-child(2){animation-delay:.04s}.reveal:nth-child(3){animation-delay:.08s}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:1100px){.dashboard-top-grid{grid-template-columns:1fr}.grocery-catalog{grid-template-columns:repeat(4,minmax(0,1fr))}.recurring-grid{grid-template-columns:1fr}.grocery-layout{grid-template-columns:1fr}.family-grid,.profile-grid,.admin-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:84px minmax(0,1fr)}.sidebar{padding:24px 12px}.brand>div:last-child,.nav-item span,.sidebar-footer small{display:none}.brand{padding-left:8px}.nav-item{justify-content:center;font-size:20px}}
@media(max-width:700px){html{font-size:15px}body{padding-bottom:calc(82px + env(safe-area-inset-bottom));background:var(--bg)}.app-shell{display:block}.sidebar{display:none}.main{padding:18px 14px 26px;max-width:none}.topbar{margin-bottom:14px}.topbar h1{font-size:clamp(25px,8.2vw,32px);max-width:270px}.eyebrow{font-size:9px}.icon-btn{width:40px;height:40px}.avatar-btn{width:41px;height:41px}.finance-marquee{margin-left:-14px;margin-right:-14px;padding:9px 0}.marquee-item{font-size:10px}.dashboard-top-grid{gap:12px;margin-bottom:12px}.bento-card{border-radius:19px;padding:16px}.card-head{margin-bottom:12px}.card-head h3,.bento-card h3{font-size:17px}.category-card{flex-basis:78%;min-height:112px}.upcoming-card{flex-basis:86%;min-height:112px}.hero{min-height:206px;margin-bottom:12px}.hero h2{font-size:clamp(38px,12vw,50px)}.hero p{font-size:13px;max-width:76%}.orb-a{right:-45px;top:-45px;width:160px;height:160px}.orb-b{right:18%;width:115px;height:115px}.metrics-grid{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -14px 12px;padding:0 14px}.metrics-grid::-webkit-scrollbar{display:none}.metrics-grid .metric{flex:0 0 78%;scroll-snap-align:start;min-height:105px}.metric strong{font-size:21px}.quick-strip{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:12px}.quick-strip-copy{min-width:0}.quick-actions-scroll{width:100%}.chart-card{min-height:345px}.timeline-at-end{margin-bottom:0}.section-head{align-items:flex-start;flex-direction:column;gap:12px}.section-head h2{font-size:clamp(28px,9vw,38px)}.section-head p{font-size:13px}.filters{display:flex;overflow-x:auto;gap:8px;padding:10px;margin-bottom:12px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filters select{flex:0 0 155px}.filters input{flex:0 0 min(260px,78vw)}.reminder-inline{grid-template-columns:minmax(0,1fr) 96px}.reminder-inline .primary{grid-column:1/3}.fixed-item{align-items:flex-start;flex-wrap:wrap}.fixed-item b{margin-left:auto}.status-pill{max-width:150px;overflow:hidden;text-overflow:ellipsis}.table-card{padding:6px}.tx-item{align-items:flex-start;flex-wrap:wrap;padding:12px 8px}.tx-item .grow{min-width:calc(100% - 55px)}.tx-value{margin-left:51px;text-align:left;min-width:0}.tx-actions{margin-left:auto}.grocery-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.food-3d{min-height:94px;border-radius:16px}.food-emoji{font-size:33px}.inline-form{grid-template-columns:1fr}.grocery-summary{min-height:300px}.profile-card{grid-template-columns:80px 1fr}.profile-card form{grid-column:1/3}.form-row{grid-template-columns:1fr}.modal-form{padding:16px}.modal-actions{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,#120e15 24%);padding-top:20px}.mobile-nav{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:66px;border:1px solid var(--stroke);border-radius:21px;display:grid;grid-template-columns:repeat(5,1fr);z-index:50;padding:5px}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:14px;font-size:17px}.mobile-nav-item span{font-size:9px}.mobile-nav-item.active{background:linear-gradient(135deg,rgba(255,46,93,.22),rgba(154,77,255,.13));color:#fff}.toast{left:14px;right:14px;bottom:calc(90px + env(safe-area-inset-bottom))}}
@media(max-width:390px){.main{padding-left:11px;padding-right:11px}.finance-marquee{margin-left:-11px;margin-right:-11px}.bento-card{padding:14px}.category-card{flex-basis:84%}.upcoming-card{flex-basis:90%}.grocery-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-grid{margin-left:-11px;margin-right:-11px;padding-left:11px;padding-right:11px}.metrics-grid .metric{flex-basis:84%}.topbar h1{font-size:25px}.hero h2{font-size:40px}.hero p{max-width:82%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.marquee-track{animation:none}.reveal{animation:none!important}}
.upcoming-card{color:#fff;text-align:left;font:inherit;cursor:pointer}.upcoming-card:focus-visible,.tx-item:focus-visible,.food-3d:focus-visible,.quick-pill:focus-visible,.market-tab:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.snap-carousel,.metrics-grid,.quick-actions-scroll,.filters{overscroll-behavior-inline:contain}
.auth-gate{position:fixed;inset:0;z-index:9999;display:none;place-items:center;padding:18px;background:radial-gradient(circle at 80% 10%,rgba(154,77,255,.22),transparent 30%),radial-gradient(circle at 10% 90%,rgba(255,46,93,.18),transparent 30%),rgba(5,3,6,.96);backdrop-filter:blur(18px)}.auth-gate.show{display:grid}.auth-card{width:min(430px,100%);padding:28px!important}.auth-brand{margin-bottom:22px}.auth-card h2{font-size:clamp(27px,8vw,38px);line-height:1.02;margin:0 0 10px}.auth-copy{color:var(--muted);line-height:1.5;margin:0 0 20px}.auth-card form{display:grid;gap:10px}.auth-card #authSignupFields{display:grid;gap:10px}.auth-card .primary{width:100%;margin-top:4px}.auth-toggle{width:100%;margin-top:12px;text-align:center}.auth-message{min-height:21px;color:var(--muted);font-size:12px;margin-top:12px;text-align:center}.auth-message.error{color:#ff7b91}.auth-locked{overflow:hidden}#cloudStatus.ok{color:#87efb2}.avatar-btn img{width:100%;height:100%;object-fit:cover;border-radius:inherit}@media(max-width:700px){.auth-card{padding:22px!important}.auth-card h2{font-size:30px}}
.auth-gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(255,46,93,.18),transparent 30%),radial-gradient(circle at 80% 80%,rgba(154,77,255,.15),transparent 32%),#050306}.auth-card{width:min(480px,100%);padding:28px}.auth-brand{margin-bottom:24px}.auth-card h1{font-size:clamp(28px,7vw,42px);line-height:.98;margin:0 0 12px}.auth-card>p{color:var(--muted);line-height:1.55;margin:0 0 20px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:#09070a;border-radius:14px;margin-bottom:15px}.auth-tabs button{padding:10px;border-radius:10px;color:var(--muted)}.auth-tabs button.active{background:linear-gradient(90deg,rgba(255,46,93,.25),rgba(154,77,255,.2));color:#fff}.auth-card form{display:grid;gap:11px}.auth-card label{display:grid;gap:5px;color:var(--muted);font-size:12px}.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.14em;margin:18px 0 10px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#2c2631}.invite-accept-row{display:grid;grid-template-columns:1fr auto;gap:8px}.invite-accept-row input{text-transform:uppercase;letter-spacing:.16em}.busy:after{content:"";position:fixed;inset:0;z-index:300;background:rgba(5,3,6,.35);backdrop-filter:blur(1px);cursor:progress}.member-row,.admin-user{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #2c2631}.member-row:last-child,.admin-user:last-child{border-bottom:0}.admin-features{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:7px}.mini-feature{font-size:10px;color:var(--muted);display:flex;gap:5px;align-items:center}.grocery-price-edit{width:88px;padding:8px 9px}.profile-photo{background-position:center;background-repeat:no-repeat}.sidebar-footer .sync-dot{background:#49e6b2;box-shadow:0 0 14px rgba(73,230,178,.7)}
@media(max-width:700px){.auth-gate{padding:12px}.auth-card{padding:20px}.auth-card h1{font-size:32px}.invite-accept-row{grid-template-columns:1fr}.admin-user{align-items:flex-start}.admin-user>.switch{margin-left:auto}.grocery-price-edit{width:74px}}


/* GabriConta 4.2 — mobile fluido, moeda BRL e feedback tátil */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:none}
body{touch-action:pan-y pinch-zoom;-webkit-tap-highlight-color:transparent}
button,.nav-item,.mobile-nav-item,.quick-pill,.market-tab,.food-3d,.mini-btn,.primary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.nav-item,.mobile-nav-item,.quick-pill,.market-tab,.mini-btn,.primary,.icon-btn,.avatar-btn{min-height:44px;min-width:44px}
.nav-item,.mobile-nav-item{position:relative;overflow:hidden;isolation:isolate}
.nav-item:after,.mobile-nav-item:after{content:"";position:absolute;inset:50%;border-radius:999px;background:rgba(255,255,255,.16);opacity:0;transform:scale(0);pointer-events:none;z-index:-1}
.menu-tap:after{animation:menuRipple .28s ease-out}.menu-tap{animation:menuPress .28s cubic-bezier(.2,.8,.2,1)}
@keyframes menuRipple{0%{inset:50%;opacity:.7;transform:scale(0)}100%{inset:-35%;opacity:0;transform:scale(1)}}
@keyframes menuPress{0%{transform:scale(1)}45%{transform:scale(.94)}100%{transform:scale(1)}}
.currency-input{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.single-column{grid-template-columns:1fr!important}
.form-note{display:flex;align-items:center;justify-content:center;gap:4px;min-height:44px;padding:9px 11px;border:1px dashed #3a3040;border-radius:12px;color:var(--muted);font-size:11px;text-align:center}
.profile-settings-card{display:flex;flex-direction:column;gap:13px}.setting-label{display:grid;gap:6px;color:var(--muted);font-size:12px}.setting-label input{background:#0c090e;border:1px solid var(--stroke);border-radius:11px;color:#fff;padding:11px 12px;outline:none}.profile-reminder-row{display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:end}.toggle-row.compact{margin:0;padding:9px 0}.settings-divider{height:1px;background:var(--stroke);margin:3px 0}.currency-setting{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke)}.currency-setting span{color:var(--muted);font-size:12px}.currency-setting strong{font-size:13px;text-align:right}.market-total-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;margin:5px 0 12px}.market-total-breakdown>div{padding:11px;border-radius:14px;background:#0d0a10;border:1px solid #2c2632}.market-total-breakdown span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.market-total-breakdown strong{display:block;margin-top:5px;font-size:14px}.market-icon-3d{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:17px;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.22),transparent 24%),linear-gradient(145deg,#302639,#120e17);border:1px solid #44374c;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -8px 16px rgba(0,0,0,.35),0 10px 18px rgba(0,0,0,.28),0 0 18px rgba(154,77,255,.08);transform:perspective(120px) rotateX(5deg) rotateY(-5deg);transition:transform .18s ease,filter .18s ease}.market-icon-3d>span{font-size:28px;line-height:1;filter:drop-shadow(0 6px 5px rgba(0,0,0,.42))}.food-3d:hover .market-icon-3d,.food-3d:active .market-icon-3d{transform:perspective(120px) rotateX(0) rotateY(0) translateY(-2px);filter:brightness(1.08)}.catalog-icon{width:54px;height:54px;margin:auto}.catalog-icon>span{font-size:31px}.list-icon{width:44px;height:44px;border-radius:15px}.list-icon>span{font-size:25px}.grocery-state{width:38px;height:38px;flex:0 0 auto;border:1px solid #3b3341;border-radius:12px;background:#17121b;color:#fff;font-size:18px;cursor:pointer}.grocery-item.done .market-icon-3d{filter:saturate(.65);opacity:.72}.grocery-item.done .grocery-state{background:linear-gradient(145deg,rgba(62,227,193,.28),rgba(154,77,255,.16));border-color:rgba(62,227,193,.45)}.grocery-price-edit{width:118px;text-align:right}.avatar-btn{padding:0;background:linear-gradient(145deg,var(--pink),var(--purple));box-shadow:0 7px 22px rgba(154,77,255,.2)}.avatar-btn img{display:block;width:100%;height:100%;object-fit:cover}.avatar-btn img[hidden]{display:none}.avatar-btn span[hidden]{display:none}
@media(pointer:coarse){.nav-item:hover,.tx-item:hover,.primary:hover{transform:none}.food-3d:hover .market-icon-3d{transform:perspective(120px) rotateX(5deg) rotateY(-5deg)}}
@media(max-width:700px){
  html{font-size:15px}body{width:100%;max-width:100%;overflow-x:hidden}
  input,select,textarea{font-size:16px!important;line-height:1.3}
  .main{width:100%;overflow:clip}
  .topbar{position:relative;transform:none!important}.top-actions{flex:0 0 auto}.topbar h1{max-width:min(65vw,270px)}
  .profile-reminder-row{grid-template-columns:1fr}.market-total-breakdown{grid-template-columns:1fr 1fr}
  .grocery-item{display:grid;grid-template-columns:44px 38px minmax(0,1fr) auto;gap:8px;align-items:center}.grocery-item .grow{grid-column:3/5}.grocery-price-edit{grid-column:3/4;width:100%;min-width:0;text-align:left}.grocery-item [data-gdel]{grid-column:4/5;grid-row:2}
  .mobile-nav{transform:none!important;will-change:auto}.mobile-nav-item{min-height:54px}
  dialog{max-width:calc(100vw - 18px);width:calc(100vw - 18px);max-height:calc(100dvh - 18px);overscroll-behavior:contain}
}
@media(max-width:390px){.market-total-breakdown{grid-template-columns:1fr}.grocery-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* GabriConta v5 — agenda, família visual e gestos mobile */
.section-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.family-primary{background:linear-gradient(135deg,#7d5cff,#ff2e5d)}.market-primary{background:linear-gradient(135deg,#19a974,#3ee3c1);color:#06140f}.member-filters{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.member-filters::-webkit-scrollbar{display:none}.member-filters.compact{background:transparent;border:0;box-shadow:none;padding:8px 0 0;margin:0}.filter-label{font-size:11px;color:var(--muted);white-space:nowrap}.member-filter{border:1px solid #332b39;background:#0d0a10;color:#aaa2b0;border-radius:15px;padding:5px 9px;min-width:58px;display:grid;place-items:center;gap:3px;cursor:pointer;transition:.18s}.member-filter>img,.member-filter>span,.all-people{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;object-fit:cover;background:linear-gradient(145deg,#2d2533,#17121b);border:1px solid #4a3d52;font-weight:850}.member-filter small{font-size:9px;letter-spacing:0;color:inherit}.member-filter.active{color:#fff;border-color:rgba(192,92,255,.72);background:linear-gradient(145deg,rgba(154,77,255,.2),rgba(255,46,93,.1));box-shadow:0 0 0 2px rgba(154,77,255,.08)}.person-avatar{display:grid;place-items:center;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,var(--purple),var(--pink));font-weight:900;color:#fff;flex:0 0 auto}.person-avatar img{width:100%;height:100%;object-fit:cover}.person-avatar.sm{width:36px;height:36px;font-size:12px}.person-avatar.xs{width:28px;height:28px;font-size:10px}.paid-by{display:block;color:#64e7bd!important;font-style:normal!important;font-size:10px!important;margin-top:4px}.pay-action{min-width:112px}.pay-action.paid{border-color:rgba(62,227,193,.45);color:#78efc8;background:rgba(62,227,193,.08)}.fab{position:fixed;right:clamp(18px,4vw,40px);bottom:88px;width:58px;height:58px;border-radius:20px;border:0;color:#fff;font-size:30px;font-weight:400;display:grid;place-items:center;cursor:pointer;z-index:35;box-shadow:0 18px 40px rgba(0,0,0,.38);transition:.18s}.fab:active{transform:scale(.92)}.fab-finance{background:linear-gradient(145deg,var(--purple),var(--pink))}.fab-task{background:linear-gradient(145deg,#2979ff,#9a4dff)}body:not(:has(#transactions.active-view)) .fab-finance,body:not(:has(#tasks.active-view)) .fab-task{display:none}.grocery-group{display:grid;gap:8px}.grocery-group+.grocery-group{margin-top:22px}.grocery-group h4{margin:0 0 3px;color:#cfc8d4;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.grocery-group.bought h4{color:#7e7884}.grocery-group.bought .grocery-item{opacity:.76}.empty.compact{padding:12px}.agenda-toolbar{margin-bottom:16px}.agenda-toolbar-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.agenda-toolbar-top strong{display:block;margin-top:5px}.agenda-toolbar input{background:#0c090e;border:1px solid var(--stroke);border-radius:12px;color:#fff;padding:10px 12px}.week-strip{gap:8px;padding-top:14px}.week-day{flex:1 0 64px;min-height:80px;border:1px solid #302936;background:#0d0a10;color:#aaa2b0;border-radius:18px;display:grid;place-items:center;gap:1px;padding:8px;scroll-snap-align:start;cursor:pointer;position:relative}.week-day span{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.week-day strong{font-size:19px;color:#fff}.week-day em{position:absolute;right:7px;top:6px;font-style:normal;font-size:9px;color:#fff;background:var(--pink);border-radius:99px;padding:1px 5px}.week-day.active{border-color:rgba(154,77,255,.7);background:linear-gradient(150deg,rgba(154,77,255,.24),rgba(255,46,93,.1));box-shadow:inset 0 1px rgba(255,255,255,.08),0 8px 24px rgba(154,77,255,.12)}.agenda-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.55fr);gap:16px}.smart-task-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:7px}.smart-task-form input,.modal-form textarea{background:#0c090e;border:1px solid var(--stroke);border-radius:12px;color:#fff;padding:11px 12px;outline:none}.quick-reminder-note{color:var(--muted);font-size:10px;margin:0 0 14px}.task-list{display:grid;gap:8px}.task-item{display:flex;align-items:center;gap:11px;padding:12px 12px 12px 10px;border:1px solid #2d2633;border-left-width:4px;border-radius:15px;background:#100d13;touch-action:pan-y;transition:.2s}.task-item.priority-high{border-left-color:#ff5964}.task-item.priority-medium{border-left-color:#ffd65c}.task-item.priority-low{border-left-color:#5da8ff}.task-item.completed{opacity:.66}.task-item.completed strong{text-decoration:line-through;color:#918a98}.task-check{width:36px;height:36px;border-radius:50%;border:2px solid #574b61;background:transparent;color:#fff;font-weight:950;font-size:18px;cursor:pointer;flex:0 0 auto}.task-item.completed .task-check{background:linear-gradient(145deg,#19a974,#3ee3c1);border-color:#3ee3c1;color:#05140f;animation:checkPop .28s ease}.task-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-title-line strong{font-size:13px}.task-item .grow>span,.task-item .grow>em{display:block;color:var(--muted);font-size:10px;font-style:normal;margin-top:4px}.task-source{font-size:8px!important;text-transform:uppercase;letter-spacing:.1em;background:#241e29;border:1px solid #38303f;padding:3px 6px;border-radius:99px;margin:0!important}.both-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#211a27;color:#d3a8ff}.agenda-summary{height:max-content;position:sticky;top:22px}.agenda-summary h2{font-size:52px;margin:8px 0 12px;letter-spacing:-.06em}.task-progress{height:9px;border-radius:99px;background:#231d29;overflow:hidden}.task-progress span{height:100%;display:block;width:0;background:linear-gradient(90deg,#2979ff,#9a4dff,#ff2e5d);transition:width .35s ease}.agenda-summary p{color:var(--muted);font-size:12px}.agenda-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#b7b0bc;font-size:10px;margin:18px 0}.priority-dot{width:8px;height:8px;border-radius:50%}.priority-dot.high{background:#ff5964}.priority-dot.medium{background:#ffd65c}.priority-dot.low{background:#5da8ff}.full{width:100%}.invite-profile-btn{border-color:rgba(154,77,255,.48);color:#d8b8ff}dialog textarea{width:100%;resize:vertical}body.shopping-mode #grocery .section-head,body.shopping-mode #marketTabs,body.shopping-mode #groceryCatalog,body.shopping-mode .catalog-divider{display:none}body.shopping-mode #grocery .grocery-layout{grid-template-columns:1fr minmax(240px,320px)}body.shopping-mode #grocery .grocery-summary{position:sticky;top:12px}body.shopping-mode .grocery-item{min-height:70px}.shopping-mode .grocery-state{width:46px;height:46px;border-radius:50%;font-size:22px}@keyframes checkPop{0%{transform:scale(.7)}65%{transform:scale(1.18)}100%{transform:scale(1)}}
@media(max-width:900px){.agenda-grid{grid-template-columns:1fr}.agenda-summary{position:static}.tx-item{align-items:flex-start;flex-wrap:wrap}.tx-actions{width:100%;justify-content:flex-end}.pay-action{min-width:0}.fab{bottom:82px}}
@media(max-width:700px){.mobile-nav{grid-template-columns:repeat(6,1fr)!important}.mobile-nav-item{font-size:16px}.mobile-nav-item span{font-size:8px}.section-actions{width:100%;justify-content:stretch}.section-actions>*{flex:1}.agenda-toolbar{padding:16px}.agenda-grid{gap:10px}.week-day{flex-basis:58px;min-height:72px}.smart-task-form{grid-template-columns:1fr}.smart-task-form .primary{width:100%}.task-list-card{padding:16px}.task-item{padding:11px 9px}.tx-item>.person-avatar.sm{width:32px;height:32px}.fab{right:16px;bottom:78px;width:54px;height:54px;border-radius:18px}.member-filters{border-radius:16px}.shopping-mode .main{padding-bottom:150px}}

#transactions .primary,.fab-finance{background:linear-gradient(135deg,#3f68ff,#9a4dff)}#grocery .primary{background:linear-gradient(135deg,#1aa66f,#3ee3c1);color:#06150f}.danger-btn{color:#ff6a74!important}
@media(max-width:700px){.grocery-item{grid-template-columns:44px 38px minmax(0,1fr) 28px auto!important}.grocery-item .grow{grid-column:3/4!important}.grocery-item>.person-avatar{grid-column:4/5;grid-row:1}.grocery-price-edit{grid-column:3/5!important;grid-row:2;width:100%!important}.grocery-item [data-gdel]{grid-column:5/6!important;grid-row:2!important}}

/* GabriConta v5.6 — navegação responsiva, listas expansíveis e convites */
html {scroll-behavior:auto!important}
button,a,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
button.gc-press,.market-product-toggle.gc-press{transform:scale(.97)!important;filter:brightness(1.14)!important}
button:active,summary:active{filter:brightness(1.13)}
.view{animation:none!important;transition:none!important}
.mobile-nav{position:fixed!important;left:50%!important;bottom:calc(10px + env(safe-area-inset-bottom))!important;transform:translateX(-50%)!important;width:min(96vw,540px)!important;border-radius:32px!important;display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;padding:10px 8px!important;gap:2px!important;background:rgba(18,15,22,.98)!important;border:1px solid rgba(255,255,255,.13)!important;box-shadow:0 15px 35px rgba(0,0,0,.35)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;z-index:50}
.mobile-nav-item{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:24px!important;color:#d7d0da!important;font-weight:700!important;min-width:0!important;min-height:56px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;padding:2px 0!important;transition:none!important;transform:none!important}
.mobile-nav-item .nav-orb{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#292630;color:#eee6f0;transition:background .09s ease,transform .09s ease!important}
.mobile-nav-item .nav-orb svg{width:21px;height:21px}
.mobile-nav-item .nav-label{font-size:9px;line-height:1.1;letter-spacing:.01em;white-space:nowrap;opacity:.9}
.mobile-nav-item.active .nav-orb{background:linear-gradient(135deg,#ff9f45,#f24c76)!important;color:#fff!important;box-shadow:0 4px 18px rgba(242,76,118,.25);transform:scale(1.075)!important}
.mobile-nav-item.active .nav-label{color:#fff}
.mobile-nav-item.gc-press .nav-orb{transform:scale(.91)!important}
@media(max-width:400px){.mobile-nav{padding:8px 5px!important}.mobile-nav-item .nav-orb{width:39px;height:39px}.mobile-nav-item .nav-label{font-size:8px}}
.app-back-btn{border-radius:14px;border:1px solid #3b3042;background:#19141c;color:#fff;font-size:30px;line-height:1;width:44px;height:44px;min-width:44px;box-shadow:none;transition:none}
.app-back-btn[hidden]{display:none}
.topbar-left{display:flex;gap:10px;align-items:center;min-width:0}.topbar-left h1{margin:0}
.market-product{border:1px solid rgba(255,255,255,.10);border-radius:15px;margin:0 0 8px;background:rgba(255,255,255,.025);overflow:hidden}
.grocery-catalog{display:block!important;max-height:450px;overflow:auto;overscroll-behavior:contain}
.market-product-toggle{display:flex;align-items:center;text-align:left;gap:12px;width:100%;min-height:66px;background:transparent;border:0;color:#fff;padding:10px 12px}
.market-product-name{font-size:14px;font-weight:750;flex:1;min-width:0}.market-product-name small{display:block;color:#aaa2b2;margin-top:4px;font-size:11px;font-weight:450}
.product-plus{font-size:24px;color:#f5a26c;width:38px;height:38px;display:grid;place-items:center;background:rgba(255,159,69,.1);border-radius:50%}
.market-product-toggle[aria-expanded=true] .product-plus{transform:rotate(45deg);background:#f57965;color:#fff}
.market-product-details{padding:8px 15px 15px;border-top:1px solid rgba(255,255,255,.12)}
.market-product-details label{font-size:12px;display:block;margin:8px 0;color:#d4c6d9}.market-product-details input,.market-product-details textarea{width:100%;margin-top:6px}
.market-product-details .catalog-add{width:100%;background:linear-gradient(130deg,#149c71,#38d6a5);color:#032014;min-height:46px;margin-top:8px}
.grocery-item-details{font-size:12px;padding:3px 0}.grocery-item-details summary{color:#f5af81;font-size:12px;list-style:none;display:inline-flex;align-items:center;min-height:32px}.grocery-item-details summary::-webkit-details-marker{display:none}.grocery-item-details p{font-size:12px;margin:2px 0 8px;color:#bdb0c5}
.invite-card label{display:block;color:#c9bfd0;margin:9px 0;font-size:12px}.invite-card label input{width:100%;margin-top:6px}
.invite-submit-actions{display:grid;grid-template-columns:1fr;gap:9px}.invite-submit-actions button{min-height:48px}.invite-email-send{border:1px solid rgba(166,126,248,.38);background:rgba(120,87,188,.13);color:#fff}
.invite-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.invite-actions>*{flex:1;min-height:45px;display:flex;align-items:center;justify-content:center;padding:9px;text-align:center}.invite-url{display:block;overflow-wrap:anywhere;font-size:12px;color:#b996ec}
.invite-result-hint{font-size:12px;color:#bbb3c1}.email-success{color:#73e2ad}.email-warning{color:#f9b367}
.auth-email-code input{width:100%;margin:6px 0}.signup-intro{color:#ecb5c8}.invite-banner{padding:10px 12px;border:1px solid rgba(113,232,170,.38);border-radius:12px;background:rgba(23,140,90,.1)}
@media(max-width:700px){.mobile-nav{contain:none!important}.main{padding-bottom:100px!important}.topbar{min-height:50px}.topbar-left .eyebrow{display:none}.topbar-left h1{font-size:clamp(17px,4.7vw,24px)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}}
@media(prefers-reduced-motion:reduce){.mobile-nav-item,.nav-orb,button{transition:none!important;animation:none!important}}

.email-note{font-size:11px!important;color:#d6a46d!important;margin:12px 0!important}


/* GabriConta 5.7: lightweight generative wave card, inspired by the provided visual. */
#balanceHero.hero {
  isolation: isolate;
  overflow: hidden;
  min-height: 264px;
  background: linear-gradient(104deg, #1a0e1c 0%, #0b0712 52%, #1b071b 100%);
  border-color: #493047;
}
#balanceHero .hero-art {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg, transparent 16%, rgba(0,0,0,.35) 42%, #000 68%);
  mask-image: linear-gradient(90deg, transparent 16%, rgba(0,0,0,.35) 42%, #000 68%);
}
#balanceHero .hero-art::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 83% 65%, rgba(216, 31, 153, .20), transparent 47%);
}
#balanceHero .hero-waves {
  position: absolute;
  inset: -8% -4% -8% auto;
  height: 116%;
  width: 97%;
  overflow: visible;
  transform: translateZ(0);
}
#balanceHero .gc-wave-logo {
  opacity: .16;
  filter: saturate(1.5);
  mix-blend-mode: screen;
}
#balanceHero .gc-wave-depth,
#balanceHero .gc-wave-upper,
#balanceHero .gc-wave-lower {
  transform-box: fill-box;
  transform-origin: center;
  will-change: transform;
}
#balanceHero .gc-wave-depth { animation: gcWaveDepth 14s ease-in-out infinite alternate; }
#balanceHero .gc-wave-upper { animation: gcWaveUpper 12s ease-in-out infinite alternate; }
#balanceHero .gc-wave-lower { animation: gcWaveLower 13.5s ease-in-out infinite alternate; }
@keyframes gcWaveDepth {
  from { transform: translate3d(-9px, 5px, 0) scale(1); }
  to { transform: translate3d(11px, -9px, 0) scale(1.025); }
}
@keyframes gcWaveUpper {
  from { transform: translate3d(8px, -6px, 0); }
  to { transform: translate3d(-10px, 10px, 0); }
}
@keyframes gcWaveLower {
  from { transform: translate3d(-8px, 7px, 0); }
  to { transform: translate3d(12px, -8px, 0); }
}
#balanceHero .hero-light-pulse {
  position: absolute;
  top: -45%;
  bottom: -45%;
  left: 0;
  width: 25%;
  opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255,119,206,.13) 30%, rgba(255,255,255,.34) 51%, rgba(207,92,255,.17) 67%, transparent);
  transform: translate3d(-180%, 0, 0) rotate(20deg);
  pointer-events: none;
}
#balanceHero.is-updating .hero-light-pulse { animation: gcLightSweep 1s ease-out 1; }
@keyframes gcLightSweep {
  0% { transform: translate3d(-180%, 0, 0) rotate(20deg); opacity: 0; }
  20% { opacity: .68; }
  84% { opacity: .55; }
  100% { transform: translate3d(545%, 0, 0) rotate(20deg); opacity: 0; }
}
#balanceHero .hero-copy,
#balanceHero #quickAdd { position: relative; z-index: 2; }
#balanceHero .hero-copy { max-width: min(70%, 660px); }
#balanceHero .hero-copy h2 {
  color: #fff;
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 3px 22px rgba(0,0,0,.38);
  overflow-wrap: anywhere;
}
#balanceHero #balanceValue {
  color: #f4eff7;
  text-shadow: none;
}
#balanceHero #balanceValue[data-balance-state="negative"] {
  color: #ff526d;
  text-shadow: 0 0 10px rgba(255,82,109,.38), 0 0 24px rgba(255,82,109,.2);
}
#balanceHero #balanceValue[data-balance-state="positive"] {
  color: #39ff88;
  text-shadow: 0 0 10px rgba(57,255,136,.35), 0 0 24px rgba(57,255,136,.18);
}
#balanceStatus.balance-status-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
@media (forced-colors: active) {
  #balanceHero #balanceValue[data-balance-state] { color: CanvasText; text-shadow: none; }
}
#balanceHero .hero-copy p { max-width: 540px; }
#balanceHero #quickAdd { max-width: 100%; }
#balanceHero .hero-copy small { letter-spacing: .18em; color: #c6b9cb; font-weight: 800; }
@media (max-width: 700px) {
  #balanceHero.hero { min-height: 246px; padding: 17px; }
  #balanceHero .hero-copy { max-width: 100%; }
  #balanceHero .hero-copy h2 { font-size: clamp(37px, 10.6vw, 52px); max-width: 100%; }
  #balanceHero .hero-copy p { max-width: 77%; font-size: 13px; line-height: 1.45; }
  #balanceHero .hero-waves { width: 135%; height: 120%; right: -29%; top: -10%; }
  #balanceHero .hero-art { -webkit-mask-image: linear-gradient(90deg, transparent 26%, rgba(0,0,0,.55) 63%, #000 88%); mask-image: linear-gradient(90deg, transparent 26%, rgba(0,0,0,.55) 63%, #000 88%); }
}
@media (max-width: 385px) {
  #balanceHero .hero-copy h2 { font-size: clamp(33px, 10.2vw, 42px); }
  #balanceHero #quickAdd { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  #balanceHero .gc-wave-depth,
  #balanceHero .gc-wave-upper,
  #balanceHero .gc-wave-lower,
  #balanceHero .hero-light-pulse { animation: none !important; will-change: auto; }
}

/* GabriConta v5.9 - tela de gastos estilo dashboard */
.tx-pro-layout{display:grid;gap:14px;margin-bottom:16px}.tx-overview-card{padding:22px 22px 18px;background:linear-gradient(145deg,#f2f3f7,#fbfbfe);color:#2d3443;border-color:#dce1f0;box-shadow:0 18px 40px rgba(6,10,40,.10)}.tx-overview-card small,.tx-overview-card h3,.tx-overview-card strong,.tx-overview-card span,.tx-overview-card b{color:inherit}.tx-overview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.tx-overview-head h3{margin:4px 0 0;font-size:18px}.tx-overview-head .primary{background:linear-gradient(135deg,#5b66ff,#7f4dff);box-shadow:none}.tx-overview-balance span{display:block;color:#717a8f;font-size:14px}.tx-overview-balance strong{display:block;font-size:clamp(36px,5vw,56px);line-height:1;letter-spacing:-.05em;margin:8px 0 18px}.tx-overview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tx-metric-head,.tx-metric-values,.tx-period-row,.tx-author,.tx-desc,.tx-date,.tx-money{display:flex}.tx-metric{display:grid;gap:8px}.tx-metric-head{align-items:center;justify-content:space-between;gap:8px}.tx-metric-head strong{font-size:17px}.tx-metric-head b{font-size:15px}.tx-metric.income .tx-metric-head strong,.tx-metric.income .tx-metric-values b,.tx-metric.income .tx-metric-head b{color:#18b272}.tx-metric.expense .tx-metric-head strong,.tx-metric.expense .tx-metric-values b,.tx-metric.expense .tx-metric-head b{color:#f04a6b}.tx-progress{height:12px;border-radius:999px;background:#dde2ed;overflow:hidden}.tx-progress span{display:block;height:100%;width:0;transition:width .35s ease}.tx-metric.income .tx-progress span{background:linear-gradient(90deg,#17c67b,#19a974)}.tx-metric.expense .tx-progress span{background:linear-gradient(90deg,#ff577c,#ef476f)}.tx-metric-values{justify-content:space-between;gap:14px;color:#707990;font-size:12px;flex-wrap:wrap}.tx-controls-card{padding:14px 16px}.tx-period-row{align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.tx-period-nav{display:flex;align-items:center;gap:10px}.tx-month-btn{width:42px;height:42px;border-radius:50%;background:#fff;color:#616a80;border:1px solid #d6dbeb}.tx-month-pill{border:0;border-radius:999px;padding:12px 20px;min-width:160px;background:linear-gradient(135deg,#5b66ff,#7f4dff);color:#fff;font-weight:800;box-shadow:0 10px 26px rgba(91,102,255,.22)}.tx-pro-filters{margin:0;padding:0;background:transparent}.tx-pro-filters select,.tx-pro-filters input{background:#fff!important;color:#2d3443!important;border:1px solid #d8ddeb!important}.tx-table-shell{padding:0;background:linear-gradient(145deg,#f9faff,#ffffff);border-color:#e2e6f2;box-shadow:0 18px 40px rgba(6,10,40,.08)}.tx-table-head{display:grid;grid-template-columns:120px minmax(280px,2fr) minmax(180px,1.1fr) minmax(130px,.8fr) 170px;gap:16px;padding:18px 20px;border-bottom:1px solid #e7eaf4;color:#6f7789;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.transaction-pro-list{display:grid}.tx-pro-row{display:grid;grid-template-columns:120px minmax(280px,2fr) minmax(180px,1.1fr) minmax(130px,.8fr) 170px;gap:16px;align-items:center;padding:16px 20px;border-bottom:1px solid #edf0f7;cursor:pointer;transition:.18s;background:#fff}.tx-pro-row:last-child{border-bottom:0}.tx-pro-row:hover{background:linear-gradient(90deg,rgba(91,102,255,.04),rgba(127,77,255,.02))}.tx-col{min-width:0}.tx-date,.tx-author,.tx-money{flex-direction:column;gap:4px}.tx-date strong,.tx-author strong,.tx-desc strong,.tx-money strong{display:block;color:#243042}.tx-date span,.tx-author span,.tx-desc span,.tx-money span{display:block;color:#7b8396;font-size:12px;line-height:1.35}.tx-desc{align-items:flex-start;gap:12px}.tx-type-chip{align-self:flex-start;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;letter-spacing:.02em}.tx-type-chip.income{background:rgba(25,169,116,.12);color:#15905f}.tx-type-chip.expense{background:rgba(240,74,107,.12);color:#d93a63}.tx-author{flex-direction:row;align-items:center;gap:12px}.tx-author .person-avatar{width:42px;height:42px;font-size:14px}.tx-money{text-align:right;align-items:flex-end}.tx-money .amount{font-size:17px}.tx-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.tx-actions .mini-btn{background:#fff;border-color:#d6dbee;color:#4d5870}.tx-actions .pay-action.paid{background:rgba(25,169,116,.08);border-color:rgba(25,169,116,.25);color:#138657}.tx-actions .mini-btn:last-child{background:#f5f7ff}.tx-table-shell .empty{padding:28px;color:#6f7789}.tx-pro-layout + .recurring-grid{margin-top:4px}

@media(max-width:1100px){.tx-table-head,.tx-pro-row{grid-template-columns:110px minmax(220px,1.8fr) minmax(160px,1fr) minmax(120px,.8fr) 150px}.tx-overview-balance strong{font-size:44px}}
@media(max-width:900px){.tx-overview-metrics{grid-template-columns:1fr}.tx-period-row{align-items:flex-start}.tx-pro-filters{display:flex;overflow:auto;gap:8px}.tx-pro-filters select,.tx-pro-filters input{flex:0 0 180px}.tx-table-head{display:none}.tx-table-shell{padding:12px}.transaction-pro-list{gap:10px}.tx-pro-row{grid-template-columns:1fr;gap:12px;padding:14px;border:1px solid #e7eaf4;border-radius:18px;box-shadow:0 8px 18px rgba(6,10,40,.05)}.tx-col{display:flex!important;justify-content:space-between;align-items:flex-start;gap:14px}.tx-desc{flex-direction:column}.tx-author,.tx-money,.tx-date{flex-direction:row;align-items:center}.tx-money{text-align:left}.tx-actions{justify-content:flex-start;flex-wrap:wrap}.tx-date::before{content:'Data';font-size:11px;color:#8890a2;font-weight:700}.tx-author::before{content:'Perfil';font-size:11px;color:#8890a2;font-weight:700}.tx-money::before{content:'Valor';font-size:11px;color:#8890a2;font-weight:700}.tx-overview-head{flex-direction:column;align-items:flex-start}.tx-overview-head .primary{width:100%}}
@media(max-width:600px){.tx-month-pill{min-width:0;padding:12px 16px;font-size:14px}.tx-month-btn{width:38px;height:38px}.tx-overview-balance strong{font-size:36px}.tx-metric-values{flex-direction:column;gap:6px}.tx-col{flex-direction:column!important}.tx-date::before,.tx-author::before,.tx-money::before{content:none}.tx-actions .mini-btn{width:100%}}

/* GabriConta v5.9.1 — composição profissional inspirada no layout de referência */
#transactions{--tx-ink:#273247;--tx-muted:#788295;--tx-blue:#6264f6;--tx-border:#e6e9f1}
#transactions .section-head{margin-bottom:14px}
#transactions .section-head p{font-size:13px}
#transactions .member-filters{margin:0 0 16px;padding:9px 13px;background:#17131c;border-color:#302737}
#transactions .member-filter{min-width:74px}
#transactions .member-filter>img,#transactions .member-filter>span{width:36px;height:36px}
#transactions .tx-pro-layout{display:grid;grid-template-columns:minmax(238px,270px) minmax(0,1fr);align-items:start;gap:17px;margin-bottom:18px}
#transactions .tx-sidebar{min-width:0;display:grid;gap:15px}
#transactions .tx-main-area{min-width:0;display:grid;gap:15px}
#transactions .tx-overview-card{margin:0;background:#f8f9fc;border:1px solid #e3e6ef;box-shadow:0 6px 20px rgba(3,9,29,.13);border-radius:18px}
#transactions .tx-overview-head{margin-bottom:15px}
#transactions .tx-overview-head small{color:#7f889e;letter-spacing:.17em}
#transactions .tx-overview-head h3{color:#263146;font-size:19px;letter-spacing:-.02em}
#transactions .tx-overview-head .primary{border-radius:22px;background:linear-gradient(100deg,#5b68ef,#6967fa);padding:11px 15px;font-size:12px;white-space:nowrap}
#transactions .tx-overview-balance>span{color:#747e91;font-size:13px;font-weight:650}
#transactions .tx-overview-balance strong{font-size:clamp(33px,3.6vw,48px);color:#18b87d;margin:7px 0 21px}
#transactions .tx-overview-metrics{gap:28px}
#transactions .tx-metric-head strong{font-size:15px}
#transactions .tx-metric-head b{font-size:12px}
#transactions .tx-metric-values{display:grid;grid-template-columns:1fr;gap:3px;font-size:12px}
#transactions .tx-metric-values span{display:flex;justify-content:space-between;gap:10px}
#transactions .tx-metric-values b{white-space:nowrap}
#transactions .tx-progress{height:9px}
#transactions .tx-controls-card{border-radius:16px;padding:12px 14px;background:#f8f9fc;border-color:#e3e6ef;box-shadow:none}
#transactions .tx-period-row{align-items:center}
#transactions .tx-period-nav{gap:5px}
#transactions .tx-month-btn{width:36px;height:36px;font-size:24px;display:grid;place-items:center;padding:0;line-height:1}
#transactions .tx-month-pill{min-width:130px;padding:10px 15px;font-size:13px;box-shadow:none}
#transactions .tx-pro-filters{min-width:0;display:flex;flex:1;justify-content:flex-end;gap:8px}
#transactions .tx-pro-filters select,#transactions .tx-pro-filters input{flex:0 1 auto;min-width:0;font-size:12px;border-radius:8px!important;padding:9px 11px}
#transactions .tx-pro-filters select{width:122px}
#transactions .tx-pro-filters input{width:clamp(135px,15vw,240px)}
#transactions .tx-table-shell{min-width:0;border-radius:17px;background:#fff;border:1px solid #e2e6ef;box-shadow:0 5px 18px rgba(3,9,29,.09);overflow-x:auto}
#transactions .tx-table-head,#transactions .tx-pro-row{display:grid;grid-template-columns:90px minmax(150px,2fr) minmax(148px,1.3fr) minmax(105px,1fr) 140px;gap:10px;min-width:730px}
#transactions .tx-table-head{padding:14px 15px;align-items:center;background:#f2f4f8;color:#526078;border-bottom:1px solid #e2e5ef;font-size:11px}
#transactions .tx-pro-row{padding:13px 15px;align-items:center;background:#fff;transition:background .14s}
#transactions .tx-pro-row:focus-visible{outline:2px solid #6264f6;outline-offset:-2px}
#transactions .tx-pro-row:hover{background:#f8f9ff}
#transactions .tx-date strong{font-weight:750;font-size:12px}
#transactions .tx-date span{color:#8a93a6}
#transactions .tx-desc{align-items:center;gap:8px}
#transactions .tx-desc strong{font-size:12px;line-height:1.25;overflow-wrap:anywhere}
#transactions .tx-desc span{font-size:10px}
#transactions .tx-type-chip{font-size:9px;min-width:55px;text-align:center;padding:5px 7px}
#transactions .tx-author{gap:8px}
#transactions .tx-author .person-avatar{width:33px;height:33px}
#transactions .tx-author strong{font-size:12px}
#transactions .tx-author span{font-size:10px}
#transactions .tx-money .amount{font-size:13px;white-space:nowrap}
#transactions .tx-actions{justify-content:flex-end;gap:5px}
#transactions .tx-actions .mini-btn{font-size:10px;min-height:35px;padding:6px 8px;white-space:nowrap}
#transactions .tx-actions .pay-action{min-width:0}
#transactions .tx-calendar-card,#transactions .tx-agenda-card{padding:16px 13px;background:#f8f9fc;color:var(--tx-ink);border:1px solid #e4e8f1;border-radius:18px;box-shadow:0 5px 18px rgba(3,9,29,.12)}
#transactions .tx-calendar-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
#transactions .tx-calendar-top small,#transactions .tx-agenda-card small{color:#848da1;font-size:9px;letter-spacing:.14em;font-weight:800}
#transactions .tx-calendar-top h3,#transactions .tx-agenda-card h3{font-size:16px;letter-spacing:-.02em;margin:4px 0 0;color:#303b51}
#transactions .tx-calendar-nav{display:flex;gap:6px}
#transactions .tx-calendar-nav button{width:32px;height:32px;display:grid;place-items:center;background:#fff;border:1px solid #dce0eb;color:#6264f6;border-radius:50%;cursor:pointer;font-size:20px;line-height:1;padding:0}
#transactions .tx-calendar-month{text-align:center;margin:16px 0 10px;color:#525c75;font-size:12px;font-weight:800}
#transactions .tx-calendar-weekdays,#transactions .tx-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
#transactions .tx-calendar-weekdays span{text-align:center;font-size:9px;color:#8992a4;font-weight:700;padding:3px 0 7px}
#transactions .tx-calendar-day{position:relative;border:0;background:transparent;min-width:0;aspect-ratio:1/1.04;border-radius:11px;color:#344055;font-size:11px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;padding:0;transition:background .14s,color .14s,transform .12s}
#transactions .tx-calendar-day.outside{color:#b2bac8}
#transactions .tx-calendar-day.selected{background:#6365f8;color:#fff;box-shadow:0 5px 14px rgba(98,100,248,.26)}
#transactions .tx-calendar-day.today:not(.selected){outline:1px solid #9da6ff;background:#e8eaff}
#transactions .tx-calendar-day:active{transform:scale(.93)}
#transactions .tx-calendar-day:focus-visible{outline:2px solid #6264f6;outline-offset:1px}
#transactions .tx-calendar-dots{height:5px;min-height:5px;display:flex;gap:2px;align-items:center;justify-content:center}
#transactions .tx-calendar-dots b{display:block;border-radius:99px;width:9px;height:3px}
#transactions .tx-calendar-dots .income{background:#1dbb81}
#transactions .tx-calendar-dots .expense{background:#f64c70}
#transactions .tx-calendar-legend{border-top:1px solid #e5e9f1;padding-top:10px;margin-top:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;font-size:10px;color:#69758a}
#transactions .tx-calendar-legend span{display:flex;align-items:center;gap:4px}
#transactions .tx-calendar-legend i{height:7px;width:7px;border-radius:50%;display:block}
#transactions .tx-legend-income{background:#1dbb81}#transactions .tx-legend-expense{background:#f64c70}
#transactions .tx-clear-day{margin-top:8px;width:100%;border:0;background:#eceeff;color:#6264f6;padding:9px 6px;border-radius:10px;font-size:11px;font-weight:800;cursor:pointer}
#transactions .tx-agenda-card h3{margin-bottom:12px}
#transactions .tx-agenda-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #e6e9f2;color:#69758a;font-size:11px}
#transactions .tx-agenda-line:last-child{border-bottom:0;padding-bottom:0}
#transactions .tx-agenda-line strong{color:#303b51;font-size:12px;text-align:right}
#transactions .tx-agenda-line:nth-child(2) strong{color:#e74871}
#transactions .recurring-card{border-color:var(--stroke)}
@media(max-width:1460px){
  #transactions .tx-pro-layout{grid-template-columns:minmax(220px,242px) minmax(0,1fr)}
  #transactions .tx-overview-head .primary{font-size:11px}
  #transactions .tx-pro-filters select{width:110px}
  #transactions .tx-pro-filters input{width:145px}
}
@media(max-width:1180px){
  #transactions .tx-pro-layout{grid-template-columns:220px minmax(0,1fr)}
  #transactions .tx-table-head{display:none}
  #transactions .tx-table-shell{overflow:visible;background:transparent;box-shadow:none;border:0}
  #transactions .transaction-pro-list{display:grid;gap:10px}
  #transactions .tx-pro-row{min-width:0;grid-template-columns: minmax(0,1fr) minmax(0,1fr);gap:12px;padding:13px;border:1px solid #e6eaf1;border-radius:15px;background:#fff;box-shadow:0 4px 12px rgba(3,9,29,.08)}
  #transactions .tx-pro-row .tx-date{grid-column:1;grid-row:1}
  #transactions .tx-pro-row .tx-desc{grid-column:1 / -1;grid-row:2;flex-direction:row;align-items:center}
  #transactions .tx-pro-row .tx-author{grid-column:1;grid-row:3}
  #transactions .tx-pro-row .tx-money{grid-column:2;grid-row:1;display:flex;align-items:flex-end;flex-direction:column}
  #transactions .tx-pro-row .tx-actions{grid-column:1 / -1;grid-row:4;display:flex;justify-content:flex-end}
  #transactions .tx-overview-metrics{gap:18px}
  #transactions .tx-pro-filters{overflow-x:auto;justify-content:flex-start}
}
@media(max-width:900px){
  #transactions .tx-pro-layout{grid-template-columns:1fr;gap:13px}
  #transactions .tx-sidebar{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}
  #transactions .tx-pro-filters select{flex:0 0 124px}
  #transactions .tx-pro-filters input{flex:0 0 170px}
  #transactions .tx-overview-metrics{grid-template-columns:1fr 1fr}
  #transactions .tx-overview-head{flex-direction:row;align-items:center}
  #transactions .tx-overview-head .primary{width:auto}
}
@media(max-width:600px){
  #transactions .tx-sidebar{grid-template-columns:1fr}
  #transactions .tx-overview-card{padding:17px 15px}
  #transactions .tx-overview-head{align-items:flex-start}
  #transactions .tx-overview-head h3{font-size:16px}
  #transactions .tx-overview-head .primary{width:auto;font-size:11px;padding:10px 12px}
  #transactions .tx-overview-balance strong{font-size:38px}
  #transactions .tx-overview-metrics{grid-template-columns:1fr;gap:20px}
  #transactions .tx-metric-head strong{font-size:15px}
  #transactions .tx-metric-values{gap:3px}
  #transactions .tx-controls-card{padding:12px}
  #transactions .tx-period-row{align-items:stretch}
  #transactions .tx-period-nav{justify-content:center}
  #transactions .tx-month-pill{min-width:150px}
  #transactions .tx-pro-filters{width:100%;padding-bottom:2px}
  #transactions .tx-pro-filters select{flex:0 0 122px}
  #transactions .tx-pro-filters input{flex:0 0 170px}
  #transactions .tx-pro-row{grid-template-columns:1fr auto;gap:11px;padding:13px}
  #transactions .tx-pro-row .tx-date{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start}
  #transactions .tx-pro-row .tx-money{grid-column:2;grid-row:1;text-align:right}
  #transactions .tx-pro-row .tx-desc{grid-column:1 / -1;grid-row:2;display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start}
  #transactions .tx-pro-row .tx-author{grid-column:1 / -1;grid-row:3;display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start}
  #transactions .tx-pro-row .tx-actions{grid-column:1 / -1;grid-row:4;display:flex!important;flex-direction:row!important;justify-content:flex-start}
  #transactions .tx-pro-row .tx-actions .mini-btn{width:auto;min-height:38px;flex:1}
  #transactions .tx-calendar-weekdays span{font-size:10px}
  #transactions .tx-calendar-day{font-size:13px}
  #transactions .tx-calendar-card{padding:16px}
}
@media(prefers-reduced-motion:reduce){#transactions .tx-pro-row,#transactions .tx-progress span,#transactions .tx-calendar-day{transition:none!important}}
/* O menu inferior pertence somente a telas pequenas; no desktop usamos a barra lateral. */
@media(min-width:701px){.mobile-nav{display:none!important}}

/* v5.9.2 - logo personalizada */
.logo-mark{padding:0;overflow:hidden;background:linear-gradient(145deg,rgba(255,46,93,.12),rgba(154,77,255,.16));box-shadow:0 10px 26px rgba(0,0,0,.18),0 0 0 1px rgba(255,255,255,.04) inset}
.logo-mark img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.topbar-logo{width:42px;height:42px;border-radius:14px;display:block;box-shadow:0 8px 20px rgba(0,0,0,.22)}
@media(max-width:700px){.topbar-logo{width:34px;height:34px;border-radius:12px}}


/* GabriConta v5.10 — identidade visual / abertura leve do app */
.gc-splash{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;
  background:radial-gradient(ellipse 70% 52% at 55% 60%,rgba(61,21,89,.27),transparent 80%),#08050e;
  overflow:hidden;pointer-events:none;opacity:1;visibility:visible;
  animation:gcSplashLeave .40s ease-out .80s both;contain:layout paint style}
.gc-splash-glow{position:absolute;width:min(70vmin,530px);aspect-ratio:1;border-radius:50%;filter:blur(75px);opacity:.25}
.gc-splash-glow-a{background:#cf176f;left:-22vmin;top:-18vmin}
.gc-splash-glow-b{background:#873bff;right:-23vmin;bottom:-18vmin}
.gc-splash-content{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;text-align:center;
  animation:gcSplashArrive .43s cubic-bezier(.25,.9,.25,1) both}
.gc-splash-logo{width:clamp(112px,28vw,168px);height:auto;aspect-ratio:1;object-fit:cover;border-radius:35px;
  box-shadow:0 16px 65px rgba(0,0,0,.46),0 0 55px rgba(201,44,165,.12)}
.gc-splash-content strong{font-size:clamp(29px,7vw,42px);font-weight:850;letter-spacing:-.04em;color:#fff;margin-top:13px}
.gc-splash-content span{color:#bdb5c4;font-size:clamp(12px,3.3vw,15px);letter-spacing:.045em}
.gc-splash-progress{display:block;width:118px;height:3px;margin-top:23px;overflow:hidden;border-radius:10px;background:#282033;position:relative}
.gc-splash-progress::before{content:'';display:block;height:100%;width:35%;border-radius:inherit;
 background:linear-gradient(90deg,#ff2e70,#a34aff);animation:gcSplashProgress .75s ease-out forwards}
@keyframes gcSplashArrive{from{opacity:0;transform:translateY(9px) scale(.965)}to{opacity:1;transform:none}}
@keyframes gcSplashLeave{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes gcSplashProgress{from{transform:translateX(-110%)}to{transform:translateX(320%)}}
@media(prefers-reduced-motion:reduce){.gc-splash{animation:none!important;opacity:0;visibility:hidden}
.gc-splash-content,.gc-splash-progress::before{animation:none!important}}

/* GabriConta v5.11 — movimento visual, mercado familiar, notificações */
#txMonthBalance.negative{color:#ec355e!important;text-shadow:0 5px 20px rgba(236,53,94,.12)}
.tx-display-icon{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;font-size:24px;background:linear-gradient(150deg,#fff,#ece8fa);border:1px solid #e7e2f3;box-shadow:0 5px 16px rgba(56,44,76,.08)}
.tx-desc{align-items:center!important}
.tx-icon-choice{margin:3px 0 14px;padding:12px;border-radius:16px;background:linear-gradient(145deg,#21162a,#140d1c);border:1px solid #43304f}
.tx-icon-choice-title{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;align-items:center;margin-bottom:12px}.tx-icon-choice-title strong{font-size:13px}.tx-icon-choice-title span{font-size:11px;color:#b7a8c4}
.tx-icon-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;max-height:196px;overflow-y:auto}
.tx-icon-option{border:1px solid #48344e;background:#16101d;border-radius:13px;color:#fff;min-width:0;min-height:54px;display:grid;place-items:center;gap:2px;padding:5px;cursor:pointer;transition:background .13s,transform .13s,border-color .13s}
.tx-icon-option span{font-size:23px}.tx-icon-option small{font-size:8px;letter-spacing:0;font-weight:500;color:#aaa0b0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tx-icon-option.selected{border-color:#e962eb;background:linear-gradient(130deg,#602b87,#63234c);box-shadow:0 0 0 2px rgba(208,93,255,.18)}
.tx-icon-option:active{transform:scale(.93)}
.market-cover{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;min-height:195px;padding:26px clamp(18px,3vw,32px);margin-bottom:16px;border-radius:24px;background:linear-gradient(110deg,#526b7b,#7f99a2 70%,#95a6aa);border:1px solid rgba(250,250,250,.23);isolation:isolate}
.market-cover::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,44,58,.48),transparent 78%);pointer-events:none;z-index:-1}
.market-cover-copy{position:relative;z-index:2;max-width:75%}.market-cover-copy small{display:block;color:#e7f1f7;letter-spacing:.18em;font-size:9px;font-weight:850}.market-cover h2{font-size:clamp(26px,4.5vw,52px);font-weight:500;letter-spacing:-.035em;line-height:1.02;margin:10px 0;color:#fff}.market-cover p{margin:0 0 16px;color:#eef3f4;font-size:13px;max-width:440px}
.market-family-avatars{display:flex;align-items:center;gap:13px;flex-wrap:wrap}.market-person{display:flex;align-items:center;gap:7px;min-height:42px;background:rgba(18,30,38,.24);border:1px solid rgba(255,255,255,.25);border-radius:30px;padding:4px 10px 4px 4px;backdrop-filter:blur(4px)}
.market-person .person-avatar{width:36px;height:36px;border:2px solid rgba(255,255,255,.8);background:#3f436d}.market-person span:last-child{font-size:12px;font-weight:720;color:#fff}
.market-cover-art{position:absolute;inset:0 0 0 48%;pointer-events:none;opacity:.94}.market-cover-art::after{content:'';position:absolute;right:-8%;bottom:-105px;width:340px;height:200px;border-radius:50%;background:#e4dbcb;opacity:.35}
.market-cover-art span{position:absolute;font-size:clamp(46px,7vw,100px);filter:drop-shadow(0 16px 9px rgba(29,37,44,.3));animation:marketFloat 8s ease-in-out infinite alternate}.market-cover-art span:nth-child(1){right:35%;bottom:25px}.market-cover-art span:nth-child(2){right:20%;top:11px;animation-delay:-3s}.market-cover-art span:nth-child(3){right:2%;top:14px;animation-delay:-5s}.market-cover-art span:nth-child(4){right:7%;bottom:-28px;font-size:clamp(70px,10vw,120px)}
@keyframes marketFloat{from{transform:translateY(0)}to{transform:translateY(-10px)}}
.market-search{display:flex;align-items:center;gap:12px;background:linear-gradient(130deg,#1c2930,#19232b);border:1px solid #35454c;border-radius:17px;margin-bottom:15px;padding:10px 15px;min-height:57px}.market-search span{font-size:27px;color:#8fb3bd}.market-search input{background:transparent;border:0!important;box-shadow:none!important;color:#fff;flex:1;outline:0;width:100%;font-size:16px}.market-search input::placeholder{color:#aeb7bb}
#grocery .grocery-layout{align-items:start}.grocery-catalog{gap:8px!important}.grocery-catalog .market-tile{min-height:142px;border-radius:12px;display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.market-tile.suggested{background:linear-gradient(145deg,#ff6862,#f34b57)}.market-tile.recent{background:linear-gradient(145deg,#56b7b2,#43a39f)}
.market-tile .market-product-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;gap:10px;background:transparent!important;border:0!important;width:100%;min-height:140px;padding:16px 11px;color:#fff;cursor:pointer;box-shadow:none;transform:none!important}
.market-tile .market-tile-emoji{font-size:clamp(30px,3.5vw,46px);line-height:1.3;filter:drop-shadow(0 5px 4px rgba(65,36,35,.3))}
.market-tile .market-product-name{font-size:clamp(12px,1.35vw,16px);font-weight:650;text-align:center;line-height:1.18;color:#fff;display:block;min-width:0;word-break:break-word;letter-spacing:0}
.market-tile .product-plus{position:absolute;right:6px;top:4px;color:#fff;font-size:19px;font-weight:700;opacity:.95;padding:4px}
.market-tile .market-product-details{position:relative;padding:12px;border-top:1px solid rgba(255,255,255,.3);background:rgba(16,24,32,.92);color:#fff}.market-tile .market-product-details p{margin:0 0 10px;font-size:12px;line-height:1.5;color:#e0ebec}.market-tile .market-product-details label{font-size:11px;display:grid;gap:5px}.market-tile .market-product-details input{width:100%;min-width:0;padding:10px;border:1px solid #6d7c83;border-radius:8px;background:#142328;color:#fff}.market-tile .catalog-add{margin-top:10px;width:100%;font-size:11px;padding:9px 6px}
.market-tile .market-product-toggle:active{filter:brightness(.88);scale:.985}.market-recent-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:16px 0 12px}.market-recent-heading strong{font-size:20px}.market-recent-heading span{color:var(--muted);font-size:11px}
.market-recent-list{margin-bottom:20px}
.market-recent-list:has(>.empty){display:block}.market-recent-list .market-tile{min-height:136px}
.profile-check{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important}.profile-check input{width:18px;height:18px;accent-color:#a262f9}.delivery-note{margin:0 0 12px!important;font-size:11px!important;color:#b9acbb!important;line-height:1.5}
.whatsapp-share-reminders{border:1px solid #3e3550;background:#120f19;padding:14px;border-radius:14px}.whatsapp-share-reminders strong{font-size:14px}.whatsapp-share-reminders p{font-size:12px;color:#bbb2c3;line-height:1.45}.whatsapp-share-reminders .mini-btn{display:flex;gap:8px;align-items:center;width:100%;justify-content:center;border-color:#1fa774;color:#a2f9cf}
.gc-alerts-dialog{padding:19px;width:min(520px,calc(100vw - 24px));max-height:min(80dvh,720px);border-radius:22px;overflow:auto}.gc-alert-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.gc-alert-head h3{margin:0;font-size:20px}.gc-alert-explain{color:#bdb2c3;font-size:12px}.gc-alert-inbox{display:grid;gap:9px;margin-top:15px}.gc-alert-item{display:grid;gap:5px;text-align:left;color:#fff;background:#241c2a;border:1px solid #3e3546;border-radius:14px;padding:13px;cursor:pointer}.gc-alert-item strong{font-size:13px}.gc-alert-item span{font-size:12px;color:#d7cddc}.gc-alert-item small{font-size:10px;color:#aa9eb0}
@media(max-width:900px){.market-cover{min-height:170px}.market-cover-copy{max-width:85%}.market-cover-art{inset:0 0 0 57%;opacity:.7}.grocery-catalog{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:560px){.tx-icon-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.market-cover{min-height:166px;padding:18px;border-radius:19px}.market-cover h2{font-size:27px;max-width:95%}.market-cover p{font-size:11px;max-width:75%}.market-cover-art{inset:0 0 0 55%;opacity:.6}.market-cover-art span:nth-child(1){right:48%;bottom:27px}.market-cover-art span:nth-child(2){right:15%;top:12px}.market-cover-art span:nth-child(3){right:0;top:52px}.market-cover-art span:nth-child(4){right:3%;bottom:-17px}.market-family-avatars{gap:5px}.market-person{min-height:31px;padding:3px 7px 3px 3px}.market-person .person-avatar{width:27px;height:27px}.market-person span:last-child{font-size:10px}.grocery-catalog{grid-template-columns:repeat(2,minmax(0,1fr))!important}.market-tile .market-product-toggle{min-height:122px}.grocery-catalog .market-tile{min-height:124px}.tx-desc{align-items:flex-start!important;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.market-cover-art span{animation:none}.tx-icon-option,.tx-progress span{transition:none}}
#grocery .grocery-catalog{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));max-height:none!important;overflow:visible!important}
@media(max-width:1140px){#grocery .grocery-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:580px){#grocery .grocery-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* GabriConta v5.12 - opt-in WhatsApp */
.wa-optin-row{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid rgba(154,77,255,.25);border-radius:15px;background:#130e19;color:#e6dfea;line-height:1.45;font-size:12px}.wa-optin-row input{width:22px;height:22px;flex:0 0 auto;accent-color:#a45bff;margin-top:0}.wa-status{display:block;color:#aca3b5!important;letter-spacing:0!important;font-size:11px!important;margin-top:9px}.whatsapp-share-reminders{display:grid;gap:11px}.whatsapp-share-reminders>p{margin:0!important}.whatsapp-share-reminders>button{min-height:44px}

/* GabriConta v5.13 - lançamentos compactos com profundidade e gesto */
#transactions .tx-main-area{min-width:0}
#transactions .tx-overview-card{background:linear-gradient(155deg,#201a29,#141019)!important;border:1px solid #403248!important;color:#f7f2fb!important;box-shadow:0 12px 32px rgba(0,0,0,.19)!important}
#transactions .tx-overview-head h3,#transactions .tx-overview-head small,#transactions .tx-overview-balance span{color:#d9cddd!important}
#transactions .tx-overview-balance strong{color:#43e0ac!important}
#transactions #txMonthBalance.negative{color:#ff6080!important}
#transactions .tx-metric-values{color:#c7b9d0!important}
#transactions .tx-progress{background:#382e40!important}
#transactions .tx-controls-card{background:#1a1520!important;border:1px solid #372b40!important;color:#f5edfa!important}
#transactions .tx-month-btn{border-color:#403348!important;background:#2a2130!important;color:#e7dded!important;flex:0 0 42px}
#transactions .tx-month-pill{background:linear-gradient(135deg,#b047f1,#6d44f9)!important;color:#fff!important;border:1px solid rgba(245,220,255,.3)!important;min-height:42px}
#transactions .tx-pro-filters{margin:0!important;align-items:center!important;display:flex;gap:9px}
#transactions .tx-pro-filters select,#transactions .tx-pro-filters input{background:#29212f!important;color:#eee6f5!important;border:1px solid #4d3c57!important;min-height:42px;box-shadow:none!important}
#transactions .tx-period-row{display:flex;align-items:center!important;justify-content:space-between;gap:12px;flex-wrap:wrap}
#transactions .tx-period-nav{display:flex;align-items:center;gap:7px;flex:0 0 auto}
#transactions .tx-table-shell{padding:12px!important;border-radius:22px;background:linear-gradient(150deg,#18131f,#100d15)!important;border:1px solid #332938!important;box-shadow:0 17px 37px rgba(0,0,0,.2)!important;overflow:hidden}
#transactions .tx-list-caption{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:5px 6px 14px;color:#f8f1fc}
#transactions .tx-list-caption>div{display:grid;gap:3px}
#transactions .tx-list-caption strong{font-size:15px}
#transactions .tx-list-caption small,#transactions .tx-list-caption>span{color:#a99cac;font-size:11px;letter-spacing:0}
#transactions .tx-list-caption b{color:#e2a1ff}
#transactions .transaction-pro-list{display:grid;gap:9px}
#transactions .tx-swipe-shell{position:relative;min-width:0;overflow:hidden;isolation:isolate;border-radius:17px;background:#231a2b}
#transactions .tx-swipe-card{position:relative!important;z-index:2;display:flex!important;align-items:center!important;gap:12px!important;min-width:0!important;min-height:82px;padding:15px 20px!important;margin:0!important;border-radius:17px!important;border:1px solid rgba(187,150,228,.3)!important;background:linear-gradient(158deg,#292031,#17131d)!important;box-shadow:0 13px 23px rgba(0,0,0,.38),0 2px 3px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.075)!important;color:#f9f4fc!important;cursor:grab;touch-action:pan-y;user-select:none;transition:transform .23s cubic-bezier(.25,.8,.25,1),opacity .2s,box-shadow .2s!important}
#transactions .tx-swipe-card:active{cursor:grabbing}
#transactions .tx-swipe-card:hover{background:linear-gradient(160deg,#33263b,#1d1725)!important}
#transactions .tx-swipe-card:focus-visible{outline:2px solid #e498ff;outline-offset:-2px}
#transactions .tx-swipe-shell.expense.is-pending .tx-swipe-card{border-color:rgba(255,138,170,.38)!important;box-shadow:0 14px 24px rgba(0,0,0,.48),0 0 18px rgba(242,99,149,.06),inset 0 1px 0 rgba(255,255,255,.11)!important}
#transactions .tx-swipe-shell.is-paid .tx-swipe-card{background:#17141d!important;opacity:.68;box-shadow:inset 5px 6px 15px rgba(0,0,0,.68),inset -1px -1px 3px rgba(235,215,255,.06)!important;border-color:#302b37!important}
#transactions .tx-swipe-shell.is-paid .tx-swipe-card:hover{opacity:.85}
#transactions .tx-swipe-card .tx-display-icon{display:grid!important;flex:0 0 45px;width:45px;height:45px;border-radius:13px!important;background:linear-gradient(150deg,#41304a,#271f30)!important;border:1px solid #58435f!important;font-size:23px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.09)!important}
#transactions .tx-compact-copy{display:grid;gap:6px;align-content:center;flex:1;min-width:0;overflow:hidden}
#transactions .tx-compact-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:800;letter-spacing:-.012em;color:#f6f0f9}
#transactions .tx-compact-copy>span{color:#a99caf;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}
#transactions .tx-card-avatars{display:flex;align-items:center;flex:0 0 auto;min-width:26px;padding-left:2px}
#transactions .tx-avatar-wrap{position:relative;display:inline-flex;flex:0 0 auto;margin-left:-6px}
#transactions .tx-avatar-wrap:first-child{margin-left:0}
#transactions .tx-avatar-wrap .person-avatar{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-size:11px;border:2px solid #352737;box-shadow:0 2px 7px rgba(0,0,0,.35);overflow:hidden}
#transactions .tx-avatar-wrap .person-avatar img{width:100%;height:100%;object-fit:cover}
#transactions .tx-paid-tick{position:absolute;bottom:-2px;right:-3px;display:grid;place-items:center;border-radius:50%;width:13px;height:13px;background:#12c784;border:1px solid #16221d;color:#fff;font-weight:900;font-size:9px}
#transactions .tx-compact-price{display:grid;flex:0 0 auto;justify-items:end;align-content:center;gap:6px;text-align:right;min-width:112px;margin-left:auto;padding-right:3px}
#transactions .tx-compact-price .amount{font-size:clamp(13px,1.4vw,17px);font-weight:850;white-space:nowrap;letter-spacing:-.02em}
#transactions .tx-compact-price .amount.income{color:#4ceab0!important}
#transactions .tx-compact-price .amount.expense{color:#ff7b9b!important}
#transactions .tx-compact-price>span{font-size:10px;color:#b7a9bd}
#transactions .tx-swipe-pay{position:absolute;inset:0 auto 0 0;display:flex;align-items:center;gap:6px;width:150px;padding-left:19px;background:linear-gradient(100deg,#147a55,#0ba96a);color:white;font-size:13px;font-weight:850;pointer-events:none}
#transactions .tx-swipe-pay>span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:rgba(255,255,255,.2);font-size:22px}
#transactions .tx-swipe-menu{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:stretch;justify-content:flex-end;width:124px;z-index:1;gap:2px;background:#2e2833}
#transactions .tx-swipe-menu button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:60px;flex:1;border:0;border-radius:0;background:#373040;color:#f2e9f6;cursor:pointer;font-size:10px;font-weight:700}
#transactions .tx-swipe-menu button svg{width:19px;height:19px}
#transactions .tx-swipe-menu button.tx-swipe-delete{background:#a42e4b;color:#fff}
#transactions .tx-swipe-shell.drag-paying .tx-swipe-card{box-shadow:0 13px 23px rgba(0,0,0,.27)!important}
#transactions .tx-quick-balance{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:14px 18px;border-radius:18px;background:linear-gradient(140deg,#1e1725,#14101a);border:1px solid #3c2f47;box-shadow:0 9px 22px rgba(0,0,0,.16);color:#f5edfa}
#transactions .tx-quick-balance>div{min-width:0;display:grid;gap:6px}
#transactions .tx-quick-balance>div>span{font-size:10px;color:#aea1b7;white-space:nowrap;font-weight:650}
#transactions .tx-quick-balance strong{font-size:clamp(13px,1.65vw,20px);white-space:nowrap;letter-spacing:-.025em}
#transactions .tx-quick-balance .income{color:#49e2a7}
#transactions .tx-quick-balance .expense,#transactions .tx-quick-balance .negative{color:#ff718f}
#transactions .tx-calc-sign{font-size:17px;color:#8f798f}
#transactions .tx-calc-total{padding:9px 12px;background:rgba(144,76,199,.13);border:1px solid rgba(173,103,211,.22);border-radius:12px}
#transactions .tx-calc-total strong{color:#f2e6ff}
#transactions .tx-calc-total strong.negative{color:#ff718f}
#transactions .tx-table-shell .empty{color:#a99caf!important}
@media(max-width:1000px){#transactions .tx-period-row{flex-direction:row;align-items:center!important}#transactions .tx-pro-filters{flex:1 1 340px;justify-content:flex-end}#transactions .tx-pro-filters select,#transactions .tx-pro-filters input{min-width:0;flex:1 1 110px;max-width:200px}}
@media(max-width:700px){
  #transactions .tx-main-area{gap:10px}
  #transactions .tx-controls-card{padding:12px!important}
  #transactions .tx-period-row{flex-direction:column;align-items:stretch!important;gap:11px}
  #transactions .tx-period-nav{justify-content:center;align-self:stretch}
  #transactions .tx-month-pill{flex:1;max-width:225px}
  #transactions .tx-pro-filters{flex:0 0 auto;width:100%;overflow-x:auto;justify-content:flex-start;padding-bottom:2px}
  #transactions .tx-pro-filters select{flex:0 0 112px;max-width:none;font-size:12px;padding:9px}
  #transactions .tx-pro-filters input{flex:1 0 130px;max-width:none;font-size:12px;padding:9px}
  #transactions .tx-table-shell{padding:10px!important}
  #transactions .tx-swipe-card{min-height:72px;padding:11px 13px!important;gap:9px!important;display:flex!important;grid-template-columns:none!important}
  #transactions .tx-swipe-card .tx-display-icon{flex-basis:39px;width:39px;height:39px;font-size:21px!important}
  #transactions .tx-compact-copy strong{font-size:13px}
  #transactions .tx-compact-copy>span{font-size:10px}
  #transactions .tx-card-avatars .person-avatar{width:22px;height:22px}
  #transactions .tx-compact-price{min-width:90px;gap:4px;padding-right:2px}
  #transactions .tx-compact-price .amount{font-size:13px!important}
  #transactions .tx-compact-price>span{font-size:9px}
  #transactions .tx-quick-balance{padding:12px 11px;gap:5px}
  #transactions .tx-quick-balance strong{font-size:clamp(11px,3.15vw,15px)}
  #transactions .tx-calc-sign{font-size:13px}
  #transactions .tx-calc-total{padding:7px 9px}
  #transactions .tx-list-caption>span{font-size:10px}
}
@media(max-width:385px){#transactions .tx-swipe-card{gap:6px!important;padding:10px!important}#transactions .tx-swipe-card .tx-display-icon{flex-basis:34px;width:34px;height:34px;font-size:19px!important}#transactions .tx-compact-price{min-width:82px}#transactions .tx-compact-price .amount{font-size:12px!important}#transactions .tx-card-avatars .person-avatar{width:20px;height:20px}#transactions .tx-quick-balance>div>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){#transactions .tx-swipe-card{transition:none!important}}

/* GabriConta v5.13 - limpeza de dados pessoais */
.profile-danger-zone{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:16px;background:linear-gradient(150deg,#21141d,#160e14);border:1px solid rgba(255,101,138,.3)}
.profile-danger-zone>div{flex:1 1 340px}
.profile-danger-zone h3{margin:7px 0;font-size:18px;color:#fff}
.profile-danger-zone p{color:#bdb1bc;font-size:12px;line-height:1.6;max-width:810px;margin:0}
.profile-danger-zone p strong{color:#eadce7}
.profile-clear-btn{background:transparent;color:#ff829c;border:1px solid #a44363;border-radius:12px;padding:12px 17px;min-height:44px;font-weight:800;cursor:pointer}
.profile-clear-btn:hover{background:rgba(255,75,117,.1)}
.gc-clear-dialog{width:min(480px,calc(100vw - 24px));border:1px solid #674056;border-radius:22px;padding:24px;background:linear-gradient(150deg,#241722,#110d16);color:#fff;box-shadow:0 35px 90px rgba(0,0,0,.7)}
.gc-clear-dialog::backdrop{background:rgba(0,0,0,.73);backdrop-filter:blur(8px)}
.gc-clear-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.gc-clear-alert{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;color:#fff;background:#a52a4d;font-size:25px;font-weight:900}
.gc-clear-head small{color:#ff97b4;font-size:10px;letter-spacing:.11em}
.gc-clear-head h3{font-size:22px;margin:4px 0 0}
.gc-clear-dialog p{font-size:13px;line-height:1.6;color:#d4c5d3}
.gc-clear-label{display:block;font-size:12px;color:#dfc9da;margin-top:15px;margin-bottom:8px}
.gc-clear-label strong{color:#fff}
.gc-clear-dialog input[type=text],#clearDataPhrase{box-sizing:border-box;width:100%;background:#130d16;color:#fff;border:1px solid #654357;border-radius:11px;padding:13px;font-size:14px;outline:none}
.gc-clear-dialog #clearDataPhrase:focus{border-color:#ff789d;box-shadow:0 0 0 3px rgba(255,120,157,.13)}
.gc-clear-check{display:flex;align-items:flex-start;gap:9px;margin:16px 0;color:#e4d9e5;font-size:12px;line-height:1.5}
.gc-clear-check input{width:18px;height:18px;accent-color:#ff5a84;flex:0 0 auto}
.gc-clear-dialog>small{font-size:11px;color:#a799a7}
.gc-clear-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.gc-clear-actions button{min-height:44px;padding:10px 13px}
.gc-clear-actions .danger-btn{background:#df365f;border:1px solid #fd6489;color:#fff;border-radius:11px;font-weight:800}
.gc-clear-actions .danger-btn:disabled{opacity:.36;cursor:not-allowed}
@media(max-width:570px){.profile-danger-zone{padding:17px}.profile-clear-btn{width:100%}.gc-clear-dialog{padding:18px}.gc-clear-actions{display:grid;grid-template-columns:1fr 1fr}}
/* Dim paid content instead of making the full card translucent: keeps gesture backplates invisible until swiped. */
#transactions .tx-swipe-shell.is-paid .tx-swipe-card{opacity:1!important}
#transactions .tx-swipe-shell.is-paid .tx-swipe-card>*{opacity:.66}
#transactions .tx-swipe-shell.is-paid .tx-swipe-card:hover>*{opacity:.88}


/* GabriConta v5.13.4: menu mobile acessível durante sincronizações.
   .busy:after tem z-index:300; o menu deve permanecer acima dele.
   O portão de login usa z-index:9999 e continua protegendo o app. */
@media(max-width:700px){
  .mobile-nav{
    z-index:450!important;
    height:84px!important;
    min-height:84px!important;
    padding:8px 6px!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    isolation:isolate;
  }
  .mobile-nav-item[data-view]{
    position:relative;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%;
    min-height:64px!important;
    touch-action:manipulation!important;
    pointer-events:auto!important;
    cursor:pointer!important;
  }
  .mobile-nav-item[data-view] .nav-orb,
  .mobile-nav-item[data-view] .nav-orb svg,
  .mobile-nav-item[data-view] .nav-orb svg *,
  .mobile-nav-item[data-view] .nav-label{pointer-events:none}
  .mobile-nav-item[data-view]:focus-visible{
    outline:2px solid #ff8cc9;
    outline-offset:-2px;
  }
  /* O painel Admin pode ocultar funcionalidades: não exibir botões sem acesso. */
  .mobile-nav-item.hidden{display:none!important}
  body{padding-bottom:max(108px,calc(100px + env(safe-area-inset-bottom)))!important}
}

/* v5.13.6 — botão '+' acima do menu inferior no mobile vertical.
   Portal em <body> evita recorte por overflow do conteúdo principal. */
#transactionFab.fab-finance[hidden]{display:none!important}
@media(max-width:700px){
  #transactionFab.fab-finance{
    position:fixed!important;
    right:calc(16px + env(safe-area-inset-right,0px))!important;
    bottom:calc(122px + env(safe-area-inset-bottom,0px))!important;
    width:62px!important;
    height:62px!important;
    border-radius:21px!important;
    font-size:32px!important;
    line-height:1!important;
    z-index:400!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    box-shadow:0 14px 34px rgba(45,27,116,.52),0 0 0 2px rgba(255,255,255,.1)!important;
  }
  #transactionFab.fab-finance:focus-visible{
    outline:3px solid #f0c1ff;
    outline-offset:3px;
  }
}

/* v5.13.7: remove fragility of the JS portal; keep the plus accessible above bottom nav. */
@media (max-width:700px){
  #transactions.active-view #transactionFab.fab-finance{
    display:grid!important;
    position:fixed!important;
    z-index:520!important;
    right:calc(16px + env(safe-area-inset-right,0px))!important;
    bottom:calc(124px + env(safe-area-inset-bottom,0px))!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
}

/* GabriConta v5.13.9 — convite familiar com link compartilhável, sem dados do destinatário. */
.invite-card .invite-generate-btn{min-height:48px;width:100%}
.invite-link-result{margin-top:18px;padding:16px;border:1px solid rgba(166,113,224,.35);border-radius:15px;background:rgba(127,61,185,.09)}
.invite-link-result>small{display:block;color:#f1c6ff;font-weight:850;letter-spacing:.1em}
.invite-card .invite-link-label{display:block;margin:14px 0 7px;color:#e9deed;font-size:12px;font-weight:750}
.invite-card .invite-link-input{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:47px;font-size:13px;color:#f7eaff;background:#130f19;border:1px solid #5f466d;border-radius:11px;padding:10px 12px;white-space:nowrap;overflow-x:auto}
.invite-card .invite-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:13px}
.invite-card .invite-actions .wa-link{display:inline-flex;align-items:center;justify-content:center;margin:0;min-height:45px;padding:10px 13px;border-radius:11px;background:#176a4a;color:#fff;font-weight:850;text-align:center;flex:1 1 200px}
.invite-card .invite-actions .mini-btn{min-height:45px;flex:1 1 125px}
.invite-card .invite-result-hint,.invite-card .invite-security-hint{font-size:12px;line-height:1.6;color:#beb1c7;margin:13px 0 0}

/* Keep the alternate grocery price editor readable without iPhone focus zoom. */
#grocery .grocery-price-edit{font-size:16px!important;min-height:44px}
.invite-card .invite-error{color:#ffb9c6;border:1px solid #99455e;border-radius:10px;padding:11px;background:#ff476510}
@media(max-width:480px){.invite-card .invite-actions{flex-direction:column;align-items:stretch}.invite-card .invite-actions .wa-link,.invite-card .invite-actions .mini-btn{flex:1 1 auto;width:100%}}

/* GabriConta: dispensa individual de notificações com botão X acessível */
.gc-alert-inbox .gc-alert-row{position:relative;min-width:0}
.gc-alert-inbox .gc-alert-row .gc-alert-item{
  box-sizing:border-box;width:100%;min-width:0;min-height:78px;
  padding:13px 52px 13px 13px;align-content:start;
  transition:border-color .15s ease,background-color .15s ease
}
.gc-alert-inbox .gc-alert-row .gc-alert-item:hover{
  background:#302439;border-color:#61486f
}
.gc-alert-inbox .gc-alert-remove{
  position:absolute;right:9px;top:9px;z-index:2;
  width:39px;height:39px;border:1px solid #65506e;border-radius:11px;
  display:grid;place-items:center;padding:0;
  background:#35263d;color:#f4d4e5;font-size:25px;font-weight:500;
  line-height:1;cursor:pointer;touch-action:manipulation
}
.gc-alert-inbox .gc-alert-remove:hover{
  background:#573045;color:#fff;border-color:#d77d9e
}
.gc-alert-inbox .gc-alert-row button:focus-visible{
  outline:2px solid #f7b2cc;outline-offset:2px
}
.gc-alert-inbox .gc-alert-row .gc-alert-item strong,
.gc-alert-inbox .gc-alert-row .gc-alert-item span,
.gc-alert-inbox .gc-alert-row .gc-alert-item small{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){
  .gc-alert-inbox .gc-alert-row .gc-alert-item{transition:none}
}

/* Mercado: authors and buyers reuse the household's profile photos. */
#grocery .grocery-people {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  padding: 5px 5px 9px;
}
#grocery .grocery-person {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 4px;
  min-width: 0;
  color: #d7c9e1;
}
#grocery .grocery-avatar-wrap {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
}
#grocery .grocery-person-avatar.person-avatar {
  position: relative;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #ae81ce;
  font-size: 12px;
  line-height: 1;
}
#grocery .grocery-person-avatar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#grocery .grocery-person-avatar img[hidden] { display: none; }
#grocery .grocery-avatar-fallback { color: #fff; font-weight: 800; }
#grocery .grocery-person-badge {
  position: absolute;
  right: -3px;
  bottom: -2px;
  display: grid;
  place-items: center;
  width: 13px;
  height: 13px;
  border: 1px solid #18181c;
  border-radius: 50%;
  background: #ae81ce;
  color: #180d20;
  font-size: 10px;
  line-height: 1;
  font-weight: 900;
}
#grocery .grocery-person.is-purchased .grocery-person-avatar { border-color: #59d8a2; }
#grocery .grocery-person.is-purchased .grocery-person-badge { background: #59d8a2; color: #072218; }
#grocery .grocery-person-role { font-size: 9px; line-height: 1.2; font-weight: 650; }
#grocery .grocery-item > .grocery-people { width: auto; flex: 0 0 auto; padding: 0; }
#grocery[data-market-layout="list"] .pantry-card.market-smart-card > .grocery-people {
  grid-column: 1 / -1;
  grid-row: 2;
  justify-content: flex-start;
  gap: 18px;
  padding: 4px 12px 10px;
}
#grocery[data-market-layout="list"] .pantry-card.market-smart-card > .grocery-people .grocery-person {
  display: flex;
  align-items: center;
  gap: 6px;
}
#grocery[data-market-layout="list"] .pantry-card.market-smart-card .market-product-details { grid-row: 3 !important; }
@media (max-width: 700px) {
  #grocery .grocery-item > .grow { grid-column: 3 / 5 !important; }
  #grocery .grocery-item > .grocery-people { grid-column: 3 / -1; grid-row: 3; justify-content: flex-start; }
}
@media (max-width: 360px) {
  #grocery .grocery-people { gap: 4px; padding-left: 0; padding-right: 0; }
  #grocery .grocery-avatar-wrap, #grocery .grocery-person-avatar.person-avatar { width: 26px; height: 26px; }
  #grocery .grocery-avatar-wrap { flex-basis: 26px; }
  #grocery .grocery-person-role { font-size: 8px; }
}
@media (forced-colors: active) {
  #grocery .grocery-person-avatar.person-avatar { border-color: CanvasText; }
  #grocery .grocery-person-badge { border-color: CanvasText; background: Canvas; color: CanvasText; }
}
