@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700;800&display=swap');
:root{--ink:#f5f7f8;--muted:#aab9c4;--blue:#78bfe5;--bright:#0b8dd4;--line:#243743;--paper:#000000;--orange:#ff9000}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Raleway,Arial,sans-serif;font-size:14px;font-variant-numeric:lining-nums}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--bright);outline-offset:3px}a{color:inherit}header{display:flex;align-items:center;justify-content:space-between;padding:23px max(24px, calc((100% - 772px)/2)) 17px;gap:12px}.brand{text-decoration:none;font-size:24px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand b{color:var(--bright)}.brand span{font-size:13px;letter-spacing:0;font-weight:500;color:var(--muted);margin-left:14px}.official{font-size:12px;text-decoration:none;color:var(--blue);white-space:nowrap}main{max-width:820px;margin:auto;padding:0 24px}.sticky-tools{position:sticky;top:0;background:#000000f5;backdrop-filter:blur(12px);padding-top:3px;z-index:2}.view-nav{display:flex;border-bottom:1px solid var(--line);gap:28px}.view-nav button{padding:14px 0 13px;border:0;border-bottom:3px solid transparent;color:var(--muted);font-size:13px;font-weight:600;background:none;white-space:nowrap}.view-nav button.active{color:var(--blue);border-bottom-color:var(--bright)}.view-nav span{font-family:Arial,sans-serif;font-size:11px;font-weight:400;margin-left:4px;padding:3px 6px;border-radius:9px;background:#173042}.view-nav .active span{background:#003a59;color:var(--blue)}.days{display:flex;gap:7px;padding:15px 0}.days button{border:1px solid var(--line);border-radius:6px;background:#071b28;color:var(--muted);padding:10px 15px;white-space:nowrap;font-size:13px;flex:1}.days strong{color:var(--ink);font-weight:600;margin-left:3px}.days button:last-child{flex:.7}.days button.active{background:var(--blue);border-color:var(--blue);color:#fff}.days button.active strong{color:inherit}.search{display:flex;align-items:center;background:#071b28;border:1px solid var(--line);border-radius:7px;padding:0 12px;gap:10px}.search>span{font-size:25px;color:var(--muted)}.search input{border:0;width:100%;outline:none;padding:13px 0;font-size:13px;color:var(--ink);background:transparent}.filter-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:11px 0 14px}.filter-disclosure{flex:1}.filter-disclosure summary{cursor:pointer;font-size:12px;color:var(--muted);width:fit-content;padding:5px 0}.filter-disclosure summary span:not(:empty){background:#003a59;color:var(--blue);padding:2px 5px;border-radius:8px;font-family:Arial,sans-serif;font-size:10px;margin-left:4px}.filters{display:flex;flex-wrap:wrap;gap:7px;padding:11px 0 5px}.filters select{max-width:100%;font-size:12px;border:1px solid var(--line);background:#071b28;color:var(--ink);padding:8px;border-radius:5px}.text-button{border:0;background:none;padding:5px 0;color:var(--blue);font-size:12px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.result-meta{display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:11px;margin:10px 0 15px}.time-group{display:flex;align-items:center;gap:12px;margin:23px 0 11px;color:var(--blue);font-size:13px;font-weight:700}.time-group:after{content:'';height:1px;flex:1;background:var(--line)}.session{padding:15px 17px;background:#071b28;border:1px solid var(--line);border-radius:7px;margin-bottom:10px}.session.in-plan{border-left:3px solid var(--bright);padding-left:15px}.session.has-conflict{border-left-color:var(--orange)}.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.tag{font-size:10px;font-weight:600;color:#bfdc78;background:#23320c;border-radius:3px;padding:4px 6px}.tag.politics{color:#ffb85d;background:#38270d}.tag.justice{color:#ff9b90;background:#351b1a}.tag.science{color:var(--blue);background:#003a59}.tag.skill{color:#bfdc78;background:#23320c}.star{border:0;background:none;color:#aab9c4;font-size:26px;width:40px;height:40px;margin:-10px -8px -10px 0}.star.selected{color:#ff9000}.session h3{font-size:16px;font-weight:700;line-height:1.45;margin:0}.title-button{background:none;border:0;text-align:left;padding:0;color:inherit;width:100%;font-weight:inherit;line-height:inherit}.speakers{font-size:12px;color:var(--muted);line-height:1.5;margin:5px 0 0}.card-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:11px;margin-top:11px;line-height:1.5}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}.format{font-size:11px;color:var(--muted)}.details-link{font-size:11px;color:var(--blue);background:none;border:0;padding:8px 3px;cursor:pointer}.add{border:1px solid #005787;color:var(--blue);background:#003a59;font-size:12px;font-weight:600;padding:8px 10px;border-radius:5px;min-height:35px}.add.selected{color:var(--blue);background:#005787;border-color:#0b8dd4}.conflict-label{padding:8px 10px;background:#30210e;color:#ffb85d;border-radius:4px;font-size:11px;line-height:1.5;margin-top:11px}.conflict-label .details-link{color:inherit;text-decoration:underline;text-underline-offset:2px}.warning{border:1px solid #77501d;background:#30210e;border-radius:6px;padding:14px;margin-bottom:15px;color:#ffb85d}.warning h3{font-size:13px;margin:0 0 5px}.warning p{font-size:12px;line-height:1.7;margin:5px 0}.warning button{background:none;border:0;padding:2px 0;text-align:left;color:inherit;text-decoration:underline;font-size:12px}.empty{text-align:center;padding:40px 15px;border:1px dashed var(--line);border-radius:6px;color:var(--muted);font-size:13px;line-height:1.8}.empty strong{display:block;color:var(--ink);font-size:17px;margin-bottom:5px}.empty button{margin-top:15px;border:0;background:var(--blue);color:#fff;border-radius:5px;padding:9px 14px;font-size:13px}.empty .text-button{background:none;color:var(--blue);margin-top:5px}footer{padding:23px 0 28px;color:var(--muted);font-size:10px;line-height:1.7}footer p{margin:0 0 3px}footer a{color:var(--blue)}dialog{border:1px solid var(--line);padding:0;border-radius:10px;max-width:620px;width:calc(100% - 24px);max-height:90dvh;background:#071b28;color:var(--ink)}dialog::backdrop{background:#00223799;backdrop-filter:blur(2px)}.modal-inner{padding:26px}.modal-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:15px}.close{width:36px;height:36px;border:0;border-radius:50%;background:#173042;font-size:25px;color:var(--ink)}dialog h2{font-size:23px;line-height:1.4;margin:0 0 14px;font-weight:800}dialog .description{white-space:pre-line;font-size:13px;line-height:1.85;margin:22px 0}.speaker-list{font-size:13px;line-height:1.7;border-top:1px solid var(--line);padding-top:16px}.modal-actions{display:flex;gap:8px;position:sticky;bottom:0;background:#071b28;padding-top:15px}.modal-actions button{flex:1;padding:12px;font-size:13px;border-radius:5px}.save-fav{border:1px solid var(--line);background:#071b28;color:var(--blue)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(110px);transition:transform .2s;background:#002237;color:#fff;font-size:13px;border-radius:7px;padding:12px 18px;z-index:10;max-width:90%;text-align:center}#toast.visible{transform:translateX(-50%) translateY(0)}button:disabled{opacity:.5;cursor:default}[hidden]{display:none!important}
@media(max-width:600px){header{padding:18px 16px 9px}.brand{font-size:22px}.brand span{display:block;font-size:11px;margin:3px 0 0;letter-spacing:0}.official{font-size:11px}main{padding:0 16px}.view-nav{justify-content:space-between;gap:8px}.view-nav button{font-size:13px;padding:13px 0 12px}.view-nav span{font-size:10px;margin-left:2px;padding:2px 5px}.days{gap:5px;padding:13px 0}.days button{font-size:11px;padding:10px 5px}.days strong{margin-left:1px}.search input{font-size:12px}.filters{flex-direction:column;align-items:flex-start}.filters select{width:100%;font-size:13px}.filter-disclosure[open]{flex:1}.result-meta{font-size:10px}.session{padding:13px}.session.in-plan{padding-left:11px}.session h3{font-size:14px}.card-meta{font-size:11px;gap:5px 10px}.card-bottom{gap:6px}.format{font-size:10px;max-width:40%}.add{font-size:11px;padding:8px}.details-link{font-size:11px}.modal-inner{padding:20px}dialog h2{font-size:20px}.modal-actions button{font-size:12px}#toast{bottom:20px}footer{padding-bottom:calc(25px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* LCOY palette: black, navy, blue and orange. */
:root{color-scheme:dark}header{background:#06141f}.brand{color:#fff}.days button{background:#132938}.days button.active{background:#005787;border-color:#0b8dd4;color:#fff}.view-nav .active span{color:#d1e7f3}.search{background:#222}.session{background:#081b28}.add.selected{color:#fff}.tag.science{color:#abd2ea}.empty button{background:#005787}.empty .text-button{background:none}.search input::placeholder{color:#aab9c4}.filters select{background:#132938}.filters option{background:#132938}.close{color:#fff}.warning,.conflict-label{background:#30210e;color:#ffb85d}.modal-actions{background:#071b28}
.bookmark{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;color:#aab9c4;width:40px;height:40px;flex-shrink:0;margin:-8px -7px -8px 0;border-radius:5px}.bookmark.selected{color:#ff9000}.bookmark:hover{background:#173042}.save-fav{display:inline-flex;align-items:center;justify-content:center;gap:7px}.bookmark-list{list-style:none;padding:0;margin:0}.bookmark-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}.bookmark-row:first-child{border-top:1px solid var(--line)}.bookmark-info{min-width:0;flex:1}.bookmark-title{background:none;border:0;padding:0;color:var(--ink);font-size:14px;font-weight:600;line-height:1.5;text-align:left}.bookmark-title:hover{color:var(--blue)}.bookmark-info p{font-size:12px;line-height:1.6;color:var(--muted);margin:5px 0 0}.bookmark-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.list-plan{display:inline-flex;align-items:center;gap:5px;justify-content:center;border:0;background:none;color:var(--blue);height:40px;padding:5px;font-size:18px}.list-plan span{font-size:11px}.bookmark-actions .bookmark{margin:0}.filter-row:has(.filter-disclosure[hidden]):has(#export[hidden]){display:none}@media(max-width:600px){.bookmark-row{gap:8px;padding:14px 0}.bookmark-title{font-size:13px}.bookmark-info p{font-size:11px}.bookmark-info p>span{display:block}.bookmark-actions{gap:3px}.list-plan{width:32px}.list-plan span{display:none}.bookmark-actions .bookmark{width:34px}.view-nav{gap:5px}.view-nav button{font-size:12px}}
.calendar-day{margin:22px 0 30px}.calendar-day h2{display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:700;margin:0 0 20px}.calendar-day h2>span{font-size:11px;font-weight:400;color:var(--muted)}.calendar-scroll{overflow-x:auto;padding:7px 0 0;scrollbar-color:#005787 #071b28}.calendar-grid{position:relative;margin-top:3px}.calendar-hour{position:absolute;left:0;right:0;border-top:1px solid #243743;height:1px;margin-left:52px}.calendar-hour time{position:absolute;right:calc(100% + 9px);top:-7px;font-size:11px;color:var(--muted);font-family:Arial,sans-serif}.calendar-events{position:absolute;left:54px;right:0;top:0;bottom:0}.calendar-event{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:1px solid #0b8dd4;border-left:3px solid #0b8dd4;border-radius:5px;background:#003a59;color:#fff;padding:9px;text-align:left;overflow:hidden;min-height:0}.calendar-event:hover{background:#005787}.calendar-event time{font-size:11px;color:#abd2ea;line-height:1.2;flex-shrink:0}.calendar-event strong{font-size:13px;line-height:1.4;font-weight:600}.calendar-event>span{font-size:11px;color:#abd2ea;margin-top:auto}.calendar-event.short-event{padding:1px 5px;gap:0}.calendar-event.short-event time,.calendar-event.short-event>span{display:none}.calendar-event.short-event strong{font-size:11px;white-space:nowrap}@media(max-width:600px){.calendar-day h2{font-size:14px}.calendar-event{padding:7px}.calendar-event strong{font-size:12px}.calendar-event time{font-size:10px}.calendar-event>span{font-size:10px}}
.days button:last-child{flex:1}

header .brand{font-size:21px;letter-spacing:-.5px}header .brand span{display:block;margin:4px 0 0;font-size:12px;letter-spacing:.5px}@media(max-width:600px){header .brand{font-size:19px}header .brand span{font-size:11px}}

header .brand{font-size:24px;letter-spacing:-1px}header .brand span{letter-spacing:0}@media(max-width:600px){header .brand{font-size:22px}}

.filters{flex-direction:column;align-items:stretch;width:100%}.filters select{display:block;width:100%;max-width:100%;min-width:0}.filter-disclosure{width:100%;min-width:0}.filters .text-button{align-self:flex-start}

.add,.list-plan{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.2;white-space:nowrap}.agenda-icon{display:block;width:22px;height:22px;flex:0 0 22px}.add{min-height:40px;padding:8px 12px}.card-bottom>div{display:flex;align-items:center;gap:10px}.list-plan{min-width:40px;min-height:40px;padding:7px;gap:7px}.bookmark-actions{gap:8px}.modal-actions .add{gap:8px}@media(max-width:600px){.card-bottom>div{gap:8px}.add{padding:8px 10px}.list-plan{width:40px}.bookmark-actions{gap:5px}}
header{padding-top:18px;padding-bottom:18px}@media(max-width:600px){header{padding-top:16px;padding-bottom:16px}}

.agenda-icon{width:18px;height:18px;flex-basis:18px}.add,.list-plan,.modal-actions .add{gap:7px}

.mobile-nav{display:none}.view-nav{gap:5px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#071b28;margin-top:6px}.view-nav button{flex:1;border:0;border-radius:5px;padding:13px 10px;font-size:13px;font-weight:700;color:#aab9c4}.view-nav button.active{background:#005787;color:#fff;box-shadow:0 1px 4px #0003}.view-nav button:hover{color:#fff}
@media(max-width:600px){body{padding-bottom:calc(90px + env(safe-area-inset-bottom))}.view-nav{display:none}.sticky-tools{padding-top:0}.mobile-nav{display:flex;align-items:stretch;position:fixed;z-index:6;bottom:calc(10px + env(safe-area-inset-bottom));left:12px;right:12px;max-width:480px;margin:0 auto;padding:6px;gap:5px;border:1px solid #2a4659;border-radius:16px;background:#071b28f5;backdrop-filter:blur(16px);box-shadow:0 5px 28px #0009}.mobile-nav button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:54px;border:0;border-radius:10px;background:none;color:#aab9c4;padding:7px 4px;font-size:11px;font-weight:600}.mobile-nav button svg{width:22px;height:22px;display:block;flex-shrink:0}.mobile-nav button.active{background:#005787;color:#fff}.mobile-nav button:focus-visible{outline-offset:-2px}#toast{bottom:calc(95px + env(safe-area-inset-bottom))}}
.earlier-sessions{border-bottom:1px solid var(--line);margin:0 0 20px;padding:0 0 12px}.earlier-sessions>summary{cursor:pointer;font-size:13px;color:var(--muted);padding:8px 0;list-style-position:inside}.earlier-sessions>summary span{font-family:Arial,sans-serif;margin-left:5px;font-size:11px}.earlier-sessions[open]>summary{margin-bottom:12px}.day-finished{padding:28px 0;color:var(--muted);font-size:13px;line-height:1.7}.calendar-now{position:absolute;left:52px;right:0;border-top:2px solid #ff9000;z-index:1;pointer-events:none}.calendar-now:before{content:'';position:absolute;left:-4px;top:-4px;width:6px;height:6px;border-radius:50%;background:#ff9000}.calendar-now>span{position:absolute;right:calc(100% + 6px);top:-9px;background:#000;color:#ffb85d;padding:2px;font-size:11px;font-family:Arial,sans-serif}

@media(max-width:600px){body{padding-bottom:0}.mobile-nav{position:static;left:auto;right:auto;bottom:auto;width:100%;max-width:none;margin:6px 0 0;box-shadow:none}.sticky-tools{padding-top:3px}#toast{bottom:calc(20px + env(safe-area-inset-bottom))}}
.program-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0}.bookmark-filter{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#071b28;border:1px solid var(--line);color:var(--muted);padding:9px 11px;border-radius:6px;font-size:12px;min-height:38px}.bookmark-filter.active{border-color:#0b8dd4;background:#003a59;color:#fff}.bookmark-filter.active svg{fill:currentColor}.layout-toggle{display:flex;gap:3px;padding:3px;background:#071b28;border:1px solid var(--line);border-radius:6px}.layout-toggle button{background:none;color:var(--muted);border:0;border-radius:4px;font-size:12px;padding:7px 12px;min-height:30px}.layout-toggle button.active{background:#005787;color:#fff}.earlier-sessions{border-bottom:0}.earlier-sessions[open]{border-bottom:1px solid var(--line)}.earlier-toggle{border:0;background:none;color:var(--muted);font-size:13px;padding:8px 0;margin:0 0 10px;cursor:pointer}.earlier-toggle span{margin-left:5px;font-size:11px;font-family:Arial,sans-serif}@media(max-width:600px){.program-options{gap:8px}.bookmark-filter{font-size:11px;padding:8px 9px}.layout-toggle button{padding:7px 10px;font-size:11px}}
.program-options{flex-wrap:wrap;justify-content:flex-start;gap:8px}.layout-toggle{margin-left:auto}.filter-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:#071b28;color:var(--muted);font-size:12px}.filter-toggle.active{border-color:#0b8dd4;background:#003a59;color:#fff}.filter-toggle #filterCount:empty{display:none}.filter-toggle #filterCount{font-size:10px;min-width:15px}.filter-panel{padding:13px;border:1px solid var(--line);border-radius:7px;background:#071b28;margin-bottom:16px}.filter-panel .filters{padding-bottom:0}.filter-panel .search{background:#132938}.filter-panel .filters select{min-height:38px}@media(max-width:600px){.filter-toggle{font-size:11px;padding:8px 9px}.filter-panel{padding:11px}.program-options{gap:6px}.layout-toggle button{padding-left:8px;padding-right:8px}}

.program-pane,dialog{overflow-anchor:none}.list-hour .time-group{margin-top:22px}.list-hour .bookmark-row:first-child{border-top:0}

.calendar-scroll{max-height:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior:auto}
/* Prevent iOS focus zoom while preserving user-controlled page zoom. */
.search input{font-size:16px}
.calendar-now .calendar-earlier{position:absolute;right:0;bottom:7px;display:inline-flex;align-items:center;gap:7px;margin:0;padding:5px 8px;border-radius:4px;background:#000d;color:var(--muted);font-size:12px;line-height:1.4;white-space:nowrap;pointer-events:auto}.calendar-earlier .up-arrow{opacity:.55;font-size:13px;font-family:Arial,sans-serif}.calendar-earlier span{margin:0;font-size:inherit;font-family:inherit}.calendar-now .calendar-earlier:hover{color:#fff;background:#071b28}.calendar-scroll:has(.calendar-earlier){padding-top:42px}.finished-earlier>.calendar-earlier{display:inline-flex;align-items:center;gap:7px}
.calendar-frame{position:relative}.calendar-frame:has(.earlier-control-overlay) .calendar-scroll{padding-top:42px}.earlier-control-overlay{position:absolute;top:calc(45px + var(--now-offset) - 7px);left:0;right:0;transform:translateY(-100%);display:flex;justify-content:center;z-index:2;pointer-events:none}.earlier-control-overlay .calendar-earlier,.program-earlier .calendar-earlier,.finished-earlier .calendar-earlier{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:5px 8px;border-radius:4px;background:#000d;color:var(--muted);font-size:12px;line-height:1.4;white-space:nowrap;pointer-events:auto}.program-earlier,.finished-earlier{width:100%;text-align:center}.program-earlier{margin:4px 0 12px}.program-earlier .calendar-earlier:hover,.earlier-control-overlay .calendar-earlier:hover{background:#071b28;color:#fff}
.earlier-control{display:flex;justify-content:center;width:100%;margin:4px 0}.earlier-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin:0;padding:5px 8px;border:0;border-radius:4px;background:none;color:var(--muted);font-size:12px;line-height:1.4;white-space:nowrap}.earlier-action span{margin:0;font-size:inherit;font-family:inherit}.earlier-action .earlier-arrow{display:block;flex:0 0 15px;opacity:.55}.earlier-action:hover{background:#071b28;color:#fff}.earlier-control+.calendar-day{margin-top:8px}.earlier-control+.time-group,.earlier-control+.list-hour .time-group{margin-top:8px}

.download-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 12px;border:1px solid #005787;border-radius:6px;background:#003a59;color:#abd2ea;font-size:12px;font-weight:600;line-height:1.2;white-space:nowrap}.download-button svg{display:block;flex:0 0 18px}.download-button:hover:not(:disabled){background:#005787;color:#fff}
.program-options .bookmark-filter{width:40px;height:40px;min-height:40px;padding:0;flex-shrink:0}.program-options .filter-toggle{min-height:40px}.layout-toggle button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:32px;min-height:32px;padding:6px}.layout-toggle button svg{display:block;width:18px;height:18px;flex-shrink:0}.program-pane>.filter-row{margin:22px 0 8px}
