/* Andreas Gundelach / CODEX */
:root{color-scheme:light;--frame-width:100vw;--frame-height:100dvh;--dock:0px;--bg:#eee;--card:#fff;--text:#111;--header:#002856;--header-text:#fff;--nav:#0088cd;--nav-text:#fff;--nav-active:#002856;--nav-active-text:#fff;--favorite:#a80f48;font:14px/1.4 system-ui;background:#f2f2f2;color:var(--text)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:2px}a{color:inherit}button{border:0}button[hidden],[hidden]{display:none!important}button:disabled{opacity:.5}.boot-loader{height:100dvh;display:grid;place-items:center;color:#1688b8}.aikata-a{width:70px;height:70px;animation:turn 1.3s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.main-area{width:var(--frame-width);height:var(--frame-height);position:relative;display:flex;flex-direction:column;margin:auto;background:var(--bg);overflow:hidden;isolation:isolate}.pwa-header{display:flex;align-items:center;justify-content:space-between;min-height:48px;max-height:48px;background:var(--header);color:var(--header-text);flex:none}.header-brand{height:48px;min-width:0;display:flex;align-items:center;gap:9px;padding:0 10px}.header-brand img{height:48px;max-width:min(480px,75vw);width:auto;object-fit:contain;object-position:left center}.header-brand svg{width:27px;height:27px;fill:currentColor}.header-brand strong{font-size:14px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-actions{display:flex;height:48px;align-items:center;flex:none}.header-actions button{background:none;color:inherit;width:43px;height:43px;position:relative;font-size:23px}.count-badge{position:absolute;right:3px;top:2px;font-size:9px;background:#a80f48;color:#fff;min-width:15px;border-radius:10px;padding:1px 3px}.pwa-main{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;position:relative}.view-toolbar{display:flex;gap:8px;align-items:center;padding:8px;flex:none;border-bottom:1px solid #bbb;background:var(--bg);min-height:49px}.view-toolbar input{flex:1;min-width:0;padding:6px 8px;border:1px solid #aaa;border-radius:3px;background:#fff;color:#222;height:32px}.view-toolbar button{height:32px;min-width:32px;border-radius:3px;background:var(--nav);color:var(--nav-text);font-size:18px;padding:2px 7px}.view-toolbar button.active{background:var(--nav-active);color:var(--nav-active-text)}.view-toolbar .back{display:flex;gap:4px;align-items:center;font-size:12px;min-width:64px}.page-scroll{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:8px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:12px;align-content:start}.visitor-card{display:grid;grid-template-columns:30% minmax(0,1fr) 30px;min-height:120px;border-radius:4px;background:var(--card);color:var(--text);padding:9px 8px;position:relative;align-items:start;text-decoration:none;gap:8px}.visitor-card .list-image{width:100%;height:99px;object-fit:contain;align-self:center}.visitor-card .list-image.cover{object-fit:cover}.visitor-card .card-copy{min-width:0}.visitor-card h2{font-size:14px;font-weight:500;line-height:1.4;text-transform:uppercase;margin:0 0 6px;overflow-wrap:anywhere}.visitor-card p{font-size:11px;margin:0;white-space:pre-line}.favorite{background:none;color:var(--favorite);padding:0;font-size:29px;line-height:1;width:29px;height:30px}.visitor-card .status-note{grid-column:1/-1;font-size:11px;padding:5px 7px;border-radius:3px;background:#fff0c9;color:#332a12;white-space:pre-line}.attendance{display:inline-flex;align-items:center;gap:5px;font-size:10px;margin-top:5px}.attendance i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#999}.attendance.green i{background:#319e62}.attendance.yellow i{background:#d8ad22}.attendance.red i{background:#dc514b}.pwa-nav{background:var(--nav);color:var(--nav-text);flex:none;z-index:20;box-shadow:0 -1px 3px #0002}.nav-grid{display:grid;grid-template-columns:repeat(var(--nav-columns,5),minmax(0,1fr))}.nav-grid button{background:var(--nav);color:var(--nav-text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;padding:5px 3px;font-size:10px;text-transform:uppercase;overflow-wrap:anywhere}.nav-grid button.active{background:var(--nav-active);color:var(--nav-active-text)}.nav-grid .nav-symbol{font-size:23px;line-height:1;height:26px}.nav-extra{overflow:hidden;max-height:0;transition:max-height .3s ease}.pwa-nav.expanded .nav-extra{max-height:400px}.backdrop{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .3s;z-index:100}.backdrop.open{opacity:.65;pointer-events:auto}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(430px,100%);background:var(--menu-bg,var(--header));color:var(--menu-text,#fff);transform:translateX(100%);visibility:hidden;transition:transform .3s ease,visibility 0s .3s;z-index:101;display:flex;flex-direction:column}.drawer.open{transform:translateX(0);visibility:visible;transition-delay:0s}.drawer-heading{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid #ffffff40}.drawer-heading h2{font-size:15px;margin:0}.drawer-heading button{background:none;color:inherit;font-size:24px}.drawer-content{padding:8px 14px;overflow:auto;flex:1}.drawer-content>button,.drawer-content>a{display:block;width:100%;padding:14px 4px;background:none;color:inherit;text-align:left;text-decoration:none;border-bottom:1px solid #ffffff35;font-size:14px}.drawer-footer{padding:12px 18px;font-size:10px;opacity:.6}.sheet{position:absolute;left:50%;bottom:0;width:min(960px,100%);max-height:88%;display:flex;flex-direction:column;transform:translate(-50%,100%);visibility:hidden;transition:transform .35s ease,visibility 0s .35s;background:var(--bg);color:var(--text);z-index:102;border-radius:6px 6px 0 0;overflow:hidden}.sheet.open{transform:translate(-50%,0);visibility:visible;transition-delay:0s}.sheet .drawer-heading{background:var(--header);color:var(--header-text)}.sheet-scroll{padding:14px;overflow:auto;min-height:0}.filter-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 18px}.filter-groups label{display:flex;gap:9px;padding:10px 1px;border-bottom:1px solid #9996;align-items:flex-start;min-height:40px}.filter-groups label.divider{border-bottom:3px solid #888;grid-column:1/-1}.filter-groups input{margin-top:4px;accent-color:var(--nav)}.filter-actions{display:flex;gap:8px;padding:12px;border-top:1px solid #aaa4}.filter-actions button{padding:8px 13px;background:var(--nav);color:var(--nav-text);border-radius:4px}.detail{max-width:960px;margin:auto;padding:12px 16px 25px;width:100%}.detail h1{font-size:22px;line-height:1.25;font-weight:500;text-transform:uppercase;margin:12px 0}.detail-hero{display:block;max-height:32dvh;max-width:min(640px,100%);width:auto;height:auto;object-fit:contain;margin:0 auto 18px}.detail .richtext{max-width:78ch;overflow-wrap:anywhere}.richtext img{max-width:100%;height:auto}.richtext table{display:block;overflow:auto;max-width:100%}.richtext pre{white-space:pre-wrap;overflow-wrap:anywhere}.detail .tag{display:inline-flex;border-radius:4px;background:#0001;padding:3px 7px;font-size:10px;margin:3px}.detail-actions{display:flex;gap:9px;align-items:center;margin:14px 0}.detail-actions button{padding:8px 11px;border-radius:4px;background:var(--nav);color:var(--nav-text)}.detail-status{padding:10px 13px;border-radius:4px;margin:8px 0 16px;background:#fff0c9;color:#332a12;white-space:pre-line}.timetable-list{max-width:1100px;margin:auto}.day-title{position:sticky;top:-8px;padding:11px;background:var(--header);color:var(--header-text);font-size:15px;margin:0 0 8px;z-index:2}.slot-row{display:grid;grid-template-columns:90px minmax(0,1fr) 30px;gap:9px;background:var(--card);padding:12px;margin-bottom:8px;border-radius:4px;text-decoration:none;align-items:start}.slot-row time{font-size:12px;font-weight:600}.slot-row h3{font-size:14px;margin:0 0 4px;text-transform:uppercase}.slot-row p{font-size:11px;margin:0}.map-area{flex:1;min-height:0;position:relative}.map-area>.aikata-map{width:100%;height:100%}.embed-frame{width:100%;flex:1;min-height:0;border:0;background:var(--bg)}.info-links{display:grid;gap:8px;max-width:960px;margin:0 auto}.info-links button{padding:18px;background:var(--card);color:var(--text);border-radius:4px;text-align:left;font-size:15px}.message-card{padding:12px;margin:8px 0;border-bottom:1px solid #8885;cursor:pointer}.message-card h3{font-size:14px;margin:0 0 6px}.message-card p{font-size:12px;white-space:pre-line}.message-card time{font-size:10px;opacity:.7}.empty{padding:40px 18px;text-align:center;color:#777}.offline-note{position:absolute;left:0;right:0;top:0;padding:4px 8px;background:#ffdc91;color:#3a2f17;z-index:40;font-size:10px;text-align:center}.error-screen{padding:30px;max-width:700px;margin:auto}.error-screen a{display:inline-block;margin-top:15px;color:#0675a6}.view-switch{position:fixed;right:0;bottom:0;height:44px;background:#172536;color:#edf4ff;z-index:2000;border-radius:7px 0 0 0;display:none;align-items:center;gap:5px;padding:5px 10px;font-size:12px;border:1px solid #3b506b}.view-switch button{height:32px;padding:5px 9px;background:none;border:1px solid transparent;border-radius:4px;color:inherit}.view-switch button[aria-pressed=true]{background:#304966;border-color:#7590ae}.view-switch span{color:#b9cce0;margin-right:5px}html[data-view=portrait]{--frame-width:min(430px,100vw)}html[data-view=portrait] .card-grid{grid-template-columns:1fr}#toast{position:fixed;top:56px;right:15px;max-width:90vw;background:#173850;color:#fff;z-index:3000;border:1px solid #5a97ba;border-radius:5px;padding:10px 15px;font-size:12px}.print-only{display:none}@media(min-width:720px) and (hover:hover) and (pointer:fine){:root{--dock:44px;--frame-height:calc(100dvh - 44px)}.view-switch{display:flex}html[data-view=portrait]{--frame-width:min(430px,100vw,max(280px,calc(var(--frame-height)*.51)))}}@media(max-height:450px) and (min-width:600px){.pwa-header,.header-brand,.header-brand img{min-height:40px;max-height:40px;height:40px}.header-actions{height:40px}.nav-grid button{min-height:48px;font-size:9px}.nav-grid .nav-symbol{font-size:19px;height:22px}}@media(prefers-reduced-motion:reduce){.aikata-a{animation:none}.drawer,.sheet,.backdrop,.nav-extra{transition:none!important}}@media print{body{overflow:visible}.main-area{height:auto;width:100%;overflow:visible}.pwa-header,.pwa-nav,.view-toolbar,.view-switch,.backdrop,.sheet,.drawer,.favorite,.detail-actions{display:none!important}.pwa-main,.page-scroll{height:auto;overflow:visible;display:block}.slot-row,.visitor-card{break-inside:avoid;box-shadow:none;border-bottom:1px solid #ccc}.day-title{position:static}.print-only{display:block}}

.nav-symbol img{width:1.35em;height:1.35em;object-fit:contain}.nav-extra{overflow:auto}.pwa-nav.expanded .nav-extra{max-height:55dvh}

.visitor-card.act-card{background:var(--program-card,var(--card))}
