@import url('https://fonts.googleapis.com/css2?family=Anton&family=Space+Mono:wght@400;700&display=swap');
:root{
  --ink:#16161A; --mag:#FF2E63; --muted:#7A7A82;
  --bg:#ffffff; --card:#ffffff; --line:#E7E7EC; --panel:#F7F7F9;
  --radius:0; --shadow:none;
  --anton:'Anton',sans-serif; --mono:'Space Mono',monospace;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--ink);}
.hidden{display:none !important;}
.muted{color:var(--muted);font-size:14px;}

/* top bar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 22px;background:var(--ink);color:#fff;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{width:40px;height:40px;display:block;flex:0 0 auto;}
.wm{font-family:var(--anton);font-size:30px;line-height:1;letter-spacing:.5px;}
.wm .wo{color:#fff;} .wm .wa{color:var(--mag);}
.brand-sub{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:#8A8A92;margin-top:4px;}
.tabs{display:flex;gap:8px;}
.tab{background:#26262C;color:#fff;border:0;padding:9px 16px;border-radius:0;
  font-size:13px;font-weight:700;letter-spacing:.4px;cursor:pointer;display:flex;align-items:center;gap:8px;}
.tab.active{background:var(--mag);color:#fff;}
.badge{background:var(--mag);color:#fff;border-radius:0;font-size:11px;
  padding:1px 7px;font-weight:700;}
.tab.active .badge{background:var(--ink);color:#fff;}

main{max-width:1120px;margin:0 auto;padding:22px 24px 60px;}

/* filters */
.filters{margin-bottom:18px;}
.filter-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.select,.search{border:1px solid var(--line);border-radius:0;padding:10px 12px;font-size:15px;
  background:#fff;font-family:inherit;}
.select{min-width:190px;}
.search{flex:1;min-width:200px;}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.chip{border:1px solid var(--line);background:#fff;border-radius:0;padding:7px 14px;
  font-size:13px;cursor:pointer;color:var(--ink);font-weight:600;}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink);}
.chip.cat.active{background:var(--mag);border-color:var(--mag);}
.daterange{display:inline-flex;align-items:center;gap:6px;margin-left:4px;}
.dateinp{border:1px solid var(--line);border-radius:0;padding:6px 11px;font-size:13px;
  font-weight:600;color:var(--ink);background:#fff;font-family:inherit;}
.daterange-clear{padding:6px 10px;}

/* category dropdown */
.catdrop{position:relative;margin-bottom:10px;}
.catbtn{border:1px solid var(--ink);background:#fff;color:var(--ink);border-radius:0;
  padding:9px 14px;font-size:13px;font-weight:700;letter-spacing:.4px;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;}
.catbtn .catcur{color:var(--mag);font-family:var(--mono);font-size:11px;letter-spacing:.5px;}
.catpanel{position:absolute;left:0;top:calc(100% + 6px);z-index:20;background:#fff;
  border:1px solid var(--ink);min-width:440px;max-width:92vw;}
.catpanel .cathd{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:#9A9AA2;
  padding:11px 14px 9px;border-bottom:1px solid var(--line);}
.catpanel .chips{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0;}
.catpanel .chip{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  border-radius:0;padding:12px 14px;text-align:left;font-weight:600;letter-spacing:.5px;}
.catpanel .chips .chip:nth-child(2n){border-right:0;}
.catpanel .chip.active{background:var(--ink);color:#fff;}

/* results */
.results-head{display:flex;align-items:center;gap:10px;margin:6px 0 16px;flex-wrap:wrap;}
.results-head h2{margin:0;font-family:var(--anton);font-weight:400;font-size:22px;letter-spacing:.5px;}
.sort{margin-left:auto;display:inline-flex;gap:0;border:1px solid var(--line);border-radius:0;}
.sortbtn{border:0;background:transparent;border-radius:0;padding:7px 13px;font-size:13px;
  font-weight:700;color:var(--muted);cursor:pointer;}
.sortbtn.active{background:var(--ink);color:#fff;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;}
.empty{padding:50px 20px;text-align:center;color:var(--muted);line-height:1.6;}

/* featured hero */
.featured{margin-bottom:22px;}
.feat-card{display:grid;grid-template-columns:1.5fr 1fr;border:1px solid var(--line);cursor:pointer;}
.feat-img{position:relative;min-height:260px;display:flex;align-items:flex-end;overflow:hidden;color:#fff;}
.feat-img .card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.feat-img::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,0) 55%);pointer-events:none;}
.feat-badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--mag);color:#fff;
  font-family:var(--mono);font-weight:700;font-size:12px;letter-spacing:1px;padding:7px 12px;}
