/* ══════════════════════════════════════════
   Amplem Factory 2026 · Teams App
   Dark teal theme — mobile-first
   ══════════════════════════════════════════ */

:root {
  --teal:#00d4c8; --teal-dim:#00a89e; --teal-bg:#0d2826;
  --bg:#0d0f10; --surface:#161a1c; --surface2:#1e2426;
  --border:#2a3035; --text:#e8edef; --muted:#6b7880;
  --gold:#f5c842; --gold-bg:#2a2410;
  --purple:#a855f7; --purple-bg:#1e1030;
  --green:#22c55e; --green-bg:#0d2418;
  --warn:#ff6b35;
  --hf:#3d8ef0; --hh:#f59e0b; --ff:#ec4899;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Barlow Condensed',sans-serif;overflow-x:hidden;}

/* ══ WELCOME ══ */
#welcome{
  position:fixed;inset:0;z-index:1000;
  background:var(--bg);
  display:flex;flex-direction:column;align-items:center;
  padding:24px 20px 40px;
  overflow-y:auto;
  transition:opacity .35s,transform .35s;
}
#welcome.hidden{opacity:0;transform:translateY(-16px);pointer-events:none;}

.logo-wrap{text-align:center;margin-bottom:28px;padding-top:12px;}
.logo-sub{font-size:11px;font-weight:700;letter-spacing:5px;color:var(--teal);text-transform:uppercase;}
.logo-title{font-size:52px;font-weight:900;letter-spacing:1px;line-height:1;margin:4px 0 2px;}
.logo-year{font-size:18px;color:var(--muted);font-weight:600;}

.search-wrap{width:100%;max-width:420px;margin-bottom:14px;position:relative;}
.search-input{
  width:100%;padding:12px 16px 12px 42px;
  background:var(--surface2);border:1px solid var(--border);border-radius:10px;
  font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:600;
  color:var(--text);outline:none;
}
.search-input::placeholder{color:var(--muted);}
.search-input:focus{border-color:var(--teal);}
.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);}

.section-label{
  width:100%;max-width:420px;
  font-size:11px;font-weight:700;letter-spacing:3px;color:var(--muted);
  text-transform:uppercase;margin-bottom:8px;padding-left:2px;
}

.team-list{width:100%;max-width:420px;display:flex;flex-direction:column;gap:6px;}
.team-btn{
  width:100%;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;padding:13px 14px;
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;transition:all .15s;text-align:left;
}
.team-btn:active{transform:scale(.98);}
.team-btn.filtered-out{display:none;}
.team-btn:hover,.team-btn:active{border-color:var(--teal);background:var(--teal-bg);}
.team-name{font-size:18px;font-weight:800;line-height:1.15;color:var(--text);}
.team-gym{font-size:12px;color:var(--muted);font-weight:600;margin-top:1px;}
.team-cat{
  font-size:10px;font-weight:700;letter-spacing:1px;
  padding:3px 7px;border-radius:4px;flex-shrink:0;margin-left:10px;
}
.cat-hf{background:rgba(61,142,240,.15);color:var(--hf);}
.cat-hh{background:rgba(245,158,11,.15);color:var(--hh);}
.cat-ff{background:rgba(236,72,153,.15);color:var(--ff);}

/* ══ HEADER ══ */
header{
  position:sticky;top:0;z-index:100;
  background:var(--bg);border-bottom:1px solid var(--border);
  padding:10px 16px;
  display:flex;align-items:center;justify-content:space-between;
  gap:10px;
}
.hdr-left{min-width:0;flex:1;}
.hdr-left h1{font-size:20px;font-weight:900;letter-spacing:1px;color:var(--teal);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hdr-left span{font-size:10px;font-weight:600;letter-spacing:3px;color:var(--muted);}
.hdr-right{display:flex;gap:8px;flex-shrink:0;}
.hdr-btn{
  background:var(--surface2);border:1px solid var(--border);border-radius:6px;
  padding:6px 10px;font-family:'Barlow Condensed',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:1px;color:var(--muted);cursor:pointer;
}
.hdr-btn.teal{background:var(--teal-bg);border-color:var(--teal-dim);color:var(--teal);}

/* ══ DAY TABS ══ */
.day-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);}
.day-tab{
  padding:11px;text-align:center;font-size:15px;font-weight:800;
  letter-spacing:2px;text-transform:uppercase;cursor:pointer;border:none;
  background:transparent;color:var(--muted);transition:all .2s;
  position:relative;font-family:'Barlow Condensed',sans-serif;
}
.day-tab.active{color:var(--teal);}
.day-tab.active::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--teal);}

