:root{color-scheme:light dark;--bg:#f4f6f4;--surface:#ffffff;--surface-2:#eef1ee;--text:#202522;--muted:#68706b;--brand:#2e7d32;--brand-soft:#e6f4e7;--today:#2e7d32;--tomorrow:#ef7d00;--past:#737773;--card:#ffffff;--card-border:rgba(0,0,0,0.07);--shadow:0 8px 28px rgba(25,45,30,0.09);--radius:18px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}html[data-theme="dark"]{color-scheme:dark;--bg:#171917;--surface:#202220;--surface-2:#2a2d2a;--text:#f3f5f3;--muted:#b3bab5;--brand:#81c784;--brand-soft:#203a24;--today:#2e7d32;--tomorrow:#f58200;--past:#454845;--card:#303330;--card-border:rgba(255,255,255,0.05);--shadow:0 10px 34px rgba(0,0,0,0.28)}@media (prefers-color-scheme:dark){html:not([data-theme]){color-scheme:dark;--bg:#171917;--surface:#202220;--surface-2:#2a2d2a;--text:#f3f5f3;--muted:#b3bab5;--brand:#81c784;--brand-soft:#203a24;--today:#2e7d32;--tomorrow:#f58200;--past:#454845;--card:#303330;--card-border:rgba(255,255,255,0.05);--shadow:0 10px 34px rgba(0,0,0,0.28)}}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit}a{color:inherit}.app-shell{width:min(100%,760px);min-height:100dvh;margin:0 auto;padding:calc(18px + var(--safe-top)) 18px calc(22px + var(--safe-bottom))}.topbar{position:relative;display:grid;grid-template-columns:1fr 46px;align-items:start;gap:12px;margin-bottom:18px}.title-wrap{text-align:center;padding-left:46px}h1{margin:8px 0 0;color:var(--brand);font-size:clamp(1.75rem,6vw,2.55rem);line-height:1.06;letter-spacing:-0.025em;font-weight:800}.icon-button{width:46px;height:46px;border:0;border-radius:50%;background:transparent;color:var(--text);font-size:2rem;line-height:1;cursor:pointer}.icon-button:active{background:var(--surface-2)}.menu-panel{position:absolute;z-index:30;right:0;top:52px;min-width:218px;padding:8px;border:1px solid var(--card-border);border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}.menu-panel button{width:100%;padding:12px 13px;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.menu-panel button:hover,.menu-panel button:focus-visible{background:var(--surface-2);outline:none}.menu-separator{height:1px;margin:6px 4px;background:var(--card-border)}main{display:grid;gap:22px}.summary-card{display:grid;gap:7px;padding:18px 20px;border:1px solid var(--card-border);border-radius:var(--radius);background:linear-gradient(135deg,var(--brand-soft),var(--surface));box-shadow:var(--shadow)}.summary-label{color:var(--muted);font-size:0.82rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase}.summary-content{display:flex;align-items:center;gap:10px;font-size:clamp(1.15rem,5vw,1.55rem);font-weight:750}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:2px 2px 10px}.section-heading h2,.info-card h2,.source-card h2{margin:0;font-size:1.05rem}.month-label{color:var(--muted);font-size:0.9rem;font-weight:650}.calendar-list{display:grid;gap:12px}.day-card{position:relative;width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;min-height:104px;padding:16px 18px;border:1px solid var(--card-border);border-radius:16px;background:var(--card);color:var(--text);box-shadow:0 4px 16px rgba(20,30,22,0.05);text-align:left;cursor:pointer;overflow:hidden;transition:transform 120ms ease,box-shadow 120ms ease}.day-card:active{transform:scale(0.992)}.day-card:hover{box-shadow:var(--shadow)}.day-card:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 45%,transparent);outline-offset:2px}.day-card.today,.day-card.tomorrow{color:#fff;border-color:transparent}.day-card.today{background:var(--today)}.day-card.tomorrow{background:var(--tomorrow)}.day-card.past{background:var(--past);color:#fff}.day-date{margin:0 0 10px;font-size:1.03rem;font-weight:800}.day-waste{display:flex;align-items:center;gap:9px;font-size:1.18rem;font-weight:500}.day-emoji{font-size:1.28rem}.day-badge{align-self:start;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,0.17);color:inherit;font-size:0.72rem;font-weight:850;letter-spacing:0.06em}.hint,.section-note{color:var(--muted);font-size:0.86rem;line-height:1.45}.hint{margin:-4px 0 0;text-align:center}.section-note{margin:10px 2px 0}.info-section,.info-card,.source-card{padding:18px;border:1px solid var(--card-border);border-radius:var(--radius);background:var(--surface);box-shadow:0 4px 16px rgba(20,30,22,0.04)}.compact-list{display:grid;gap:9px}.compact-item{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--card-border);border-radius:13px;background:var(--surface-2);color:var(--text);text-align:left;cursor:pointer}.compact-date{display:grid;gap:2px}.compact-date small{color:var(--muted);font-size:0.76rem}.compact-waste{text-align:right;font-weight:800;font-size:0.88rem}.compact-right{display:grid;justify-items:end;gap:6px}.compact-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand);font-size:0.67rem;font-weight:850;letter-spacing:0.055em}.compact-item.collected{opacity:0.78}.compact-item.current{border-color:color-mix(in srgb,var(--brand) 45%,var(--card-border));box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 10%,transparent)}.info-card{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.info-card-icon{font-size:1.75rem;line-height:1}.info-card p{margin:10px 0 0;line-height:1.48}.secondary-button{display:inline-flex;margin-top:13px;padding:10px 12px;border-radius:11px;background:var(--brand-soft);color:var(--brand);font-weight:800;text-decoration:none}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.contact-button{display:grid;gap:3px;padding:12px;border:1px solid var(--card-border);border-radius:12px;background:var(--surface-2);text-decoration:none}.contact-button span{color:var(--muted);font-size:0.76rem}.source-card p{margin:10px 0 12px;color:var(--muted);line-height:1.48}.source-links{display:flex;flex-wrap:wrap;gap:10px}.source-links a{display:inline-flex;padding:9px 11px;border-radius:10px;background:var(--surface-2);color:var(--brand);font-weight:750;text-decoration:none}footer{display:flex;justify-content:center;flex-wrap:wrap;gap:7px;margin-top:28px;color:var(--muted);font-size:0.76rem;text-align:center;line-height:1.45}.dot{opacity:0.6}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:end center;padding:18px;background:rgba(0,0,0,0.55);backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.modal{position:relative;width:min(100%,560px);max-height:min(82dvh,720px);overflow:auto;padding:24px 20px 18px;border-radius:22px;background:var(--surface);color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,0.34);animation:modalIn 150ms ease-out}@keyframes modalIn{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.modal h2{margin:0 42px 16px 0;font-size:1.35rem}.modal-body{line-height:1.46}.modal-body h3{margin:18px 0 8px;font-size:0.98rem}.modal-body ul{margin:6px 0 0;padding-left:1.25rem}.modal-body li{margin:5px 0}.modal-body .yes{color:#2e7d32}html[data-theme="dark"] .modal-body .yes{color:#8bd28e}.modal-source{margin-top:18px;color:var(--muted);font-size:0.82rem}.modal-close-x{position:absolute;right:13px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:var(--surface-2);color:var(--text);font-size:1.6rem;cursor:pointer}.primary-button{width:100%;margin-top:20px;padding:13px 16px;border:0;border-radius:12px;background:var(--brand);color:#fff;font-weight:800;cursor:pointer}.toast{position:fixed;z-index:200;left:50%;bottom:calc(22px + var(--safe-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);padding:11px 14px;border-radius:12px;background:#252825;color:#fff;box-shadow:var(--shadow);font-size:0.9rem}.toast[hidden]{display:none}@media (min-width:680px){.app-shell{padding-left:28px;padding-right:28px}.calendar-list{grid-template-columns:1fr 1fr}.day-card{min-height:122px}.modal-backdrop{place-items:center}}@media (max-width:480px){.contact-grid{grid-template-columns:1fr}.compact-item{grid-template-columns:1fr}.compact-waste{text-align:left}}@media (max-width:380px){.app-shell{padding-left:12px;padding-right:12px}.day-card{padding:15px}.day-waste{font-size:1.05rem}}
