/* Events page (events.php). Event kinds share one accent each: --k. */
.ev .container{max-width:1180px}
.k-quiz{--k:#46e6dc}.k-hunt{--k:#ff7a5c}.k-pet{--k:#7cf59a}.k-craft{--k:#ffdea0}.k-maze{--k:#b9a4ff}
.k-war{--k:#e93f2d}.k-ride{--k:#7fc8ff}.k-boss{--k:#ff5c8a}.k-offer{--k:#d39a3c}.k-race{--k:#4fb3ff}.k-raid{--k:#ff4f3a}.k-misc{--k:#8fb0aa}

.tzbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px;color:var(--dim);font-size:14px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(2,14,18,.55)}
.seg button{background:none;border:0;color:var(--dim);font:inherit;font-weight:600;font-size:13px;padding:8px 16px;cursor:pointer}
.seg button.on{color:#062026;background:linear-gradient(135deg,var(--teal),var(--gold))}
.card.warn{border-color:rgba(255,122,107,.5);color:#ffc9c0;margin-bottom:18px}

.nownext{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:18px}
.nownext h2{font-family:var(--f-head);font-size:20px;color:var(--gold);display:flex;align-items:center;gap:10px;margin-bottom:12px}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--good);box-shadow:0 0 0 0 rgba(124,245,154,.6);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(124,245,154,0)}100%{box-shadow:0 0 0 0 rgba(124,245,154,0)}}
.olist{list-style:none;display:grid;gap:8px}
.olist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;
  background:rgba(2,14,18,.5);border:1px solid var(--line);border-left:3px solid var(--k,var(--line))}
.olist li b{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.olist .when{color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
.olist .when em{color:var(--dim);font-style:normal;margin-left:6px;font-size:12px}
.olist li.empty{color:var(--dim);border-left-color:var(--line);justify-content:flex-start}

.block{margin-top:56px}
.bhead{margin-bottom:16px}
.bhead .zh{font-family:var(--f-brush);font-size:22px;color:rgba(70,230,220,.8);line-height:1}
.bhead h2{font-family:var(--f-head);font-size:clamp(22px,3vw,30px);color:var(--gold);margin-top:4px}
.bhead p{color:var(--dim);margin-top:6px;font-size:15px}

/* daily timeline: 24 h track per event; scrolls inside the card on narrow screens */
.tl-card{padding:20px 20px 16px;overflow-x:auto}
.tl{position:relative;min-width:720px;--name:190px}
.tl-hours{position:relative;height:18px;margin-left:var(--name);font-size:11px;color:var(--dim)}
.tl-hours span{position:absolute;transform:translateX(-50%)}
.tl-hours span:first-child{transform:none}.tl-hours span:last-child{transform:translateX(-100%)}
.tl-row{display:flex;align-items:center;height:34px;border-top:1px solid rgba(90,200,190,.12)}
.tl-name{width:var(--name);flex:0 0 auto;font-size:13px;font-weight:600;padding-right:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-name::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--k);margin-right:8px;vertical-align:1px}
.tl-track{position:relative;flex:1;height:100%;background:repeating-linear-gradient(90deg,rgba(90,200,190,.1) 0 1px,transparent 1px 12.5%)}
.tl-bar{position:absolute;top:9px;height:16px;border-radius:5px;background:var(--k);opacity:.85;box-shadow:0 0 12px -2px var(--k);min-width:5px;cursor:default}
.tl-bar:hover{opacity:1}
.tl-now{position:absolute;left:calc(var(--name) + (100% - var(--name)) * var(--nowf, 0));top:18px;bottom:0;width:2px;background:var(--cinnabar);pointer-events:none}


/* weekly calendar */
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.wday{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;min-height:150px}
.wday.today{border-color:var(--gold);box-shadow:0 0 0 1px var(--goldline),0 10px 30px rgba(0,0,0,.35)}
.wname{font-family:var(--f-head);font-size:14px;color:var(--gold);margin-bottom:10px}
.wday.today .wname::after{content:" \00b7 today";color:var(--teal);font-family:var(--f-body);font-size:11px}
.wev{border-left:3px solid var(--k);padding:5px 8px;margin-top:6px;border-radius:6px;background:rgba(2,14,18,.5);font-size:12px;line-height:1.35}
.wev .when{display:block;color:var(--dim);font-variant-numeric:tabular-nums}
.wev b{font-weight:600}

/* guide cards */
.guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gcard{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 20px;overflow:hidden}
.gcard::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--k)}
.gcard h3{font-family:var(--f-head);font-size:19px;color:var(--gold)}
.gcard .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.gcard .meta span{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:#bfe0da}
.gcard p{color:var(--dim);font-size:14px;line-height:1.65;margin-top:12px}
.gcard .where{font-size:13px;margin-top:10px;color:#cfe3de}
.gcard .where b{color:var(--k)}
.gcard .times{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.gcard time{font-size:12px;font-variant-numeric:tabular-nums;padding:4px 9px;border-radius:8px;background:rgba(2,14,18,.6);border:1px solid var(--line);color:var(--text)}

.card.open{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 24px}
.orow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(90,200,190,.12);font-size:14px}
.orow small{color:var(--dim);white-space:nowrap}

@media (max-width:1000px){.guide{grid-template-columns:repeat(2,minmax(0,1fr))}.week{grid-template-columns:repeat(4,minmax(0,1fr))}.card.open{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.nownext{grid-template-columns:minmax(0,1fr)}.week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.guide,.card.open{grid-template-columns:minmax(0,1fr)}.tl-card{padding:14px}.tl{--name:150px}}
@media (prefers-reduced-motion:reduce){.pulse{animation:none}}