/* ══ CONTENT ══ */
.content{padding:0 0 30px;}
.day-panel{display:none;}
.day-panel.active{display:block;}

/* ══ TIMELINE ══ */
.timeline{padding:16px 16px 0;}

.tl-day-label{
  font-size:12px;font-weight:700;letter-spacing:4px;color:var(--muted);
  text-transform:uppercase;margin-bottom:14px;padding-left:44px;
}

.tl-item{
  display:flex;gap:12px;margin-bottom:6px;position:relative;
}
.tl-item:not(:last-child)::before{
  content:'';position:absolute;left:19px;top:42px;bottom:-6px;
  width:2px;background:var(--border);
}

.tl-icon{
  width:38px;height:38px;flex-shrink:0;
  border-radius:50%;border:2px solid var(--border);
  background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:900;position:relative;z-index:1;
}
.tl-icon.wod{border-color:var(--teal);background:var(--teal-bg);color:var(--teal);}
.tl-icon.floater{border-color:var(--gold);background:var(--gold-bg);color:var(--gold);}
.tl-icon.gap{border-color:var(--border);background:var(--surface);}

.tl-card{
  flex:1;background:var(--surface);border:1px solid var(--border);
  border-radius:10px;overflow:hidden;margin-bottom:8px;
}
.tl-card.wod-card{border-color:var(--border);}
.tl-card.floater-card{border-color:var(--gold);background:var(--gold-bg);}
.tl-card.gap-card{background:transparent;border:1px dashed var(--border);}

.tc-header{
  padding:11px 13px 9px;
  display:flex;align-items:flex-start;justify-content:space-between;
  cursor:pointer;
}
.tc-title-wrap{flex:1;}
.tc-label{font-size:10px;font-weight:700;letter-spacing:3px;color:var(--teal);text-transform:uppercase;}
.tc-label.gold{color:var(--gold);}
.tc-name{font-size:20px;font-weight:900;line-height:1.1;margin-top:1px;}
.tc-desc{font-size:12px;color:var(--muted);font-weight:600;margin-top:2px;}

.tc-times{text-align:right;flex-shrink:0;margin-left:8px;}
.tc-warmup{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:1px;}
.tc-warmup span{color:var(--text);}
.tc-window{
  font-family:'JetBrains Mono',monospace;
  font-size:14px;font-weight:600;color:var(--teal);
  margin-top:3px;
}
.tc-window.gold{color:var(--gold);}

.cat-badge{
  display:inline-block;margin-top:5px;
  font-size:10px;font-weight:700;letter-spacing:1px;
  padding:2px 8px;border-radius:4px;
}

/* WOD detail toggle */
.tc-chevron{color:var(--muted);transition:transform .2s;flex-shrink:0;margin-top:2px;}
.tl-card.open .tc-chevron{transform:rotate(180deg);}

.tc-body{display:none;border-top:1px solid var(--border);}
.tl-card.open .tc-body{display:block;}

.tc-body-inner{padding:12px 13px;}

.wod-desc{
  font-size:14px;line-height:1.7;color:var(--text);
  margin-bottom:10px;
}
.wod-desc strong{color:var(--teal);}
.wod-desc .step{
  display:flex;gap:8px;margin-bottom:4px;
}
.wod-desc .num{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;font-weight:600;color:var(--teal);
  min-width:20px;flex-shrink:0;padding-top:1px;
}

