/* ===== TIFF 2026 planner ===== */
:root{
  --bg:#0a0b0f; --bg2:#101219; --panel:#14161f; --panel2:#1a1d28;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --txt:#ecebe6; --muted:#9b9a92; --faint:#6c6b66;
  --gold:#e9b44c; --gold-dim:#bb8a36;
  --red:#e8554a; --red-soft:rgba(232,85,74,.16);
  --green:#5bbf8a;
  --radius:14px; --radius-sm:9px;
  --shadow:0 10px 40px -12px rgba(0,0,0,.6);
  --maxw:1320px;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
[data-theme="light"]{
  --bg:#f6f4ee; --bg2:#efece3; --panel:#ffffff; --panel2:#faf8f2;
  --line:rgba(20,18,12,.10); --line2:rgba(20,18,12,.18);
  --txt:#1c1b17; --muted:#5f5d54; --faint:#8a887e;
  --gold:#b07d18; --gold-dim:#c79a3e;
  --red:#cc3a2e; --red-soft:rgba(204,58,46,.12);
  --shadow:0 12px 40px -16px rgba(60,50,20,.3);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--txt); font-family:var(--sans);
  font-size:15px; line-height:1.5; -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(1200px 600px at 80% -10%, rgba(233,180,76,.07), transparent 60%);
  background-attachment:fixed;
}
button{font-family:inherit; cursor:pointer; color:inherit}
::selection{background:var(--gold); color:#000}

/* ===== Top bar ===== */
.topbar{
  position:sticky; top:0; z-index:40; display:flex; align-items:center; gap:24px;
  padding:14px clamp(16px,4vw,40px); background:color-mix(in srgb,var(--bg) 82%, transparent);
  backdrop-filter:blur(14px); border-bottom:1px solid var(--line);
}
.brand{display:flex; align-items:baseline; gap:9px; white-space:nowrap}
.brand-title{display:inline-flex; align-items:baseline; gap:0; white-space:nowrap}
.brand-mark{font-family:var(--serif); font-weight:700; font-size:26px; letter-spacing:.5px; color:#d42b2b}
.brand-year{font-family:var(--serif); font-weight:600; font-size:26px; color:var(--txt)}
.brand-sub{color:var(--muted); font-size:12.5px; margin-left:6px; letter-spacing:.3px}
.tabs{display:flex; gap:4px; margin-left:auto}
.tabs button{
  background:transparent; border:1px solid transparent; color:var(--muted);
  padding:8px 16px; border-radius:999px; font-size:14px; font-weight:500; transition:.18s;
}
.tabs button:hover{color:var(--txt); background:var(--panel)}
.tabs button.active{color:var(--txt); background:var(--panel2); border-color:var(--line2)}
.tabs button.tab-icon{width:38px; min-width:38px; padding:8px 0; text-align:center; font-size:15px; opacity:.66}
.tabs button.tab-icon:hover,.tabs button.tab-icon.active{opacity:1}
.tab-badge{
  display:inline-grid; place-items:center; min-width:19px; height:19px; padding:0 5px;
  margin-left:5px; font-size:11px; font-weight:700; border-radius:999px;
  background:var(--gold); color:#1a1408;
}
.tab-badge.zero{display:none}
.topbar-right{display:flex; gap:8px}
.icon-btn{
  background:var(--panel); border:1px solid var(--line); color:var(--txt);
  width:38px; height:38px; border-radius:10px; font-size:16px; transition:.15s;
}
.icon-btn:hover{border-color:var(--line2); background:var(--panel2)}
.despre-btn{width:28px; height:28px; font-size:14px; border-radius:8px; color:var(--faint); border-color:transparent; background:transparent}
.despre-btn:hover{color:var(--muted); border-color:var(--line); background:var(--panel)}

main{max-width:var(--maxw); margin:0 auto; padding:clamp(18px,3vw,32px) clamp(16px,4vw,40px) 80px}

/* ===== Films view ===== */
.films-layout{display:grid; grid-template-columns:248px 1fr; gap:30px; align-items:start}
.sidebar{position:sticky; top:88px; display:flex; flex-direction:column; gap:22px; max-height:calc(100vh - 110px); overflow:auto; padding-right:6px}
.sidebar::-webkit-scrollbar{width:8px}
.sidebar::-webkit-scrollbar-thumb{background:var(--line2); border-radius:8px}
.search-box{position:relative}
.search-box input{
  width:100%; padding:12px 14px 12px 38px; background:var(--panel); border:1px solid var(--line);
  border-radius:11px; color:var(--txt); font-size:14px; outline:none; transition:.15s;
}
.search-box input:focus{border-color:var(--gold-dim); background:var(--panel2)}
.search-box::before{content:"⌕"; position:absolute; left:13px; top:50%; transform:translateY(-50%); color:var(--faint); font-size:17px}

.filter-group h4{
  margin:0 0 9px; font-size:11px; text-transform:uppercase; letter-spacing:1.4px; color:var(--faint); font-weight:700;
}
.chip-row{display:flex; flex-wrap:wrap; gap:6px}
.chip{
  border:1px solid var(--line); background:var(--panel); color:var(--muted);
  padding:6px 11px; border-radius:999px; font-size:12.5px; transition:.14s; display:inline-flex; align-items:center; gap:6px;
}
.chip:hover{border-color:var(--line2); color:var(--txt)}
.chip.on{background:var(--txt); color:var(--bg); border-color:var(--txt); font-weight:600}
.chip .dot{width:8px; height:8px; border-radius:50%; flex:none}
.chip-count{font-size:10.5px; opacity:.6}
.filter-reset{background:none; border:none; color:var(--gold); font-size:12.5px; padding:0; text-decoration:underline; text-underline-offset:3px}

.year-filter-group{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:11px 0}
.year-chip-row .chip{padding-inline:10px}
.year-badge{font-weight:650; padding:1px 6px; border-radius:999px; border:1px solid var(--line); background:var(--panel2); color:var(--muted)}
.year-badge.current-year{color:var(--txt); border-color:var(--line2)}
.year-badge.last-year{color:var(--muted); border-color:var(--line2)}
.year-badge.old-year{color:var(--gold); border-color:var(--gold-dim); background:color-mix(in srgb,var(--gold) 10%, transparent)}
.card.older-film{background:color-mix(in srgb,var(--panel) 94%, var(--gold) 6%)}
.year-old-tag{color:var(--gold); background:color-mix(in srgb,var(--gold) 10%, transparent); border:1px solid var(--gold-dim)}

.period-control{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:13px 0}
.period-title{display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 6px}
.period-control h4{
  margin:0; font-size:11px; text-transform:uppercase; letter-spacing:1.4px; color:var(--faint); font-weight:700;
}
.period-control p{margin:0 0 10px; color:var(--muted); font-size:12.5px; line-height:1.4}
.period-row{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.period-row label{display:flex; flex-direction:column; gap:4px; color:var(--faint); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.7px}
.period-select{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--txt);
  padding:8px 9px; border-radius:8px; font-size:12.5px; outline:none;
}
.period-select:focus{border-color:var(--gold-dim)}
.period-reset{margin-top:8px; background:none; border:none; color:var(--gold); font-size:12.5px; padding:0; text-decoration:underline; text-underline-offset:3px}
.period-reset:disabled{color:var(--faint); cursor:default; text-decoration:none}
.period-control.compact{padding:9px 0}
.period-control.compact .period-title{margin-bottom:7px}
.period-control.compact h4{font-size:10.5px}
.period-control.compact .period-row{gap:6px}
.period-control.compact .period-row label{gap:3px; font-size:10px}
.period-control.compact .period-select{padding:6px 7px; font-size:12px; border-radius:7px}
.period-control.compact .period-reset{margin-top:6px; font-size:12px}

.results-head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; flex-wrap:wrap}
.results-count{color:var(--muted); font-size:13.5px}
.results-count b{color:var(--txt)}
.results-actions{display:flex; gap:8px; align-items:center}
.mini-btn{
  background:var(--panel); border:1px solid var(--line); color:var(--txt); padding:8px 13px;
  border-radius:9px; font-size:13px; font-weight:500; transition:.15s; display:inline-flex; align-items:center; gap:7px;
}
.mini-btn:hover{border-color:var(--gold-dim)}
.mini-btn.gold{background:var(--gold); color:#1a1408; border-color:var(--gold); font-weight:600}
.sort-sel{background:var(--panel); border:1px solid var(--line); color:var(--txt); padding:8px 11px; border-radius:9px; font-size:13px}
.mc-toggle{
  width:36px; height:34px; padding:0; display:inline-grid; place-items:center;
  background:var(--panel); border:1px solid var(--line); color:var(--faint);
  border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.45px; transition:.15s;
}
.mc-toggle:hover{border-color:var(--gold-dim); color:var(--txt)}
.mc-toggle.on{background:color-mix(in srgb,var(--gold) 16%, var(--panel)); color:var(--gold); border-color:var(--gold-dim)}

.grid-cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:16px}
.card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 16px 14px; display:flex; flex-direction:column; gap:9px; transition:.18s; position:relative; overflow:hidden;
}
.card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--secColor,transparent)}
.card:hover{border-color:var(--line2); transform:translateY(-3px); box-shadow:var(--shadow)}
.card.fav{border-color:var(--gold-dim)}
.card.ghost{border-style:dashed}
.card.ghost .card-title{color:var(--txt)}
.card-top{display:flex; justify-content:space-between; align-items:flex-start; gap:10px}
.card-title{font-family:var(--serif); font-weight:600; font-size:18px; line-height:1.22; letter-spacing:.2px; cursor:pointer}
.card-title:hover{color:var(--gold)}
.card-orig{color:var(--muted); font-size:12.5px; font-style:italic; margin-top:2px}

