:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#123453;background:#edf3f9;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 85% 2%,#d6eafa 0,transparent 40%),#edf3f9}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #2782d0;outline-offset:3px}[hidden]{display:none!important}.app{max-width:580px;min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.topbar{height:85px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:11px;align-items:center;font-size:1.15rem;font-weight:800;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:31px;height:31px;background:#123453;color:white;border-radius:9px;font-size:1.2rem}.brand-sub{font-weight:500;color:#59738b}.icon-button,.nav-button,.close-button{display:grid;place-items:center;border:0;background:white;color:#123453;box-shadow:0 5px 18px #12345312}.icon-button{width:44px;height:44px;border-radius:13px}.icon-button svg{width:22px}.dashboard{flex:1;display:flex;flex-direction:column;text-align:center;padding-top:19px}.eyebrow,.small-label{font-size:.75rem;font-weight:800;letter-spacing:.11em;color:#54738e}.day-nav{display:grid;grid-template-columns:42px 1fr 42px;gap:6px;align-items:center;margin-top:20px}.nav-button{width:42px;height:42px;border-radius:50%;font-size:2rem;line-height:1}.nav-button:disabled{opacity:.28;cursor:default}h1{font-size:clamp(1.6rem,7vw,2.45rem);letter-spacing:-.055em;margin:0;line-height:1.12}#date{margin:9px 0 0;font-size:.96rem;color:#5b7287}.today-pill{align-self:center;background:#d8eafa;border-radius:999px;padding:7px 13px;margin-top:25px;color:#174f7b;font-size:.73rem;font-weight:800;letter-spacing:.09em}.bag-area{margin-top:20px}.collection-card{min-height:382px;border-radius:27px;background:white;box-shadow:0 18px 60px #1b4b6e16;padding:24px 22px 28px;display:flex;align-items:center;flex-direction:column}.bag-figure{height:157px;width:150px;display:grid;place-items:center;margin:0 auto 3px}.bag-figure svg{width:145px;height:150px;filter:drop-shadow(0 11px 9px #152d4230)}.bag-name{font-size:1.48rem;letter-spacing:-.035em;font-weight:800;margin:5px 0 0}.time-box{width:100%;border-top:1px solid #e5edf4;padding-top:17px;display:flex;flex-direction:column;align-items:center}.time-label{color:#536f86;font-size:.87rem}.time-value{font-size:clamp(2.7rem,11vw,3.9rem);line-height:1.07;font-weight:850;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:4px 0}.put-out{font-size:.9rem;color:#526b7e;margin-top:5px}.glass-note{margin-top:13px;padding:9px 12px;border-radius:10px;background:#eef7f9;color:#195969;font-size:.85rem;line-height:1.45}.no-collection{justify-content:center}.rest-icon{font-size:5.4rem;color:#a8bed0}.no-collection .bag-name{margin-top:14px}.swipe-hint{font-size:.77rem;color:#6c8396;margin:21px 0 13px}.location-notice{display:flex;text-align:left;gap:12px;border-radius:15px;background:#fff4f2;border:1px solid #f4c9c5;padding:15px;margin:4px 0 12px;line-height:1.4}.notice-icon{border:2px solid #c8342c;color:#c8342c;clip-path:polygon(50% 0,100% 100%,0 100%);width:27px;height:25px;text-align:center;padding-top:5px;font-size:12px;font-weight:900;flex:none}.location-notice strong{color:#8f2722;font-size:.93rem}.location-notice p{font-size:.82rem;color:#784e4a;margin:4px 0 9px}.switch-button,.save-button{border:0;border-radius:9px;background:#126db2;color:white;font-weight:750;padding:10px 17px}.switch-button{font-size:.86rem}footer{border-top:1px solid #d8e5ee;margin-top:20px;padding-top:17px;color:#7890a1;font-size:.73rem;display:flex;justify-content:space-between;gap:16px;line-height:1.5}footer a{color:#26618d;font-weight:700;text-decoration:none;white-space:nowrap}.overlay{position:fixed;inset:0;z-index:5;background:#12345375;display:flex;align-items:center;justify-content:center;padding:16px}.settings{background:#fff;border-radius:23px;padding:25px;width:min(100%,510px);max-height:min(94dvh,800px);overflow:auto;box-shadow:0 20px 70px #001c3460}.settings-head{display:flex;align-items:center;justify-content:space-between}.close-button{font-size:1.75rem;box-shadow:none;width:35px;height:35px;background:#eff5fa;border-radius:9px}.settings h2{margin:13px 0 10px;font-size:1.85rem;line-height:1.15;letter-spacing:-.04em}.settings h2 span{font-size:1.15rem;font-weight:500;color:#617c91}.gps-status{font-size:.9rem;color:#47708b;min-height:1.4em;margin:10px 0 17px}.settings label{font-size:.9rem;font-weight:750;display:block;margin-bottom:8px}.settings input{width:100%;height:48px;border:1px solid #b9cddb;border-radius:11px;padding:0 14px;background:#fafcfe;color:#123453;font-size:1rem}.locality-list{margin:10px 0 0;border:1px solid #dce7ef;border-radius:12px;overflow:auto;max-height:240px}.locality-option{width:100%;text-align:left;border:0;border-bottom:1px solid #edf2f6;background:white;padding:12px 15px;color:#183c58;font-size:.96rem}.locality-option:last-child{border-bottom:0}.locality-option[aria-selected=true]{background:#dceefd;color:#134d78;font-weight:800}.locality-option:hover{background:#f0f7fc}.empty-list{padding:16px;color:#617c91}.settings-actions{display:flex;gap:10px;margin-top:19px}.cancel-button{border:1px solid #c6d5e0;background:white;color:#375a73;border-radius:9px;padding:10px 16px}.save-button{flex:1}.save-button:disabled{opacity:.45;cursor:default}.settings-note{font-size:.77rem;line-height:1.5;color:#698092;margin:18px 0 0}@media(max-width:440px){.app{padding-left:16px;padding-right:16px}.dashboard{padding-top:5px}.collection-card{min-height:350px}.settings-actions{flex-direction:column-reverse}.settings-actions button{width:100%}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:no-preference){.collection-card{animation:appear .2s ease-out}@keyframes appear{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
.top-actions{display:flex;align-items:center;gap:6px}.collection-card .bag-name{margin-bottom:16px}.collection-card.no-collection .bag-name{margin-bottom:0}@media(max-width:360px){.brand{font-size:1rem;gap:6px}.top-actions{gap:2px}}
.day-nav{display:block;position:relative}.day-titles{padding:0 46px}.day-nav .nav-button{position:absolute;top:50%;transform:translateY(-50%)}#prevDay{left:0}#nextDay{right:0}#date{width:calc(100% + 92px);margin-left:-46px;font-size:clamp(.86rem,3.6vw,1rem);white-space:nowrap;line-height:1.35}.time-value{display:flex;align-items:baseline;justify-content:center;gap:.4rem;flex-wrap:wrap}.time-period{font-size:clamp(.95rem,3.5vw,1.18rem);font-weight:700;letter-spacing:0;color:#42637d}
.location-notice{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:13px;background:#fff8f7;border-color:#efcbc7;box-shadow:0 8px 24px #773c3210;padding:16px 18px}.notice-icon{width:29px;height:29px;display:block;color:#b33c35;border:0;clip-path:none;padding:0}.notice-copy{min-width:0}.location-notice strong{display:block;color:#8e302b;font-size:.94rem}.location-notice p{margin:4px 0 0;line-height:1.35}.switch-button{align-self:center;min-width:65px;padding:10px 14px}@media(max-width:400px){.location-notice{grid-template-columns:26px minmax(0,1fr) auto;gap:8px;padding:13px 11px}.notice-icon{width:25px;height:25px}.switch-button{min-width:55px;padding:9px 10px}.location-notice strong{font-size:.86rem}}

/* The glass collection card shows both the organic bag and a reusable glass carrier. */
.collection-figures{display:flex;align-items:flex-start;justify-content:center;gap:8px;width:100%;margin:1px 0 14px}
.collection-item{display:flex;flex:1 1 0;min-width:0;max-width:155px;align-items:center;flex-direction:column;text-align:center}
.collection-figures .bag-figure{width:100%;height:145px;margin:0}
.collection-figures .bag-figure svg,.collection-figures .bag-figure img{display:block;width:100%;max-width:135px;height:145px;object-fit:contain;filter:drop-shadow(0 9px 7px #152d4220)}
.collection-item-label{font-size:clamp(.78rem,3.7vw,1rem);font-weight:750;line-height:1.2;color:#123453}

/* Optional current-location mode */
.location-mode-bar{align-self:center;display:flex;align-items:center;gap:8px;margin-top:10px;padding:7px 10px;border-radius:999px;background:#e7f3fb;color:#245c82;font-size:.76rem;line-height:1.2}
.location-mode-bar button{border:0;background:transparent;color:#126db2;font:inherit;font-weight:800;padding:2px 4px;text-decoration:underline;text-underline-offset:2px}
.location-behaviour{border:1px solid #dce7ef;border-radius:13px;padding:12px;margin:2px 0 18px;background:#f9fcfe}
.behaviour-title{display:block;font-size:.85rem;font-weight:800;margin:0 0 9px;color:#345b77}
.behaviour-option{display:flex!important;align-items:flex-start;gap:10px;padding:9px 7px;margin:0!important;border-radius:9px;cursor:pointer}
.behaviour-option:hover{background:#eef6fb}
.behaviour-option input{width:18px!important;height:18px!important;margin:2px 0 0;flex:none}
.behaviour-option span{display:block;min-width:0}
.behaviour-option strong{display:block;font-size:.9rem;color:#173f5c}
.behaviour-option small{display:block;margin-top:2px;color:#688297;font-size:.76rem;line-height:1.35}

/* Remotely configurable support strip. Entire row is one large tap target. */
.donation-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:15px 0 0;padding:13px 15px;border:1px solid #d7e5ee;border-radius:14px;background:#fbfdff;color:#315a76;text-decoration:none;font-size:.83rem;line-height:1.4;box-shadow:0 5px 18px #12345308;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.donation-card:hover{transform:translateY(-1px);border-color:#aac7da;box-shadow:0 8px 22px #12345312}
.donation-card:active{transform:translateY(0)}
.donation-card #donationText{flex:1}
.donation-arrow{font-size:1.45rem;line-height:1;color:#447897;font-weight:700}


/* v13 mobile settings hardening: keep the dialog usable when the virtual keyboard changes the viewport. */
@media (max-width: 600px), (pointer: coarse) {
  .overlay {
    align-items:flex-start;
    overflow-y:auto;
    padding:max(10px, env(safe-area-inset-top)) 12px calc(12px + env(safe-area-inset-bottom));
  }
  .settings {
    width:100%;
    max-height:none;
    margin:8px 0 16px;
    padding:22px 18px;
    overflow:visible;
  }
  .settings h2 {font-size:1.72rem;}
  .location-behaviour {padding:10px;margin-bottom:16px;}
  .behaviour-option {
    display:grid!important;
    grid-template-columns:22px minmax(0,1fr);
    align-items:start;
    gap:10px;
    padding:10px 6px;
  }
  .behaviour-option input {
    width:18px!important;
    height:18px!important;
    margin:2px 0 0!important;
    padding:0!important;
  }
  .behaviour-option strong,.behaviour-option small {text-align:left;}
  #localitySearch {font-size:16px;}
}

/* v14: one direct, unobtrusive support link below the timetable. */
.donation-card{min-height:64px;padding:12px 14px;gap:10px}
.donation-copy{flex:1;min-width:0}
.donation-copy #donationText{display:block;font-weight:650;font-size:.85rem}
.donation-copy small{display:block;margin-top:3px;color:#617c91;font-size:.74rem;line-height:1.35}
.donation-button{flex:none;padding:10px 12px;border-radius:10px;background:#123453;color:#fff;font-size:.8rem;font-weight:750;text-align:center;max-width:45%;overflow-wrap:anywhere}
@media(max-width:360px){.donation-card{padding:11px;gap:8px}.donation-button{padding:10px;font-size:.76rem}}

/* v15: optional support panel and per-device visibility preference. */
button.donation-card{width:100%;font-family:inherit;text-align:left;cursor:pointer}
.support-modal{max-height:calc(100dvh - 40px);overflow-y:auto}
.support-modal h2{margin-bottom:12px}
.support-modal p{line-height:1.5}
.support-check{display:flex!important;align-items:flex-start;gap:10px;text-align:left;font-size:.88rem;line-height:1.45;cursor:pointer}
.support-check input{width:18px!important;height:18px!important;flex:none;margin:2px 0 0!important;padding:0!important;accent-color:#123453}
.support-setting{padding:12px 0;border-top:1px solid #dce6ed}
.support-setting small,.support-payment small{display:block;margin-top:8px;line-height:1.45;color:#617c91;font-size:.78rem}
.support-payment{border-top:1px solid #dce6ed;margin-top:18px;padding-top:4px}
#coffeeButton{width:100%;margin-top:16px;min-height:46px}
#coffeeButton:disabled{opacity:.45;cursor:not-allowed}
#dismissSupport{width:100%;margin-top:18px;min-height:44px}
.support-modal button:focus-visible,.support-check input:focus-visible,button.donation-card:focus-visible{outline:3px solid #258ebd;outline-offset:3px}

/* v16: a deliberate arithmetic step before opening checkout. */
.support-math{margin-top:16px}
.support-math p{font-size:.86rem;color:#375a73;margin:0 0 10px}
.support-sum{display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.2rem;font-weight:750}
.sum-number,.support-sum input{width:54px!important;height:48px!important;text-align:center;padding:0!important;border:1px solid #b9cddb;border-radius:10px;background:#eff5fa;display:grid;place-items:center;font-size:1.2rem!important}
.support-sum input{background:#fff}
.support-sum input[aria-invalid="true"]{border-color:#a63b32}
#supportMathStatus{min-height:1.5em}
@media(max-width:360px){.support-sum{gap:7px}.sum-number,.support-sum input{width:46px!important}}

/* v18: settings grouped by purpose, with locality saving scoped to its section. */
.organised-settings .settings-section{border:1px solid #dce7ef;border-radius:15px;padding:16px;margin-top:16px;background:#fbfdff}
.organised-settings h3{font-size:1rem;line-height:1.3;margin:0 0 8px;color:#123453;letter-spacing:-.015em}
.organised-settings .section-help{font-size:.8rem;font-weight:400;color:#617c91;line-height:1.45;margin:0 0 12px}
.organised-settings .saved-home{font-size:.88rem;font-weight:750;padding:10px 12px;background:#e8f2fa;border-radius:9px;margin:12px 0}
.organised-settings .gps-status{font-size:.8rem;min-height:0;margin:10px 0 14px}
.organised-settings .locality-list{max-height:170px;background:white}
.organised-settings .home-save{width:100%;min-height:44px;margin-top:12px}
.organised-settings .settings-note{margin-top:9px}
.organised-settings .location-behaviour{border:0;background:transparent;margin:0;padding:0}
.organised-settings .behaviour-option{margin:0;padding:10px 0}
.organised-settings .behaviour-option+.behaviour-option{border-top:1px solid #e3ecf3}
.organised-settings .support-check{margin:12px 0 8px;font-weight:650}
.organised-settings .section-help:last-child{margin-bottom:0}
.organised-settings .settings-done{width:100%;min-height:44px;margin-top:18px}
@media(max-width:440px){.organised-settings .settings-section{padding:13px}.organised-settings .saved-home{overflow-wrap:anywhere}}

/* v21: one compact native home-locality picker; choices save immediately. */
#homeLocalitySelect{width:100%;min-height:46px;font:inherit;font-size:16px;color:#123453;background:#fff;border:1px solid #b9cddb;border-radius:10px;padding:10px 12px;cursor:pointer}
#homeLocalitySelect:focus-visible{outline:3px solid #2782d0;outline-offset:3px}

/* v22: a short coffee invitation, sum, and optional hide control at the bottom. */
.coffee-invitation{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:650;font-size:1.08rem;margin:18px 0}
.coffee-cup{width:38px;height:38px;flex:none;color:#76522d}
.support-modal .support-hide-bottom{margin:20px 0 0;padding-top:15px;border-top:1px solid #e3ecf3;font-size:.82rem;font-weight:500}
.support-modal .support-math p{text-align:center}
.support-modal #supportMathStatus{display:block;text-align:center;color:#617c91;font-size:.78rem;min-height:1.5em;margin-top:8px}

/* v23: four intentional tip choices, enabled only after solving the sum. */
.tip-amounts{display:flex;align-items:center;justify-content:center;gap:12px;margin:15px 0 0}
.tip-circle{width:58px;height:58px;border-radius:50%;border:0;background:#126db2;color:#fff;font-size:1.06rem;font-weight:750;flex:none;padding:0;transition:background .15s}
.tip-circle:disabled{background:#e2e7ec;color:#8a99a6;cursor:not-allowed}
.tip-circle:not(:disabled):hover{background:#0e568e}
.tip-circle:focus-visible{outline:3px solid #258ebd;outline-offset:3px}
.tip-thanks{text-align:center;font-size:.88rem;color:#617c91;margin:12px 0 0}
@media(max-width:360px){.tip-amounts{gap:9px}.tip-circle{width:50px;height:50px;font-size:.98rem}}

/* v27: introductory splash, with a quiet entrance and fade to the app. */
.splash-screen{position:fixed;inset:0;z-index:100;width:100%;height:100%;border:7px solid #7fbddd;margin:0;padding:32px 24px;background:radial-gradient(ellipse at 50% 35%,#234e6e 0,#102e48 55%,#081b2d 100%);color:#f6fbff;box-shadow:inset 0 0 0 2px #ffffff30,inset 0 0 60px #00000035;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:1;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1),filter .6s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}
.splash-screen.splash-leaving{opacity:0;transform:scale(1.025);filter:blur(3px)}
.splash-content{display:flex;flex-direction:column;align-items:center;max-width:460px;animation:splash-rise .45s ease both}
.splash-bags{display:flex;align-items:flex-end;justify-content:center;gap:5px;margin-bottom:32px}
.splash-bag{width:clamp(70px,22vw,100px);height:auto;filter:drop-shadow(0 9px 8px #00000050);animation:splash-bag-in .6s cubic-bezier(.2,.8,.2,1) both}
.splash-bag-black{animation-delay:.08s}.splash-bag-grey{animation-delay:.16s}
.splash-question{font-size:clamp(2rem,8vw,2.9rem);font-weight:800;letter-spacing:-.045em;line-height:1.18}
.splash-description{font-size:clamp(1.2rem,5vw,1.55rem);font-weight:600;line-height:1.35;color:#d3e5f2;margin-top:17px;max-width:310px}
.splash-brand{font-size:1rem;font-weight:750;margin-top:34px;letter-spacing:-.02em}
.splash-version{font-size:.8rem;font-variant-numeric:tabular-nums;color:#b4d7eb;margin-top:9px}
.splash-hint{position:absolute;bottom:calc(25px + env(safe-area-inset-bottom));font-size:.75rem;color:#b4cddd}
@keyframes splash-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes splash-bag-in{from{opacity:0;transform:translateY(15px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-height:500px){.splash-bags{margin-bottom:12px}.splash-bag{width:60px}.splash-question{font-size:1.9rem}.splash-description{font-size:1.1rem;margin-top:10px}.splash-brand{margin-top:14px}.splash-hint{bottom:10px}}
@media(prefers-reduced-motion:reduce){.splash-content,.splash-bag{animation:none}.splash-screen{transition:none}.splash-screen.splash-leaving{transform:none;filter:none}}

/* v28: illustrated bags and accessible sorting guide. */
.bag-button{border:0;background:transparent;padding:0;border-radius:18px;cursor:pointer;transition:transform .18s ease,background .18s ease}
.bag-button:hover{background:#eef6fa;transform:translateY(-3px)}.bag-button:active{transform:scale(.96)}
.bag-button img{display:block;width:150px;height:165px;object-fit:contain;filter:drop-shadow(0 6px 5px #152d4214)}
.bag-figure.bag-button{height:168px;width:150px;margin-bottom:4px}
.collection-figures .bag-figure.bag-button{height:155px;width:100%}
.collection-figures .bag-button img{height:155px;max-width:135px}
.bag-tap-hint{margin:9px 0 15px;color:#54738e;font-size:.76rem}
.splash-bag{width:clamp(82px,25vw,118px)}.splash-bags{gap:0;margin-bottom:23px}
.waste-overlay{z-index:20;background:#08263b9c;backdrop-filter:blur(4px);animation:waste-backdrop-in .2s ease both}
.waste-dialog{display:flex;flex-direction:column;background:#fff;width:min(100%,480px);max-height:min(88dvh,730px);border:1px solid #dbe8ee;border-radius:25px;overflow:hidden;box-shadow:0 26px 80px #001c3450;animation:waste-panel-in .25s cubic-bezier(.2,.8,.2,1) both}
.waste-head{display:flex;align-items:center;gap:13px;padding:17px 20px;background:#f4f8fb;border-bottom:1px solid #e0eaf0;flex-shrink:0}
.waste-preview{width:57px;flex:none}.waste-preview img{display:block;width:57px;height:68px;object-fit:contain}
.waste-heading{flex:1;min-width:0}.waste-heading .small-label{font-size:.66rem;letter-spacing:.06em}.waste-heading h2{font-size:1.3rem;letter-spacing:-.035em;line-height:1.15;margin:6px 0 0}
.waste-head .close-button{width:42px;height:42px;flex:none;border:1px solid #d6e3eb;background:#fff}
.waste-scroll{overflow-y:auto;overscroll-behavior:contain;padding:20px 24px 24px;-webkit-overflow-scrolling:touch;min-height:0}
.waste-summary{font-size:1.03rem;color:#214961;line-height:1.4;margin:0 0 12px;font-weight:650}
.waste-note{border-radius:11px;background:#eaf5ef;color:#38664d;font-size:.87rem;line-height:1.45;padding:11px 13px;margin:0 0 23px}
.waste-list-label{text-transform:uppercase;letter-spacing:.08em;font-size:.69rem;font-weight:800;color:#617b8e;margin:0 0 12px}
.waste-items section{padding:0 0 13px;margin:0 0 13px;border-bottom:1px solid #e7eef3}
.waste-items h3,.waste-exclusions h3{font-size:.95rem;margin:0 0 10px;font-weight:800}
.waste-items ul{list-style:none;padding:0;margin:0;display:grid;gap:9px}
.waste-items li{position:relative;padding-left:24px;font-size:.93rem;line-height:1.5;color:#375a71}
.waste-items li::before{content:'✓';position:absolute;left:0;top:0;color:#448362;font-weight:800}
.waste-exclusions{border-radius:12px;background:#fff4ee;padding:13px 15px;color:#89523b;margin:5px 0 19px}
.waste-exclusions p{font-size:.87rem;line-height:1.5;margin:0}
.waste-source{font-size:.85rem;font-weight:750;color:#216390;text-decoration:none}.waste-source:hover{text-decoration:underline}
.waste-checked{font-size:.7rem;color:#7890a1;margin:8px 0 0}
.waste-closing{animation:waste-backdrop-out .15s ease both}.waste-closing .waste-dialog{animation:waste-panel-out .15s ease both}
@keyframes waste-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes waste-panel-in{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes waste-backdrop-out{to{opacity:0}}@keyframes waste-panel-out{to{opacity:0;transform:translateY(9px) scale(.985)}}
@media(prefers-reduced-motion:reduce){.waste-overlay,.waste-dialog,.waste-closing,.waste-closing .waste-dialog{animation:none}.bag-button{transition:none}}
@media(max-width:360px){.waste-head{padding:14px 15px;gap:9px}.waste-scroll{padding:17px 19px}.waste-heading h2{font-size:1.15rem}}