.rx-inter{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
  margin-top:8px;
}
.rx-inter.three{grid-template-columns:1fr 1fr 1fr;}
.rx-box{
  background:var(--surface2);border-radius:6px;
  padding:8px 10px;
}
.rx-label{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);margin-bottom:3px;}
.rx-val{font-size:13px;font-weight:800;line-height:1.4;}

.palier{
  margin-top:8px;padding:7px 10px;
  background:rgba(0,212,200,.07);border-radius:6px;
  border-left:3px solid var(--teal);
  font-size:13px;font-weight:700;color:var(--teal);
}

/* Gap card */
.gap-inner{
  padding:10px 13px;
  display:flex;align-items:center;gap:10px;
}
.gap-dur{
  font-family:'JetBrains Mono',monospace;
  font-size:16px;font-weight:600;color:var(--muted);
}
.gap-label{font-size:13px;color:var(--muted);font-weight:600;}

/* ══ Floater section (Saturday panel) ══ */
.floater-section{
  margin:0 16px 16px;
  background:var(--gold-bg);border:1px solid var(--gold);
  border-radius:12px;overflow:hidden;
}
.floater-header{
  padding:13px 14px;display:flex;align-items:center;gap:10px;
}
.floater-star{font-size:22px;}
.floater-head-text .fl-label{font-size:11px;font-weight:700;letter-spacing:3px;color:var(--gold);text-transform:uppercase;}
.floater-head-text .fl-title{font-size:20px;font-weight:900;}
.floater-head-text .fl-sub{font-size:12px;color:var(--muted);font-weight:600;}

.floater-body{
  border-top:1px solid rgba(245,200,66,.2);
  padding:14px;
}

.floater-choose-btn{
  width:100%;padding:12px;
  background:var(--gold);border:none;border-radius:8px;
  font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:800;
  letter-spacing:1px;color:#000;cursor:pointer;transition:opacity .15s;
}
.floater-choose-btn:active{opacity:.8;}

.floater-current{
  margin-top:12px;padding:10px 12px;
  background:var(--surface);border:1px solid var(--border);border-radius:8px;
  display:flex;align-items:center;gap:10px;
}
.floater-current-icon{font-size:18px;}
.floater-current-text{flex:1;}
.floater-current-text .sv-label{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);}
.floater-current-text .sv-val{font-size:16px;font-weight:800;color:var(--gold);}
.floater-cancel-btn{
  background:transparent;border:1px solid var(--border);border-radius:6px;
  padding:4px 10px;font-family:'Barlow Condensed',sans-serif;
  font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;
}
.floater-cancel-btn:active{opacity:.7;}

/* ══ TOAST ══ */
.toast{
  position:fixed;top:66px;left:50%;transform:translateX(-50%) translateY(-14px);
  background:var(--teal);color:#000;padding:7px 18px;border-radius:20px;
  font-size:14px;font-weight:800;letter-spacing:1px;
  opacity:0;transition:all .25s;pointer-events:none;z-index:300;white-space:nowrap;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast.gold{background:var(--gold);}
.toast.warn{background:var(--warn);color:#fff;}

/* ══ FLOATER MODAL ══ */
.floater-modal{
  position:fixed;inset:0;z-index:2000;
  background:rgba(0,0,0,.7);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  opacity:0;pointer-events:none;
  transition:opacity .25s;
}
.floater-modal.open{
  opacity:1;pointer-events:auto;
}

.floater-modal-content{
  width:100%;max-width:400px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  max-height:85vh;
  display:flex;flex-direction:column;
}

.fm-header{
  padding:16px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);
}
.fm-header h2{
  font-size:20px;font-weight:900;color:var(--gold);
  letter-spacing:1px;
}
.fm-close{
  background:var(--surface2);border:1px solid var(--border);border-radius:8px;
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--muted);font-size:18px;
  font-family:'Barlow Condensed',sans-serif;font-weight:700;
  transition:all .15s;
}
.fm-close:hover{border-color:var(--text);color:var(--text);}