.card-pick-badge{margin-top:7px}
.mc-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:700; letter-spacing:.35px;
  padding:4px 8px; border-radius:999px; text-transform:uppercase; white-space:nowrap;
}
.mc-badge.recommend{background:color-mix(in srgb,var(--gold) 16%, transparent); border:1px solid var(--gold-dim); color:var(--gold)}
.mc-badge.radar{background:color-mix(in srgb,#89a8d8 12%, transparent); border:1px solid #89a8d888; color:#9cb9e6}
.mc-card-blurb{font-size:12px; line-height:1.45; padding:9px 10px; border-radius:10px; border:1px solid var(--line); color:var(--muted); background:var(--panel2)}
.mc-card-blurb.recommend{border-color:color-mix(in srgb,var(--gold-dim) 48%, var(--line)); background:color-mix(in srgb,var(--gold) 8%, var(--panel2))}
.mc-card-blurb.radar{border-color:color-mix(in srgb,#89a8d8 42%, var(--line)); background:color-mix(in srgb,#89a8d8 9%, var(--panel2))}
.fav-btn{
  flex:none; width:32px; height:32px; border-radius:9px; border:1px solid var(--line);
  background:var(--panel2); font-size:15px; line-height:1; transition:.15s; color:var(--faint);
}
.fav-btn:hover{border-color:var(--gold); color:var(--gold)}
.fav-btn.on{background:var(--gold); border-color:var(--gold); color:#1a1408}
.card-meta{display:flex; flex-wrap:wrap; gap:6px 12px; color:var(--muted); font-size:12.5px; margin-top:2px}
.card-meta .dirc{color:var(--txt)}
.card-synopsis{font-size:12.5px; line-height:1.45; color:var(--muted); margin-top:2px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.card-shorts{font-size:11.8px; line-height:1.4; color:var(--faint); padding-top:2px}
.card-shorts b{color:var(--muted); font-weight:650}
.sec-tag.won{font-weight:700}
.public-tag{color:var(--muted); background:var(--panel2); border:1px solid var(--line2)}
.card-secs{display:flex; flex-wrap:wrap; gap:5px; margin-top:auto; padding-top:6px}
.sec-tag{font-size:10.5px; font-weight:600; letter-spacing:.4px; padding:3px 8px; border-radius:6px; text-transform:uppercase}
.external-event{color:var(--faint); background:transparent; border:1px solid var(--line2)}
.card-screens{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; padding-top:10px; border-top:1px solid var(--line)}
.scr-pill{
  font-size:11.5px; border:1px solid var(--line); background:var(--panel2); color:var(--muted);
  padding:4px 8px; border-radius:7px; display:inline-flex; gap:5px; align-items:center; transition:.14s; cursor:pointer;
}
.scr-pill:hover{border-color:var(--gold-dim); color:var(--txt)}
.scr-pill.picked{background:var(--gold); color:#1a1408; border-color:var(--gold); font-weight:600}
.scr-pill .vn{opacity:.7}

.scr-qna{
  display:inline-flex; align-items:center; white-space:nowrap;
  font-size:9.8px; line-height:1; font-weight:800; letter-spacing:.18px;
  color:var(--gold); border:1px solid var(--gold-dim);
  background:color-mix(in srgb,var(--gold) 11%, transparent);
  padding:2px 5px; border-radius:999px; opacity:1;
}
.scr-pill.picked .scr-qna{
  color:#1a1408; border-color:rgba(26,20,8,.35);
  background:rgba(255,255,255,.48);
}
.qna-chip{display:inline-flex; margin-top:6px; margin-right:6px; font-size:10.5px; font-weight:700; letter-spacing:.35px; padding:3px 8px; border-radius:999px; color:var(--gold); border:1px solid var(--gold-dim); background:color-mix(in srgb,var(--gold) 12%, transparent)}
.qna-tag{color:var(--gold); background:color-mix(in srgb,var(--gold) 11%, transparent); border:1px solid var(--gold-dim)}
.qna-filter{border-color:var(--gold-dim)}
.scr-pill.picked .vn{opacity:.85}
.tag-ro{font-size:10px; font-weight:700; color:var(--gold); border:1px solid var(--gold-dim); padding:2px 6px; border-radius:5px; letter-spacing:.5px}
.tag-18{font-size:10px; font-weight:700; color:var(--red); border:1px solid var(--red); padding:2px 5px; border-radius:5px}

.empty{padding:60px 20px; text-align:center; color:var(--muted)}
.empty b{color:var(--txt); font-family:var(--serif)}

/* ===== Program grid view ===== */
.grid-head{display:flex; align-items:center; gap:14px; margin-bottom:18px; flex-wrap:wrap}
.day-nav{display:flex; gap:6px; flex-wrap:wrap}
.day-btn{
  background:var(--panel); border:1px solid var(--line); color:var(--muted); border-radius:10px;
  padding:8px 13px; font-size:13px; text-align:center; transition:.15s; min-width:62px; line-height:1.25;
}
.day-btn small{display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.6px; opacity:.7}
.day-btn b{font-family:var(--serif); font-size:17px; font-weight:600}
.day-btn:hover{border-color:var(--line2); color:var(--txt)}
.day-btn.on{background:var(--gold); color:#1a1408; border-color:var(--gold)}
.day-btn.on small{opacity:.9}
.grid-legend{margin-left:auto; color:var(--faint); font-size:12px; display:flex; gap:14px; align-items:center}
.grid-legend span{display:inline-flex; align-items:center; gap:5px}
.lg-swatch{width:11px; height:11px; border-radius:3px}
.lg-swatch.concert{background:color-mix(in srgb,var(--gold) 18%, transparent); border:1px dashed var(--gold-dim)}
.lg-swatch.qna{background:color-mix(in srgb,var(--gold) 22%, transparent); border:1px solid var(--gold-dim)}
.tl-qna{position:absolute; top:5px; right:6px; font-size:9px; font-weight:800; letter-spacing:.45px; color:var(--gold); border:1px solid var(--gold-dim); background:color-mix(in srgb,var(--bg) 70%, var(--gold) 12%); padding:1px 5px; border-radius:999px; z-index:2}
.tl-block .tl-qna + .bt{padding-right:34px}

.lg-swatch.mc{background:color-mix(in srgb,var(--gold) 18%, transparent); border:1px solid var(--gold-dim)}

.timeline-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel)}
.timeline{position:relative; min-width:760px}
.tl-venues{display:grid; position:sticky; top:0; z-index:5; background:var(--panel2); border-bottom:1px solid var(--line2)}
.tl-venue{padding:11px 10px; font-size:12px; font-weight:600; border-left:1px solid var(--line); text-align:center; line-height:1.2}
.tl-venue small{display:block; color:var(--faint); font-weight:400; font-size:10.5px; margin-top:2px}
.tl-venue:first-child{border-left:none}
.tl-venue.non-tiff{opacity:.45; font-style:italic}
.tl-venue.non-tiff small{opacity:.85}
.tl-body{position:relative}
.tl-row{display:grid; border-top:1px solid var(--line)}
.tl-hour{padding:4px 8px; font-size:11px; color:var(--faint); position:sticky; left:0; background:var(--panel); z-index:3; border-right:1px solid var(--line)}
.tl-cell{border-left:1px solid var(--line); min-height:30px; position:relative}
.tl-block{
  position:absolute; left:3px; right:3px; border-radius:7px; padding:5px 7px; overflow:hidden;
  font-size:11px; line-height:1.25; cursor:pointer; border:1px solid; transition:.13s;
}
.tl-block:hover{filter:brightness(1.12); z-index:6}
.tl-block .bt{font-weight:600; font-size:11.5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.tl-block .bv{opacity:.8; font-size:10px}

.tl-rec-wrap{display:flex; justify-content:flex-end; margin-bottom:3px}
.tl-rec-wrap .mc-badge{font-size:9.5px; padding:2px 6px; letter-spacing:.28px; backdrop-filter:blur(2px)}
.tl-block.fav{outline:2px solid var(--gold); outline-offset:-2px}
.tl-block.picked{box-shadow:0 0 0 2px var(--gold) inset}
.tl-block.tl-side-event{
  background:color-mix(in srgb,var(--gold) 16%, var(--panel2));
  border-color:var(--gold-dim); border-style:dashed; color:var(--txt);
}
.tl-block.tl-side-event .bt{font-family:var(--serif); font-size:12px; letter-spacing:.01em}
.tl-block.tl-side-event .bv{opacity:.9}
.tl-block.tl-side-event.picked{background:color-mix(in srgb,var(--gold) 28%, var(--panel2)); box-shadow:0 0 0 2px var(--gold) inset}

/* ===== Plan view ===== */
.plan-grid{display:grid; grid-template-columns:1fr 340px; gap:28px; align-items:start}
@media(max-width:900px){.plan-grid{grid-template-columns:1fr}.plan-side{position:static; max-height:none; overflow:visible; padding-right:0}}
.plan-main{min-width:0}
.plan-side{position:sticky; top:88px; display:flex; flex-direction:column; gap:10px; max-height:calc(100vh - 98px); overflow-y:auto; padding-right:4px; overscroll-behavior:contain}
.stat-card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px}
.stat-top{margin-bottom:8px}
.stat-big{font-family:var(--serif); font-size:28px; font-weight:600; line-height:1}
.stat-big .of{color:var(--muted); font-size:16px}
.stat-label{color:var(--muted); font-size:12px; margin-top:3px}
.stat-row{display:flex; justify-content:space-between; gap:12px; padding:4px 0; border-top:1px solid var(--line); font-size:12.5px}
.stat-row:first-of-type{margin-top:6px}
.stat-row .v{font-weight:600}
.stat-row .v.warn{color:var(--red)}
.stat-row .v.ok{color:var(--green)}

.optimize-box{background:linear-gradient(135deg,var(--panel2),var(--panel)); border:1px solid var(--gold-dim); border-radius:var(--radius); padding:14px}
.optimize-box h3{margin:0 0 5px; font-family:var(--serif); font-size:17px}
.optimize-box p{margin:0 0 10px; color:var(--muted); font-size:12.5px; line-height:1.35}
.opt-preview{margin-top:8px; font-size:12px; color:var(--muted)}
.opt-preview b{color:var(--gold)}
.opt-note{margin-top:6px; font-size:12px; color:var(--faint)}
.btn-primary{
  width:100%; background:var(--gold); color:#1a1408; border:none; padding:10px; border-radius:9px;
  font-size:14px; font-weight:700; transition:.15s;
}
.btn-primary:hover{filter:brightness(1.06)}
.btn-ghost{width:100%; background:var(--panel); color:var(--txt); border:1px solid var(--line); padding:8px 10px; border-radius:9px; font-size:13px; margin-top:7px}
.btn-ghost:hover{border-color:var(--line2)}

.plan-day{margin-bottom:26px}
.plan-day-head{display:flex; align-items:baseline; gap:10px; margin-bottom:10px; padding-bottom:8px; border-bottom:1px solid var(--line)}
.plan-day-head b{font-family:var(--serif); font-size:21px; font-weight:600}
.plan-day-head span{color:var(--muted); font-size:13px}
.plan-day-head .free{margin-left:auto; color:var(--faint); font-size:12px}
.agenda-item{
  display:grid; grid-template-columns:74px 1fr auto; gap:14px; align-items:center;
  background:var(--panel); border:1px solid var(--line); border-radius:11px; padding:12px 15px; margin-bottom:8px; transition:.15s; position:relative;
}
.agenda-item::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:3px; background:var(--secColor,var(--line2))}
.agenda-item.clash{border-color:var(--red); background:var(--red-soft)}
.agenda-time{font-family:var(--serif); font-size:16px; font-weight:600}
.agenda-time small{display:block; color:var(--muted); font-size:11px; font-weight:400; font-family:var(--sans)}
.agenda-info .ti{font-weight:600; font-size:15px; cursor:pointer}
.agenda-info .ti:hover{color:var(--gold)}
.agenda-info .mi{color:var(--muted); font-size:12.5px; margin-top:2px; display:flex; gap:10px; flex-wrap:wrap}
.agenda-venue{font-size:12px; padding:4px 9px; border:1px solid var(--line); border-radius:7px; color:var(--muted); white-space:nowrap}
.agenda-x{background:none; border:none; color:var(--faint); font-size:18px; padding:4px 8px; border-radius:8px}
.agenda-x:hover{color:var(--red); background:var(--red-soft)}
.clash-note{font-size:11.5px; color:var(--red); margin:-3px 0 9px 88px; display:flex; align-items:center; gap:6px}
.gap-note{font-size:11px; color:var(--faint); margin:2px 0 8px 88px; display:flex; align-items:center; gap:7px}
.gap-note.travel{color:var(--gold-dim)}


.remove-opps{margin:-2px 0 9px 88px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--panel) 82%, var(--bg)); overflow:hidden}
.remove-opps summary{list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; color:var(--muted); font-size:12px; font-weight:600}
.remove-opps summary::-webkit-details-marker{display:none}
.remove-opps summary span::before{content:"＋"; color:var(--gold); margin-right:7px; font-weight:700}
.remove-opps[open] summary span::before{content:"−"}
.remove-opps summary b{display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 7px; border-radius:999px; background:var(--gold); color:#1a1408; font-size:11px}
.remove-opps-list{border-top:1px solid var(--line); padding:8px; display:flex; flex-direction:column; gap:7px}
.remove-opp-row{display:grid; grid-template-columns:64px 1fr auto; gap:10px; align-items:center; position:relative; background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:8px 9px 8px 11px}
.remove-opp-row::before{content:""; position:absolute; left:0; top:7px; bottom:7px; width:3px; border-radius:3px; background:var(--secColor,var(--gold))}
.remove-opp-time{font-family:var(--serif); font-weight:600; font-size:13px; line-height:1.1}
.remove-opp-time small{display:block; margin-top:3px; color:var(--muted); font:400 10.5px/1.2 var(--sans)}
.remove-opp-info b{display:block; font-size:12.5px; cursor:pointer}
.remove-opp-info b:hover{color:var(--gold)}
.remove-opp-info small{display:block; color:var(--muted); font-size:11px; margin-top:2px}
.remove-opp-info em{display:block; color:var(--faint); font-style:normal; font-size:10.5px; margin-top:2px}
.remove-opp-add{background:var(--panel); border:1px solid var(--line2); color:var(--txt); border-radius:7px; padding:6px 9px; font-size:11.5px; font-weight:600; white-space:nowrap}
.remove-opp-add:hover{border-color:var(--gold); color:var(--gold)}

.football-mini-toggle{display:inline-grid; place-items:center; width:27px; height:27px; border-radius:999px; border:1px solid var(--line); background:var(--panel); cursor:pointer; user-select:none; transition:.15s; flex:none}
.football-mini-toggle:hover{border-color:var(--line2); background:var(--panel2)}
.football-mini-toggle input{position:absolute; opacity:0; pointer-events:none}
.football-mini-toggle span{font-size:15px; line-height:1; filter:grayscale(1); opacity:.42; transition:.15s}
.football-mini-toggle.on{border-color:var(--gold-dim); background:var(--gold)}
.football-mini-toggle.on span{filter:none; opacity:1}
[data-theme="light"] .football-mini-toggle.on{background:#f2d98b; border-color:#b07d18}
.remove-opp-row.match .remove-opp-info b{cursor:default}
.remove-opp-row.match .remove-opp-info b:hover{color:inherit}

.gap-suggestions{background:var(--panel); border:1px solid var(--gold-dim); border-radius:var(--radius); padding:16px 18px; margin:10px 0 20px; scroll-margin-top:92px}
.gap-suggestions:focus{outline:2px solid color-mix(in srgb,var(--gold) 62%, transparent); outline-offset:3px}
.gap-attention{animation:gapPulse 1.35s ease-out 1}
@keyframes gapPulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 45%, transparent)}
  45%{box-shadow:0 0 0 8px color-mix(in srgb,var(--gold) 12%, transparent)}
  100%{box-shadow:none}
}
.gap-head{display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:10px}
.gap-head h4{margin:0 0 4px; font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--gold)}
.gap-head p{margin:0; color:var(--muted); font-size:12.5px; line-height:1.45}
.gap-head span{font-family:var(--serif); color:var(--gold); font-size:24px; line-height:1}
.gap-empty{color:var(--muted); font-size:13px; padding:10px 0 2px}
.gap-day{border-top:1px solid var(--line); padding-top:10px; margin-top:10px}
.gap-day-title{font-family:var(--serif); font-size:17px; margin-bottom:8px}
.gap-suggestion{
  display:grid; grid-template-columns:74px 1fr auto; gap:14px; align-items:center;
  border:1px solid var(--line); border-radius:10px; padding:11px 13px; margin-bottom:8px; position:relative; background:var(--bg);
}
.gap-suggestion::before{content:""; position:absolute; left:0; top:8px; bottom:8px; width:3px; border-radius:3px; background:var(--secColor,var(--gold))}
.gap-time{font-family:var(--serif); font-size:15px; font-weight:600}
.gap-time small{display:block; color:var(--muted); font-size:11px; font-weight:400; font-family:var(--sans)}
.gap-info .ti{font-weight:600; font-size:14.5px; cursor:pointer}
.gap-info .ti:hover{color:var(--gold)}
.gap-info .mi{color:var(--muted); font-size:12px; margin-top:2px}
.gap-info .why{color:var(--faint); font-size:11.5px; margin-top:3px}
.gap-fav{color:var(--gold)}

.unsched{background:var(--panel); border:1px dashed var(--line2); border-radius:var(--radius); padding:16px 18px; margin-top:14px}
.unsched h4{margin:0 0 4px; font-size:13px; text-transform:uppercase; letter-spacing:1px; color:var(--red)}
.unsched p{margin:0 0 12px; color:var(--muted); font-size:12.5px}
.unsched-item{display:flex; align-items:flex-start; flex-wrap:wrap; justify-content:space-between; gap:10px; padding:8px 0; border-top:1px solid var(--line); font-size:13.5px}
.unsched-item .why{color:var(--faint); font-size:11.5px}
.unsched-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.remove-fav-btn{background:transparent; border:1px solid var(--line); color:var(--muted); padding:7px 10px; border-radius:8px; font-size:12.5px; font-weight:600; white-space:nowrap}
.remove-fav-btn:hover{border-color:var(--red); color:var(--red); background:var(--red-soft)}
.clash-detail{flex:1 1 100%; margin-top:6px; padding:8px 10px; background:var(--bg); border:1px solid var(--line); border-radius:8px; display:flex; flex-direction:column; gap:6px}
.clash-with{font-size:12px; color:var(--muted)}
.clash-alt{display:flex; align-items:center; gap:8px; font-size:12px}
.clash-alt span{flex:1; color:var(--txt)}
.clash-alt em{font-style:normal; color:var(--gold); font-weight:500}
.clash-alt b{color:var(--txt)}
.remove-btn{padding:4px 10px; font-size:11.5px; border-radius:6px; background:rgba(232,85,74,.12); border:1px solid rgba(232,85,74,.3); color:#e8554a; cursor:pointer; white-space:nowrap; transition:.14s}
.remove-btn:hover{background:rgba(232,85,74,.22)}

.plan-empty{text-align:center; padding:70px 24px; color:var(--muted)}
.plan-empty h2{font-family:var(--serif); font-weight:600; color:var(--txt); margin:0 0 10px}

/* ===== Mondial (World Cup) ===== */
.mundial-head{display:flex; align-items:center; gap:14px; margin-bottom:14px}
.mundial-title{display:flex; align-items:center; gap:14px}
.mundial-ball{font-size:34px}
.mundial-title b{font-family:var(--serif); font-size:24px; font-weight:600; display:block}
.mundial-title small{color:var(--muted); font-size:13px}
.mundial-note{background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--green);
  border-radius:10px; padding:12px 15px; color:var(--muted); font-size:12.5px; line-height:1.5; margin-bottom:22px}
.agenda-item.match .agenda-time{color:var(--green)}
.agenda-item.match .late{color:var(--gold-dim); font-style:italic}
.agenda-item.ghost{border-style:dashed}
.agenda-item.ghost .ti{color:var(--txt)}
.agenda-item.match{grid-template-columns:74px 1fr auto}
.agenda-item.side-event .agenda-time{color:var(--gold)}
.agenda-item.side-event .agenda-info .ti{cursor:default}
.agenda-item.side-event .agenda-info .ti:hover{color:inherit}



/* ===== Map view ===== */
.map-view{display:flex; flex-direction:column; gap:18px}
.map-head{display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:2px}
.map-head h1{font-family:var(--serif); font-size:34px; line-height:1.1; margin:0 0 4px; font-weight:600}
.map-head p{margin:0; color:var(--muted); max-width:700px}
.map-day-nav{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end}
.map-layout{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr); gap:22px; align-items:start}
.map-panel,.map-side{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow)}
.map-panel{padding:14px; overflow:hidden}
.map-scroll{overflow:auto; border-radius:12px; background:#f4f4f1; border:1px solid var(--line2)}
.map-stage{position:relative; width:100%; min-width:780px; line-height:0}
.tiff-map-img{display:block; width:100%; height:auto; user-select:none}
.map-hotspot{position:absolute; transform:translate(-50%,-50%); width:42px; height:42px; border-radius:50%; border:2px solid rgba(255,255,255,.85); background:#e7332a; color:#fff; display:grid; place-items:center; font-weight:800; font-size:15px; box-shadow:0 2px 10px rgba(0,0,0,.28); transition:.14s; z-index:2}
.map-hotspot span{line-height:1}
.map-hotspot:hover{transform:translate(-50%,-50%) scale(1.1); box-shadow:0 0 0 5px rgba(233,180,76,.28),0 4px 16px rgba(0,0,0,.32)}
.map-hotspot.selected{background:var(--gold); color:#1a1408; border-color:#fff; box-shadow:0 0 0 5px rgba(233,180,76,.35),0 4px 18px rgba(0,0,0,.34); z-index:4}
.map-hotspot.in-plan{outline:3px solid var(--gold); outline-offset:2px}
.map-hotspot.external{font-size:12px; background:#555}
.map-note{font-size:12px; color:var(--muted); margin:11px 2px 0; line-height:1.45}
.map-side{padding:16px; display:flex; flex-direction:column; gap:16px; position:sticky; top:88px; max-height:calc(100vh - 110px); overflow:auto}
.map-selected{padding:14px; background:var(--panel2); border:1px solid var(--line); border-radius:12px}
.map-selected-top{display:flex; gap:12px; align-items:flex-start}
.map-selected h2{font-family:var(--serif); font-size:24px; line-height:1.15; margin:0 0 4px; font-weight:600}
.map-selected p{margin:0; color:var(--muted); font-size:13px; line-height:1.35}
.map-num{flex:none; display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--red); color:#fff; font-weight:800; box-shadow:0 2px 10px rgba(0,0,0,.2)}
.map-num.small{width:28px; height:28px; font-size:12px; margin-top:1px}
.map-stats{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.map-stats span{font-size:11.5px; color:var(--muted); border:1px solid var(--line); background:var(--panel); border-radius:999px; padding:4px 8px}
.map-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:13px}
.map-list-title{display:flex; align-items:baseline; justify-content:space-between; gap:12px; color:var(--txt); border-bottom:1px solid var(--line); padding-bottom:8px}
.map-list-title span{font-size:12px; color:var(--muted)}
.map-list-title.mini{padding:2px 0 8px; margin-top:4px}
.map-screen-list{display:flex; flex-direction:column; gap:9px}
.map-screen{position:relative; padding:12px 12px 12px 14px; border:1px solid var(--line); border-left:3px solid var(--secColor); background:var(--bg2); border-radius:11px; display:grid; grid-template-columns:1fr auto; gap:8px 10px; align-items:center}
.map-screen.picked{border-color:var(--gold); border-left-color:var(--gold); background:color-mix(in srgb,var(--gold) 12%,var(--bg2))}
.map-screen.clash{border-color:var(--red); border-left-color:var(--red); background:var(--red-soft)}
.map-screen-title{grid-column:1 / -1; text-align:left; background:transparent; border:0; padding:0; color:inherit}
.map-screen-title strong{display:block; font-family:var(--serif); font-size:17px; line-height:1.18; font-weight:600}
.map-screen-title span{display:block; margin-top:2px; color:var(--muted); font-size:12.5px}
.map-screen-title:hover strong{color:var(--gold)}
.map-screen-meta{display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:12px}
.map-screen-sec{grid-column:1 / -1; font-size:11px; text-transform:uppercase; letter-spacing:.7px; font-weight:700}
.empty.small{padding:18px; font-size:13px}
.map-venue-list{display:flex; flex-direction:column; gap:7px}
.map-venue-row{width:100%; display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:start; text-align:left; padding:9px; border:1px solid var(--line); background:transparent; border-radius:10px; color:var(--txt); transition:.15s}
.map-venue-row:hover{background:var(--panel2); border-color:var(--line2)}
.map-venue-row.selected{background:var(--panel2); border-color:var(--gold-dim)}
.map-venue-row.in-plan .map-num{background:var(--gold); color:#1a1408}
.map-venue-row.external .map-num{background:#555}
.map-venue-row b{display:block; font-size:13px; line-height:1.25}
.map-venue-row small{display:block; color:var(--muted); margin-top:2px; font-size:11.5px}
.map-venue-row em{font-style:normal; color:var(--muted); font-size:12px; padding-top:3px}
@media(max-width:1000px){
  .map-layout{grid-template-columns:1fr}
  .map-side{position:static; max-height:none}
}
@media(max-width:600px){
  .map-head h1{font-size:28px}
  .map-panel{padding:10px}
  .map-stage{min-width:720px}
  .map-hotspot{width:38px; height:38px; font-size:14px}
  .map-screen{grid-template-columns:1fr}
  .map-screen .dr-add{justify-self:start}
}

/* ===== Drawer ===== */
.drawer{position:fixed; inset:0; z-index:60}
.drawer-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(3px)}
.drawer-panel{
  position:absolute; right:0; top:0; bottom:0; width:min(460px,92vw); background:var(--bg2);
  border-left:1px solid var(--line2); box-shadow:var(--shadow); overflow-y:auto; padding:28px 30px;
  animation:slideIn .26s cubic-bezier(.2,.7,.3,1);
}
@keyframes slideIn{from{transform:translateX(30px); opacity:.4}to{transform:none; opacity:1}}
.dr-close{position:absolute; right:18px; top:18px; background:var(--panel); border:1px solid var(--line); width:34px; height:34px; border-radius:9px; font-size:16px; color:var(--muted)}
.dr-close:hover{color:var(--txt)}
.dr-secs{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:14px}
.dr-title{font-family:var(--serif); font-size:30px; font-weight:600; line-height:1.12; margin:0 0 4px; padding-right:40px}
.dr-orig{color:var(--muted); font-style:italic; font-size:15px; margin-bottom:16px}
.dr-meta{display:grid; grid-template-columns:auto 1fr; gap:8px 16px; font-size:14px; margin-bottom:20px}
.dr-meta dt{color:var(--faint); font-size:12px; text-transform:uppercase; letter-spacing:.6px; padding-top:2px}
.dr-meta dd{margin:0}
.dr-sec-h{font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:var(--faint); font-weight:700; margin:22px 0 10px}
.dr-screens{display:flex; flex-direction:column; gap:8px}
.dr-screen{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px; background:var(--panel); border:1px solid var(--line); border-radius:10px}
.dr-screen.picked{border-color:var(--gold); background:color-mix(in srgb,var(--gold) 12%,var(--panel))}
.dr-screen.clash{border-color:var(--red); background:var(--red-soft)}
.dr-screen .ds-when b{font-family:var(--serif); font-size:16px}
.dr-screen .ds-when small{display:block; color:var(--muted); font-size:12px}
.dr-screen .ds-when em{display:block; margin-top:4px; color:var(--red); font-style:normal; font-size:11.5px; line-height:1.25}
.dr-screen .ds-venue{font-size:12px; color:var(--muted); text-align:right; line-height:1.3}
.dr-add{background:var(--panel2); border:1px solid var(--line2); color:var(--txt); padding:7px 12px; border-radius:8px; font-size:12.5px; font-weight:600; white-space:nowrap}
.dr-add.on{background:var(--gold); color:#1a1408; border-color:var(--gold)}
.dr-synopsis{font-size:14.5px; line-height:1.55; color:var(--txt); margin:0 0 18px}

.mc-note{margin:0 0 18px; padding:13px 14px; border-radius:12px; border:1px solid var(--line); background:var(--panel)}
.mc-note.recommend{border-color:color-mix(in srgb,var(--gold-dim) 58%, var(--line)); background:color-mix(in srgb,var(--gold) 8%, var(--panel))}
.mc-note.radar{border-color:color-mix(in srgb,#89a8d8 52%, var(--line)); background:color-mix(in srgb,#89a8d8 8%, var(--panel))}
.mc-note-kicker{font-size:11px; font-weight:800; letter-spacing:.9px; text-transform:uppercase; margin-bottom:6px; color:var(--txt)}
.mc-note p{margin:0; font-size:13px; line-height:1.52; color:var(--txt)}
.mc-note p + p{margin-top:9px}
.mc-note .mc-timing{color:var(--muted)}
.mc-timing-chip{display:inline-flex; margin-top:6px; font-size:10.5px; font-weight:700; letter-spacing:.35px; padding:3px 8px; border-radius:999px; color:var(--gold); border:1px solid var(--gold-dim); background:color-mix(in srgb,var(--gold) 12%, transparent)}
.dr-shorts{list-style:none; margin:0 0 4px; padding:0; display:flex; flex-direction:column; gap:8px}
.dr-shorts li{padding:10px 12px; background:var(--panel); border:1px solid var(--line); border-radius:10px; font-size:13.5px; line-height:1.35}
.dr-shorts b{font-weight:650}
.dr-shorts em{color:var(--muted); font-style:italic}
.dr-shorts small{display:block; color:var(--faint); margin-top:3px; font-size:12px}
.dr-shorts p{margin:6px 0 0; color:var(--muted); font-size:12.5px; line-height:1.4}
.dr-prov{display:flex; flex-direction:column; gap:9px; margin-bottom:6px}
.prov-item{display:flex; gap:10px; align-items:flex-start}
.prov-dot{width:8px; height:8px; border-radius:50%; flex:none; margin-top:5px}
.prov-detail{font-size:13px; line-height:1.4; color:var(--txt)}
.prov-detail.prov-win{font-weight:700}
.prov-src{font-size:11.5px; color:var(--gold); text-decoration:none; margin-left:4px}
.prov-src:hover{text-decoration:underline}
.dr-links{display:flex; flex-wrap:wrap; gap:8px; margin-top:22px}
.dr-link{display:inline-flex; align-items:center; gap:7px; padding:9px 14px; background:var(--panel); border:1px solid var(--line); border-radius:9px; color:var(--txt); text-decoration:none; font-size:13px; transition:.15s}
.dr-link:hover{border-color:var(--gold-dim); color:var(--gold)}
.dr-note{margin-top:18px; padding:12px 14px; background:var(--panel); border:1px solid var(--line); border-radius:10px; color:var(--faint); font-size:12.5px; line-height:1.5}

/* ===== Toast ===== */
.toast{
  position:fixed; bottom:26px; left:50%; transform:translateX(-50%) translateY(10px); z-index:80;
  background:var(--txt); color:var(--bg); padding:12px 20px; border-radius:11px; font-size:14px; font-weight:500;
  box-shadow:var(--shadow); opacity:0; transition:.25s; pointer-events:none; max-width:90vw;
}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}

@media(max-width:860px){
  .films-layout{grid-template-columns:1fr}
  .sidebar{position:static; max-height:none; flex-direction:row; flex-wrap:wrap; overflow:visible}
  .filter-group{flex:1 1 100%}
  .brand-sub{display:none}
}

/* ── Despre / help popover ───────────────────────────────────────────────────── */
.despre-popover{position:fixed; top:58px; right:clamp(12px,4vw,40px); z-index:900;
  width:min(430px,calc(100vw - 24px)); max-height:calc(100vh - 78px); overflow:auto;
  background:var(--panel); border:1px solid var(--line2); border-radius:14px; padding:14px;
  box-shadow:0 8px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.1)}
.despre-tabs{display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-bottom:14px; padding:4px; background:var(--bg2); border:1px solid var(--line); border-radius:12px}
.despre-tab{border:0; border-radius:9px; background:transparent; color:var(--muted); padding:8px 10px; font-size:12.5px; font-weight:700; letter-spacing:.02em}
.despre-tab:hover{color:var(--txt); background:var(--panel)}
.despre-tab.active{background:var(--panel); color:var(--txt); box-shadow:0 1px 0 var(--line2)}
.despre-panel[hidden]{display:none}
.despre-intro{font-size:12.5px; line-height:1.5; color:var(--muted); margin:0 0 12px; padding-bottom:12px; border-bottom:1px solid var(--line)}
.despre-intro a{color:var(--muted); text-decoration:none}
.despre-intro a:hover{text-decoration:underline}
.despre-list{margin:0 0 12px; padding:0 0 0 16px; display:flex; flex-direction:column; gap:8px}
.despre-list li{font-size:12.5px; line-height:1.5; color:var(--txt)}
.despre-list strong{color:var(--txt); font-weight:600}
.despre-credits{font-size:11.5px; color:var(--faint); border-top:1px solid var(--line); padding-top:10px; margin-top:4px}
.despre-credits a{color:var(--muted); text-decoration:none}
.despre-credits a:hover{text-decoration:underline}
.help-steps{counter-reset:help; display:flex; flex-direction:column; gap:9px; margin:0; padding:0}
.help-steps li{counter-increment:help; list-style:none; position:relative; padding:0 0 0 34px; color:var(--muted); font-size:12.5px; line-height:1.45}
.help-steps li::before{content:counter(help); position:absolute; left:0; top:1px; width:22px; height:22px; display:grid; place-items:center; border-radius:999px; background:var(--gold); color:#191305; font-size:12px; font-weight:800}
.help-steps strong{display:block; color:var(--txt); font-size:13px; margin-bottom:1px}
.help-steps span{display:block}
.help-legend{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; padding-top:12px; border-top:1px solid var(--line)}
.help-legend span{border:1px solid var(--line); background:var(--panel2); border-radius:999px; padding:5px 9px; font-size:11.5px; color:var(--muted)}
.help-legend b{color:var(--gold); margin-right:3px}

/* ── Mobile topbar ──────────────────────────────────────────────────────────── */
@media(max-width:600px){
  .topbar{flex-wrap:wrap; gap:8px 12px; padding:10px 16px}
  .tabs{order:3; flex:1 1 100%; overflow-x:auto; margin-left:0; padding-bottom:2px; -webkit-overflow-scrolling:touch; scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .topbar-right{margin-left:auto}
  .despre-popover{top:104px; max-height:calc(100vh - 124px)}
}

@media(max-width:600px){
  .remove-opps{margin-left:0}
  .remove-opp-row{grid-template-columns:58px 1fr}
  .remove-opp-add{grid-column:1 / -1; justify-self:start}
}

/* ===== Extra / curatoriale ===== */
.grid-extra-strip{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  margin:0 0 16px; padding:12px 14px; border:1px solid var(--line); border-radius:12px;
  background:var(--panel); color:var(--muted);
}
.grid-extra-strip b{display:block; color:var(--txt); font-family:var(--serif); font-size:19px; margin-bottom:1px}
.grid-extra-strip span{font-size:13px}
.grid-extra-strip em{font-style:normal; font-size:12.5px; color:var(--faint); margin-left:auto}
.map-expo-box{
  margin:12px 0 18px; padding:14px; border:1px solid var(--line); border-radius:13px;
  background:var(--panel); display:flex; flex-direction:column; gap:7px;
}
.map-expo-box b{font-family:var(--serif); font-size:20px; color:var(--txt)}
.map-expo-box small{color:var(--muted); font-size:12.5px}
.map-expo-box span{padding:7px 9px; border:1px solid var(--line); border-radius:9px; color:var(--txt); background:var(--panel2)}
.map-expo-box .mini-btn{justify-content:center; margin-top:4px}
.map-side-event{display:grid; grid-template-columns:minmax(0,1fr); gap:8px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:var(--panel2)}
.map-side-event-info{min-width:0; cursor:help}
.map-side-event-info b{display:block; color:var(--txt); font-size:13px; line-height:1.22; overflow-wrap:anywhere}
.map-side-event-info small{display:block; margin-top:3px; color:var(--muted); font-size:11.5px; line-height:1.3}
.map-side-event .mini-btn{margin:0; white-space:nowrap}
.map-side-event-actions{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-start}
@media(min-width:1100px){.map-side-event{grid-template-columns:minmax(0,1fr) auto; align-items:center}.map-event-clash{grid-column:1 / -1}}
.extra-view{display:flex; flex-direction:column; gap:22px}
.extra-head h1{font-family:var(--serif); font-size:clamp(36px,6vw,62px); line-height:.95; margin:0 0 8px}
.extra-head p{margin:0; max-width:760px; color:var(--muted); font-size:16px}
.extra-jump-nav{position:sticky; top:72px; z-index:8; display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px; margin:-4px 0 2px; background:color-mix(in srgb,var(--bg) 88%, transparent); backdrop-filter:blur(12px); border:1px solid var(--line); border-radius:14px}
.extra-jump-nav b{font-size:11px; text-transform:uppercase; letter-spacing:1.2px; color:var(--faint); margin-right:2px}
.extra-jump-chip{border:1px solid var(--line); background:var(--panel); color:var(--muted); padding:6px 10px; border-radius:999px; font-size:12.5px}
.extra-jump-chip:hover{color:var(--txt); border-color:var(--gold-dim); background:var(--panel2)}
.extra-section{
  border:1px solid var(--line); border-radius:18px; background:var(--panel); padding:22px; box-shadow:var(--shadow);
}
.extra-section-head{display:flex; justify-content:space-between; gap:16px; align-items:start; border-bottom:1px solid var(--line); padding-bottom:15px; margin-bottom:16px}
.extra-section-head h2{font-family:var(--serif); font-size:clamp(26px,3vw,38px); line-height:1; margin:0 0 7px}
.extra-section-head p{margin:0; color:var(--muted); max-width:880px}
.extra-section-head span{color:var(--faint); font-size:12px; white-space:nowrap; padding-top:5px}
.extra-anchor-section{scroll-margin-top:96px}
.extra-section-highlight{outline:2px solid color-mix(in srgb,var(--gold) 75%, transparent); outline-offset:4px}
.extra-anchor-btn{
  border:1px solid var(--line); background:var(--panel2); color:var(--faint);
  width:30px; height:30px; border-radius:999px; display:grid; place-items:center;
  font-size:13px; flex:0 0 auto; margin-left:4px; transition:.15s;
}
.extra-anchor-btn:hover{color:var(--txt); border-color:var(--gold-dim); background:var(--panel)}
.extra-film-grid,.expo-grid,.guest-grid,.side-event-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; margin-bottom:16px}
.extra-film-card,.expo-card,.guest-card,.side-event-card{
  position:relative; padding:15px; border:1px solid var(--line); border-radius:14px; background:var(--panel2); overflow:hidden;
}
.extra-film-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--secColor,var(--gold))}
.extra-film-title{font-weight:800; letter-spacing:.04em; text-transform:uppercase; margin-bottom:4px}
.extra-film-meta{color:var(--muted); font-size:12.5px; margin-bottom:8px}
.extra-film-card p,.expo-card p,.guest-card p,.side-event-card p{color:var(--muted); margin:0 0 10px; font-size:13.5px; line-height:1.45}
.extra-film-card small,.expo-card small,.side-event-card small{display:block; color:var(--faint); font-size:12.5px}
.side-event-note{display:block; margin-top:7px; color:var(--faint); font-size:12px; font-style:normal; line-height:1.35}
.extra-actions{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}
.expo-card h3{font-family:var(--serif); font-size:24px; line-height:1; margin:0 0 6px}
.expo-card b{display:block; color:var(--muted); margin-bottom:9px; font-size:13px}

.guest-card h3,.side-event-card h3{font-family:var(--serif); font-size:24px; line-height:1; margin:0 0 6px}
.guest-card b,.side-event-card b{display:block; color:var(--muted); margin-bottom:9px; font-size:13px}
.guest-films{display:flex; gap:8px; flex-wrap:wrap; margin-top:12px}
.side-event-card{border-left:3px solid var(--gold)}
.side-event-card.picked{border-color:var(--gold-dim); background:color-mix(in srgb,var(--panel2) 78%, var(--gold))}
.side-event-card h3{margin-top:2px}
.side-event-actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px}
@media (max-width:720px){
  .extra-section{padding:16px}
  .extra-section-head{display:flex; align-items:flex-start; gap:10px; padding-bottom:12px; margin-bottom:14px}
  .extra-section-head > div{min-width:0; flex:1}
  .extra-section-head span{display:inline-flex; margin-top:2px; padding-top:0; flex:0 0 auto; max-width:38%; white-space:normal; text-align:right; line-height:1.25; font-size:11.5px}
  .extra-anchor-btn{display:none}
  .grid-extra-strip em{margin-left:0}
}

/* ===== Ticketing / useful info in Extra ===== */
.ticketing-section{border-color:color-mix(in srgb,var(--gold) 34%,var(--line))}
.ticketing-top{display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--panel2); margin-bottom:14px}
.ticketing-top b{display:block; font-family:var(--serif); font-size:22px; margin-bottom:3px}
.ticketing-top p{margin:0 0 4px; color:var(--muted)}
.ticketing-top small{color:var(--faint); font-size:12.5px}
.ticket-actions{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; min-width:max-content}
.ticket-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:14px}
.ticket-card,.ticket-pass-card,.ticket-rules{background:var(--panel); border:1px solid var(--line); border-radius:12px; padding:14px 16px}
.ticket-card h3,.ticket-pass-card h3{font-family:var(--serif); font-size:22px; line-height:1; margin:0 0 10px}
.ticket-card ul,.ticket-rules ul{margin:0; padding-left:18px; color:var(--muted); font-size:13.5px; line-height:1.5}
.ticket-card.wide{grid-column:auto}
.ticket-card-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; margin-bottom:14px}
.ticket-pass-card b{display:inline-block; margin-bottom:8px; color:var(--gold); font-size:13px; letter-spacing:.04em; text-transform:uppercase}
.ticket-pass-card p{margin:0 0 12px; color:var(--muted); font-size:13.5px; line-height:1.45}
.ticket-rules b{display:block; margin-bottom:8px; font-family:var(--serif); font-size:20px}
.ticket-rules small{display:block; color:var(--faint); margin-top:8px}
@media (max-width:760px){
  .ticketing-top{display:block}
  .ticket-actions{justify-content:flex-start; min-width:0; margin-top:12px}
  .ticket-grid{grid-template-columns:1fr}
}

.side-event-card.clash{border-color:var(--red); background:color-mix(in srgb,var(--panel2) 88%, var(--red-soft))}
.side-event-card .clash-note{color:var(--red); font-weight:700}
.tl-block.tl-side-event.clash{border-color:var(--red); background:color-mix(in srgb,var(--red-soft) 72%, var(--panel2)); box-shadow:0 0 0 1px var(--red) inset}
.map-side-event.clash{border-color:color-mix(in srgb,var(--red) 55%, var(--line)); background:color-mix(in srgb,var(--red-soft) 55%, var(--panel2))}
.map-event-clash{flex-basis:100%; color:var(--red); font-size:11.5px; font-style:normal; line-height:1.25}
@media(max-width:760px){.extra-jump-nav{position:static}.extra-jump-chip{font-size:12px; padding:6px 9px}}
.remove-opp-row.side .remove-opp-info b{cursor:default}
.remove-opp-row.side .remove-opp-info b:hover{color:inherit}
.remove-opp-row.side .remove-opp-info b.remove-opp-side-title{cursor:help}
.remove-opp-row.side .remove-opp-info b.remove-opp-side-title:hover{color:var(--gold)}
.remove-opp-ticket{display:inline-block; margin-top:4px; color:var(--gold); font-size:10.5px; font-weight:700; text-decoration:none}
.remove-opp-ticket:hover{text-decoration:underline}


.tl-venue.first-non-tiff,.tl-cell.first-non-tiff{position:relative}
.tl-venue.first-non-tiff::before,.tl-cell.first-non-tiff::before{
  content:''; position:absolute; left:-1px; top:0; bottom:0; width:18px;
  background:linear-gradient(to right, rgba(232,228,218,.95), rgba(232,228,218,.55), rgba(232,228,218,0));
  border-left:1px dashed var(--line2); pointer-events:none;
}
.tl-break{
  position:absolute; top:0; bottom:0; width:22px; transform:translateX(-11px); z-index:4; pointer-events:none;
  display:flex; align-items:center; justify-content:center;
}
.tl-break::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right, rgba(232,228,218,.98), rgba(232,228,218,.7), rgba(232,228,218,0));
  border-left:1px dashed var(--line2); border-right:1px dashed rgba(0,0,0,.03);
}
.tl-break span{
  position:relative; z-index:1; writing-mode:vertical-rl; transform:rotate(180deg);
  font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); opacity:.9;
}
.lg-swatch.blocker{background:color-mix(in srgb,var(--faint) 28%, transparent); border:1px dotted var(--faint)}
.tl-venue:first-of-type:not(:empty){background:color-mix(in srgb,var(--faint) 7%, transparent)}
.tl-block.tl-blocker{
  background:color-mix(in srgb,var(--faint) 13%, var(--panel2));
  border-color:color-mix(in srgb,var(--faint) 55%, var(--line));
  border-style:dotted; color:var(--txt); cursor:default;
}
.tl-block.tl-blocker .bt{font-family:var(--serif); font-size:12px; letter-spacing:.01em}
.tl-block.tl-blocker.clash{border-color:var(--red); background:color-mix(in srgb,var(--red-soft) 72%, var(--panel2)); box-shadow:0 0 0 1px var(--red) inset}
.blocker-box{
  background:linear-gradient(135deg,var(--panel2),var(--panel));
  border:1px solid var(--line); border-radius:var(--radius); padding:14px; margin-top:12px;
}
.blocker-box h3{margin:0 0 9px; font-family:var(--serif); font-size:17px}
.blocker-box.blocker-collapsible{padding:0; overflow:hidden}
.blocker-box.blocker-collapsible summary{
  list-style:none; cursor:pointer; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-family:var(--serif); font-size:17px; font-weight:700;
}
.blocker-box.blocker-collapsible summary::-webkit-details-marker{display:none}
.blocker-box.blocker-collapsible summary::before{content:'+'; color:var(--gold); margin-right:2px; font-family:var(--sans); font-weight:700}
.blocker-box.blocker-collapsible[open] summary::before{content:'−'}
.blocker-box.blocker-collapsible summary span{display:flex; align-items:center; gap:6px}
.blocker-box.blocker-collapsible summary small{font-family:var(--sans); font-size:11px; color:var(--faint); font-weight:600; letter-spacing:.02em}
.blocker-box.blocker-collapsible .blocker-form{padding:0 14px 14px}
.blocker-box.blocker-collapsible .blocker-list{margin:0 14px 14px}
.blocker-box.compact{max-width:520px; margin:18px auto 0; text-align:left}
.blocker-form{display:grid; grid-template-columns:.8fr .7fr .7fr 1.45fr auto; gap:7px; align-items:center}
.blocker-form select,.blocker-form input{
  min-width:0; width:100%; background:var(--panel); border:1px solid var(--line); color:var(--txt);
  border-radius:8px; padding:9px 10px; font:inherit; font-size:12.5px;
}
.blocker-form .btn-primary{padding:9px 12px; white-space:nowrap}
.blocker-list{display:flex; flex-direction:column; gap:6px; margin-top:10px; border-top:1px solid var(--line); padding-top:9px}
.blocker-row{display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--muted); font-size:12px}
.blocker-row b{color:var(--txt)}
.agenda-item.block-event{border-style:dotted; background:color-mix(in srgb,var(--faint) 7%, var(--panel))}
.agenda-item.block-event .agenda-time{color:var(--faint)}
.agenda-item.block-event .agenda-info .ti{cursor:default}
.agenda-item.block-event .agenda-info .ti:hover{color:inherit}
@media(max-width:760px){.blocker-form{grid-template-columns:1fr 1fr}.blocker-form input[type="text"],.blocker-form .btn-primary{grid-column:1/-1}}
.tl-venue.blocker,.tl-cell.blocker{background:color-mix(in srgb,var(--faint) 6%, transparent)}
.tl-venue.blocker{color:var(--muted); font-style:italic}


