/* Magic of Tomorrow palette */
:root{
  --bg:#080d24;
  --bg-grad:radial-gradient(ellipse at 30% -10%, #163080 0%, #080d24 50%, #020512 100%);
  --panel:#10204a;
  --panel-2:#1a2f6a;
  --panel-3:#1c3275;
  --border:#2e4490;
  --border-soft:#1a2f6a;

  --gold:#d4af37;
  --gold-soft:#f5c842;
  --gold-deep:#9a7e21;
  /* podium medals - real metal tones */
  --prio1:#c9a13b;       /* ORO antico - warm warm */
  --prio1-deep:#7a5e10;
  --prio1-light:#e8c557;
  --prio2:#8b95a3;       /* ARGENTO acciaio - cool steel */
  --prio2-deep:#4a525e;
  --prio2-light:#b8c0cc;
  --prio3:#8a5020;       /* BRONZO scuro - copper patina */
  --prio3-deep:#4a2c10;
  --prio3-light:#b07640;
  /* neutral dim base for non-prio blocks */
  --neutral:#2a4080;
  --neutral-2:#4a3a82;
  --neutral-text:#a3b5d4;
  --silver:#d4dae8;
  --bronze:#d68a45;

  --violet:#3760cf;
  --violet-light:#5a96e8;
  --violet-glow:rgba(90,150,232,.35);

  --text:#f5edd6;
  --text-dim:#c5cee0;
  --muted:#7a8fb5;

  --warn:#e85a3a;
  --warn-soft:#ff8a6a;
  --now:#ff3838;
  --ok:#3ddc97;

  --radius:14px;
  --radius-sm:8px;
  --shadow:0 8px 28px rgba(0,0,0,.45);
  --shadow-gold:0 0 24px rgba(212,175,55,.25);
  --font:"Outfit","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --serif:"Outfit","Inter",-apple-system,BlinkMacSystemFont,sans-serif;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;-webkit-font-smoothing:antialiased}
body{background:var(--bg-grad) fixed;padding-bottom:calc(132px + env(safe-area-inset-bottom))}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}
input{font-family:inherit;font-size:16px}
.hidden{display:none!important}

/* TOPBAR */
.topbar{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(12px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) 12px calc(16px + env(safe-area-inset-left));
  background:linear-gradient(180deg,rgba(8,13,36,.96),rgba(8,13,36,.72));
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border-soft);
}
.brand{display:flex;flex-direction:column;line-height:1}
.brand-mark{font-family:var(--serif);font-weight:600;letter-spacing:.25em;font-size:20px;color:var(--gold);text-shadow:0 0 16px rgba(212,175,55,.4)}
.brand-sub{font-size:10px;color:var(--muted);margin-top:5px;letter-spacing:.15em;text-transform:uppercase;font-weight:500}
.topbar-actions{display:flex;gap:8px}
.icon-btn{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(212,175,55,.08);
  border:1px solid var(--border-soft);
  color:var(--gold);font-size:18px;transition:all .15s;
}
.icon-btn:hover,.icon-btn:focus{background:rgba(212,175,55,.18);border-color:var(--gold);outline:none}

/* SEARCH */
.search-bar{
  position:sticky;top:62px;z-index:55;
  display:flex;gap:8px;align-items:center;
  padding:10px 16px;
  background:rgba(8,13,36,.94);backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border-soft);
}
#search-input{
  flex:1;padding:10px 14px;border-radius:999px;
  background:var(--panel);border:1px solid var(--border);
  color:var(--text);outline:none;
}
#search-input:focus{border-color:var(--gold)}

/* TABS */
.weekend-bar,.day-tabs,.view-tabs{display:flex;gap:6px;padding:10px 16px;overflow-x:auto;scrollbar-width:none}
.weekend-bar::-webkit-scrollbar,.day-tabs::-webkit-scrollbar,.view-tabs::-webkit-scrollbar{display:none}
.weekend-bar{padding-bottom:4px}

.wk-btn{
  flex:1;min-width:170px;padding:10px 14px;border-radius:10px;
  border:1px solid var(--border-soft);background:rgba(26,47,106,.4);
  color:var(--text-dim);font-size:13px;font-weight:600;
  transition:all .15s;white-space:nowrap;
}
.wk-btn.active{background:linear-gradient(135deg,var(--violet),var(--violet-light));border-color:var(--gold);color:#fff;box-shadow:var(--shadow)}

.day-tab{
  flex:1;min-width:90px;padding:10px 8px;border-radius:10px;
  border:1px solid var(--border-soft);background:rgba(16,32,74,.5);
  color:var(--text);font-size:13px;font-weight:500;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  transition:all .15s;
}
.day-tab .d-name{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.day-tab.active{background:linear-gradient(135deg,var(--panel-3),var(--panel));border-color:var(--gold);box-shadow:var(--shadow-gold)}
.day-tab.active .d-name{color:var(--gold)}


/* MAIN */
#content{padding:14px 16px 20px;max-width:1200px;margin:0 auto}
.empty{padding:60px 20px;text-align:center;color:var(--muted)}
.empty strong{display:block;font-size:18px;color:var(--text);margin-bottom:8px;font-family:var(--serif)}
.section-title{font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:.05em;color:var(--gold);margin:0 0 14px}
.subtitle{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px}

/* ============ GANTT ============ */
.gantt-wrap{
  position:relative;
  background:linear-gradient(180deg,var(--panel),rgba(16,32,74,.6));
  border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;
}
.gantt-toolbar{
  display:flex;gap:10px;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid var(--border-soft);
  font-size:12px;color:var(--text-dim);
}
.gantt-toolbar .zoom{display:flex;gap:6px;align-items:center}
.gantt-toolbar button{
  width:30px;height:30px;border-radius:6px;
  background:var(--panel-2);border:1px solid var(--border);color:var(--gold);
  font-weight:500;
}
.gantt-toolbar button:hover{background:var(--panel-3);border-color:var(--gold)}
.gantt-toolbar .legend-inline{display:flex;gap:10px;align-items:center;font-size:11px;flex-wrap:wrap}
.lg-item{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim)}
.lg-tap{font-size:9px;font-weight:600;color:var(--muted);background:var(--panel-2);padding:1px 4px;border-radius:3px;letter-spacing:.05em}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:middle}

