@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&family=Outfit:wght@400;500;600;700&display=swap');

:root {
  --bg:      #F0F4F8;
  --surface: #FFFFFF;
  --border:  #E2E8F0;
  --text:    #1A2332;
  --muted:   #64748B;
  --green:   #2E7D32;
  --rad:     14px;
  --rad-s:   9px;
  --shadow:  0 2px 12px rgba(0,0,0,.07);
  --shadow-m:0 4px 24px rgba(0,0,0,.12);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%}

/* ── HEADER ── */
.app-header{
  position:sticky;top:0;z-index:80;
  height:52px;background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:8px;
  padding:0 12px;box-shadow:var(--shadow);
}
.app-logo{display:flex;align-items:center;gap:8px;flex:1;text-decoration:none}
.logo-icon{width:32px;height:32px;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}
.logo-text{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.18rem;line-height:1;letter-spacing:-.3px;display:flex;align-items:baseline;gap:0}
.logo-moje{color:#3cb54a;text-shadow:0 1px 0 rgba(0,0,0,.08)}
.logo-odpady{color:#2e86c1;text-shadow:0 1px 0 rgba(0,0,0,.08)}
.header-loc{font-size:.68rem;color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn-icon{background:none;border:none;padding:7px;border-radius:7px;font-size:1rem;cursor:pointer;display:flex;align-items:center;gap:3px;color:var(--text);transition:background .15s}
.btn-icon:hover{background:var(--border)}
.btn-icon small{font-size:.62rem;font-weight:700;color:var(--muted)}

/* ── MAIN ── */
.main-wrap{max-width:640px;width:100%;margin:0 auto;padding:12px 12px 72px;box-sizing:border-box}
.hidden{display:none!important}

/* ── LOCATION SCREEN ── */
#screen-location{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:calc(100vh - 52px);padding:24px 14px;gap:0}
.loc-card{background:var(--surface);border-radius:22px;padding:28px 20px;box-shadow:var(--shadow-m);width:100%;max-width:380px;text-align:center}
.loc-card .loc-emoji{font-size:2.8rem;margin-bottom:8px}
.loc-card h2{font-family:'Nunito',sans-serif;font-weight:900;font-size:1.3rem;margin-bottom:5px}
.loc-card p{color:var(--muted);font-size:.85rem;margin-bottom:22px;line-height:1.5}
.loc-fields{display:flex;flex-direction:column;gap:9px;text-align:left}
.loc-fields label{display:block;font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.loc-fields select{
  width:100%;padding:10px 36px 10px 12px;
  border:2px solid var(--border);border-radius:var(--rad-s);
  font-family:'Outfit',sans-serif;font-size:.92rem;color:var(--text);
  background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center;
  appearance:none;cursor:pointer;transition:border-color .15s;
}
.loc-fields select:focus{outline:none;border-color:#4CAF50}
.loc-fields select:disabled{opacity:.35;cursor:not-allowed}
.btn-primary{
  width:100%;padding:12px;margin-top:4px;
  background:linear-gradient(135deg,#4CAF50,#2E7D32);
  color:#fff;border:none;border-radius:var(--rad-s);
  font-family:'Nunito',sans-serif;font-weight:900;font-size:.95rem;
  cursor:pointer;transition:opacity .15s,transform .15s;
}
.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}
.btn-primary:disabled{opacity:.35;cursor:not-allowed}

/* ── SECTION LABEL ── */
.sec-label{font-family:'Nunito',sans-serif;font-weight:900;font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:14px 0 6px}

/* ── STREETS ── */
.streets-panel{background:var(--surface);border-radius:var(--rad);box-shadow:var(--shadow);overflow:hidden;margin-bottom:3px}
.streets-toggle{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;cursor:pointer;user-select:none;font-weight:700;font-size:.83rem;gap:8px}
.st-chev{color:var(--muted);transition:transform .2s;font-style:normal}
.streets-panel.open .st-chev{transform:rotate(180deg)}
.streets-body{max-height:0;overflow:hidden;transition:max-height .3s ease}
.streets-panel.open .streets-body{max-height:600px}
.streets-list{padding:4px 13px 11px;display:flex;flex-wrap:wrap;gap:5px}
.street-tag{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:3px 9px;font-size:.72rem;color:var(--muted)}
.streets-note{padding:7px 13px 11px;font-size:.72rem;color:var(--muted);font-style:italic;border-top:1px solid var(--border)}

/* ── UPCOMING GRID ── */
.upcoming-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:3px}
@media(min-width:420px){.upcoming-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:560px){.upcoming-grid{grid-template-columns:repeat(4,1fr)}}
.waste-card{
  background:var(--surface);border-radius:var(--rad);padding:10px 9px;
  box-shadow:var(--shadow);border-top:6px solid var(--card-color,#ccc);
  display:flex;flex-direction:column;gap:6px;
  transition:transform .15s,box-shadow .15s;
  position:relative;overflow:hidden;
}
/* Prawy górny narożnik — gruby trójkąt w kolorze kategorii */
.waste-card::after{
  content:'';position:absolute;top:0;right:0;
  width:0;height:0;
  border-style:solid;
  border-width:0 28px 28px 0;
  border-color:transparent var(--card-color,#ccc) transparent transparent;
}
.waste-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-m)}
.card-top{display:flex;align-items:center;gap:6px}
.waste-icon{font-size:1.25rem;line-height:1}
.waste-name{font-weight:700;font-size:.72rem;line-height:1.2}
.waste-bag{font-size:.62rem;color:var(--muted);margin-top:2px}
.date-row{display:flex;align-items:center;gap:4px;margin-bottom:2px}
.date-lbl{font-size:.59rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.days-badge{font-size:.58rem;font-weight:800;padding:1px 5px;border-radius:8px}
.today-badge,.urgent-badge{background:#FFEBEE;color:#C62828}
.soon-badge{background:#FFF3E0;color:#E65100}
.date-val{font-family:'Nunito',sans-serif;font-weight:800;font-size:.8rem;color:var(--text)}
.date-val.today,.date-val.urgent{color:#C62828;border:2px solid #C62828;border-radius:4px;padding:0 3px;animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(198,40,40,.3)}50%{box-shadow:0 0 0 4px rgba(198,40,40,0)}}
.date-val2{font-size:.68rem;color:var(--muted);font-weight:600}

/* ── SCHEDULE ── */
.sched-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.year-btns{display:flex;gap:4px}
.year-btn{padding:3px 11px;border:2px solid var(--border);border-radius:14px;background:none;font-family:'Outfit',sans-serif;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s}
.year-btn.active{background:var(--text);color:#fff;border-color:var(--text)}
.sched-box{background:var(--surface);border-radius:var(--rad);box-shadow:var(--shadow);overflow:hidden}
.sched-hint{text-align:center;padding:6px;font-size:.65rem;color:var(--muted);background:#FAFBFC;border-bottom:1px solid var(--border)}
.sched-scroll{overflow-x:auto;max-height:200px;-webkit-overflow-scrolling:touch;transition:max-height .4s ease}
.sched-scroll.expanded{max-height:2000px}
.sched-scroll::-webkit-scrollbar{height:3px}
.sched-scroll::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:2px}
table.sched-table{width:100%;border-collapse:collapse;font-size:.7rem;min-width:480px}
.sched-table thead tr{background:#1A2332;color:#fff}
.sched-table th{padding:6px 3px;text-align:center;font-size:.62rem;font-weight:700;white-space:nowrap;letter-spacing:.03em}
.sched-table th.col-type{text-align:left;padding-left:9px;min-width:130px}
.sched-table th.cur-month{background:#2E7D32}
.sched-table td{padding:4px 3px;text-align:center;border-bottom:1px solid #F0F0F0;vertical-align:top}
.sched-table td.col-type{padding-left:9px;text-align:left;font-weight:600;font-size:.68rem;white-space:nowrap}
.sched-table tbody tr:nth-child(even){background:#FAFBFC}
.sched-table tbody tr:hover{background:#F0F4F8}
.type-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle}
.chips{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}
.day-chip{display:inline-block;border-radius:3px;padding:1px 4px;font-weight:700;font-size:.62rem}
.chip-ok{background:color-mix(in srgb,var(--cc) 18%,white);color:var(--cc)}
.chip-today{background:#FF6B00;color:#fff}
.chip-past{opacity:.28;background:#eee;color:#666}
.no-data{padding:12px;text-align:center;font-size:.82rem;color:var(--muted)}
.sched-expand-btn{width:100%;padding:8px;border:none;background:var(--surface);border-top:1px solid var(--border);font-family:'Outfit',sans-serif;font-size:.72rem;font-weight:700;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px}
.sched-expand-btn:hover{background:var(--bg)}

/* ── NOTES ── */
#notes-btn{width:100%;background:var(--surface);border:none;border-radius:var(--rad);padding:11px 13px;display:flex;align-items:center;justify-content:space-between;font-family:'Outfit',sans-serif;font-size:.83rem;font-weight:700;cursor:pointer;color:var(--text);box-shadow:var(--shadow)}
#notes-btn:hover{background:#FAFBFC}
.notes-content{background:var(--surface);border-radius:0 0 var(--rad) var(--rad);padding:0 13px;max-height:0;overflow:hidden;box-shadow:var(--shadow);transition:max-height .4s ease,padding .3s}
.notes-content.open{max-height:3000px;padding:12px 13px}
.note-block{margin-bottom:12px}
.note-block:last-child{margin-bottom:0}
.note-title{font-weight:700;font-size:.78rem;margin-bottom:3px}
.note-block.note-warning .note-title{color:#C62828}
.note-list{padding-left:15px}
.note-list li{font-size:.75rem;color:var(--muted);margin-bottom:2px}

/* ── COOKIE BANNER ── */
.cookie-banner{position:fixed;bottom:-120px;left:0;right:0;z-index:200;padding:10px 12px;background:#1A2332;color:#fff;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.75rem;transition:bottom .4s ease;box-shadow:0 -2px 16px rgba(0,0,0,.2)}
.cookie-banner.show{bottom:0}
.cookie-banner p{flex:1;min-width:200px;line-height:1.4}
.cookie-btns{display:flex;gap:6px;flex-shrink:0}
.cookie-btns button{padding:6px 14px;border:none;border-radius:6px;font-size:.75rem;font-weight:700;cursor:pointer}
.btn-accept{background:#4CAF50;color:#fff}
.btn-reject{background:rgba(255,255,255,.12);color:#fff}

/* ── LOADING ── */
.loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px;font-size:.85rem;color:var(--muted)}
.spin{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── SEARCH ── */
.search-input-wrap{
  position:relative;display:flex;align-items:center;
}
.search-icon{
  position:absolute;left:11px;font-size:.9rem;pointer-events:none;z-index:1;
}
#street-search{
  width:100%;padding:10px 36px 10px 34px;
  border:2px solid var(--border);border-radius:var(--rad-s);
  font-family:'Outfit',sans-serif;font-size:.92rem;color:var(--text);
  background:var(--bg);transition:border-color .15s;
}
#street-search:focus{outline:none;border-color:#4CAF50;background:#fff}
#street-search:disabled{opacity:.4;cursor:not-allowed}

.search-clear{
  position:absolute;right:8px;
  background:none;border:none;cursor:pointer;
  font-size:.8rem;color:var(--muted);padding:4px;
  border-radius:50%;line-height:1;
  transition:background .15s, color .15s;
}
.search-clear:hover{background:var(--border);color:var(--text)}

/* Dropdown z podpowiedziami */
.search-suggestions{
  position:absolute;left:0;right:0;top:calc(100% + 4px);
  background:var(--surface);border:2px solid var(--border);
  border-radius:var(--rad-s);box-shadow:var(--shadow-m);
  z-index:100;overflow:hidden;
  max-height:280px;overflow-y:auto;
}
.search-suggestions::-webkit-scrollbar{width:4px}
.search-suggestions::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:2px}

.sug-item{
  padding:10px 13px;cursor:pointer;
  border-bottom:1px solid var(--border);
  transition:background .12s;
}
.sug-item:last-child{border-bottom:none}
.sug-item:hover{background:#F0F4F8}
.sug-street{font-weight:700;font-size:.88rem;color:var(--text);margin-bottom:2px}
.sug-street mark{background:#FFF176;color:var(--text);border-radius:2px;padding:0 1px}
.sug-area{font-size:.72rem;color:var(--muted)}

.sug-empty{
  padding:14px 13px;text-align:center;
  font-size:.82rem;color:var(--muted);
}

/* Potwierdzenie wybranego rejonu */
.selected-info{
  margin-top:8px;padding:9px 12px;
  background:#E8F5E9;border:1px solid #A5D6A7;
  border-radius:var(--rad-s);font-size:.82rem;color:#1B5E20;
}
.sel-check{font-size:1rem;margin-right:4px}

/* pozycjonowanie wrapa dla dropdownu */
#search-wrap{position:relative}

/* ── PAST MONTH header ── */
.sched-table th.past-month{background:#2a2a2a;opacity:.45}

/* ── FOOTER ── */
.app-footer{
  text-align:center;padding:18px 16px 24px;
  font-size:.67rem;color:var(--muted);
  border-top:1px solid var(--border);margin-top:24px;
  line-height:1.6;
}
.app-footer a{color:var(--muted);text-decoration:none}
.app-footer a:hover{text-decoration:underline}

/* ── REKLAMY ── */
.ad-label{font-size:.58rem;font-weight:700;color:var(--muted);text-transform:uppercase;
  letter-spacing:.08em;text-align:center;margin-bottom:4px}

/* Baner pod treścią, przed stopką */
.ad-banner-wrap{
  max-width:640px;width:100%;margin:24px auto 0;padding:0 12px;
  opacity:0;transition:opacity .5s ease;
}
.ad-banner-wrap.ad-loaded{opacity:1}
.ad-slot-banner{
  min-height:90px;background:var(--surface);border-radius:var(--rad);
  border:1px dashed var(--border);display:flex;align-items:center;
  justify-content:center;overflow:hidden;
}

/* Interstitial — nakładka całoekranowa */







.ad-slot-interstitial{
  min-height:280px;display:flex;align-items:center;justify-content:center;
}

/* Placeholder (usuń po wstawieniu AdSense) */
.ad-placeholder{
  text-align:center;font-size:.8rem;color:var(--muted);padding:16px;line-height:1.6;
}
.ad-placeholder-big{font-size:.92rem;padding:32px 20px}

/* ── ZARZĄDZANIE ZGODAMI (RODO) ── */
.footer-privacy {
  margin-top: 10px;
}
.btn-revoke-consent {
  background: none;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 5px 14px;
  font-family: 'Outfit', sans-serif;
  font-size: .65rem;
  color: var(--muted);
  cursor: pointer;
  transition: background .15s, color .15s;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.btn-revoke-consent:hover {
  background: var(--border);
  color: var(--text);
}

/* ── PASEK ZAPISANYCH ADRESÓW ── */
.saved-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 9px 12px;
  margin-bottom: 14px;
}
.saved-bar-label {
  font-size: .72rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
  margin-right: 2px;
}
.saved-bar-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1;
}
.saved-chip {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  transition: border-color .15s;
}
.saved-chip.active {
  border-color: var(--primary);
  background: rgba(46,134,193,.10);
}
.saved-chip-btn {
  background: none;
  border: none;
  padding: 4px 10px 4px 10px;
  font-family: 'Outfit', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.saved-chip.active .saved-chip-btn { color: var(--primary); }
.saved-chip-del {
  background: none;
  border: none;
  border-left: 1px solid var(--border);
  padding: 4px 7px;
  font-size: .7rem;
  color: var(--muted);
  cursor: pointer;
  line-height: 1;
  transition: color .15s, background .15s;
}
.saved-chip-del:hover { color: #e53935; background: rgba(229,57,53,.08); }
.saved-bar-add {
  background: none;
  border: 1.5px dashed var(--border);
  border-radius: 20px;
  padding: 4px 12px;
  font-family: 'Outfit', sans-serif;
  font-size: .78rem;
  font-weight: 600;
  color: var(--primary);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color .15s, background .15s;
}
.saved-bar-add:hover { border-color: var(--primary); background: rgba(46,134,193,.08); }

/* ── PRZYCISK ANULUJ W EKRANIE LOKALIZACJI ── */
.btn-cancel {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 12px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: none;
  font-family: 'Outfit', sans-serif;
  font-size: .95rem;
  font-weight: 600;
  color: var(--muted);
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-cancel:hover { background: var(--border); color: var(--text); }

/* ══ O APLIKACJI ══════════════════════════════════════════════ */
.about-section {
  width: 100%;
  max-width: 380px;
  margin: 20px 0 24px;
}

.about-card {
  background: #fff;
  border-radius: 16px;
  padding: 22px 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  border: 1px solid #e8f0e8;
}

.about-icon {
  font-size: 2.2rem;
  margin-bottom: 10px;
}

.about-card h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #1a3a1a;
  margin-bottom: 10px;
}

.about-card > p {
  font-size: .95rem;
  color: #444;
  line-height: 1.6;
  margin-bottom: 20px;
}

.about-features {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 22px;
}

.about-feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: .88rem;
  color: #444;
  line-height: 1.5;
}

.about-feature-icon {
  font-size: 1.3rem;
  flex-shrink: 0;
  margin-top: 1px;
}

.about-feature strong {
  color: #1a3a1a;
  display: block;
  margin-bottom: 1px;
}

.about-contact {
  background: #f0f7f0;
  border-radius: 10px;
  padding: 14px 16px;
  font-size: .88rem;
  color: #444;
  line-height: 1.6;
}

.about-contact strong {
  color: #1a3a1a;
  display: block;
  margin-bottom: 4px;
}

.about-contact a {
  color: #2d7a2d;
  font-weight: 600;
  text-decoration: none;
}

.about-contact a:hover {
  text-decoration: underline;
}

/* ══ SYSTEM REKLAM WŁASNYCH ═══════════════════════════════════ */
/* Popup */
#ad-popup-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.6);
  z-index: 9999; display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .3s;
}
.ad-popup-box {
  background: #fff; border-radius: 16px; overflow: hidden;
  max-width: 92vw; width: 400px; box-shadow: 0 8px 40px rgba(0,0,0,.3);
}
.ad-popup-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; background: #1e293b;
}
.ad-popup-close {
  background: none; border: 1px solid rgba(255,255,255,.3); color: #fff;
  border-radius: 6px; padding: 4px 10px; font-size: .8rem; cursor: pointer;
}
.ad-popup-close:disabled { opacity: .5; cursor: not-allowed; }
.ad-popup-close:not(:disabled):hover { background: rgba(255,255,255,.1); }
.ad-popup-img { width: 100%; display: block; max-height: 60vh; object-fit: contain; }

/* Baner */
.ad-banner-wrap { margin: 16px 0; }
.ad-banner-inner { position: relative; }
.ad-banner-img { width: 100%; border-radius: 10px; display: block; }

/* Kontakt po kliknięciu */
.ad-popup-contact {
  padding: 12px 16px; background: #f8fafc;
  display: flex; flex-direction: column; gap: 8px;
}
.ad-contact-link {
  display: flex; align-items: center; gap: 8px;
  color: var(--primary, #2d7a2d); font-size: .9rem; font-weight: 600;
  text-decoration: none; padding: 8px 12px;
  background: #fff; border-radius: 8px; border: 1.5px solid #e2e8f0;
}
.ad-contact-link:hover { background: #f0fdf4; border-color: var(--primary, #2d7a2d); }
.ad-label {
  font-size: .7rem; text-transform: uppercase; letter-spacing: .06em;
  color: #94a3b8; margin-bottom: 4px;
}