/* v44: keep the custom interval blocker discoverable above the optimizer */
.plan-side .blocker-box.blocker-collapsible{order:2}
.plan-side .optimize-box{order:3}
.plan-side .blocker-box.blocker-collapsible summary{min-height:42px}
@media(max-width:900px){.plan-side{position:static!important; max-height:none!important; overflow:visible!important; padding-right:0!important}}


/* v45: interval blocker is a visible compact card, not a hidden <details> block */
.blocker-box.blocker-inline{padding:0; overflow:hidden; margin-top:10px; border-color:var(--line2)}
.blocker-toggle{
  width:100%; border:0; background:transparent; color:var(--txt); cursor:pointer;
  padding:12px 14px; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  font-family:var(--serif); font-size:17px; font-weight:700; text-align:left;
}
.blocker-toggle span{display:flex; align-items:center; gap:7px}
.blocker-toggle b{font-family:var(--sans); color:var(--gold); font-size:16px; line-height:1}
.blocker-toggle small{font-family:var(--sans); color:var(--faint); font-size:11px; font-weight:600; letter-spacing:.02em}
.blocker-toggle:hover{background:color-mix(in srgb,var(--gold) 5%, transparent)}
.blocker-box.blocker-inline .blocker-form{padding:0 14px 14px}
.blocker-box.blocker-inline .blocker-list{margin:0 14px 14px}
.plan-side .blocker-box.blocker-inline{order:2; display:block!important; visibility:visible!important}
.plan-side .optimize-box{order:3}