.gantt-scroll{
  overflow:auto;
  max-height:calc(100vh - 360px);
  position:relative;
}
.gantt-grid{
  display:grid;
  position:relative;
  min-width:100%;
}
.gantt-stage-head{
  position:sticky;top:0;z-index:20;
  background:linear-gradient(180deg,var(--panel-3),var(--panel-2));
  border-bottom:1px solid var(--gold);
  padding:10px 8px;
  text-align:center;
  font-size:11px;font-weight:600;letter-spacing:.08em;
  color:var(--gold-soft);
  text-transform:uppercase;
  border-right:1px solid var(--border-soft);
}
.gantt-time-col{
  position:sticky;left:0;z-index:15;
  background:var(--panel);
  border-right:2px solid var(--gold-deep);
  padding-right:4px;
}
.gantt-time-head{
  position:sticky;top:0;z-index:25;
  background:linear-gradient(180deg,var(--panel-3),var(--panel-2));
  border-bottom:1px solid var(--gold);border-right:2px solid var(--gold-deep);
  padding:10px 8px;
  font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);text-align:center;
  font-weight:500;
}
.gantt-time-tick{
  position:relative;
  font-size:10px;color:var(--muted);
  font-variant-numeric:tabular-nums;
  padding:2px 8px 0 6px;
  text-align:right;
  border-top:1px dashed var(--border-soft);
  font-weight:600;
}
.gantt-time-tick.hour{color:var(--gold-soft);border-top-color:var(--border);border-top-style:solid}
.gantt-stage-col{
  position:relative;
  border-right:1px solid var(--border-soft);
  background:linear-gradient(180deg,rgba(16,32,74,.35),rgba(8,13,36,.5));
}
.gantt-stage-col::before{
  content:'';position:absolute;inset:0;
  background-image:repeating-linear-gradient(180deg,transparent 0,transparent 29px,rgba(46,68,144,.25) 29px,rgba(46,68,144,.25) 30px);
  pointer-events:none;
}