.fm-body{
  padding:16px;
  overflow-y:auto;flex:1;
}

.fm-subtitle{
  font-size:12px;font-weight:700;letter-spacing:2px;color:var(--muted);
  text-transform:uppercase;margin-bottom:12px;
}

.fm-slots{
  display:flex;flex-direction:column;gap:8px;
}

.floater-slot-btn{
  width:100%;padding:14px 16px;
  background:var(--surface2);
  border:2px solid var(--border);
  border-radius:10px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:17px;font-weight:800;
  color:var(--text);
  cursor:pointer;
  transition:all .15s;
  display:flex;align-items:center;justify-content:space-between;
}
.floater-slot-btn:active{transform:scale(.98);}
.floater-slot-btn:hover{border-color:var(--teal);}

.floater-slot-btn .slot-time{
  font-family:'JetBrains Mono',monospace;
  font-size:18px;font-weight:600;
}
.floater-slot-btn .slot-places{
  font-size:13px;font-weight:700;color:var(--muted);
}

.floater-slot-btn.available{border-color:rgba(0,212,200,.4);}
.floater-slot-btn.available:hover{border-color:var(--teal);background:var(--teal-bg);}

.floater-slot-btn.full{
  border-color:var(--border);
  background:rgba(30,36,38,.5);
  color:var(--muted);
  cursor:not-allowed;
  opacity:.5;
}
.floater-slot-btn.full:hover{border-color:var(--border);}
.floater-slot-btn.full:active{transform:none;}

.floater-slot-btn.selected{
  border-color:var(--green);
  background:var(--green-bg);
  color:var(--green);
}
.floater-slot-btn.selected .slot-places{color:var(--green);}

.fm-current-signup{
  margin-bottom:16px;
  padding:12px;
  background:var(--gold-bg);
  border:1px solid var(--gold);
  border-radius:10px;
  display:flex;align-items:center;gap:10px;
}
.fm-current-signup .signup-icon{font-size:20px;}
.fm-current-signup .signup-info{flex:1;}
.fm-current-signup .signup-label{
  font-size:10px;font-weight:700;letter-spacing:2px;color:var(--gold);
}
.fm-current-signup .signup-val{
  font-size:17px;font-weight:800;color:var(--text);
}
.fm-cancel-btn{
  padding:6px 12px;
  background:transparent;border:1px solid var(--border);border-radius:6px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;
}
.fm-cancel-btn:hover{border-color:var(--text);color:var(--text);}

.fm-loading{
  text-align:center;padding:30px;
  color:var(--muted);font-size:15px;font-weight:600;
}

.fm-error{
  text-align:center;padding:20px;
  color:var(--warn);font-size:14px;font-weight:700;
}

/* ══ Floater inline card in timeline ══ */
.floater-header-inline{cursor:default;}
.floater-inline-actions{
  border-top:1px solid rgba(245,200,66,.2);
  padding:10px 14px;
  display:flex;gap:8px;
}
.floater-modify-btn{
  flex:1;padding:9px 14px;
  background:var(--gold);border:none;border-radius:7px;
  font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:800;
  letter-spacing:1px;color:#000;cursor:pointer;transition:opacity .15s;
}
.floater-modify-btn:active{opacity:.8;}

/* ══ Countdown banner ══ */
#countdown-banner{
  margin:0 16px 4px;
  padding:10px 14px;
  background:var(--surface);
  border:1px solid var(--teal-dim);
  border-radius:10px;
  animation:fadeUp .25s ease;
}
.countdown-inner{
  display:flex;align-items:center;gap:10px;
}
.countdown-icon{font-size:18px;flex-shrink:0;}
.countdown-text{
  flex:1;font-size:14px;font-weight:600;color:var(--muted);
}
.countdown-text strong{color:var(--text);font-weight:800;}
.countdown-time{
  font-family:'JetBrains Mono',monospace;
  font-size:16px;font-weight:700;color:var(--teal);
  flex-shrink:0;
}

@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.tl-item{animation:fadeUp .2s ease forwards;}