/* v46: explicit, always-visible interval blocker card */
.plan-side .blocker-box.blocker-inline{
  order:2; display:block!important; visibility:visible!important; height:auto!important; min-height:0!important;
  overflow:visible!important; padding:14px!important; margin-top:10px; border-color:var(--line2);
}
.blocker-box.blocker-inline h3{display:block!important; margin:0 0 9px!important; color:var(--txt)!important}
.blocker-box.blocker-inline .blocker-form{display:grid!important; padding:0!important; visibility:visible!important; opacity:1!important}
.blocker-toggle{display:none!important}
.plan-side .optimize-box{order:3}



/* v47: stable visible custom time-block panel; avoids old blocker-box accordion styles */
.timeblock-panel{
  order:2; display:block; visibility:visible; position:relative; z-index:1;
  background:linear-gradient(135deg,var(--panel2),var(--panel));
  border:1px solid var(--line2); border-radius:14px; padding:12px; margin-top:10px;
  box-shadow:none; height:auto; overflow:visible;
}
.timeblock-head{display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:9px}
.timeblock-head b{font-family:var(--serif); font-size:18px; line-height:1.1; color:var(--txt)}
.timeblock-head small{font-size:10.5px; color:var(--faint); text-transform:uppercase; letter-spacing:.08em; white-space:nowrap}
.timeblock-form{display:grid; grid-template-columns:1fr 1fr 1fr; gap:7px; align-items:center; overflow:visible}
.timeblock-form select,.timeblock-form input{
  min-width:0; width:100%; background:var(--panel); border:1px solid var(--line); color:var(--txt);
  border-radius:8px; padding:8px 9px; font:inherit; font-size:12.5px; line-height:1.2;
}
.timeblock-form input{grid-column:1 / span 2}
.timeblock-form .btn-primary{grid-column:3; padding:8px 10px; white-space:nowrap; min-height:36px}
.timeblock-panel .blocker-list{margin-top:9px; padding-top:8px; border-top:1px solid var(--line)}
.timeblock-panel.compact{max-width:520px; margin:18px auto 0; text-align:left}
.plan-side .timeblock-panel{order:2}
.plan-side .optimize-box{order:3}
@media(max-width:760px){
  .timeblock-form{grid-template-columns:1fr 1fr}
  .timeblock-form select:first-child,.timeblock-form input,.timeblock-form .btn-primary{grid-column:1 / -1}
}