.gantt-block{
  position:absolute;left:4px;right:4px;
  background:linear-gradient(135deg,var(--neutral),var(--neutral-2));
  border:1px solid var(--border);
  border-radius:6px;
  padding:5px 7px;
  font-size:11px;line-height:1.2;
  overflow:hidden;
  cursor:pointer;
  transition:all .15s;
  display:flex;flex-direction:column;justify-content:center;
  color:var(--neutral-text);
  opacity:.78;
}
.gantt-block:hover{transform:translateY(-1px) scale(1.02);z-index:10;box-shadow:var(--shadow);border-color:var(--gold);opacity:1;color:#fff}
.gantt-block .gb-name{font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.gantt-block .gb-time{font-size:9px;opacity:.8;margin-top:2px;font-variant-numeric:tabular-nums}
.gantt-block.mtba{background:repeating-linear-gradient(45deg,#1c3275 0,#1c3275 6px,#10204a 6px,#10204a 12px);color:var(--muted);cursor:default}
.gantt-block.mtba:hover{transform:none}

.gantt-block.prio-1{opacity:1;border:2px solid var(--prio1-light);box-shadow:0 0 18px rgba(201,161,59,.55);
  background:linear-gradient(135deg,var(--prio1-deep) 0%,var(--prio1) 45%,var(--prio1-light) 60%,var(--prio1) 75%,var(--prio1-deep) 100%);
  color:#1a1004}
.gantt-block.prio-2{opacity:1;border:2px solid var(--prio2-light);box-shadow:0 0 14px rgba(139,149,163,.5);
  background:linear-gradient(135deg,var(--prio2-deep) 0%,var(--prio2) 45%,var(--prio2-light) 60%,var(--prio2) 75%,var(--prio2-deep) 100%);
  color:#1a1f28}
.gantt-block.prio-3{opacity:1;border:2px solid var(--prio3-light);box-shadow:0 0 14px rgba(138,80,32,.55);
  background:linear-gradient(135deg,var(--prio3-deep) 0%,var(--prio3) 45%,var(--prio3-light) 60%,var(--prio3) 75%,var(--prio3-deep) 100%);
  color:#fff}

.gantt-block.conflict::after{
  content:'⚠';position:absolute;top:2px;right:4px;
  font-size:10px;color:var(--warn);
  text-shadow:0 0 4px rgba(232,90,58,.8);
}

.now-line{
  position:absolute;left:0;right:0;
  height:2px;background:var(--now);z-index:30;pointer-events:none;
  box-shadow:0 0 12px var(--now);
}
.now-line::before{
  content:'ORA';position:absolute;left:4px;top:-9px;
  background:var(--now);color:#fff;padding:1px 6px;border-radius:4px;
  font-size:9px;font-weight:600;letter-spacing:.1em;
}

/* ============ STAGES VIEW ============ */
.stage-card{
  display:block;
  background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;margin-bottom:14px;cursor:pointer;
  transition:all .2s;
}
.stage-card:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.stage-card-hero{
  position:relative;
  height:140px;
  background-size:cover;background-position:center;
  background-color:var(--panel-2);
  background-image:linear-gradient(135deg,var(--stage-c1),var(--stage-c2));
}
.stage-card-hero::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 30%,rgba(8,13,36,.95));
}
.stage-card-title{
  position:absolute;left:14px;bottom:10px;right:14px;z-index:2;
  font-family:var(--serif);font-size:24px;font-weight:600;color:#fff;
  letter-spacing:.04em;text-shadow:0 2px 8px rgba(0,0,0,.6);
}
.stage-card-meta{
  padding:10px 14px;font-size:11px;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em;
  display:flex;justify-content:space-between;
}

/* Stage detail */
.stage-detail-hero{
  position:relative;height:200px;border-radius:var(--radius);overflow:hidden;
  margin-bottom:16px;
  background-size:cover;background-position:center;
  background-image:linear-gradient(135deg,var(--stage-c1),var(--stage-c2));
}
.stage-detail-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,13,36,.95))}
.stage-detail-title{position:absolute;left:18px;bottom:14px;right:18px;z-index:2;font-family:var(--serif);font-size:32px;font-weight:600;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.stage-back-btn{position:absolute;left:10px;top:10px;z-index:3;background:rgba(8,13,36,.7);color:var(--gold);border:1px solid var(--gold);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600}
.stage-desc{
  padding:14px 16px;margin-bottom:14px;
  background:linear-gradient(135deg,rgba(61,165,99,.1),var(--panel));
  border:1px solid var(--gold-deep);border-radius:var(--radius);
  font-size:13px;line-height:1.5;color:var(--text-dim);
  font-style:italic;
}

/* ============ PERF ROW ============ */
.perf-row{
  display:flex;align-items:center;gap:12px;
  padding:11px 13px;margin-bottom:7px;
  background:linear-gradient(135deg,var(--panel),rgba(16,32,74,.6));
  border:1px solid var(--border-soft);
  border-radius:var(--radius);
  transition:all .15s;cursor:pointer;
}
.perf-row:hover{border-color:var(--gold);transform:translateY(-1px)}
.perf-row.prio-1{border-color:var(--prio1);background:linear-gradient(135deg,rgba(201,161,59,.18),var(--panel));box-shadow:0 0 14px rgba(201,161,59,.22)}
.perf-row.prio-2{border-color:var(--prio2);background:linear-gradient(135deg,rgba(139,149,163,.18),var(--panel));box-shadow:0 0 12px rgba(139,149,163,.2)}
.perf-row.prio-3{border-color:var(--prio3);background:linear-gradient(135deg,rgba(138,80,32,.18),var(--panel));box-shadow:0 0 10px rgba(138,80,32,.22)}
.perf-row.mtba{opacity:.5;cursor:default}
.perf-row.mtba:hover{transform:none;border-color:var(--border-soft)}

.perf-time{flex-shrink:0;min-width:80px;font-variant-numeric:tabular-nums;font-weight:500;font-size:14px;color:var(--gold-soft)}
.perf-time .end{display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:2px}
.perf-info{flex:1;min-width:0}
.perf-name{font-weight:500;font-size:15px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;max-width:100%}
.glory-tip{
  display:inline-flex;align-items:center;
  font-size:9px;font-weight:500;letter-spacing:.08em;
  color:var(--prio1-light);
  background:rgba(201,161,59,.12);
  border:1px solid var(--prio1-deep);
  padding:1px 6px;border-radius:4px;
  flex-shrink:0;text-transform:uppercase;white-space:nowrap;
}
.perf-stage{font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.perf-fav{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;background:rgba(255,255,255,.04);color:var(--muted);transition:all .15s}
.perf-remove{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:13px;
  background:rgba(232,90,58,.12);color:var(--warn-soft);
  border:1px solid rgba(232,90,58,.3);margin-left:6px;cursor:pointer;
  transition:all .15s;
}
.perf-remove:hover{background:rgba(232,90,58,.28);border-color:var(--warn);color:#fff;transform:scale(1.06)}
.perf-row.prio-1 .perf-fav{color:var(--prio1-light);background:rgba(201,161,59,.22)}
.perf-row.prio-2 .perf-fav{color:var(--prio2-light);background:rgba(139,149,163,.22)}
.perf-row.prio-3 .perf-fav{color:var(--prio3-light);background:rgba(138,80,32,.22)}

.perf-row.conflict{border-left:4px solid var(--warn)}
.perf-slot{
  appearance:none;-webkit-appearance:none;
  display:inline-flex;align-items:center;gap:6px;
  margin-top:6px;padding:4px 10px;border-radius:999px;
  background:rgba(90,150,232,.12);
  border:1px solid rgba(90,150,232,.4);
  color:#a3b5d4;
  font-family:inherit;font-size:11px;font-weight:600;letter-spacing:.04em;
  cursor:pointer;transition:background .15s,border-color .15s;
  font-variant-numeric:tabular-nums;
}
.perf-slot:hover{background:rgba(90,150,232,.22);border-color:#5a96e8;color:#fff}
.perf-slot.custom{background:rgba(245,200,66,.14);border-color:rgba(245,200,66,.5);color:#f5c842}
.perf-slot.custom:hover{background:rgba(245,200,66,.22)}
.row-walk{display:inline-flex;align-items:center;gap:4px;background:rgba(245,200,66,.12);color:#f5c842;padding:1px 8px;border-radius:999px;font-size:10px;font-weight:600;margin-left:6px}
.row-walk.tight{background:rgba(232,90,58,.16);color:#ff8a6a;border:1px solid rgba(232,90,58,.45)}
/* slot editor modal */
.slot-name{font-size:18px;font-weight:600;color:#fff;margin-bottom:4px}
.slot-meta{font-size:12px;color:var(--muted);margin-bottom:18px}
.slot-chosen{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:12px;padding:10px 14px;
  background:rgba(90,150,232,.08);border:1px solid rgba(90,150,232,.3);
  border-radius:10px;
}
.slot-chosen strong{font-size:18px;color:#f5c842;font-variant-numeric:tabular-nums;font-weight:600}
.slot-chosen span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.slot-actions{display:flex;gap:8px;margin-top:18px}
.slot-reset,.slot-confirm{
  flex:1;padding:12px;border-radius:10px;border:1px solid var(--border);
  background:transparent;color:var(--text);
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;
  transition:all .15s;
}
.slot-reset:hover{border-color:var(--warn);color:var(--warn-soft)}
.slot-confirm{background:linear-gradient(135deg,var(--prio1-deep),var(--prio1));color:#1a1004;border-color:var(--gold)}
.slot-confirm:hover{box-shadow:0 0 14px rgba(201,161,59,.5)}
.solo-dual{margin:18px 0 8px}
.conflict-warn{
  display:flex;align-items:center;gap:6px;
  font-size:10px;color:var(--warn);
  background:rgba(232,90,58,.12);border:1px solid rgba(232,90,58,.3);
  padding:3px 8px;border-radius:6px;margin-top:6px;
  text-transform:uppercase;letter-spacing:.05em;font-weight:500;
}

/* Day group (programma) */
.day-group{margin-bottom:24px}
.day-group-head{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--gold);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid var(--gold-deep);letter-spacing:.04em}

/* PNG PREVIEW MODAL */
.modal-wide{max-width:920px}
.png-preview-grid{display:flex;flex-direction:column;gap:24px}
.png-preview-card{display:flex;flex-direction:column;align-items:center;gap:14px;background:transparent}
.png-preview-head{
  font-family:var(--serif);font-size:14px;font-weight:600;
  color:var(--gold-soft);letter-spacing:.12em;text-transform:uppercase;
}
.png-preview-img{
  display:block;
  width:100%;max-width:300px;height:auto;
  aspect-ratio:9 / 16;object-fit:contain;
  background:#0a0418;border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  image-rendering:auto;
}
.png-preview-actions{display:flex;gap:10px;width:100%;max-width:300px}
.png-share-btn,.png-dl-btn{
  flex:1;
  padding:13px 16px;border-radius:999px;border:1px solid var(--border);
  background:transparent;color:var(--text);
  font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.02em;
  cursor:pointer;transition:background .15s,border-color .15s,transform .12s;
}
.png-share-btn{
  background:var(--gold-soft);color:#1a1004;border-color:var(--gold-soft);
}
.png-share-btn:hover{background:var(--gold);border-color:var(--gold)}
.png-share-btn:active,.png-dl-btn:active{transform:scale(.97)}
.png-dl-btn:hover{border-color:var(--gold-deep);color:var(--gold-soft)}

/* EXPORT MENU */
.export-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.export-day-btn{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:14px 8px;border-radius:10px;
  background:linear-gradient(135deg,var(--panel-2),var(--panel));
  border:1px solid var(--border);color:var(--text);
  transition:all .15s;
}
.export-day-btn:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}
.export-day-btn.all{grid-column:1/-1;background:linear-gradient(135deg,rgba(201,161,59,.15),var(--panel));border-color:var(--gold-deep)}
.ed-day{font-size:14px;font-weight:600;color:#fff;letter-spacing:.05em}
.ed-mon{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.ed-count{font-size:11px;color:var(--gold-soft);font-weight:500;margin-top:3px}
.export-btn-big{
  display:block;width:100%;padding:14px;
  background:linear-gradient(135deg,var(--violet),var(--violet-light));
  border:1px solid var(--gold);border-radius:10px;
  color:#fff;font-size:14px;font-weight:500;letter-spacing:.04em;
  transition:all .15s;
}
.export-btn-big:hover{box-shadow:var(--shadow-gold)}

/* MAP VIEW */
.map-switcher{display:flex;gap:8px;margin-bottom:14px}
.map-tab{
  flex:1;padding:10px 14px;border-radius:10px;
  background:rgba(26,47,106,.5);border:1px solid var(--border-soft);
  color:var(--text-dim);font-size:13px;font-weight:500;letter-spacing:.04em;
  transition:all .15s;
}
.map-tab.active{background:linear-gradient(135deg,var(--violet),var(--violet-light));border-color:var(--gold);color:#fff;box-shadow:var(--shadow-gold)}
.map-meta{
  display:flex;flex-direction:column;gap:4px;
  padding:10px 14px;margin-bottom:12px;
  background:rgba(212,175,55,.08);border:1px solid var(--gold-deep);
  border-radius:var(--radius);
}
.map-meta strong{font-family:var(--serif);font-size:18px;color:var(--gold)}
.map-meta span{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}
.map-frame{
  position:relative;border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--border);background:#000;
  box-shadow:var(--shadow);
}
.map-img{display:block;width:100%;height:auto;cursor:zoom-in}
.map-hint{font-size:11px;color:var(--muted);text-align:center;margin:10px 0 0;font-style:italic}
.bridge-card{
  display:flex;align-items:center;gap:12px;
  padding:14px;margin:18px 0 10px;
  background:linear-gradient(135deg,rgba(232,90,58,.12),var(--panel));
  border:1px solid var(--warn);border-radius:var(--radius);
  box-shadow:0 0 14px rgba(232,90,58,.15);
}
.bridge-ico{font-size:30px;line-height:1}
.bridge-info{flex:1;display:flex;flex-direction:column;gap:2px}
.bridge-info strong{font-family:var(--serif);font-size:16px;color:var(--warn-soft);font-weight:500}
.bridge-info span{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}
.bridge-time{font-size:22px;font-weight:600;color:var(--warn);font-variant-numeric:tabular-nums;text-shadow:0 0 12px rgba(232,90,58,.5)}

.dist-note{font-size:11px;color:var(--muted);margin:-8px 0 10px;font-style:italic}

.walk-picker{
  margin:18px 0 6px;
  padding:12px 14px;
  background:linear-gradient(135deg,rgba(201,161,59,.08),var(--panel));
  border:1px solid var(--gold-deep);border-radius:var(--radius);
}
.walk-picker-title{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.walk-picker-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.walk-opt{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:10px 6px;border-radius:10px;
  background:rgba(8,13,36,.5);border:1px solid var(--border-soft);
  color:var(--text-dim);transition:all .15s;
}
.walk-opt:hover{background:rgba(8,13,36,.7);border-color:var(--gold-deep)}
.walk-opt.active{background:linear-gradient(135deg,rgba(201,161,59,.25),var(--panel));border-color:var(--gold);box-shadow:0 0 10px rgba(201,161,59,.3)}
.walk-opt-ico{font-size:24px;line-height:1;filter:grayscale(50%);opacity:.6;transition:all .15s}
.walk-opt.active .walk-opt-ico{filter:none;opacity:1;transform:scale(1.1)}
.walk-opt-lbl{font-size:11px;font-weight:600;letter-spacing:.05em;color:var(--text);text-transform:uppercase}
.walk-opt.active .walk-opt-lbl{color:var(--gold-soft)}
.walk-opt-desc{font-size:9px;color:var(--muted);text-align:center;line-height:1.2}

.crowd-warn{
  display:flex;flex-direction:column;gap:6px;
  padding:10px 12px;margin:0 0 14px;
  background:rgba(232,90,58,.06);
  border:1px solid rgba(232,90,58,.35);
  border-radius:10px;
}
.cw-row{display:flex;gap:10px;align-items:center;font-size:11px;line-height:1.3}
.cw-time{font-weight:600;color:var(--warn-soft);font-variant-numeric:tabular-nums;min-width:96px;letter-spacing:.04em}
.cw-text{color:var(--text-dim);flex:1}
.cw-row.danger .cw-time{color:var(--warn)}
.cw-row.danger .cw-text{color:#ffaa92;font-weight:600}

.zone-grid{display:grid;gap:10px;margin-bottom:10px}
.zone-card{
  padding:12px 14px;border-radius:var(--radius);
  background:linear-gradient(135deg,var(--panel),rgba(26,47,106,.6));
  border:1px solid var(--border);
}
.zone-card-head{font-size:11px;font-weight:600;color:var(--gold);letter-spacing:.15em;margin-bottom:3px}
.zone-card-sub{font-size:12px;color:var(--text-dim);margin-bottom:8px}
.zone-card-points{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:5px}
.zone-card-points li{font-size:11px;padding:3px 8px;background:rgba(8,13,36,.5);border:1px solid var(--border-soft);border-radius:6px;color:var(--text-dim)}

.zone-sub{font-size:10px;color:var(--muted);font-weight:500}

/* CONFLICT CARD */
.conflict-card{
  margin:10px 0 14px;
  background:linear-gradient(135deg,rgba(232,90,58,.1),var(--panel));
  border:2px solid var(--warn);border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 0 18px rgba(232,90,58,.18);
}
.conflict-head{
  padding:10px 14px;
  background:linear-gradient(180deg,rgba(232,90,58,.15),transparent);
  border-bottom:1px solid rgba(232,90,58,.3);
  display:flex;flex-direction:column;gap:3px;
}
.conflict-badge{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--warn)}
.conflict-time{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums}
.conflict-hint{font-size:10px;color:var(--muted);font-style:italic;margin-top:2px}

.conflict-body{
  display:flex;align-items:center;gap:14px;padding:14px;
}
.pie-wrap{position:relative;flex-shrink:0}
.conflict-pie{filter:drop-shadow(0 6px 14px rgba(0,0,0,.55));border-radius:50%}
.conflict-stack{
  position:relative;
  flex:1;display:flex;height:32px;border-radius:8px;overflow:hidden;
  border:1px solid rgba(0,0,0,.4);
  background:rgba(0,0,0,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -2px 4px rgba(0,0,0,.4);
}
.conflict-stack::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0,rgba(255,255,255,0) 45%,rgba(0,0,0,.15) 100%);
}
.conf-stack-seg{
  position:relative;
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:600;color:rgba(255,255,255,.95);
  text-shadow:0 1px 1px rgba(0,0,0,.6);
  transition:width .2s;
  min-width:0;overflow:hidden;
}

.conflict-timeline{padding:0 14px 14px;display:flex;flex-direction:column;gap:6px}
.tl-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums;padding:0 2px}
.tl-rows{display:flex;flex-direction:column;gap:4px;padding:8px 0;background:rgba(0,0,0,.3);border:1px solid var(--border);border-radius:8px;padding:10px}
.tl-row{position:relative;height:14px}
.tl-set{position:absolute;top:3px;bottom:3px;border:1px dashed;border-radius:4px;opacity:.5;background:rgba(255,255,255,.04)}
.tl-sub{position:absolute;top:0;bottom:0;border-radius:4px;box-shadow:0 0 6px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.2)}

.conflict-rows{padding:0 14px 10px;display:flex;flex-direction:column;gap:10px}
.conf-row{
  display:flex;flex-direction:column;gap:8px;
  padding:10px 12px;background:rgba(8,13,36,.45);
  border:1px solid var(--border-soft);border-radius:10px;
}
.conf-row.has-overlap{border-color:var(--warn);background:rgba(232,90,58,.06)}
.conf-row-head{display:flex;align-items:center;gap:10px}
.conf-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 1px 1px rgba(255,255,255,.4),inset 0 -1px 1px rgba(0,0,0,.5),0 0 4px rgba(0,0,0,.6);border:1px solid rgba(0,0,0,.4)}
.conf-info{flex:1;min-width:0}
.conf-name{font-weight:500;font-size:14px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}
.conf-chosen{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;line-height:1.2}
.conf-chosen strong{font-size:13px;color:var(--gold-soft);font-weight:600}
.conf-chosen span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.conf-warn{
  margin:0;padding:6px 10px;
  font-size:11px;color:var(--warn-soft);font-weight:600;
  background:rgba(232,90,58,.1);border:1px solid rgba(232,90,58,.3);
  border-radius:6px;
}
.conf-walk-chip{
  appearance:none;-webkit-appearance:none;
  display:inline-flex;align-items:center;gap:6px;
  margin:0;padding:5px 10px;
  font-size:11px;font-weight:600;line-height:1.2;
  color:var(--warn-soft);
  background:rgba(232,90,58,.08);
  border:1px solid rgba(232,90,58,.28);
  border-radius:999px;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,transform .12s ease;
  align-self:flex-start;
}
.conf-walk-chip:hover{background:rgba(232,90,58,.14);border-color:rgba(232,90,58,.45)}
.conf-walk-chip:active{transform:scale(.97)}
.conf-walk-chip.open{background:rgba(232,90,58,.18);border-color:rgba(232,90,58,.55)}
.conf-walk-chip .walk-attn{color:#ffb39a;font-weight:500;letter-spacing:.02em}
.conf-walk-banner{
  margin:6px 0 0;padding:10px 12px;
  font-size:11px;line-height:1.45;
  color:var(--text);
  background:linear-gradient(180deg,rgba(232,90,58,.14),rgba(232,90,58,.06));
  border:1px solid rgba(232,90,58,.35);
  border-radius:8px;
  animation:walkBannerIn .18s ease-out;
}
.conf-walk-banner strong{color:#ffd2c2;font-weight:500}
@keyframes walkBannerIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.conf-tier{font-size:9px;font-weight:600;letter-spacing:.1em;padding:1px 5px;border-radius:3px;flex-shrink:0}
.conf-tier-1{background:rgba(201,161,59,.18);color:var(--prio1-light);border:1px solid var(--prio1-deep)}
.conf-tier-2{background:rgba(139,149,163,.18);color:var(--prio2-light);border:1px solid var(--prio2-deep)}
.conf-tier-3{background:rgba(138,80,32,.22);color:var(--prio3-light);border:1px solid var(--prio3-deep)}
.conf-meta{font-size:10px;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.06em}
/* dual-handle range slider */
.dual-range{position:relative;height:34px;padding:0 8px}
.dual-track{position:absolute;left:8px;right:8px;top:14px;height:6px;background:rgba(0,0,0,.45);border:1px solid var(--border);border-radius:3px}
.dual-fill{position:absolute;top:14px;height:6px;border-radius:3px;box-shadow:0 0 6px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.2);pointer-events:none}
.dual-range input[type=range]{
  position:absolute;left:0;right:0;top:0;width:100%;height:34px;
  background:transparent;-webkit-appearance:none;appearance:none;
  pointer-events:none;margin:0;padding:0;
}
.dual-range input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:22px;height:22px;border-radius:50%;
  background:var(--gold);border:2px solid #1a1004;
  box-shadow:0 2px 6px rgba(0,0,0,.6);
  cursor:grab;pointer-events:auto;
}
.dual-range input[type=range]:active::-webkit-slider-thumb{cursor:grabbing}
.dual-range input[type=range]::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;
  background:var(--gold);border:2px solid #1a1004;
  box-shadow:0 2px 6px rgba(0,0,0,.6);
  cursor:grab;pointer-events:auto;
}
.dual-range input[type=range]::-webkit-slider-runnable-track{background:transparent;border:none}
.dual-from::-webkit-slider-thumb{background:var(--gold-soft)}
.dual-to::-webkit-slider-thumb{background:var(--gold)}

.conflict-actions{display:flex;gap:8px;padding:0 14px 14px}
.conflict-actions button{
  flex:1;padding:8px 12px;border-radius:8px;
  background:var(--panel-2);border:1px solid var(--border);
  color:var(--gold-soft);font-size:12px;font-weight:500;
  transition:all .15s;
}
.conflict-actions button:hover{background:var(--panel-3);border-color:var(--gold)}

@media (max-width:480px){
  .conflict-body{flex-direction:column}
  .conflict-stack{width:100%}
  .conf-control input[type=range]{width:80px}
}

/* NOW & NEXT */
.now-card{
  background:linear-gradient(135deg,rgba(212,175,55,.15),var(--panel));
  border:2px solid var(--gold);border-radius:var(--radius);padding:18px;margin-bottom:14px;
  position:relative;
}

/* ARTISTI VIEW */
.artists-search{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
}
.artists-search input{
  flex:1;padding:10px 14px;border-radius:999px;
  background:var(--panel);border:1px solid var(--border);
  color:var(--text);outline:none;font-size:14px;
}
.artists-search input:focus{border-color:var(--gold)}
.artists-count{font-size:11px;color:var(--muted);letter-spacing:.05em;white-space:nowrap}

.artists-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:10px;
}
.artist-card{
  display:flex;flex-direction:column;align-items:stretch;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  overflow:hidden;cursor:pointer;transition:all .15s;
  padding:0;text-align:left;
}
.artist-card:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 6px 18px rgba(212,175,55,.18)}
.artist-photo{
  width:100%;aspect-ratio:1/1;object-fit:cover;
  background:linear-gradient(135deg,var(--panel-2),var(--panel-3));
  display:block;
}
.artist-noimg{
  display:flex;align-items:center;justify-content:center;
  font-size:42px;color:var(--gold-soft);opacity:.6;
}
.artist-name{
  padding:8px 10px;font-size:13px;font-weight:600;color:var(--text);
  text-align:center;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:42px;
}
.artist-card{position:relative}
.artist-spotify{
  position:absolute;top:6px;right:6px;z-index:2;
  width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,13,36,.7);backdrop-filter:blur(6px);
  color:#a0a8b5;border:1px solid rgba(255,255,255,.1);
  transition:all .15s;text-decoration:none;
}
.artist-spotify:hover{background:#1db954;color:#fff;border-color:#1db954;transform:scale(1.1)}
.artist-spotify.official{background:rgba(29,185,84,.85);color:#fff;border-color:#1db954}
.artist-spotify.official:hover{background:#1db954}

@media (min-width:600px){.artists-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:900px){.artists-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
@media (min-width:1300px){.artists-grid{grid-template-columns:repeat(5,1fr)}}
@media (min-width:1600px){.artists-grid{grid-template-columns:repeat(6,1fr)}}

/* ARTIST DETAIL MODAL */
.art-modal{max-width:520px;padding:0;overflow:hidden}
.art-modal .modal-close{position:absolute;top:10px;right:10px;z-index:5;background:rgba(8,13,36,.75);width:36px;height:36px;border-radius:50%}
.art-hero{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,var(--panel-2),var(--panel-3))}
.art-hero img{width:100%;height:100%;object-fit:cover;display:block}
.art-hero-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:80px;color:var(--gold-soft);opacity:.5}
.art-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,13,36,0) 50%,rgba(8,13,36,.95) 100%)}
.art-hero-title{
  position:absolute;left:18px;bottom:14px;right:60px;z-index:2;
  font-family:var(--serif);font-size:30px;font-weight:600;color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.8);letter-spacing:.02em;line-height:1.1;
}
.art-modal .modal-body{padding:16px 18px 20px}
.art-socials{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.art-social{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:999px;
  background:rgba(212,175,55,.1);border:1px solid var(--border);
  color:var(--text);font-size:12px;font-weight:600;text-decoration:none;
  transition:all .15s;
}
.art-social:hover{background:rgba(212,175,55,.2);border-color:var(--gold);transform:translateY(-1px)}
.art-social-ico{font-size:14px;color:var(--gold-soft)}
.art-social-spotify{background:rgba(29,185,84,.15);border-color:rgba(29,185,84,.45)}
.art-social-spotify .art-social-ico{color:#1db954;font-size:16px}
.art-social-spotify:hover{background:rgba(29,185,84,.3);border-color:#1db954}
.art-social-fallback{opacity:.85}
.art-social-fallback .art-social-ico{opacity:.8}
.art-perfs-title{margin:0 0 10px;font-size:13px;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.14em;font-weight:600}
.art-perfs{display:flex;flex-direction:column;gap:8px}
.art-perf-row{
  display:flex;align-items:center;gap:12px;
  background:var(--panel-2);border:1px solid var(--border);border-radius:10px;
  padding:10px 12px;
}
.art-perf-row.prio-1{border-color:var(--prio1);background:rgba(201,161,59,.1)}
.art-perf-row.prio-2{border-color:var(--prio2);background:rgba(139,149,163,.1)}
.art-perf-row.prio-3{border-color:var(--prio3);background:rgba(138,80,32,.1)}
.art-perf-when{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.art-perf-day{font-size:10px;color:var(--gold-soft);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.art-perf-time{font-size:13px;color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}
.art-perf-stage{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;flex-shrink:0;max-width:130px;text-align:right}
.art-perf-fav{
  width:34px;height:34px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.04);color:var(--muted);
  font-size:16px;cursor:pointer;transition:all .15s;
  border:none;
}
.art-perf-row.prio-1 .art-perf-fav{color:var(--prio1-light);background:rgba(201,161,59,.22)}
.art-perf-row.prio-2 .art-perf-fav{color:var(--prio2-light);background:rgba(139,149,163,.22)}
.art-perf-row.prio-3 .art-perf-fav{color:var(--prio3-light);background:rgba(138,80,32,.22)}

@media (min-width:1024px){
  .art-modal{max-width:640px}
  .art-hero-title{font-size:38px}
  .art-perf-time{font-size:14px}
}

/* ONBOARDING tutorial */
.ob-modal{
  max-width:420px;text-align:center;padding:28px 22px;position:relative;
  background:linear-gradient(180deg, var(--panel-2), var(--panel));
  border:1px solid var(--gold);
}
.ob-modal .modal-close{position:absolute;top:10px;right:10px}
.ob-icon{font-size:48px;line-height:1;margin-bottom:14px;filter:drop-shadow(0 0 12px rgba(212,175,55,.35))}
.ob-title{font-family:var(--serif);font-size:24px;font-weight:600;color:var(--gold);margin-bottom:14px;letter-spacing:.04em}
.ob-body{font-size:14px;line-height:1.55;color:var(--text-dim);margin-bottom:22px;text-align:left}
.ob-body p{margin:0 0 10px}
.ob-body strong{color:var(--text)}
.ob-hint{font-size:12px;color:var(--muted);margin-top:14px}
.ob-medals{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:14px 0;padding:0}
.ob-medal{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;
  border:1.5px solid;
}
.ob-medal[data-prio="1"]{color:#e7b53f;border-color:#e7b53f;background:rgba(212,175,55,.15)}
.ob-medal[data-prio="2"]{color:#c9d1de;border-color:#c9d1de;background:rgba(200,210,220,.1)}
.ob-medal[data-prio="3"]{color:#d4925a;border-color:#d4925a;background:rgba(184,115,51,.15)}
.ob-dots{display:flex;justify-content:center;gap:7px;margin-bottom:18px}
.ob-dot{width:7px;height:7px;border-radius:50%;background:var(--border);transition:all .2s}
.ob-dot.active{background:var(--gold);width:22px;border-radius:4px}
.ob-actions{display:flex;justify-content:space-between;align-items:center;gap:14px}
.ob-actions .link{font-size:14px;padding:8px 14px}
.ob-actions .link.primary{
  background:linear-gradient(135deg, var(--gold-deep), var(--gold));
  color:#1a1100;font-weight:700;border-radius:999px;padding:10px 22px;letter-spacing:.04em;
  box-shadow:0 4px 16px rgba(212,175,55,.3);
}
.ob-actions .link.primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(212,175,55,.45)}

@media (min-width:1024px){
  .ob-modal{max-width:500px;padding:36px 30px}
  .ob-icon{font-size:64px}
  .ob-title{font-size:30px}
  .ob-body{font-size:16px}
}

/* HERO COUNTDOWN al festival */
.hero-countdown{
  background:
    radial-gradient(ellipse at top left, rgba(212,175,55,.2), transparent 60%),
    radial-gradient(ellipse at bottom right, rgba(122,31,138,.3), transparent 60%),
    linear-gradient(180deg, var(--panel-2), var(--panel));
  border:1px solid var(--gold);border-radius:var(--radius);
  padding:24px 20px;margin-bottom:18px;text-align:center;
  box-shadow:0 4px 24px rgba(212,175,55,.18);
}
.hc-label{
  font-family:var(--serif);font-size:13px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:18px;font-weight:500;
}
.hc-grid{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:16px}
.hc-unit{
  display:flex;flex-direction:column;align-items:center;
  min-width:70px;padding:10px 14px;
  background:rgba(8,13,36,.5);border:1px solid var(--border);border-radius:12px;
}
.hc-num{
  font-family:var(--serif);font-size:42px;font-weight:600;line-height:1;
  color:var(--gold);font-variant-numeric:tabular-nums;
  text-shadow:0 0 18px rgba(212,175,55,.4);
}
.hc-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.15em;margin-top:4px;font-weight:600}
.hc-foot{font-size:11px;color:var(--muted);letter-spacing:.06em}

@media (min-width:1024px){
  .hero-countdown{padding:36px 28px}
  .hc-label{font-size:16px;margin-bottom:24px}
  .hc-grid{gap:24px}
  .hc-unit{min-width:100px;padding:14px 22px}
  .hc-num{font-size:64px}
  .hc-lbl{font-size:12px}
  .hc-foot{font-size:13px}
}
.now-card.next{background:linear-gradient(135deg,rgba(90,150,232,.15),var(--panel));border-color:var(--violet-light)}
.now-card-label{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.now-card.next .now-card-label{color:var(--violet-light)}
.now-card-name{font-family:var(--serif);font-size:28px;font-weight:600;color:#fff;line-height:1.1;margin-bottom:6px}
.now-card-meta{font-size:13px;color:var(--text-dim);display:flex;flex-wrap:wrap;gap:14px}
.now-card-meta strong{color:var(--gold-soft);font-weight:500}
.now-walk{display:inline-flex;align-items:center;gap:5px;background:rgba(232,90,58,.15);color:var(--warn-soft);padding:3px 9px;border-radius:999px;font-size:11px;font-weight:500;margin-top:6px}
.now-walk.now-walk-warn{background:rgba(255,200,80,.16);color:#ffd27a;border:1px solid rgba(255,200,80,.4)}

/* MODAL */
.modal-backdrop{position:fixed;inset:0;background:rgba(5,3,16,.85);backdrop-filter:blur(8px);z-index:100;display:flex;align-items:flex-end;justify-content:center}
.modal{background:var(--panel);border-top:2px solid var(--gold);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:620px;max-height:88vh;overflow:auto;animation:slideUp .25s ease-out}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--panel);z-index:5}
.modal-title{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--gold)}
.modal-body{padding:16px 18px}
.modal-close{font-size:20px;color:var(--muted);background:none;width:32px;height:32px;border-radius:50%}
.modal-close:hover{color:var(--gold);background:rgba(212,175,55,.1)}

.conf-act-primary,.conf-act-secondary,.conf-act-cancel{
  padding:11px 16px;border-radius:10px;font-size:13px;font-weight:500;
  border:1px solid var(--border);transition:all .15s;flex:1;min-width:120px;
}
.conf-act-primary{background:linear-gradient(135deg,var(--prio1-deep),var(--prio1));color:#10204a;border-color:var(--prio1)}
.conf-act-primary:hover{box-shadow:0 0 14px rgba(245,200,66,.5)}
.conf-act-secondary{background:var(--panel-2);color:var(--text-dim)}
.conf-act-secondary:hover{border-color:var(--gold);color:var(--gold-soft)}
.conf-act-cancel{background:transparent;color:var(--muted)}
.conf-act-cancel:hover{color:var(--text);border-color:var(--text-dim)}

/* SETTINGS - walk speed */
.walk-card{
  background:linear-gradient(135deg,rgba(201,161,59,.1),var(--panel));
  border:1px solid var(--gold-deep);
  border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;
}
.walk-icons{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:22px;filter:grayscale(70%)}
.walk-icon{transition:all .2s;opacity:.45}
.walk-icon.active{opacity:1;filter:none;transform:scale(1.3)}
#walk-slider{width:100%;accent-color:var(--gold)}
.walk-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;font-size:13px;color:var(--text-dim);gap:10px}
.walk-meta strong{color:var(--gold-soft);font-weight:600;letter-spacing:.05em}
.walk-meta span{font-size:11px;color:var(--muted)}

/* SETTINGS - travel matrix read-only */
.matrix-grid{display:grid;gap:6px;margin-top:10px;max-height:50vh;overflow:auto;padding-right:4px}
.matrix-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:rgba(8,13,36,.5);border:1px solid var(--border-soft);border-radius:8px}
.matrix-row label{flex:1;font-size:12px;color:var(--text)}
.matrix-ro{padding:6px 10px}
.matrix-ro label{font-size:11px}
.matrix-val{font-size:13px;font-weight:500;color:var(--gold-soft);font-variant-numeric:tabular-nums;background:rgba(201,161,59,.1);padding:3px 10px;border-radius:6px;border:1px solid var(--gold-deep)}
.matrix-diff{font-size:10px;color:var(--muted);margin-left:4px;font-weight:500}
.matrix-default{display:flex;gap:10px;align-items:center;padding:10px 12px;background:rgba(212,175,55,.08);border:1px solid var(--gold-deep);border-radius:8px;margin-bottom:14px;font-size:12px}

/* RESET BOTTOM SHEET */
.reset-sheet{
  position:fixed;left:0;right:0;bottom:118px;z-index:55;
  padding:14px 16px 18px;
  background:linear-gradient(0deg,rgba(8,13,36,.98),rgba(8,13,36,.92));
  backdrop-filter:blur(16px);
  border-top:2px solid var(--warn);
  box-shadow:0 -8px 28px rgba(0,0,0,.5);
  animation:slideUp .2s ease-out;
}
.reset-sheet-title{font-size:11px;color:var(--warn);font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;text-align:center}
/* base for both Reset + Esporta pills */
.bottom-actions .link{
  appearance:none;-webkit-appearance:none;
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border-radius:999px;
  font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;
  background:rgba(26,47,106,.55);
  border:1px solid var(--border-soft);
  color:var(--gold-soft);
  transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;
  flex-shrink:0;
}
.bottom-actions .link::before{font-size:13px;line-height:1}
.bottom-actions #reset-bottom-btn::before{content:'↺'}
.bottom-actions #export-btn::before{content:'↗'}
.bottom-actions .link:hover{background:rgba(26,47,106,.85);border-color:var(--gold-deep)}
.bottom-actions .link:active{transform:scale(.96)}
.bottom-actions #export-btn{
  background:linear-gradient(135deg,var(--prio1-deep),var(--prio1));
  border-color:var(--gold);color:#1a1004;
  box-shadow:0 1px 8px rgba(212,175,55,.25);
}
.bottom-actions #export-btn:hover{box-shadow:0 2px 14px rgba(212,175,55,.45)}
.reset-link{color:#ff8a6a !important;border-color:rgba(232,90,58,.35) !important;background:rgba(232,90,58,.14) !important}
.reset-link:hover{background:rgba(232,90,58,.24) !important;border-color:rgba(232,90,58,.6) !important}
.reset-link.active{background:rgba(232,90,58,.34) !important;border-color:#ff8a6a !important}

/* RESET PER DAY */
.reset-day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.reset-day-btn{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:12px 8px;border-radius:10px;
  background:linear-gradient(135deg,rgba(232,90,58,.1),var(--panel));
  border:1px solid var(--warn);color:var(--text);
  transition:all .15s;font-size:12px;font-weight:600;
}
.reset-day-btn:hover:not(:disabled){background:linear-gradient(135deg,rgba(232,90,58,.25),var(--panel));box-shadow:0 0 12px rgba(232,90,58,.3)}
.reset-day-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border-soft)}
.reset-day-btn .rd-day{color:var(--text);font-weight:500}
.reset-day-btn .rd-count{font-size:10px;color:var(--warn-soft);text-transform:uppercase;letter-spacing:.1em;font-weight:500}
.reset-day-btn:disabled .rd-count{color:var(--muted)}

/* SEARCH RESULTS */
.search-result-row{padding:11px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer;display:flex;align-items:center;gap:10px}
.search-result-row:hover{background:rgba(212,175,55,.08)}
.search-result-row .sr-name{flex:1;font-weight:600;color:var(--text)}
.search-result-row .sr-meta{font-size:11px;color:var(--muted)}

/* BOTTOM ACTIONS (above navbar) */
.bottom-actions{
  position:fixed;left:0;right:0;z-index:49;
  bottom:calc(64px + env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:8px;
  padding:8px calc(14px + env(safe-area-inset-right)) 8px calc(14px + env(safe-area-inset-left));
  background:linear-gradient(0deg,rgba(8,13,36,.96),rgba(8,13,36,.78));
  backdrop-filter:blur(14px);
  border-top:1px solid var(--border-soft);
}
.fav-stats{flex:1;display:flex;gap:6px;align-items:center;font-size:13px;font-variant-numeric:tabular-nums;min-width:0;overflow-x:auto;scrollbar-width:none}
.fav-stats::-webkit-scrollbar{display:none}

/* BOTTOM NAVBAR */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;z-index:50;
  display:grid;grid-template-columns:repeat(6,1fr);
  background:linear-gradient(0deg,rgba(8,13,36,.99),rgba(8,13,36,.95));
  backdrop-filter:blur(20px);
  border-top:2px solid var(--gold-deep);
  padding:6px 2px 8px;
  padding-bottom:calc(8px + env(safe-area-inset-bottom));
}
.nav-btn .nav-ico{font-size:20px}
.nav-btn .nav-lbl{font-size:8.5px;letter-spacing:.02em}
.nav-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:6px 2px;
  background:transparent;border:none;
  color:var(--muted);transition:all .15s;
  border-radius:10px;
  position:relative;
}
.nav-ico{font-size:22px;line-height:1;filter:grayscale(50%) brightness(.85);transition:all .15s;display:block}
.nav-lbl{font-size:9px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;line-height:1.1;color:var(--muted);transition:color .15s}
.nav-btn:hover{background:rgba(212,175,55,.06)}
.nav-btn:hover .nav-ico{filter:grayscale(0) brightness(1)}
.nav-btn.active{background:rgba(212,175,55,.12)}
.nav-btn.active .nav-ico{filter:grayscale(0) brightness(1) drop-shadow(0 0 6px rgba(212,175,55,.6));transform:scale(1.18)}
.nav-btn.active .nav-lbl{color:var(--gold-soft)}
.nav-btn.active::before{
  content:'';position:absolute;top:0;left:25%;right:25%;height:2px;
  background:var(--gold);border-radius:0 0 4px 4px;
  box-shadow:0 0 8px var(--gold);
}
.fav-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:rgba(26,47,106,.5);border:1px solid var(--border-soft);border-radius:999px;font-size:12px}
.fav-stats .legend{font-size:16px;line-height:1}
.legend[data-prio="1"]{color:var(--prio1)}
.legend[data-prio="2"]{color:var(--prio2)}
.legend[data-prio="3"]{color:var(--prio3)}
.link{color:var(--gold);font-size:13px;font-weight:600;text-decoration:underline;padding:6px 10px}
.link:hover{color:var(--gold-soft)}

/* TOAST */
#toast{position:fixed;bottom:140px;left:50%;transform:translateX(-50%);z-index:200;display:none}
#toast.show{display:block;animation:fadeIn .2s}
@keyframes fadeIn{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.toast-content{background:var(--panel-3);color:var(--text);padding:10px 18px;border-radius:999px;border:1px solid var(--gold);font-size:13px;font-weight:600;box-shadow:var(--shadow)}
.toast-content.toast-confirm{
  display:flex;gap:14px;align-items:center;padding:12px 18px;border-radius:14px;
  border-color:var(--warn);background:linear-gradient(180deg,var(--panel-3),var(--panel-2));
}
.toast-confirm .toast-msg{flex:1;font-weight:500}
.toast-confirm .toast-cancel{color:var(--muted);padding:6px 10px}
.toast-confirm .toast-cancel:hover{color:var(--text)}
.toast-confirm .toast-ok{
  color:#fff;background:linear-gradient(135deg,var(--warn),#a8331e);
  padding:8px 14px;border-radius:999px;font-weight:700;letter-spacing:.04em;
}
.toast-confirm .toast-ok:hover{filter:brightness(1.1)}

@media (min-width:760px){
  .gantt-scroll{max-height:calc(100vh - 340px)}
  .now-card-name{font-size:34px}
}

/* ============ DESKTOP (>=1024px) ============
   Caratteri grandi, scroll orizzontale del Gantt mantenuto.
   Mobile (<1024px) resta intatto. */
@media (min-width:1024px){
  /* container piu' larghi */
  #content{max-width:1800px;padding:24px 40px 28px}
  .topbar{padding:18px 40px}
  .weekend-bar,.day-tabs,.view-tabs{padding:14px 40px}
  .search-bar{padding:16px 40px}

  /* topbar + brand */
  .brand-mark{font-size:30px;letter-spacing:.3em}
  .brand-sub{font-size:13px}
  .icon-btn{width:48px;height:48px;font-size:22px}

  /* weekend + day tabs */
  .wk-btn{font-size:17px;padding:16px 22px;min-width:240px}
  .day-tab{font-size:17px;padding:18px 14px;min-width:140px}
  .day-tab .d-name{font-size:13px}

  /* titoli sezioni */
  .section-title{font-size:32px}
  .subtitle{font-size:15px}

  /* GANTT: ingrandisci tutto (colonne piu' larghe le imposta app.js) */
  .gantt-toolbar{padding:16px 22px}
  .gantt-toolbar .legend-inline{font-size:14px}
  .gantt-toolbar button{font-size:14px;padding:8px 14px}
  .gantt-stage-head{font-size:14px;padding:14px 10px;letter-spacing:.1em}
  .gantt-time-head{font-size:13px;padding:14px 10px}
  .gantt-time-tick{font-size:13px;padding:4px 12px 0 8px}
  .gantt-block{padding:10px 12px;border-radius:8px}
  .gantt-block .gb-name{font-size:15px;line-height:1.25}
  .gantt-block .gb-time{font-size:12px;margin-top:4px}

  /* perf list (Stage detail / Programma) */
  .perf-time{font-size:17px;min-width:96px}
  .perf-time .end{font-size:13px}
  .perf-name{font-size:18px}
  .perf-stage{font-size:12px}
  .perf-fav{width:48px;height:48px;font-size:22px}

  /* bottom bar e nav pinned al centro */
  .bottom-nav,.bottom-actions{max-width:1800px;margin-left:auto;margin-right:auto}
  .bottom-nav .nav-lbl{font-size:12px}
  .bottom-nav .nav-ico{font-size:22px}
  .fav-pill{font-size:14px}

  /* GANTT: altezza vincolata cosi' la scrollbar orizzontale resta nel viewport
     senza dover scrollare la pagina (override su mobile 340px) */
  .gantt-scroll{max-height:calc(100vh - 420px)}

  /* scrollbar piu' grossa e sempre visibile (no autohide su trackpad) */
  .gantt-scroll{scrollbar-width:auto;scrollbar-color:var(--gold-soft) var(--panel)}
  .gantt-scroll::-webkit-scrollbar{height:14px;width:10px;background:var(--panel)}
  .gantt-scroll::-webkit-scrollbar-thumb{background:var(--gold-soft);border-radius:6px;border:2px solid var(--panel)}
  .gantt-scroll::-webkit-scrollbar-thumb:hover{background:var(--gold)}
  .gantt-scroll::-webkit-scrollbar-corner{background:var(--panel)}
}

/* schermi molto grandi (4K, ultrawide) */
@media (min-width:1600px){
  #content{max-width:2000px}
  .brand-mark{font-size:34px}
  .gantt-block .gb-name{font-size:16px}
  .gantt-stage-head{font-size:15px}
}