.feat-pill{position:absolute;top:14px;right:14px;z-index:2;background:rgba(0,0,0,.4);color:#fff;
  font-size:12px;font-weight:700;letter-spacing:1px;padding:7px 12px;text-transform:uppercase;}
.feat-heart{position:absolute;bottom:14px;right:14px;z-index:2;background:rgba(0,0,0,.45);border:0;
  color:#fff;width:40px;height:40px;font-size:19px;cursor:pointer;line-height:1;}
.feat-heart.on{background:var(--mag);}
.feat-titlewrap{position:relative;z-index:2;padding:16px 18px;}
.feat-title{font-family:var(--anton);font-weight:400;font-size:34px;line-height:1;letter-spacing:.5px;}
.feat-body{padding:20px 22px;display:flex;flex-direction:column;justify-content:center;gap:16px;}
.feat-meta{display:flex;flex-direction:column;gap:9px;font-size:13px;color:#3A3A42;
  font-family:var(--mono);letter-spacing:.3px;}
.feat-meta b{color:var(--mag);font-weight:700;margin-right:6px;}
.feat-actions{display:flex;gap:10px;flex-wrap:wrap;}
.feat-actions .bp{background:var(--mag);color:#fff;border:0;font-weight:700;font-size:14px;
  padding:12px 22px;cursor:pointer;text-decoration:none;display:inline-block;}
.feat-actions .bs{background:#fff;color:var(--ink);border:1.5px solid var(--ink);font-weight:700;
  font-size:14px;padding:12px 20px;cursor:pointer;}

/* card */
.card{background:var(--card);border:1px solid var(--line);border-radius:0;
  overflow:hidden;box-shadow:none;display:flex;flex-direction:column;
  transition:transform .12s ease, border-color .12s ease;cursor:pointer;}
.card:hover{transform:translateY(-3px);border-color:var(--ink);}
.card-img{position:relative;height:150px;display:flex;align-items:flex-end;justify-content:space-between;
  padding:10px;color:#fff;overflow:hidden;}
.card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.card-img::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top, rgba(0,0,0,.5), rgba(0,0,0,0) 55%);pointer-events:none;}
.card-img > .card-cat, .card-img > .heart{position:relative;z-index:2;}
.card-cat{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
  background:rgba(0,0,0,.5);padding:3px 9px;border-radius:0;}
.heart{background:rgba(0,0,0,.45);border:0;color:#fff;width:34px;height:34px;border-radius:0;
  font-size:17px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;}
.heart.on{background:var(--mag);}
.card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1;}
.card-title{font-family:var(--anton);font-weight:400;font-size:18px;line-height:1.05;letter-spacing:.3px;}
.card-meta{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:2px;
  font-family:var(--mono);letter-spacing:.2px;}
.card-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;padding-top:6px;}
.price{font-size:13px;font-weight:700;color:var(--mag);font-family:var(--mono);}
/* hype / vote button */
.hype{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;
  border-radius:0;padding:4px 11px;font-size:13px;font-weight:800;color:var(--muted);cursor:pointer;
  transition:transform .1s ease;}