.transfer-mode-box{
  background:color-mix(in srgb,var(--panel) 88%, transparent); border:1px solid var(--line); border-radius:12px; padding:7px 8px;
}
.transfer-select-row{display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0}
.transfer-select-label{color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap}
.transfer-select{
  min-width:132px; max-width:100%; background:var(--bg); color:var(--txt); border:1px solid var(--line2);
  border-radius:999px; padding:6px 26px 6px 10px; font:inherit; font-size:12px; font-weight:750; line-height:1.15;
}
.transfer-note{font-size:11px; line-height:1.35; color:var(--muted); border-top:1px solid var(--line); margin-top:7px; padding-top:7px}
.plan-side .transfer-mode-box{order:3}
.plan-side .optimize-box{order:4}
.plan-side .repair-box{order:5}
@media(max-width:760px){
  .transfer-mode-box{padding:6px 7px}
  .transfer-select{min-width:122px; font-size:11.5px; padding-top:5px; padding-bottom:5px}
}

/* v48: lightweight festival intelligence layer */
.pace-toggle{
  display:grid; grid-template-columns:repeat(3,1fr); gap:4px; margin:4px 0 10px; padding:4px;
  background:color-mix(in srgb,var(--bg) 60%, transparent); border:1px solid var(--line); border-radius:10px;
}
.pace-btn{
  border:0; background:transparent; color:var(--muted); border-radius:7px; padding:7px 5px;
  font-size:11.5px; font-weight:750; line-height:1.15; text-transform:none;
}
.pace-btn:hover{color:var(--txt); background:var(--panel)}
.pace-btn.on{background:var(--gold); color:#1a1408}
.plan-radar{
  background:linear-gradient(135deg,var(--panel2),var(--panel)); border:1px solid var(--line2);
  border-radius:var(--radius); padding:16px 18px; margin:0 0 18px; position:relative; overflow:hidden;
}
.plan-radar::before{content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--green)}
.plan-radar.warn::before,.plan-radar.mid::before{background:var(--gold)}
.plan-radar.bad::before{background:var(--red)}
.radar-head{display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px}
.radar-head h3{margin:0 0 3px; font-family:var(--serif); font-size:22px; line-height:1.1}
.radar-head p{margin:0; color:var(--muted); font-size:12.5px; line-height:1.45}
.radar-head span{
  flex:none; border:1px solid var(--line2); border-radius:999px; padding:5px 9px;
  color:var(--txt); background:var(--panel); font-size:11.5px; font-weight:750; white-space:nowrap;
}
.plan-radar.ok .radar-head span{color:var(--green)}
.plan-radar.warn .radar-head span,.plan-radar.mid .radar-head span{color:var(--gold)}
.plan-radar.bad .radar-head span{color:var(--red)}
.radar-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:10px}
.radar-grid div{background:color-mix(in srgb,var(--bg) 50%, transparent); border:1px solid var(--line); border-radius:10px; padding:9px 10px}
.radar-grid b{display:block; font-family:var(--serif); font-size:22px; line-height:1; margin-bottom:3px}
.radar-grid small{display:block; color:var(--muted); font-size:11px; line-height:1.25}
.radar-foot{border-top:1px solid var(--line); padding-top:9px; color:var(--muted); font-size:12.5px; line-height:1.4}
.radar-foot b{color:var(--txt)}
.plan-radar .mini-btn{margin-top:12px}
.day-digest{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:-2px 0 9px; padding:8px 10px;
  border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--panel) 82%, var(--bg));
  color:var(--muted); font-size:12px;
}
.day-digest b{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--green)}
.day-digest.mid b,.day-digest.warn b{color:var(--gold)}
.day-digest.bad b{color:var(--red)}
.day-digest span{line-height:1.35}
@media(max-width:760px){
  .radar-head{display:block}
  .radar-head span{display:inline-block; margin-top:9px}
  .radar-grid{grid-template-columns:repeat(2,1fr)}
  .pace-btn{font-size:11px; padding:7px 3px}
}

