:root{--blue:#0b6bcb;--blue2:#eaf4ff;--ink:#14213d;--muted:#6b7a90;--bg:#f4f7fb;--card:#fff;--line:#e5ebf3;--gold:#f5b700}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,"Noto Sans Thai",sans-serif;background:var(--bg);color:var(--ink);padding-bottom:84px}.appbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.appbar h1{font-size:20px;margin:2px 0}.appbar small{color:var(--muted)}.iconBtn{border:0;background:var(--blue2);color:var(--blue);font-weight:700;padding:9px 12px;border-radius:12px}main{max-width:920px;margin:auto}.view{display:none;padding:14px}.view.active{display:block}.hero{background:linear-gradient(135deg,#0868c8,#35a5f4);color:#fff;border-radius:24px;padding:24px 20px;box-shadow:0 15px 35px #0b6bcb2c}.hero h2{font-size:clamp(26px,7vw,42px);line-height:1.12;margin:8px 0}.hero p{margin-bottom:0;color:#eaf5ff}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.4px}.searchBox{display:flex;gap:10px;align-items:center;background:#fff;padding:14px 16px;border-radius:16px;margin:-1px 10px 16px;box-shadow:0 10px 30px #17345b1a}.searchBox input,.stickyTools input,.stickyTools select,.rankTools select{border:0;outline:0;width:100%;font:inherit;background:transparent}.quickGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick{border:0;background:#fff;border-radius:18px;padding:16px 10px;box-shadow:0 6px 20px #17345b10}.quick b{display:block;font-size:24px;color:var(--blue)}.quick span{color:var(--muted)}.sectionHead{display:flex;justify-content:space-between;align-items:center;margin:24px 2px 10px}.sectionHead h3{margin:0}.sectionHead button{border:0;background:none;color:var(--blue);font-weight:700}.list>div,.eventCard,.athleteCard,.rankingRow{background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 5px 16px #17345b0b}.list{display:grid;gap:10px}.list>div{padding:14px}.meta{color:var(--muted);font-size:14px}.pageTitle{padding:8px 2px 4px}.pageTitle h2{margin:0}.pageTitle p{color:var(--muted);margin:5px 0 12px}.stickyTools{position:sticky;top:70px;z-index:10;display:grid;grid-template-columns:1fr 160px;gap:8px;background:var(--bg);padding:7px 0 10px}.stickyTools.two{grid-template-columns:1fr 180px}.stickyTools input,.stickyTools select,.rankTools select{background:#fff;border:1px solid var(--line);padding:12px;border-radius:14px}.eventList,.athleteList,.rankingList{display:grid;gap:10px}.eventCard{overflow:hidden}.eventHeader{padding:15px;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.eventNo{font-weight:800;color:var(--blue)}.badge{white-space:nowrap;background:var(--blue2);color:var(--blue);padding:6px 9px;border-radius:999px;font-size:12px;height:max-content}.heatWrap{display:none;border-top:1px solid var(--line);padding:10px;background:#fbfdff}.eventCard.open .heatWrap{display:block}.heatTitle{font-weight:800;margin:8px 3px}.laneRow{display:grid;grid-template-columns:42px 1fr 62px;gap:8px;align-items:center;padding:10px;border-radius:12px}.laneRow:nth-child(even){background:#f5f8fc}.lane{font-weight:800;color:var(--blue)}.seed{text-align:right;font-weight:700}.athleteCard{padding:14px;display:grid;grid-template-columns:46px 1fr auto;gap:12px;align-items:center}.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--blue2);color:var(--blue);font-weight:900}.athleteCard h3{margin:0;font-size:17px}.star{border:0;background:none;color:var(--gold);font-size:26px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);background:#e8edf5;border-radius:14px;padding:4px;margin:8px 0 12px}.segmented button{border:0;background:transparent;padding:10px;border-radius:11px;font-weight:700;color:var(--muted)}.segmented button.active{background:#fff;color:var(--blue);box-shadow:0 3px 10px #17345b18}.rankTools{margin-bottom:12px}.rankingRow{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;padding:13px}.rankingRow .pos{font-size:19px;font-weight:900;color:var(--blue)}.rankingRow .time{font-weight:900}.rankingRow.top3{background:linear-gradient(135deg,#fff9dc,#fff)}.bottomNav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.98);border-top:1px solid var(--line);padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));box-shadow:0 -8px 30px #17345b10}.bottomNav button{border:0;background:none;color:var(--muted);font-size:11px;padding:4px}.bottomNav span{display:block;font-size:22px;line-height:22px}.bottomNav button.active{color:var(--blue);font-weight:800}dialog{border:0;border-radius:24px 24px 0 0;width:100%;max-width:720px;margin:auto auto 0;padding:0;max-height:88vh}dialog::backdrop{background:#071a2b99}#sheetBody{padding:20px;overflow:auto;max-height:88vh}.close{float:right;border:0;background:#eef3f8;border-radius:50%;width:36px;height:36px;font-size:22px}.profileEvent{padding:12px 0;border-bottom:1px solid var(--line)}.empty{text-align:center;color:var(--muted);padding:60px 20px}@media(min-width:760px){body{padding-bottom:20px}.bottomNav{position:sticky;top:58px;bottom:auto;max-width:920px;margin:auto;border:1px solid var(--line);border-radius:0 0 18px 18px}.bottomNav button{font-size:13px}.view{padding:20px}.stickyTools{top:120px}.athleteList{grid-template-columns:1fr 1fr}}
.headerActions{display:flex;gap:8px}.analyticsToolbar{display:flex;gap:8px;margin-bottom:12px}.analyticsToolbar select,.analyticsToolbar button{background:#fff;border:1px solid var(--line);padding:11px 14px;border-radius:12px;font:inherit}.analyticsToolbar button{background:var(--blue);color:#fff;font-weight:800}.notice{background:#fff7d8;border:1px solid #f0d77d;border-radius:14px;padding:12px;margin-bottom:12px;color:#745a00}.analyticsCards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}.metricCard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px}.metricCard b{display:block;font-size:28px;color:var(--blue)}.metricCard span{font-size:13px;color:var(--muted)}.analyticsGrid{display:grid;gap:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.panel h3{margin:0 0 8px}.statRow{display:grid;grid-template-columns:1fr auto;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.statRow:last-child{border-bottom:0}.statRow small{color:var(--muted)}@media(min-width:760px){.analyticsCards{grid-template-columns:repeat(4,1fr)}.analyticsGrid{grid-template-columns:1fr 1fr}}

.teamFollowBar{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:11px 13px;margin:0 0 12px;color:var(--muted)}.teamFollowBar b{display:block;color:var(--ink)}.teamFollowBar small{display:block;margin-top:2px}.teamStar{border:1px solid #f0d477;background:#fffaf0;color:#9a7200;border-radius:999px;padding:8px 12px;font-weight:800;white-space:nowrap}.teamStar.active{background:#fff1ad;color:#795800}.teamStar.compact{font-size:22px;padding:3px 9px;line-height:1.2}.rankActions{display:flex;align-items:center;gap:8px}.favoriteTeamBlock{margin-bottom:18px}.favoriteTeamHead{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#eaf4ff;border:1px solid #cfe4fb;border-radius:18px;padding:13px;margin-bottom:9px}.favoriteTeamHead h3{margin:0}.favoriteTeamHead span{color:var(--muted);font-size:13px}.compactEmpty{padding:28px 16px}
.liveToolbar{display:flex;gap:8px;overflow:auto;margin:12px 0}.liveToolbar select,.liveToolbar button{min-height:42px}.ghostBtn{background:#fff!important;color:#334155!important;border:1px solid #cbd5e1!important}.liveNow{margin:12px 0}.liveCard{background:linear-gradient(135deg,#082f49,#0369a1);color:#fff;border-radius:22px;padding:18px;box-shadow:0 14px 30px #0c4a6e33}.liveCard .status{display:inline-flex;padding:5px 10px;border-radius:999px;background:#ef4444;font-weight:800;font-size:12px}.liveCard h3{font-size:22px;margin:10px 0 4px}.liveCard .next{margin-top:14px;padding-top:12px;border-top:1px solid #ffffff44}.timelineList{display:grid;gap:10px}.timelineItem{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:12px}.timelineItem.passed{opacity:.48}.timelineItem.current{border:2px solid #0284c7;background:#f0f9ff}.timelineTime{font-weight:900;color:#0369a1}.timelineItem button{border:0;border-radius:10px;padding:8px 10px;background:#e2e8f0}.timelineItem.passed button{background:#dcfce7;color:#166534}.muted{font-size:12px;color:#64748b}.resultForm{display:grid;gap:10px;margin-top:14px}.resultForm label{display:grid;gap:5px;font-size:13px;color:#475569}.resultForm input,.resultForm select,.resultForm textarea{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:12px;font:inherit}.resultForm .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.saveResultBtn{padding:13px;border:0;border-radius:12px;background:#0b6bcb;color:#fff;font-weight:800}.savedBadge{display:inline-flex;background:#dcfce7;color:#166534;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800}.dataActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.dataActions button,.importBtn{display:flex;align-items:center;justify-content:center;min-height:48px;border:0;border-radius:14px;background:#0b6bcb;color:white;font-weight:800;text-align:center}.dangerBtn{background:#b91c1c!important}.savedResultCard{background:#fff;border:1px solid #e2e8f0;border-radius:15px;padding:13px;margin-bottom:9px}
@media(max-width:520px){.dataActions{grid-template-columns:1fr}.timelineItem{grid-template-columns:58px 1fr auto}.resultForm .row2{grid-template-columns:1fr}}


/* v3.1 — same favorite highlighting behavior as v2.5 */
.favoriteHighlight{background:linear-gradient(135deg,#fff4a8,#fffbea)!important;border-color:#e7c84f!important;box-shadow:0 5px 18px rgba(183,140,0,.16)!important}
.laneRow.favoriteHighlight{border-left:5px solid #e3b600;padding-left:7px}
.timelineItem.hasFavorite{border-color:#e7c84f;background:linear-gradient(135deg,#fff8c9,#fff)}
.timelineItem.hasFavorite .timelineTime{background:#ffe97e;color:#705600;border-radius:10px;padding:6px;text-align:center}
.favoriteEventText b{color:#755900}
.profileEvent.favoriteHighlight{padding:12px;border-radius:12px;margin:6px 0}

.meetSelect{max-width:180px;border:1px solid rgba(255,255,255,.35);background:#fff;color:#0f172a;border-radius:10px;padding:8px;font-size:13px}.meetManager{margin-bottom:16px}.meetInfo{padding:12px 0}.headerActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:640px){.appbar{align-items:flex-start}.headerActions{justify-content:flex-end}.meetSelect{width:150px;max-width:42vw}}

/* v3.2 PDF import and review */
.importGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.importGrid label{display:block}.importGrid input,.importGrid select{width:100%;margin-top:5px}.importProgress{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.progressTrack{height:10px;border-radius:999px;background:#dce7f3;overflow:hidden;margin-top:8px}.progressBar{height:100%;width:0;background:var(--primary);transition:width .2s}.reviewStats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.reviewStat{padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:center}.reviewStat b{display:block;font-size:1.2rem}.reviewTableWrap{max-height:44vh;overflow:auto;border:1px solid var(--line);border-radius:14px}.reviewTable{width:100%;border-collapse:collapse;font-size:.85rem}.reviewTable th,.reviewTable td{padding:8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.reviewTable th{position:sticky;top:0;background:#eef6ff;z-index:1}.warnRow{background:#fff7d6}.parseWarnings{margin:10px 0;padding:10px;border-radius:12px;background:#fff7d6;color:#6a5200}.meetBadge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e8f2ff;color:#0b5cab;font-size:.78rem;margin-right:5px}.importHelp{font-size:.85rem;color:var(--muted);margin-top:6px}@media(max-width:640px){.importGrid{grid-template-columns:1fr}.reviewStats{grid-template-columns:1fr 1fr}.reviewTable{font-size:.78rem}}


/* v3.3 mobile dashboard + guide */
.brandBlock{display:flex;align-items:center;gap:10px}.brandLogo{width:52px;height:52px;border-radius:14px;background:#fff;object-fit:cover;box-shadow:0 4px 16px #001a3a30}.brandBlock h1{display:inline;margin-right:6px}.versionTag{display:inline-flex;background:#ffffff26;border:1px solid #ffffff55;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.dashboardHero{position:relative;padding:18px;background:linear-gradient(140deg,#052c4c,#075d9b 65%,#098ecc);color:#fff;border-radius:0 0 26px 26px;overflow:hidden}.dashboardHero:after{content:"";position:absolute;inset:auto -50px -90px auto;width:210px;height:210px;border-radius:50%;background:#ffffff10}.heroBrand{display:flex;align-items:center;gap:14px}.heroBrand img{width:88px;height:88px;border-radius:22px;background:#fff;object-fit:cover;box-shadow:0 8px 24px #00152f55}.heroBrand h2{margin:5px 0;font-size:21px}.heroChangeBtn{position:absolute;right:14px;top:14px;border:1px solid #ffffff66;background:#ffffff22;color:#fff;border-radius:999px;padding:8px 12px;font-weight:800}.homeMenuGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.homeMenuCard{min-height:105px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--ink);box-shadow:0 6px 20px #17345b0d}.homeMenuCard span{font-size:28px}.homeMenuCard b{font-size:14px}.homeMenuCard small{font-size:10px;color:var(--muted);line-height:1.25}.guideHero{display:flex;align-items:center;gap:16px;padding:18px;border-radius:22px;background:linear-gradient(135deg,#e8f4ff,#fff);border:1px solid #cfe4fb;margin-bottom:14px}.guideHero img{width:94px;height:94px;border-radius:22px;background:#fff;object-fit:cover}.guideHero h2{margin:0 0 5px}.guideHero p{margin:0;color:var(--muted)}.guideList{display:grid;gap:11px}.guideStep{display:grid;grid-template-columns:42px 1fr;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.guideStep h3{margin:0 0 5px;font-size:16px}.guideStep p{margin:0;color:#475569;line-height:1.55}.guideNo{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900}.guideAction{margin-top:10px;border:0;border-radius:12px;padding:10px 14px;background:var(--blue);color:#fff;font-weight:800}.guideTip{margin-top:14px;background:#fff7d8;border:1px solid #f0d77d;border-radius:18px;padding:14px}.guideTip p{margin:5px 0 0}.bottomNav button[data-view="help"] span{letter-spacing:1px;font-weight:900}@media(max-width:560px){.appbar{padding:10px}.brandLogo{width:44px;height:44px}.brandBlock small{display:none}.brandBlock h1{font-size:17px}.headerActions .iconBtn:not(#installBtn){font-size:11px;padding:8px}.meetSelect{order:2;width:100%!important;max-width:100%!important}.headerActions{width:100%;display:grid;grid-template-columns:repeat(4,auto)}.dashboardHero{margin:-12px -12px 0}.heroBrand img{width:72px;height:72px}.heroBrand h2{font-size:18px;max-width:210px}.homeMenuGrid{grid-template-columns:repeat(3,1fr)}.guideHero{align-items:flex-start}.guideHero img{width:76px;height:76px}}@media(max-width:380px){.homeMenuGrid{grid-template-columns:repeat(2,1fr)}.headerActions{grid-template-columns:repeat(3,1fr)}.meetSelect{grid-column:1/-1}.heroChangeBtn{position:static;margin-top:12px}.dashboardHero{padding-top:16px}}


/* v3.3.1 — cover hero and mobile overflow fixes */
html,body{max-width:100%;overflow-x:hidden}
body{width:100%}
main,.view,.appbar,.bottomNav{min-width:0}
.appbar{width:100%;gap:10px;flex-wrap:wrap}
.brandBlock{min-width:0;flex:1 1 210px}
.brandBlock>div{min-width:0}
.brandBlock h1{overflow-wrap:anywhere}
.headerActions{min-width:0;max-width:100%;flex:1 1 360px;justify-content:flex-end}
.headerActions>*{min-width:0}
.meetSelect{min-width:0}

.dashboardHero{
  position:relative;
  min-height:310px;
  padding:0;
  border-radius:24px;
  overflow:hidden;
  isolation:isolate;
  background:#052c4c
}
.heroCover{
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url("icons/meet-cover.jpg");
  background-size:cover;
  background-position:center 48%;
  transform:scale(1.01)
}
.heroOverlay{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(180deg,rgba(0,29,58,.88) 0%,rgba(0,44,80,.56) 48%,rgba(0,36,67,.78) 100%),
    linear-gradient(90deg,rgba(0,26,50,.72),rgba(0,26,50,.12))
}
.dashboardHero:after{
  content:"";
  position:absolute;
  inset:auto -60px -95px auto;
  width:250px;
  height:250px;
  z-index:-1;
  border-radius:50%;
  background:#ffffff12
}
.heroTop{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:14px;
  padding:18px
}
.heroBrand{min-width:0;align-items:flex-start}
.heroBrand img{flex:0 0 auto}
.heroText{min-width:0;padding-right:2px}
.heroBrand h2{
  max-width:100%;
  margin:7px 0 5px;
  font-size:clamp(21px,5.8vw,34px);
  line-height:1.22;
  overflow-wrap:anywhere;
  text-wrap:balance
}
.heroBrand p{max-width:100%;overflow-wrap:anywhere}
.heroChangeBtn{
  position:static;
  align-self:start;
  white-space:nowrap;
  z-index:2;
  flex:0 0 auto
}
.homeMenuGrid,.quickGrid,.analyticsCards,.analyticsGrid,.dataActions{min-width:0}
.homeMenuCard,.quick,.panel,.eventCard,.athleteCard,.rankingRow,.timelineItem{min-width:0;max-width:100%}
.sectionHead{min-width:0;gap:10px}
.sectionHead>*{min-width:0}
.liveToolbar{max-width:100%;padding-bottom:2px}
.reviewTableWrap{max-width:100%}

@media(max-width:640px){
  .view{padding-left:12px;padding-right:12px}
  .dashboardHero{margin:0;min-height:315px}
  .heroTop{grid-template-columns:minmax(0,1fr) auto;padding:14px}
  .heroBrand{gap:10px}
  .heroBrand img{width:70px;height:70px}
  .heroBrand h2{font-size:22px}
  .eyebrow{font-size:11px;letter-spacing:1px}
  .heroChangeBtn{padding:8px 10px;font-size:12px}
  .headerActions{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px
  }
  .headerActions .iconBtn{width:100%;padding:8px 5px}
  .meetSelect{grid-column:1/-1;width:100%!important;max-width:100%!important}
}
@media(max-width:440px){
  .heroTop{
    grid-template-columns:1fr;
    gap:10px
  }
  .heroChangeBtn{
    justify-self:start;
    margin-left:80px
  }
  .dashboardHero{min-height:345px}
}
@media(max-width:360px){
  .heroChangeBtn{margin-left:0}
  .homeMenuGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* v3.3.2 — simplified home and dynamic day selector */
.daySelectWrap{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:150px;
  padding:5px 10px 5px 12px;
  border:1px solid #cbd9e8;
  border-radius:16px;
  background:#fff;
  box-shadow:0 6px 18px rgba(31,72,112,.08)
}
.daySelectWrap span{
  flex:0 0 auto;
  font-size:12px;
  color:#61748a;
  font-weight:700
}
.daySelectWrap select{
  appearance:none;
  -webkit-appearance:none;
  width:auto;
  min-width:76px;
  border:0;
  outline:0;
  padding:8px 28px 8px 6px;
  margin:0;
  background:
    linear-gradient(45deg,transparent 50%,#1672c4 50%) calc(100% - 12px) 50%/6px 6px no-repeat,
    linear-gradient(135deg,#1672c4 50%,transparent 50%) calc(100% - 8px) 50%/6px 6px no-repeat;
  color:#10233e;
  font-size:15px;
  font-weight:800
}
.nowBtn{
  border-radius:16px!important;
  min-height:48px
}
.liveToolbar{
  display:flex;
  align-items:stretch;
  gap:10px;
  flex-wrap:wrap
}
@media(max-width:420px){
  .daySelectWrap{flex:1 1 100%;justify-content:space-between}
  .daySelectWrap select{flex:1;text-align:right}
  .nowBtn{flex:1 1 100%}
}

/* v3.3.3 — drag to reorder and schedule adjustment */
.timelineHead{align-items:flex-end}
.timelineHead>div:first-child{display:grid;gap:2px}
.scheduleTools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.scheduleTools button{min-height:36px;padding:7px 10px;font-size:12px}
.timelineItem{
grid-template-columns:38px 70px minmax(0,1fr) auto;
touch-action:pan-y
}
.dragHandle{
display:grid!important;place-items:center;
width:34px;height:44px;padding:0!important;
font-size:22px;color:#64748b!important;background:#f1f5f9!important;
cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none
}
.dragHandle:active{cursor:grabbing}
.timelineItem.dragging{opacity:.9;box-shadow:0 14px 30px #0f172a33;transform:scale(1.015);z-index:5}
.timelineMain{min-width:0}
.timelineActions{display:flex;align-items:center;gap:6px}
.timelineActions button{white-space:nowrap}
.timeEditBtn{width:38px;padding:8px 5px!important;background:#eff6ff!important;color:#075ea8!important}
.timelineTime{display:grid;gap:2px}
.timelineTime small{font-size:9px;color:#b45309;font-weight:800}
.timelineItem.adjusted{border-style:dashed;border-color:#f59e0b}
.timelineItem.adjusted .timelineTime{color:#b45309}
@media(max-width:560px){
.timelineItem{grid-template-columns:34px 58px minmax(0,1fr)}
.timelineActions{grid-column:2/-1;justify-content:flex-end}
.timelineHead{align-items:flex-start;flex-direction:column}
.scheduleTools{width:100%;justify-content:flex-start}
}


/* v3.3.4 — explicit schedule edit and reliable mobile drag/drop */
.editScheduleBtn{
  min-height:40px;
  padding:8px 13px;
  border:1px solid #1672c4;
  border-radius:13px;
  background:#1672c4;
  color:#fff;
  font-weight:800
}
.editScheduleBtn.active{
  background:#15803d;
  border-color:#15803d
}
.scheduleEditMode{
  border:2px dashed #82b9e9;
  border-radius:18px;
  padding:8px;
  background:#eaf5ff
}
.scheduleEditMode .timelineItem{
  border-color:#9cc8ed;
  background:#fff;
  user-select:none;
  -webkit-user-select:none
}
.dragHandle{
  display:grid;
  place-items:center;
  align-content:center;
  gap:1px;
  min-width:48px;
  min-height:64px;
  padding:5px;
  border:0;
  border-radius:13px;
  background:#dceeff;
  color:#075ea8;
  cursor:grab;
  touch-action:none;
  -webkit-touch-callout:none
}
.dragHandle small{
  display:block;
  font-size:9px;
  line-height:1;
  font-weight:800
}
.dragHandle:active{cursor:grabbing}
.timelineItem.dragging{
  opacity:.96;
  box-shadow:0 18px 38px rgba(15,23,42,.28);
  transform:scale(1.02);
  transition:none
}
.timelineDropPlaceholder{
  margin:8px 0;
  border:2px dashed #1672c4;
  border-radius:16px;
  background:rgba(22,114,196,.12)
}
.moveBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 8px;
  border-radius:999px;
  background:#e3f1ff;
  color:#075ea8;
  font-size:11px;
  font-weight:800;
  white-space:nowrap
}
body.scheduleDragging{
  overflow:hidden!important;
  touch-action:none
}
@media(max-width:520px){
  .scheduleTools{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .scheduleTools .editScheduleBtn{grid-column:1/-1}
  .scheduleEditMode .timelineItem{
    grid-template-columns:48px 62px minmax(0,1fr) auto
  }
}


/* v3.3.5 — compact mobile schedule editor */
.timelineItem{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  min-height:88px;
  padding:14px 14px;
  border:1px solid #d5e1ed;
  border-radius:18px;
  background:#fff;
  overflow:hidden
}
.timelineTime{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-width:0;
  color:#0876b7;
  line-height:1.05
}
.timelineTime strong{
  display:block;
  font-size:18px;
  font-weight:900;
  white-space:nowrap
}
.timelineTime small{
  margin-top:5px;
  padding:3px 6px;
  border-radius:999px;
  background:#fff1c7;
  color:#8a5a00;
  font-size:9px;
  font-weight:800
}
.timelineMain{
  min-width:0;
  cursor:pointer
}
.timelineTitleRow{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0
}
.timelineTitleRow b{
  color:#10233e;
  font-size:17px;
  line-height:1.2
}
.timelineMetaInline{
  color:#718096;
  font-size:11px;
  font-weight:700;
  white-space:nowrap
}
.timelineEventName{
  margin-top:4px;
  color:#10233e;
  font-size:15px;
  line-height:1.35;
  overflow-wrap:anywhere
}
.timelineActions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  min-width:0
}
.timelineActions button{
  min-width:42px;
  min-height:42px;
  padding:7px 9px;
  border-radius:12px
}

.scheduleEditMode{
  padding:8px;
  background:#eef7ff
}
.scheduleEditMode .timelineItem{
  grid-template-columns:48px 68px minmax(0,1fr) auto;
  min-height:92px;
  padding:12px;
  gap:10px
}
.scheduleEditMode .timelineMain{
  cursor:default
}
.dragHandle{
  width:46px;
  min-width:46px;
  height:64px;
  min-height:64px;
  padding:0;
  border-radius:14px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  background:#dceeff;
  color:#075ea8
}
.dragHandle span{
  font-size:22px;
  line-height:1
}
.dragHandle small{
  font-size:9px
}
.moveBadge{
  max-width:80px;
  text-align:center;
  white-space:normal;
  line-height:1.2;
  padding:6px 8px
}
.timelineDropPlaceholder{
  min-height:88px
}

@media(max-width:520px){
  .timelineItem{
    grid-template-columns:64px minmax(0,1fr) auto;
    gap:9px;
    padding:12px 11px
  }
  .timelineTime strong{font-size:16px}
  .timelineTitleRow b{font-size:16px}
  .timelineEventName{font-size:14px}
  .timelineMetaInline{
    flex-basis:100%;
    white-space:normal
  }
  .scheduleEditMode .timelineItem{
    grid-template-columns:44px 58px minmax(0,1fr);
    grid-template-areas:
      "drag time main"
      "drag actions actions";
    align-items:center
  }
  .scheduleEditMode .dragHandle{grid-area:drag}
  .scheduleEditMode .timelineTime{grid-area:time}
  .scheduleEditMode .timelineMain{grid-area:main}
  .scheduleEditMode .timelineActions{
    grid-area:actions;
    justify-content:flex-end
  }
  .scheduleEditMode .moveBadge{
    max-width:none;
    white-space:nowrap
  }
}

@media(max-width:380px){
  .timelineItem{
    grid-template-columns:58px minmax(0,1fr);
    grid-template-areas:
      "time main"
      "actions actions"
  }
  .timelineTime{grid-area:time}
  .timelineMain{grid-area:main}
  .timelineActions{
    grid-area:actions;
    justify-content:flex-end
  }
  .scheduleEditMode .timelineItem{
    grid-template-columns:42px 54px minmax(0,1fr);
  }
}


/* v3.3.6 — balanced home, mixed search, clickable live Event, clean timeline */
.homeOverview{margin:16px 0 14px}
.homeSearchBox{margin:0 0 10px;position:relative;z-index:4;border:1px solid #d7e3ef;box-shadow:0 8px 24px rgba(23,52,91,.10)}
.homeSearchBox input{min-width:0}
.homeSearchResults{display:grid;gap:5px;margin:-2px 0 12px;padding:7px;background:#fff;border:1px solid #d7e3ef;border-radius:16px;box-shadow:0 14px 34px rgba(23,52,91,.14)}
.homeSearchResult{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:10px;border:0;border-radius:12px;background:#fff;color:var(--ink);text-align:left}
.homeSearchResult:hover,.homeSearchResult:focus{background:#eef7ff;outline:2px solid #b8dcfa}
.homeSearchResult b,.homeSearchResult small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.homeSearchResult small{margin-top:2px;color:var(--muted);font-size:12px}
.searchResultIcon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eaf4ff}
.searchResultGo{color:var(--blue);font-size:22px;text-align:right}
.homeSearchEmpty{padding:14px;text-align:center;color:var(--muted)}
.homeMetrics{margin:0}.homeMetrics .quick{padding:14px 8px}.homeMetrics .quick b{font-size:25px}
.liveCardButton{position:relative;width:100%;display:block;border:0;text-align:left;font:inherit;cursor:pointer}
.liveCardButton:focus{outline:3px solid #7dd3fc;outline-offset:3px}
.liveOpenCue{position:absolute;right:16px;top:17px;color:#dbeafe;font-size:12px;font-weight:800}
.liveTitle{font-size:17px;line-height:1.4}.liveMeta{margin-top:5px;color:#dbeafe;font-size:14px}

.timelineList{gap:12px}
.timelineItem{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:13px;min-height:112px;padding:14px;border-radius:18px;overflow:hidden}
.timelineTimePanel{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}
.timelineTime{display:flex;flex-direction:column;align-items:flex-start;line-height:1;min-width:0}
.timelineTime strong{font-size:20px;line-height:1;font-weight:900;white-space:nowrap;color:#0876b7}
.timelinePeriod{margin-top:4px;font-size:12px;font-weight:900;color:#0876b7;letter-spacing:.5px}
.timelineTime small{align-self:flex-start}
.timeEditUnder{display:flex!important;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0!important;min-height:34px!important;padding:6px 5px!important;border-radius:10px!important;background:#edf5fc!important;color:#086cae!important;font-weight:800}
.timeEditUnder span{font-size:14px}.timeEditUnder small{font-size:9px;white-space:nowrap}
.timelineMain{display:grid;gap:5px;min-width:0;padding:2px 0;cursor:pointer}
.timelineEventNo{font-size:17px;line-height:1.15;font-weight:900;color:#10233e}
.timelineEventName{margin:0;font-size:15px;line-height:1.38;color:#10233e;overflow-wrap:anywhere}
.timelineEventStats{font-size:12px;line-height:1.3;color:#718096;font-weight:700}
.timelineActions{align-self:center}
.passEventBtn{min-width:56px;white-space:nowrap}

.scheduleEditMode .timelineItem{grid-template-columns:48px 86px minmax(0,1fr) auto;min-height:112px}
.scheduleEditMode .timelineTimePanel{grid-column:auto}.scheduleEditMode .timelineMain{cursor:default}

@media(max-width:520px){
 .homeOverview{margin-top:13px}.quickGrid.homeMetrics{gap:8px}.homeMetrics .quick{border-radius:16px;padding:12px 5px}
 .timelineItem{grid-template-columns:82px minmax(0,1fr) auto;gap:10px;padding:12px 11px;min-height:110px}
 .timelineTime strong{font-size:18px}.timelineEventNo{font-size:16px}.timelineEventName{font-size:14px}.timelineEventStats{font-size:11px}
 .scheduleEditMode .timelineItem{grid-template-columns:44px 74px minmax(0,1fr);grid-template-areas:"drag time main" "drag actions actions";gap:9px}
 .scheduleEditMode .dragHandle{grid-area:drag}.scheduleEditMode .timelineTimePanel{grid-area:time}.scheduleEditMode .timelineMain{grid-area:main}.scheduleEditMode .timelineActions{grid-area:actions;justify-content:flex-end}
}
@media(max-width:390px){
 .timelineItem{grid-template-columns:76px minmax(0,1fr);grid-template-areas:"time main" "time actions";align-items:start}
 .timelineTimePanel{grid-area:time}.timelineMain{grid-area:main}.timelineActions{grid-area:actions;justify-content:flex-end;margin-top:2px}
 .passEventBtn{min-height:36px!important}
 .scheduleEditMode .timelineItem{grid-template-columns:42px 70px minmax(0,1fr);grid-template-areas:"drag time main" "drag actions actions"}
 .liveOpenCue{position:static;display:block;margin:7px 0 0}.liveCardButton{padding-top:16px}
}