.hype:hover{transform:scale(1.06);}
.hype.on{background:#FFF0F4;border-color:#FAD1DC;color:var(--mag);}
.hype-btn{width:100%;margin-top:14px;background:#FFF0F4;color:var(--mag);border:1px solid #FAD1DC;}
.hype-btn.on{background:var(--mag);color:#fff;border-color:var(--mag);}

/* category colors (used as card image background fallback) */
.bg-koncerty{background:linear-gradient(135deg,#3A2E5E,#7b2ff7);}
.bg-teatr{background:linear-gradient(135deg,#7A2438,#240b36);}
.bg-sport{background:linear-gradient(135deg,#16403C,#11998e);}
.bg-kabaret{background:linear-gradient(135deg,#8A5410,#f7971e);}
.bg-festiwale{background:linear-gradient(135deg,#993556,#ee0979);}
.bg-klub{background:linear-gradient(135deg,#16161A,#2c5364);}
.bg-film{background:linear-gradient(135deg,#26215C,#41295a);}
.bg-wystawy{background:linear-gradient(135deg,#1d976c,#0F6E56);}
.bg-kulinaria{background:linear-gradient(135deg,#7A2438,#b5172a);}
.bg-default{background:linear-gradient(135deg,#2C2C2A,#16161A);}

/* calendar (saved) list */
.cal-day{margin-bottom:22px;}
.cal-date{font-family:var(--anton);font-weight:400;font-size:16px;color:var(--ink);letter-spacing:.5px;
  text-transform:capitalize;border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:10px;}
.cal-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);
  border-radius:0;padding:12px 14px;margin-bottom:8px;}
.cal-time{font-family:var(--mono);font-weight:700;color:var(--mag);min-width:52px;}
.cal-info{flex:1;}
.cal-info .t{font-family:var(--anton);font-weight:400;letter-spacing:.3px;font-size:16px;}
.cal-info .s{font-size:12px;color:var(--muted);font-family:var(--mono);}
.cal-cat{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;
  padding:3px 8px;border-radius:0;color:#fff;}
.btn-small{border:1px solid var(--line);background:#fff;border-radius:0;padding:6px 10px;
  cursor:pointer;font-size:13px;}
.btn-remove{color:var(--mag);border-color:#FAD1DC;}

/* modal */
.modal{position:fixed;inset:0;background:rgba(15,15,20,.6);display:flex;align-items:center;
  justify-content:center;padding:20px;z-index:50;}
.modal-card{background:#fff;border-radius:0;max-width:480px;width:100%;position:relative;
  overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);border:1px solid var(--ink);}
.modal-close{position:absolute;top:10px;right:12px;background:rgba(0,0,0,.4);color:#fff;border:0;
  width:34px;height:34px;border-radius:0;font-size:22px;cursor:pointer;z-index:2;line-height:1;}
.modal-hero{position:relative;height:170px;display:flex;align-items:flex-end;padding:14px;color:#fff;overflow:hidden;}
.modal-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.modal-hero::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 60%);pointer-events:none;}
.modal-hero > .card-cat{position:relative;z-index:2;}
.modal-content{padding:18px 20px 22px;}
.modal-content h2{margin:0 0 8px;font-family:var(--anton);font-weight:400;font-size:26px;letter-spacing:.3px;}
.modal-row{display:flex;gap:8px;font-size:14.5px;margin:6px 0;color:#333;}
.modal-row b{min-width:78px;color:var(--muted);font-weight:600;}
.modal-actions{display:flex;gap:10px;margin-top:16px;}
.btn{flex:1;border:0;border-radius:0;padding:12px;font-size:15px;font-weight:700;cursor:pointer;}
.btn-primary{background:var(--mag);color:#fff;}
.btn-primary.on{background:var(--ink);}
.btn-ghost{background:#EFEFF2;color:var(--ink);}
a.btn-ghost{text-decoration:none;display:flex;align-items:center;justify-content:center;}

.foot{text-align:center;color:var(--muted);font-size:12.5px;padding:24px;border-top:1px solid var(--line);
  font-family:var(--mono);letter-spacing:.3px;}
@media (max-width:640px){
  .wm{font-size:24px}.tab{padding:8px 12px}
  .feat-card{grid-template-columns:1fr}
  .catpanel{min-width:0;width:88vw}
}