/* v49: live companion, repair actions and shareable plan links */
.now-next-card{
  background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 15%, var(--panel2)),var(--panel));
  border:1px solid var(--gold-dim); border-radius:var(--radius); padding:15px 17px; margin:0 0 18px;
  box-shadow:0 14px 35px rgba(0,0,0,.12);
}
.now-next-kicker{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:800; margin-bottom:5px}
.now-next-main{display:flex; align-items:flex-start; justify-content:space-between; gap:14px}
.now-next-main h3{margin:0 0 3px; font-family:var(--serif); font-size:23px; line-height:1.08}
.now-next-main p{margin:0; color:var(--muted); font-size:12.5px; line-height:1.45}
.now-next-main small{display:block; margin-top:5px; color:var(--faint); font-size:11.5px; line-height:1.35}
.now-next-actions{display:flex; gap:7px; flex:none; flex-wrap:wrap; justify-content:flex-end}
.now-next-actions .mini-btn{text-decoration:none; white-space:nowrap}
.repair-box{
  background:linear-gradient(135deg,var(--panel2),var(--panel)); border:1px solid var(--line2);
  border-radius:var(--radius); padding:14px; margin-top:10px; order:4;
}
.repair-box h3{margin:0 0 5px; font-family:var(--serif); font-size:17px}
.repair-box p{margin:0 0 8px; color:var(--muted); font-size:12.5px; line-height:1.35}
.repair-box .btn-ghost:disabled{opacity:.42; cursor:not-allowed; border-color:var(--line)}
.repair-controls{display:grid; grid-template-columns:1fr; gap:6px; margin-top:8px}
.repair-box .btn-ghost.active{border-color:var(--gold-dim); background:color-mix(in srgb,var(--gold) 12%, var(--panel)); color:var(--txt)}
.repair-box .danger,.mini-btn.danger{border-color:color-mix(in srgb,var(--red) 55%, var(--line)); color:var(--red)}
.repair-report{margin-top:12px; border-top:1px solid var(--line); padding-top:12px}
.repair-report h4{margin:0 0 6px; font-family:var(--serif); font-size:16px}
.repair-report p{margin:0 0 10px; color:var(--muted); font-size:12.3px; line-height:1.42}
.repair-pair{border:1px solid var(--line); border-radius:12px; padding:10px; margin-top:9px; background:color-mix(in srgb,var(--panel2) 72%, transparent)}
.repair-pair-title{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); font-weight:800; margin-bottom:8px}
.repair-card{display:grid; grid-template-columns:1fr; gap:8px; border:1px solid var(--line); background:var(--panel); border-radius:10px; padding:10px; margin-top:7px}
.repair-card-main b{display:block; font-size:13.5px; line-height:1.25}
.repair-card-main small{display:block; margin-top:3px; color:var(--muted); font-size:11.5px; line-height:1.35}
.repair-card-main em{display:block; margin-top:4px; color:var(--gold); font-style:normal; font-size:11px; line-height:1.3}
.repair-card-actions{display:flex; flex-wrap:wrap; gap:6px}
.repair-card-actions .mini-btn{padding:6px 9px; font-size:12px}
.repair-more{margin-top:9px!important; color:var(--faint)!important}
.impact-note{display:block!important; margin-top:4px; font-style:normal!important; font-size:11.5px!important; line-height:1.3!important}
.impact-note.ok{color:var(--green)!important}
.impact-note.warn{color:var(--gold)!important}
.impact-note.bad{color:var(--red)!important}
@media(max-width:900px){.now-next-main{display:block}.now-next-actions{justify-content:flex-start; margin-top:10px}}

