:root{color-scheme:dark;--bg:#121114;--panel:#201d1e;--panel2:#2c2524;--line:#493832;--text:#f8f0e5;--muted:#baa99e;--gold:#f4b94e;--green:#83c5a4}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 22% -12%,#4b2b1d,transparent 42%),var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button,select{font:inherit}button{cursor:pointer;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 12px}button:hover{border-color:var(--gold)}button:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.shell{max-width:1420px;margin:auto;padding:28px 22px}.top{display:flex;align-items:center;gap:18px;margin-bottom:26px}.crest{width:68px;height:68px;flex:none;border:1px solid #b96d29;border-radius:15px;overflow:hidden;box-shadow:0 0 19px #f078202b}.crest img{width:100%;height:100%;object-fit:cover}.eyebrow{color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.16em}.top h1{margin:0;font:36px Georgia,serif}.top p{margin:0;color:var(--muted)}.live{margin-left:auto;color:var(--muted);font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;overflow:hidden}.toolbar{padding:18px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.monthNav,.toolbarRight{display:flex;align-items:center;gap:8px}.monthNav h2{font:25px Georgia,serif;min-width:195px;text-align:center;margin:0}.subtle{background:transparent}.tiny{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:2px}select{background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:7px;border-radius:7px}.filterbar{display:flex;gap:6px;flex-wrap:wrap;padding:0 18px 15px}.chip{font-size:12px;padding:5px 10px;background:transparent;color:var(--muted)}.chip.active{border-color:var(--gold);color:var(--gold);background:#53311f}.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#181617;border-top:1px solid var(--line)}.weekdays span{text-align:center;padding:9px;color:var(--muted);font-size:12px}.calendar{display:block}.week{position:relative;--lanes:1}.weekdays-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day{border-right:1px solid var(--line);border-top:1px solid var(--line);min-height:max(114px,calc(39px + var(--lanes)*27px));padding:8px 5px;min-width:0}.day:last-child{border-right:0}.day.out{background:#171517;color:#796d68}.date{font-size:12px;font-weight:700;margin:0 0 6px 4px}.day.current .date{display:inline-block;background:var(--gold);color:#161112;padding:2px 7px;border-radius:50%}.weekbars{position:absolute;left:0;right:0;top:36px;height:calc(var(--lanes)*27px);pointer-events:none}.eventbar{position:absolute;height:23px;z-index:1;pointer-events:auto;display:flex;align-items:center;min-width:0;text-align:left;padding:2px 9px;border:0;border-left:3px solid var(--accent,#f4b94e);background:var(--fill,#6c4625);border-radius:5px;color:#fff5e8;font-size:11px;font-weight:650;white-space:nowrap;overflow:hidden}.eventbar span{overflow:hidden;text-overflow:ellipsis}.eventbar:hover{filter:brightness(1.22);z-index:2}.eventbar.continues-before{border-top-left-radius:0;border-bottom-left-radius:0;border-left:0}.eventbar.continues-after{border-top-right-radius:0;border-bottom-right-radius:0}.eventbar[data-category="Bingo"]{--accent:#ffd16b;--fill:#725027}.eventbar[data-category="PvM"]{--accent:#f18c72;--fill:#71372f}.eventbar[data-category="Skilling"]{--accent:#8bd1a7;--fill:#305344}.eventbar[data-category="Minigames"]{--accent:#9abdf8;--fill:#354c70}.eventbar[data-category="Social"]{--accent:#c7a3f4;--fill:#543c68}.eventbar[data-category="Special Event"]{--accent:#ffba47;--fill:#805022}.side{padding:20px;margin-bottom:18px}.side h2{font:21px Georgia,serif;margin:0 0 12px}.sectionHead{display:flex;align-items:center;justify-content:space-between}.pill{background:#3d3629;color:var(--gold);border-radius:20px;padding:2px 9px;font-size:12px}.upcoming{display:grid;gap:10px}.upitem{width:100%;text-align:left;background:#2a2424;border:1px solid var(--line);padding:11px}.upitem strong,.upitem small{display:block}.upitem small,.muted,.footnote{color:var(--muted)}.footnote{font-size:12px;margin:0;padding:12px 18px;border-top:1px solid var(--line)}footer{color:var(--muted);font-size:12px;padding-top:25px;text-align:center}dialog{background:var(--panel);color:var(--text);border:1px solid var(--gold);border-radius:14px;width:min(94vw,560px);padding:0}dialog::backdrop{background:#000b}.modal{padding:26px;position:relative}.modal h2{font:29px Georgia,serif;margin:8px 25px 14px 0}.close{position:absolute;right:12px;top:12px;font-size:22px}.detailrow{margin:12px 0}.detailrow strong{display:block;color:var(--gold);font-size:12px}.detailrow p{margin:2px 0;white-space:pre-wrap;overflow-wrap:anywhere}a{color:#ffd18d}.error{color:#ffb2a7}.empty{color:var(--muted);padding:12px 0}@media(max-width:980px){.layout{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.day{min-height:max(100px,calc(39px + var(--lanes)*27px))}}@media(max-width:650px){.shell{padding:14px 8px}.top{padding:8px;gap:10px}.top h1{font-size:27px}.crest{width:52px;height:52px}.live{display:none}.monthNav h2{font-size:20px;min-width:150px}.toolbar{padding:12px}.weekdays span{font-size:10px}.day{min-height:max(79px,calc(36px + var(--lanes)*25px));padding:5px 2px}.date{font-size:11px}.weekbars{top:30px;height:calc(var(--lanes)*25px)}.eventbar{height:21px;font-size:10px;padding:2px 5px}.eventbar span{font-size:10px}aside{display:block}.toolbarRight{width:100%;justify-content:space-between}}

/* V1.2: responsive agenda and accessible event continuation */
.mobile-agenda{display:none;padding:16px;border-top:1px solid var(--line)}
.mobile-agenda h3{font:20px Georgia,serif;margin:0 0 12px}
#mobileAgenda{display:grid;gap:9px}
.agenda-item{width:100%;display:grid;gap:4px;text-align:left;border-left:4px solid var(--accent,#f4b94e);background:var(--panel2)}
.agenda-item small{color:var(--muted)}
.agenda-item[data-category="Bingo"]{--accent:#ffd16b}.agenda-item[data-category="PvM"]{--accent:#f18c72}.agenda-item[data-category="Skilling"]{--accent:#8bd1a7}.agenda-item[data-category="Minigames"]{--accent:#9abdf8}.agenda-item[data-category="Social"]{--accent:#c7a3f4}.agenda-item[data-category="Special Event"]{--accent:#ffba47}
.eventbar.continues-before{padding-left:5px}.eventbar.continues-after{padding-right:5px}
@media(max-width:650px){.calendar{display:none}.weekdays{display:none}.mobile-agenda{display:block}.monthNav{flex-wrap:wrap}.monthNav h2{min-width:0}.toolbarRight{gap:8px}.top{flex-wrap:wrap}.live{display:block;margin-left:0;width:100%;padding-left:62px}.filterbar{padding:0 12px 12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* V1.2.1: compact mobile month, tap a date to filter readable event cards. */
.mobile-weekdays,.mobile-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mobile-weekdays span{text-align:center;color:var(--muted);font-size:11px;padding:4px 0 8px}
.mobile-day{min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:6px 2px;border:1px solid transparent;background:#292323;border-radius:8px;font-size:13px}
.mobile-day.outside{opacity:.25}.mobile-day:disabled{cursor:default}.mobile-day.selected{border-color:var(--gold);background:#53311f}.mobile-day.today:not(.selected){border-color:#a66d36}
.mobile-dots{display:flex;justify-content:center;gap:3px;height:5px}.mobile-dots i{width:5px;height:5px;border-radius:50%;background:#ffba47}
.mobile-dots i[data-category="Bingo"]{background:#ffd16b}.mobile-dots i[data-category="PvM"]{background:#f18c72}.mobile-dots i[data-category="Skilling"]{background:#8bd1a7}.mobile-dots i[data-category="Minigames"]{background:#9abdf8}.mobile-dots i[data-category="Social"]{background:#c7a3f4}
.mobile-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 12px}.mobile-agenda-head h3{margin:0}.mobile-agenda-head button{font-size:12px;padding:6px 9px}
.agenda-item{padding:12px}.agenda-item strong{overflow-wrap:anywhere}
@media(max-width:650px){.mobile-agenda{padding:14px 12px 18px}.upcoming-panel{display:none}.day{min-height:0}}
