:root{--bg:#f4f7f6;--card:#fff;--text:#17312b;--muted:#6f817c;--line:#dfe8e5;--brand:#146c5b;--brand2:#0f584a;--soft:#e6f3ef;--danger:#b42318;--warn:#a15c00;--shadow:0 10px 30px rgba(25,55,48,.08);--radius:18px}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);padding-bottom:92px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:50;height:64px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,calc((100vw - 1080px)/2))}.brand{font-weight:800;font-size:18px;display:flex;gap:9px;align-items:center}.user-menu{display:flex;align-items:center;gap:14px;color:var(--muted)}.user-menu a{font-size:18px}.container{max-width:1080px;margin:0 auto;padding:22px 18px 44px}.hero{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.hero.compact{margin-bottom:16px}.hero h1{margin:0 0 4px;font-size:clamp(26px,5vw,38px)}.hero p{margin:0;color:var(--muted)}
.add-panel,.panel,.admin-tools,.admin-item-card,.buy-summary,.list-group,.history-row{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.add-panel{padding:14px;margin-bottom:20px}.search-wrap{position:relative}.search-wrap>input{width:100%;border:0;background:#f1f6f4;border-radius:14px;padding:16px 17px;font-size:19px;outline:none}.search-wrap>input:focus{box-shadow:0 0 0 3px rgba(20,108,91,.13)}.suggestions{position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:80;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 38px rgba(16,45,39,.15);overflow:hidden}.suggestion{display:flex;width:100%;border:0;border-bottom:1px solid #edf2f0;background:#fff;padding:12px 14px;text-align:left;gap:10px;justify-content:space-between}.suggestion:last-child{border-bottom:0}.suggestion:hover{background:#f5faf8}.suggestion small{color:var(--muted)}.suggestion.create{color:var(--brand);font-weight:700}.add-options{display:grid;grid-template-columns:85px 1fr auto;gap:10px;margin-top:10px}.add-options label{font-size:12px;color:var(--muted)}.add-options input,.admin-tools input,.admin-item-card input,.admin-item-card select,.panel input,.auth-card input,.mini-form input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;outline:none}.add-options label input{margin-top:3px}.btn{border:1px solid var(--line);background:#fff;color:var(--text);padding:11px 16px;border-radius:12px;font-weight:750}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2)}.btn.wide{width:100%;display:block;text-align:center}.list-groups{display:grid;gap:16px}.list-group{overflow:hidden}.list-group h2{font-size:15px;margin:0;padding:12px 15px;background:#f7faf9;border-bottom:1px solid var(--line)}.shopping-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid #eef2f1}.shopping-row:last-child{border-bottom:0}.row-main{min-width:0}.row-main strong{display:block;font-size:16px}.note{display:block;color:#715c23;font-size:13px;margin-top:3px}.meta{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:5px;color:var(--muted);font-size:12px}.meta .warn{color:var(--warn)}.qty-control{display:flex;align-items:center;gap:3px;background:#f3f7f6;border-radius:999px;padding:3px}.qty-value{min-width:24px;text-align:center}.icon-btn{width:34px;height:34px;border:0;border-radius:50%;background:#fff;color:var(--text);font-size:18px}.icon-btn:hover{background:#eaf1ef}.icon-btn.danger{color:var(--danger);font-size:22px}.empty-state{text-align:center;background:#fff;border:1px dashed #ccd9d5;border-radius:var(--radius);padding:48px 20px;color:var(--muted)}.empty-state>div{font-size:45px}.empty-state h2{color:var(--text);margin-bottom:4px}.empty-state.small{padding:22px}.bottom-nav{position:fixed;z-index:90;bottom:0;left:0;right:0;height:74px;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.97);border-top:1px solid var(--line);display:flex;justify-content:center}.bottom-nav a{width:min(25%,170px);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#71817d}.bottom-nav a.active{color:var(--brand);font-weight:800}.bottom-nav span{font-size:20px}.bottom-nav small{font-size:11px}.bottom-nav b{position:absolute;top:7px;margin-left:27px;background:#c92a2a;color:#fff;border-radius:999px;min-width:19px;height:19px;font-size:10px;display:grid;place-items:center;padding:0 4px}
.location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;margin-bottom:18px}.location-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;flex-direction:column;gap:4px}.location-card span{color:var(--muted);font-size:12px}.location-card.selected{border-color:var(--brand);box-shadow:0 0 0 2px rgba(20,108,91,.12);background:#f7fffc}.buy-summary{padding:14px 16px;display:flex;justify-content:space-between;gap:10px;margin-bottom:12px}.buy-summary span{color:var(--muted)}.buy-list{display:grid;gap:8px}.buy-row{width:100%;border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px 14px;display:flex;align-items:center;gap:12px;text-align:left}.buy-row.in-cart{background:var(--soft);border-color:#9bc8bb}.check-circle{width:32px;height:32px;border:2px solid #afc0bb;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;font-weight:900;color:#fff}.in-cart .check-circle{background:var(--brand);border-color:var(--brand)}.buy-content{display:flex;flex-direction:column;gap:2px}.buy-content small{color:var(--muted)}.buy-content em{font-size:12px;color:#715c23}.sticky-action{position:sticky;bottom:86px;margin-top:14px;box-shadow:0 8px 22px rgba(20,108,91,.22)}.missing-block{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:12px 14px}.missing-block summary{font-weight:800;cursor:pointer}.missing-row{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid #eef2f1}.missing-row:first-of-type{margin-top:10px}.missing-row small{color:var(--muted);text-align:right}
.history-list{display:grid;gap:9px}.history-row{padding:13px 14px;display:flex;justify-content:space-between;align-items:center;gap:15px}.history-row .meta{justify-content:flex-end}.history-row .note{font-size:12px}.admin-tools{padding:14px;margin-bottom:16px}.admin-search{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.check-label{display:flex;gap:7px;align-items:center;white-space:nowrap;color:var(--muted);font-size:13px}.check-label input{width:auto}.admin-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.mini-form{display:flex;gap:8px}.mini-form input:first-of-type{max-width:56px}.admin-items{display:grid;gap:12px}.admin-item-card{padding:14px}.admin-item-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.badge{font-size:11px;padding:4px 8px;border-radius:999px;background:#edf2f0}.badge.warning{background:#fff0d8;color:#8b5200}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-item-card label,.panel label,.auth-card label{display:block;font-size:12px;color:var(--muted);margin-bottom:10px}.admin-item-card label input,.admin-item-card label select,.panel label input,.auth-card label input{margin-top:4px}.location-checks{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0 12px}.location-checks label{margin:0;background:#f3f7f6;color:var(--text);border-radius:999px;padding:7px 10px}.location-checks input{width:auto;margin:0 5px 0 0}.narrow{max-width:560px;padding:18px}.auth-shell{min-height:calc(100vh - 120px);display:grid;place-items:center;padding:24px}.auth-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:24px}.auth-card.install-card{width:min(760px,100%)}.auth-card h1{margin:0 0 4px}.auth-card h2{font-size:16px;margin:22px 0 10px}.muted{color:var(--muted)}.success-box,.error-box{border-radius:12px;padding:12px 14px;margin-bottom:14px}.success-box{background:#e8f7ef;color:#17613e;border:1px solid #b9e1cb}.error-box{background:#fff0ef;color:#912018;border:1px solid #f1c1bd}
@media(max-width:680px){body{padding-bottom:84px}.topbar{height:58px;padding:0 14px}.user-menu>span{display:none}.container{padding:17px 12px 34px}.add-panel{padding:10px}.add-options{grid-template-columns:72px 1fr}.add-options .btn{grid-column:1/-1}.shopping-row{grid-template-columns:1fr auto;gap:8px}.shopping-row>.danger{position:absolute;right:13px;margin-top:-57px}.row-main{padding-right:25px}.meta{display:block}.meta span{display:block;margin-top:2px}.qty-control{grid-column:2}.history-row{display:block}.history-row .meta{justify-content:flex-start}.admin-search{grid-template-columns:1fr auto}.admin-search .check-label{grid-row:2;grid-column:1/-1}.admin-add-grid,.grid-2{grid-template-columns:1fr}.mini-form{flex-wrap:wrap}.mini-form .btn{flex:1}.buy-summary{display:block}.buy-summary span{display:block;margin-top:3px}.missing-row{display:block}.missing-row small{display:block;text-align:left;margin-top:3px}.brand{font-size:16px}.bottom-nav{height:68px}.sticky-action{bottom:78px}}
.history-section{margin-bottom:14px}.history-section>summary{cursor:pointer;font-weight:800;padding:12px 3px}.history-section .history-list{margin-top:4px}

/* PWA / instalação */
.brand img{border-radius:8px;box-shadow:0 2px 8px rgba(22,82,108,.12)}
.install-banner{position:fixed;z-index:120;left:50%;bottom:86px;transform:translateX(-50%);width:min(680px,calc(100% - 24px));display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 44px rgba(17,51,64,.18)}
.install-banner img{border-radius:13px}.install-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.install-copy strong{font-size:14px}.install-copy span{font-size:12px;color:var(--muted)}.install-action{white-space:nowrap}.install-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1;padding:4px 2px}
.install-modal{position:fixed;z-index:200;inset:0;background:rgba(17,35,43,.5);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}.install-modal-card{width:min(420px,100%);background:#fff;border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.24);text-align:center}.install-modal-card img{border-radius:18px;box-shadow:0 8px 24px rgba(22,82,108,.15)}.install-modal-card h2{font-size:20px;margin:13px 0}.install-modal-card p{text-align:left;background:#f5f8f8;border-radius:12px;margin:7px 0;padding:10px 12px;font-size:14px}.share-symbol{font-size:19px;font-weight:700;margin-left:3px}
@media(max-width:680px){.install-banner{bottom:78px;grid-template-columns:auto 1fr auto;padding:10px}.install-banner .install-action{grid-column:2/3;justify-self:start;padding:8px 12px}.install-close{grid-column:3;grid-row:1;align-self:start}.install-copy span{font-size:11px}}
@media(display-mode:standalone){.install-banner{display:none!important}}

/* V1.2 · pedidos por pessoa, preços, estimativas e gastos */
.add-options-requester{grid-template-columns:78px minmax(125px,160px) 1fr auto;align-items:end}
.add-options select{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;outline:none;margin-top:3px}
.location-card small{color:var(--brand);font-size:11px;font-weight:750;margin-top:2px}
.buy-summary>div{display:flex;flex-direction:column;gap:2px}.estimate-box{text-align:right;align-items:flex-end}.estimate-box span,.estimate-box small{font-size:11px;color:var(--muted)}.estimate-box strong{font-size:17px;color:var(--brand)}
.buy-row{padding:0;display:grid;grid-template-columns:1fr auto;gap:0;overflow:hidden;align-items:stretch}.buy-toggle{border:0;background:transparent;padding:12px 10px 12px 14px;display:flex;align-items:center;gap:12px;text-align:left;color:inherit;min-width:0}.buy-toggle:disabled{opacity:.7}.buy-content{min-width:0}.price-reference{font-size:11px;color:var(--brand);margin-top:3px}.price-entry{border:0;border-left:1px solid var(--line);background:#f7faf9;color:var(--brand);font-weight:900;min-width:68px;padding:10px;white-space:nowrap}.buy-row.in-cart .price-entry{background:#fff}.price-entry.disabled{color:#a8b3b0;background:#f4f6f5;cursor:not-allowed}.price-entry:not(.disabled):hover{background:#edf8f4}.history-price{border:1px solid var(--line);border-radius:12px;background:#f7faf9;min-width:92px;padding:9px 10px}.history-price.missing-price{border-style:dashed;color:var(--warn);background:#fffaf2}
.price-symbol{width:54px;height:54px;border-radius:16px;background:var(--soft);color:var(--brand);display:grid;place-items:center;margin:0 auto;font-size:28px;font-weight:900}.price-modal-context{text-align:center!important;background:transparent!important;padding:0!important;color:var(--muted)}.price-input-label{display:block;text-align:left;font-size:12px;color:var(--muted);margin:14px 0 6px}.price-input-label input{width:100%;font-size:28px;text-align:center;font-weight:850;border:1px solid var(--line);border-radius:14px;padding:12px;outline:none;color:var(--text)}.price-input-label input:focus{box-shadow:0 0 0 3px rgba(20,108,91,.13);border-color:#a7c9c0}.price-modal-hint{text-align:center!important;background:transparent!important;padding:0!important;font-size:12px!important}.price-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.price-clear{border:0;background:transparent;color:var(--danger);font-size:12px;margin-top:12px;text-decoration:underline}
.report-toolbar{padding:14px;display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.month-form{display:flex;align-items:end;gap:8px}.month-form label{font-size:12px;color:var(--muted)}.month-form input{display:block;margin-top:4px;border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff}.month-total{text-align:right;display:flex;flex-direction:column}.month-total span,.month-total small{color:var(--muted);font-size:11px}.month-total strong{font-size:24px;color:var(--brand)}.report-section{margin:22px 0}.report-section h2{font-size:18px;margin:0 0 5px}.report-note{font-size:12px;margin-top:0}.person-spend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.person-spend-card,.price-compare-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:13px}.person-total{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:9px}.person-total b{color:var(--brand)}.category-spend-list{margin-top:7px}.category-spend-list>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:12px}.category-spend-list span{color:var(--muted)}.purchase-history-row{align-items:center}.warn-text{color:var(--warn)}.price-comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:10px;margin-top:8px}.price-compare-card>strong{display:block;margin-bottom:8px}.price-location{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:10px;font-size:12px}.price-location span{display:flex;flex-direction:column}.price-location small{color:var(--muted);font-size:10px}.price-location.lowest{background:#eef8f4}.price-location.lowest b{color:var(--brand)}.small-copy{font-size:12px;margin-top:12px}.upgrade-panel{margin:20px auto}

@media(max-width:680px){
  .add-options-requester{grid-template-columns:72px 1fr}.add-options-requester #item-note{grid-column:1/-1}.add-options-requester .btn{grid-column:1/-1}
  .buy-row{grid-template-columns:1fr 62px}.buy-toggle{padding:11px 8px 11px 11px;gap:9px}.price-entry{min-width:62px;padding:7px;font-size:12px}.price-reference{font-size:10px}.check-circle{width:29px;height:29px}
  .buy-summary{display:grid;grid-template-columns:1fr auto}.buy-summary>div span{display:block;margin:0}.estimate-box{align-items:flex-end}.estimate-box strong{font-size:15px}
  .report-toolbar{display:block}.month-form{justify-content:space-between}.month-form label{flex:1}.month-form input{width:100%}.month-total{text-align:left;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.month-total strong{font-size:22px}.person-spend-grid{grid-template-columns:1fr}.price-comparison-grid{grid-template-columns:1fr}.purchase-history-row{display:grid;grid-template-columns:1fr auto}.purchase-history-row .meta{display:flex}.history-price{min-width:82px}
}