/* v49.4: repair reports move into the main decision column; World Cup gets search */
.repair-status{
  margin-top:10px; padding:10px; border:1px solid var(--gold-dim); border-radius:12px;
  background:color-mix(in srgb,var(--gold) 10%, var(--panel)); display:grid; gap:6px;
}
.repair-status b{display:block; font-size:12.5px; line-height:1.25}
.repair-status span{display:block; color:var(--muted); font-size:12px; line-height:1.35}
.repair-status .mini-btn{justify-self:start}
.repair-main-panel{
  scroll-margin-top:92px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 12%, var(--panel2)),var(--panel));
  border:1px solid var(--gold-dim); border-radius:var(--radius); padding:15px; margin:0 0 18px;
  box-shadow:0 18px 45px rgba(0,0,0,.16);
}
.repair-main-panel:focus{outline:2px solid color-mix(in srgb,var(--gold) 62%, transparent); outline-offset:3px}
.repair-main-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px}
.repair-main-head span{display:block; color:var(--gold); font-size:11px; letter-spacing:.12em; text-transform:uppercase; font-weight:850; margin-bottom:2px}
.repair-main-head h3{margin:0; font-family:var(--serif); font-size:22px; line-height:1.08}
.repair-main-panel .repair-report{border-top:1px solid var(--line); margin-top:10px; padding-top:12px}
.repair-main-panel .repair-card{
  grid-template-columns:minmax(0,1fr) auto; align-items:center;
}
.repair-main-panel .repair-card-main b{font-size:14.5px}
.repair-main-panel .repair-card-actions{justify-content:flex-end}
.repair-attention{animation:repairPulse 1.35s ease-out 1}
@keyframes repairPulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--gold) 45%, transparent), 0 18px 45px rgba(0,0,0,.16)}
  45%{box-shadow:0 0 0 8px color-mix(in srgb,var(--gold) 12%, transparent), 0 18px 45px rgba(0,0,0,.16)}
  100%{box-shadow:0 18px 45px rgba(0,0,0,.16)}
}
.mundial-tools{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center;
  margin:12px 0 14px; padding:12px; border:1px solid var(--line2); border-radius:var(--radius);
  background:linear-gradient(135deg,var(--panel2),var(--panel));
}
.mundial-search{
  width:100%; min-width:0; border:1px solid var(--line2); border-radius:12px; padding:10px 12px;
  background:var(--bg); color:var(--txt); font:inherit; font-size:14px;
}
.mundial-search:focus{outline:2px solid color-mix(in srgb,var(--green) 55%, transparent); outline-offset:2px}
.mundial-count{grid-column:1 / -1; color:var(--muted); font-size:12px; line-height:1.35}
@media(max-width:760px){
  .repair-main-head{display:block}
  .repair-main-head .mini-btn{margin-top:8px}
  .repair-main-panel .repair-card{grid-template-columns:1fr}
  .repair-main-panel .repair-card-actions{justify-content:flex-start}
  .mundial-tools{grid-template-columns:1fr}
  .mundial-tools .mini-btn{justify-self:start}
}

/* v51: smarter gap-fill rows + other-day visibility */
.gap-fill-opps{border-color:color-mix(in srgb,var(--gold-dim) 52%, var(--line)); background:color-mix(in srgb,var(--gold) 5%, var(--panel))}
.gap-fill-opps summary span::before{content:"＋"}
.gap-fill-opps[open] summary span::before{content:"−"}
.gap-fill-row .remove-opp-info b{cursor:pointer}
.gap-more-note{font-size:11.5px; color:var(--faint); padding:3px 2px 0}
.card-other-days{font-size:11.5px; line-height:1.35; color:var(--faint); border-top:1px dashed var(--line); padding-top:7px; margin-top:-2px}
.dr-screen.outside-period{opacity:.86; border-style:dashed; background:color-mix(in srgb,var(--panel) 76%, var(--bg))}
.dr-screen.outside-period .ds-when em{color:var(--gold-dim)}
.other-screens{margin-bottom:10px}
@media(max-width:600px){.gap-fill-opps{margin-left:0}.gap-fill-row{grid-template-columns:58px 1fr}.gap-fill-row .remove-opp-add{grid-column:1 / -1; justify-self:start}}

