@font-face{font-family:CMBA;src:url('./assets/hanken.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{font-family:CMBA,system-ui,sans-serif;font-size:16px;color:#172c40;background:#f5f7fa;--ink:#172c40;--secondary:#344a5e;--blue:#123a63;--line:#bdcad5;--paper:#fff;--focus:#96510a;color-scheme:light}
:root[data-text-size="large"]{font-size:20px}
*{box-sizing:border-box}body{margin:0;padding-bottom:calc(6rem + env(safe-area-inset-bottom))}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:var(--blue);text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:#f5d283;color:var(--ink)}input{caret-color:var(--blue)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}p{line-height:1.5}svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip{position:absolute;left:1rem;top:-10rem;padding:1rem;background:white;z-index:30}.skip:focus{top:1rem}
.masthead{background:var(--blue);color:#fff}.masthead-inner{max-width:1000px;margin:auto;padding:1.4rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.masthead h1{font-size:1.75rem;line-height:1.15;font-weight:500}.masthead h1 span{font-weight:800}.masthead p{font-size:1rem;margin-top:.4rem;color:#e4eef7}.text-button{display:flex;gap:.5rem;align-items:center;min-height:48px;padding:.65rem .85rem;border:1px solid #a9bfd2;border-radius:8px;background:transparent;color:#fff;font-weight:650;white-space:nowrap}.text-button>span{font-size:1.3rem}.text-button:hover,.text-button[aria-pressed="true"]{background:#fff;color:var(--blue)}
.app-shell{max-width:1000px;margin:auto;padding:0 1.5rem}.days{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;padding:1rem 0;background:#f5f7fa}.days button{display:grid;gap:.15rem;align-content:center;min-height:5rem;border:1px solid #8199ae;border-radius:8px;background:#fff;color:var(--blue);padding:.6rem .4rem}.days button strong{font-size:1.25rem;font-weight:800}.days button span{font-size:1rem}.days button[aria-pressed="true"]{background:var(--blue);color:white;border-color:var(--blue)}.days button:hover:not([aria-pressed="true"]){background:#e8f1fb}.filters{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1rem;margin-top:.35rem}label{display:grid;gap:.45rem;font-weight:650;font-size:1rem;min-width:0}input,select{min-height:50px;width:100%;max-width:100%;border:1px solid #8199ae;border-radius:8px;padding:.7rem .8rem;background:#fff;color:var(--ink)}input::placeholder{color:#526579;opacity:1}.more-filters{margin:.55rem 0 .3rem}.more-filters summary{width:fit-content;min-height:48px;padding:.65rem 0;color:var(--blue);cursor:pointer;font-weight:650}.more-filters>div{display:flex;gap:.8rem;align-items:end;padding:.4rem 0 1rem}.more-filters label{flex:1}.secondary,.save-button,.empty button{min-height:48px;border:1px solid #54748f;border-radius:8px;background:#fff;color:var(--blue);padding:.65rem .9rem;font-weight:700}.secondary:hover,.save-button:hover{background:#e1edf7}.status-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;border-block:1px solid #d5dee6;padding:.3rem 0}.status-row p{font-size:.9375rem;color:var(--secondary)}.status-row.is-stale{background:#fff3d6;padding:.7rem}.link-button{min-height:48px;background:none;border:0;padding:.5rem;color:var(--blue);text-decoration:underline;text-underline-offset:4px;font-weight:650}.results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:1.8rem 0 1rem}.results-heading h2,#saved-intro h2{font-size:1.5rem;font-weight:800;line-height:1.25}.results-heading>span{color:var(--secondary);font-size:1rem;white-space:nowrap}.time-group{display:grid;grid-template-columns:5.25rem minmax(0,1fr);gap:1rem;margin:0 0 2rem;scroll-margin-top:7rem}.time-heading{font-size:1.25rem;line-height:1.4;font-weight:800;padding-top:1rem;font-variant-numeric:tabular-nums}.activities{display:grid;gap:.85rem}.activity{background:var(--room,#fff);border:1px solid #c8d4df;border-radius:12px;padding:1.15rem 1.25rem;min-width:0;scroll-margin-top:7rem}.activity[data-room="SALA ORION"]{--room:#e8f1fb}.activity[data-room="SALA HYDRA"]{--room:#eef5e7}.activity[data-room="SALA HERCULES"]{--room:#fff1df}.activity[data-room="SALA ARA"]{--room:#f7f3e3}.activity[data-room="SALA LYRA"]{--room:#f1ecf8}.activity-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .8rem;margin-bottom:.7rem}.room-name{font-size:1.125rem;font-weight:800;color:var(--blue)}.activity-time{font-size:1rem;font-weight:650;color:var(--secondary);font-variant-numeric:tabular-nums}.activity h3{font-size:1.25rem;line-height:1.35;font-weight:800;overflow-wrap:anywhere;text-wrap:pretty}.speaker{font-size:1.0625rem;font-weight:500;line-height:1.45;color:var(--secondary);margin-top:.5rem}.module{font-size:1rem;line-height:1.45;color:var(--secondary);margin-top:.9rem}.activity-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}.save-button{display:flex;align-items:center;justify-content:center;gap:.5rem}.save-button[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:white}.save-button[aria-pressed="true"] svg{fill:currentColor}.activity details{font-size:1rem;color:var(--secondary);margin-top:.8rem}.activity summary{min-height:48px;cursor:pointer;padding:.6rem 0;color:var(--blue);font-weight:650}.activity details p{margin:.4rem 0}.activity.is-missing{background:#f2f3f5}.notice,.change-note{background:#fff0ce;color:#633b08;padding:.8rem 1rem;border-radius:8px;margin-top:1rem;line-height:1.45}.change-note{font-weight:650;font-size:1rem}.day-divider{font-size:1.25rem;margin:2rem 0 1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}.empty{padding:2rem 0 3rem;max-width:42rem}.empty h3{font-size:1.3rem;margin-bottom:.7rem}.empty p{color:var(--secondary);margin-bottom:1rem}.empty button{background:var(--blue);color:#fff}.loading{padding:1.5rem 0 3rem;color:var(--secondary)}#saved-intro{padding-top:1.8rem}#saved-intro p{max-width:60ch;margin-top:.6rem;color:var(--secondary)}.help{margin:3rem 0 1.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:1rem;color:var(--secondary)}.help summary{min-height:48px;cursor:pointer;padding:.6rem 0;color:var(--blue);font-weight:700}.help details div{padding:.75rem 0 1.2rem;max-width:65ch}.help p+p{margin-top:.8rem}.help>p{margin-top:.8rem;font-size:.9375rem}.help a{display:inline-block;padding:.65rem 0;min-height:48px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;background:#fff;border-top:1px solid #a8bccd;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav>div{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1fr}.bottom-nav a{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:76px;text-decoration:none;font-size:1.0625rem;font-weight:650;padding:.75rem .5rem;color:var(--secondary)}.bottom-nav a[aria-current="page"]{background:#e8f1fb;color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}.bottom-nav a:hover{background:#f0f5fa}#saved-count:not(:empty){font-weight:800}.feedback{position:fixed;bottom:calc(5.6rem + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 2rem);z-index:20;display:flex;align-items:center;gap:1rem;background:var(--ink);color:#fff;padding:.8rem 1rem;border-radius:12px;box-shadow:0 5px 18px #172c4030}.feedback button{min-height:48px;border:1px solid #b5c9d9;border-radius:8px;background:none;color:#fff;padding:.5rem .7rem;font-weight:700}.feedback:not([hidden]){animation:feedback-in .18s ease-out}@keyframes feedback-in{from{opacity:.7}to{opacity:1}}
@media(max-width:600px){.masthead-inner{padding:1.15rem 1rem;gap:.65rem;flex-wrap:wrap}.masthead h1{font-size:1.5rem}.masthead p{font-size:.9375rem}.text-button{font-size:.9375rem;padding:.5rem .65rem}.app-shell{padding:0 1rem}.filters{grid-template-columns:minmax(0,1fr);gap:.85rem}.days{padding:.85rem 0}.days button{min-height:4.75rem}.days button strong{font-size:1.2rem}.time-group{grid-template-columns:minmax(0,1fr);gap:.5rem;margin-bottom:2rem}.time-heading{padding-top:.35rem}.activity{padding:1rem}.activity-top{display:grid;gap:.25rem}.activity-actions{display:block}.save-button{width:100%}.results-heading{margin-top:1.4rem}.bottom-nav a{gap:.35rem;font-size:1rem;flex-direction:column;min-height:76px;padding:.55rem .35rem}.bottom-nav svg{width:22px;height:22px}.more-filters>div{align-items:stretch;flex-direction:column}.feedback{font-size:1rem}.status-row{align-items:center}.results-heading{flex-wrap:wrap;gap:.35rem}.help{margin-top:2rem}:root[data-text-size="large"] .masthead-inner{display:block}:root[data-text-size="large"] .text-button{margin-top:.8rem}:root[data-text-size="large"] .bottom-nav a{font-size:.9rem}:root[data-text-size="large"] .days button span{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important}}

#saved-intro + .status-row { margin-top: 1rem; }
#schedule > .day-divider:first-child { margin-top: 1.4rem; }