/* v52: guest badges and broader side-event metadata */
.guest-tag{color:var(--gold); border-color:var(--gold); background:color-mix(in srgb,var(--gold) 12%, transparent)}
.guest-events{margin-top:8px; padding-top:8px; border-top:1px dashed var(--line)}
.expo-source{margin-top:10px; align-self:flex-start}
/* v57: map side-event tooltips only where they add information */
.map-side-event-info{cursor:default}
.map-side-event.has-help .map-side-event-info{cursor:help}
.map-help-dot{display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; margin-left:6px; border:1px solid var(--line); border-radius:999px; color:var(--muted); font-family:var(--sans); font-size:10px; font-weight:700; vertical-align:middle; background:var(--panel)}


/* v68: rain backup notes for Piața Unirii Open Air */
.rain-chip,.scr-rain{
  display:inline-flex; align-items:center; font-size:10px; font-weight:750; letter-spacing:.08px;
  padding:2px 6px; border-radius:999px; color:var(--muted); border:1px solid var(--line2);
  background:color-mix(in srgb,var(--panel2) 82%, #7fb5e8 10%); white-space:nowrap;
}
.rain-chip{margin-top:6px; margin-right:6px; font-size:10.5px; padding:3px 8px}
.scr-rain{font-size:9.5px; padding:1px 5px; text-transform:none}
@media(max-width:760px){.scr-rain{max-width:70px; overflow:hidden; text-overflow:ellipsis}.rain-chip{font-size:10px}}

/* v66: compact live options + ticket state */
.ticket-chip,.scr-ticket{
  display:inline-flex; align-items:center; font-size:10px; font-weight:800; letter-spacing:.35px;
  padding:2px 6px; border-radius:999px; color:var(--green); border:1px solid color-mix(in srgb,var(--green) 70%, transparent);
  background:color-mix(in srgb,var(--green) 10%, transparent); text-transform:uppercase;
}
.scr-ticket{font-size:9.5px; padding:1px 5px; text-transform:none; letter-spacing:.1px}
.scr-pill.ticketed{border-color:color-mix(in srgb,var(--green) 55%, var(--line)); box-shadow:0 0 0 1px color-mix(in srgb,var(--green) 22%, transparent) inset}
.ticket-btn,.agenda-ticket{
  background:var(--panel); border:1px solid var(--line); color:var(--muted); border-radius:8px;
  padding:7px 9px; font-size:12px; font-weight:650; white-space:nowrap; transition:.15s;
}
.ticket-btn:hover,.agenda-ticket:hover{border-color:var(--green); color:var(--green)}
.ticket-btn.on,.agenda-ticket.on{background:color-mix(in srgb,var(--green) 18%, var(--panel)); color:var(--green); border-color:var(--green)}
.agenda-ticket{padding:5px 8px; font-size:11.5px; justify-self:end}
.empty-flow{display:flex; flex-wrap:wrap; justify-content:center; gap:7px; margin:14px auto 4px; max-width:620px}
.empty-flow span{border:1px solid var(--line); background:var(--panel); border-radius:999px; padding:5px 9px; color:var(--muted); font-size:12px}
.empty-actions{display:flex; gap:9px; justify-content:center; align-items:center; margin:18px auto 10px; max-width:520px}
.empty-actions .btn-primary,.empty-actions .btn-ghost{width:auto; min-width:170px; margin:0}
.plan-empty .period-control{max-width:460px; margin:14px auto 0; text-align:left}
.plan-empty .timeblock-panel{max-width:560px; margin:14px auto 0; text-align:left}
.live-options-card{background:var(--panel); border:1px solid var(--gold-dim); border-radius:var(--radius); padding:14px 16px; margin:0 0 18px; scroll-margin-top:92px}
.plan-empty .live-options-card{max-width:860px; margin:16px auto 0; text-align:left}
.live-options-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px}
.live-options-head h3{margin:0 0 4px; font-family:var(--serif); font-size:20px; line-height:1.1}
.live-options-head p{margin:0; color:var(--muted); font-size:12.5px; line-height:1.4}
.live-options-head span{font-family:var(--serif); color:var(--gold); font-size:24px; line-height:1}
.live-option{display:grid; grid-template-columns:62px 1fr auto; gap:12px; align-items:center; border:1px solid var(--line); border-radius:10px; padding:10px 11px; margin-top:7px; position:relative; background:var(--bg)}
.live-option::before{content:""; position:absolute; left:0; top:7px; bottom:7px; width:3px; border-radius:3px; background:var(--secColor,var(--gold))}
.live-option.clash{border-color:color-mix(in srgb,var(--red) 60%, var(--line)); background:var(--red-soft)}
.live-option.ticketed{border-color:color-mix(in srgb,var(--green) 70%, var(--line))}
.live-time{font-family:var(--serif); font-weight:650; font-size:15px; line-height:1.1}
.live-time small{display:block; margin-top:3px; color:var(--muted); font:400 10.5px/1.2 var(--sans)}
.live-info b{display:block; font-size:13.5px; line-height:1.25}
.live-info small{display:block; color:var(--muted); font-size:11.5px; line-height:1.35; margin-top:3px}
.live-actions{display:flex; gap:6px; justify-content:flex-end; flex-wrap:wrap}
.live-actions .mini-btn{padding:6px 9px; font-size:12px}
@media(max-width:760px){
  .empty-actions{flex-direction:column}.empty-actions .btn-primary,.empty-actions .btn-ghost{width:100%; max-width:320px}
  .live-option{grid-template-columns:56px 1fr}.live-actions{grid-column:1/-1; justify-content:flex-start}
  .agenda-ticket{grid-column:2; justify-self:start; margin-top:2px}
  .dr-screen{align-items:flex-start}.dr-screen > div:last-child{flex-wrap:wrap; justify-content:flex-end}
  .ticket-btn,.dr-add{padding:6px 8px; font-size:11.5px}
}

/* ===== TIFF Lounge in Extra ===== */
.lounge-section .extra-section-head p{max-width:820px}
.lounge-list{display:flex; flex-direction:column; gap:12px}
.lounge-day{border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--panel2) 70%, transparent); overflow:hidden}
.lounge-day h3{margin:0; padding:10px 12px; font-family:var(--serif); font-size:20px; border-bottom:1px solid var(--line)}
.lounge-row{display:grid; grid-template-columns:74px 1fr auto; gap:10px; align-items:start; padding:10px 12px; border-bottom:1px solid var(--line)}
.lounge-row:last-child{border-bottom:0}
.lounge-row.picked{background:color-mix(in srgb,var(--gold) 11%, transparent)}
.lounge-row.clash{outline:1px solid color-mix(in srgb,#d86b60 70%, transparent); outline-offset:-1px}
.lounge-time{font-weight:850; color:var(--gold); font-size:13px; white-space:nowrap; padding-top:2px}
.lounge-info{min-width:0}
.lounge-info b{display:block; font-size:14px; line-height:1.25}
.lounge-info small{display:block; margin-top:3px; color:var(--muted); font-size:12.5px; line-height:1.35}
.lounge-actions{display:flex; justify-content:flex-end}
.lounge-clash{grid-column:2 / 4; color:#d86b60; font-style:normal; font-size:12px; margin-top:-4px}
@media(max-width:760px){
  .lounge-row{grid-template-columns:58px 1fr; gap:8px; padding:10px}
  .lounge-actions{grid-column:2; justify-content:flex-start}
  .lounge-clash{grid-column:1 / 3; margin-top:0}
  .lounge-info b{font-size:13.5px}
  .lounge-info small{font-size:12px}
}

/* v75: TIFF GOLD picks + live festival focus */
.gold-pick-filter{border-color:var(--gold-dim)}
.gold-pick-filter.on{background:color-mix(in srgb,var(--gold) 18%, var(--panel)); color:var(--gold); border-color:var(--gold-dim)}
.chirilov-gold-tag{
  color:var(--gold); background:color-mix(in srgb,var(--gold) 12%, transparent); border:1px solid var(--gold-dim);
  letter-spacing:.08em;
}
.gold-note{
  margin:12px 0; padding:10px 12px; border-radius:12px; border:1px solid var(--gold-dim);
  background:color-mix(in srgb,var(--gold) 8%, var(--panel2)); color:var(--muted); display:flex; gap:10px; align-items:baseline;
}
.gold-note b{color:var(--gold); letter-spacing:.08em; font-size:12px}
.gold-note span{font-size:13px; line-height:1.35}
.tl-now-line{
  position:absolute; left:0; right:0; height:0; border-top:2px solid var(--gold); z-index:7; pointer-events:none;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--bg) 70%, transparent);
}
.tl-now-line span{
  position:absolute; left:7px; top:-10px; padding:1px 6px; border-radius:999px; font-size:9px; font-weight:800;
  text-transform:uppercase; letter-spacing:.08em; background:var(--gold); color:#1a1408;
}
.agenda-item.live-focus{border-color:var(--gold-dim); box-shadow:0 0 0 2px color-mix(in srgb,var(--gold) 18%, transparent)}
.agenda-item.live-focus::after{
  content:attr(data-focus-label); position:absolute; right:34px; top:-8px; padding:1px 6px; border-radius:999px;
  background:var(--gold); color:#1a1408; font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
}
@media(max-width:760px){
  .gold-note{padding:8px 10px; gap:8px}
  .agenda-item.live-focus::after{right:30px}
  .tl-now-line span{left:6px}
}

/* ── v76: focus vizibil + mișcare redusă ───────────────────────────────────── */
.card-title{cursor:pointer}
.card-title:focus-visible, .agenda-info .ti:focus-visible{outline:2px solid var(--gold-dim); outline-offset:2px; border-radius:4px}
.tabs button:focus-visible, .icon-btn:focus-visible, .fav-btn:focus-visible, .scr-pill:focus-visible,
.dr-close:focus-visible, .dr-add:focus-visible, .ticket-btn:focus-visible, .chip:focus-visible{outline:2px solid var(--gold-dim); outline-offset:2px}
.drawer-panel:focus{outline:none}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
