:root{--app-width: 480px;--page-bg: #f0f0f0;--surface: #fff;--text: #222;--muted: #666;--border: #dedede;--accent: #333;--danger: #b00020;--radius: 14px;--gap: 16px;--focus: 2px solid #333;--admin-width: 560px;font-family:system-ui,sans-serif;color:#222;background:#fff}body{margin:0}@media(max-width:767px){html.home-snap-up,html.home-snap-down{scroll-snap-type:y mandatory}.scroll-anchor{height:0}.scroll-anchor-top{position:absolute;top:0;left:0}html.home-snap-up .scroll-anchor-top,html.home-snap-down .scroll-anchor:not(.scroll-anchor-top){scroll-snap-align:start}}main{min-height:100vh;min-height:100dvh;padding:calc(70px + env(safe-area-inset-top)) 0 96px;box-sizing:border-box;text-align:center}h1{font-size:1.5rem}.desktop-message{display:none}.announcements{position:relative;width:100%;text-align:left}.carousel-viewport{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.carousel-viewport::-webkit-scrollbar{display:none}.carousel-viewport:focus-visible{outline:2px solid #222;outline-offset:-2px}.announcement{position:relative;flex:0 0 100%;min-width:0;min-height:320px;height:min(100vw,440px);scroll-snap-align:start;background:#d5d5d5}.announcement-image{display:grid;place-items:center;height:100%;color:#555;background:#d5d5d5}.announcement-content{position:absolute;inset:auto 0 0;padding:56px 20px 40px;color:#fff;background:linear-gradient(transparent,#000c)}.announcement-content h3{margin:0;font-size:1.1rem}.announcement-content p{margin:8px 0 0}.carousel-indicator{position:absolute;bottom:16px;left:0;right:0;display:flex;justify-content:center;gap:6px;pointer-events:none}.indicator-bar{width:28px;height:4px;border-radius:2px;background:#ffffff80}.indicator-bar.active{background:#fff}.search-row{position:sticky;top:0;z-index:2;display:flex;align-items:stretch;gap:8px;padding:12px 16px;background:#fff}.search-field{display:flex;flex:1;min-width:0;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:1px solid #dedede;border-radius:12px;color:#666;background:#f7f7f7}.search-field input{width:100%;min-width:0;border:0;outline:0;color:#666;background:transparent;font:inherit;opacity:1;-webkit-text-fill-color:#666}.search-field:focus-within{outline:2px solid #555;outline-offset:2px}.search-empty{margin:24px 16px;text-align:center;color:#555}.filter-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:1px solid #dedede;border-radius:12px;color:#333;background:#fff;font:inherit;font-size:.875rem;opacity:1}.filter-panel{margin:0 16px 16px;padding:16px;border:1px solid #dedede;border-radius:14px;background:#fff;text-align:left}.filter-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.filter-heading h2{margin:0;font-size:1.1rem}.filter-reset{min-height:44px;border:0;background:transparent;color:#333;font:inherit}.filter-panel fieldset{margin:16px 0 0;padding:0;border:0}.filter-panel legend{margin-bottom:8px;font-weight:600}.filter-options{display:flex;flex-wrap:wrap;gap:8px}.filter-option{position:relative}.filter-option input{position:absolute;opacity:0}.filter-option span{display:flex;align-items:center;min-height:40px;padding:0 12px;border:1px solid #c9c9c9;border-radius:20px}.filter-option input:checked+span{color:#fff;border-color:#333;background:#333}.filter-option input:focus-visible+span{outline:2px solid #333;outline-offset:2px}.filter-reset{margin-top:8px;padding:0;text-decoration:underline}.event-list{min-height:calc(100dvh - 144px)}.event-card{position:relative;isolation:isolate;margin:16px 16px 0;overflow:hidden;border:1px solid #e2e2e2;border-radius:14px;text-align:left;background:#fff}.event-poster{position:relative;display:grid;place-items:center;aspect-ratio:16 / 9;color:#555;background:#e4e4e4}.event-favorite{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;color:#333;background:#fff;opacity:1;z-index:1}.event-details{padding:16px}.event-details h2{margin:0 0 10px;font-size:1.1rem}.event-details p{margin:5px 0;color:#555}.event-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.event-tags span{padding:4px 9px;border-radius:12px;background:#ededed;font-size:.8rem}.event-open{padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:inherit;text-align:left;cursor:pointer}.event-open:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.event-open:focus-visible{outline:2px solid #222;outline-offset:3px}.event-favorite:focus-visible{outline:2px solid #222;outline-offset:2px}.event-page{margin:-70px 0 0;text-align:left}.event-back{min-height:48px;margin:12px 16px;border:0;background:transparent;font:inherit}.event-page .event-details h1{margin:0 0 10px}[hidden]{display:none!important}.mobile-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.logo-placeholder{font-weight:600}.settings-button{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:#222}.bottom-nav{position:fixed;z-index:3;inset:auto 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 0 calc(8px + env(safe-area-inset-bottom));border-top:1px solid #dedede;background:#fff}.bottom-nav button{display:flex;min-width:0;min-height:48px;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:transparent;color:#666;font:inherit;font-size:.75rem}.bottom-nav button[aria-current=page]{color:#222;font-weight:600}.bottom-nav button svg{flex-shrink:0}@media(min-width:768px)and (min-height:541px){main:not(.admin){display:grid;place-items:center;padding:24px}.mobile-header,.bottom-nav{display:none}main:not(.admin) :is(.calendar-header,.development-page,.announcements,.search-row,.filter-panel,.event-list,.event-card,.event-page,.calendar-grid-frame,.day-view){display:none}.desktop-message{display:block}}@media(max-width:767px){.development-page{padding:32px 16px}}.development-page p{color:#666}.calendar-search-row{padding-top:2px;padding-bottom:4px}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px}.month-navigation{display:flex;align-items:center;justify-content:flex-start;gap:0}.month-navigation h2{position:relative;top:2px;margin:0;font-size:1.1rem;text-transform:capitalize}.month-navigation button{width:44px;height:44px;border:0;background:transparent;color:#222;font-size:2rem;line-height:1}.month-navigation button:focus-visible{outline:2px solid #222;outline-offset:2px}.calendar-year{font-size:1.1rem;font-weight:600}.calendar-grid-frame{margin:8px 16px 0;overflow:hidden;border:1px solid #dedede;border-radius:14px;background:#f7f7f7}.calendar-grid{width:100%;height:calc(100dvh - 260px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-collapse:collapse;table-layout:fixed}.calendar-grid th{padding:8px 0 2px;border-right:1px solid #e5e5e5;color:#666;font-size:.8rem;font-weight:500;text-transform:uppercase}.calendar-grid td{height:114px;padding:6px 2px;border-right:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;vertical-align:top;text-align:center;font-size:.95rem}.calendar-grid th:last-child,.calendar-grid td:last-child{border-right:0}.calendar-grid tbody tr:last-child td{border-bottom:0}.calendar-grid .other-month{color:#aaa}.calendar-event{margin-top:4px;padding:3px 2px;overflow:hidden;border-radius:4px;background:#d2d2d2;color:#333;font-size:.65rem;text-align:left;text-overflow:ellipsis;white-space:nowrap}.calendar-grid td{padding:0}.calendar-day-button{display:flex;flex-direction:column;align-items:center;width:100%;min-height:126px;padding:6px 2px;box-sizing:border-box;border:0;color:inherit;background:transparent;font:inherit;cursor:pointer}.calendar-day-button:focus-visible,.day-strip button:focus-visible{outline:2px solid #555;outline-offset:-2px}.calendar-today{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:50%;color:#fff;background:#555}.calendar-event{display:block;width:100%;box-sizing:border-box}.day-view{padding:0 16px;text-align:left}.day-back{min-height:44px;padding:0;border:0;background:transparent;color:#333;font:inherit}.day-strip{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.day-strip::-webkit-scrollbar{display:none}.day-strip button{display:flex;flex:0 0 44px;min-height:64px;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid transparent;border-radius:12px;background:transparent;color:#333;font:inherit}.day-strip button[aria-pressed=true]{border-color:#555}.day-strip button span:first-child{color:#666;font-size:.75rem}.day-view h1{margin:20px 0 0;font-size:1.2rem}.event-status{display:inline-block;margin-bottom:10px;padding:4px 9px;border-radius:12px;background:#ededed;color:#333;font-size:.8rem}.event-poster img,.announcement-image img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.announcement{cursor:pointer}.event-description{white-space:pre-line}main.admin{padding:calc(16px + env(safe-area-inset-top)) 0 32px;text-align:left}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px}.admin-header h2{margin:0;font-size:1.1rem}.admin-tabs{display:flex;gap:8px;padding:12px 16px}.admin-tabs button{flex:1;min-height:40px;border:1px solid #c9c9c9;border-radius:20px;color:#222;background:#fff;font:inherit}.admin-tabs button[aria-pressed=true]{color:#fff;border-color:#333;background:#333}.admin-tabs button:focus-visible{outline:2px solid #333;outline-offset:2px}.admin-form{margin-top:16px}.admin-form h1{margin:0 0 8px}.admin-form fieldset{margin:16px 0 0;padding:0;border:0}.admin-field{display:block;margin-top:12px}.admin-field>span{display:block;margin-bottom:6px;font-weight:600;font-size:.9rem}.admin-field .search-field{color:#222}.admin-field input,.admin-field select,.admin-field textarea{width:100%;min-width:0;min-height:46px;border:0;outline:0;color:#222;background:transparent;font:inherit;box-sizing:border-box}.admin-field textarea{padding:12px 0;resize:vertical}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.admin-actions .filter-button,.admin-header .filter-button{min-height:44px}.admin-primary{color:#fff!important;border-color:#333!important;background:#333!important}.admin-error{color:#b00020}.admin-card .event-open{display:block;width:100%}.admin-form{display:grid;gap:16px}.admin-form>*{margin:0}.admin-form .search-field,.admin-form .admin-field>.search-field{border-radius:14px}.admin-field{margin-top:0}.admin-form fieldset,.admin-form details{margin:0;padding:0;border:0}.admin-form legend,.admin-form summary{margin-bottom:8px;font-weight:600;font-size:.9rem}.admin-form summary{cursor:pointer;color:#555}.admin-form details[open]>summary{margin-bottom:12px}.admin-form .filter-options{margin:0}.admin-actions{margin-top:8px;gap:12px}.admin-actions .filter-button,.admin-header .filter-button,.admin-form .filter-button{border-radius:14px;min-height:44px;padding:0 16px}.admin-tabs button{border-radius:14px}.poster-field{display:grid;gap:12px}.poster-preview{width:100%;max-width:240px;max-height:240px;object-fit:cover;border:1px solid #dedede;border-radius:14px}.poster-field input[type=file]{width:100%;box-sizing:border-box;padding:6px;border:1px solid #dedede;border-radius:14px;color:#555;background:#fff;font:inherit}.poster-field input[type=file]::file-selector-button{margin-right:12px;min-height:36px;padding:0 16px;border:0;border-radius:10px;color:#fff;background:#333;font:inherit;cursor:pointer}.poster-field input[type=url]{width:100%;box-sizing:border-box;min-height:46px;padding:0 16px;border:1px solid #dedede;border-radius:14px;color:#222;background:#fff;font:inherit}.poster-field input[type=url]:focus-visible{outline:2px solid #555;outline-offset:2px}.admin-form .filter-option span{border-radius:14px}.markdown>*{margin:0 0 12px}.markdown>:last-child{margin-bottom:0}.markdown h3,.markdown h4,.markdown h5{font-size:1rem}.markdown ul,.markdown ol{padding-left:22px}.markdown blockquote{padding-left:12px;border-left:3px solid #dedede;color:#555}.markdown code{padding:1px 5px;border-radius:6px;background:#f0f0f0}.markdown pre{overflow-x:auto;padding:12px;border-radius:14px;background:#f0f0f0}.markdown pre code{padding:0;background:none}.markdown a{color:#1a56c4}.md-examples{display:grid;gap:12px}.md-example{display:grid;gap:8px;padding:12px;border:1px solid #dedede;border-radius:14px}.md-example pre{margin:0;white-space:pre-wrap;padding:10px 12px;border-radius:10px;background:#f0f0f0;font-size:.85rem}.md-result-label{color:#777;font-size:.8rem}.md-help-link{display:inline-flex;align-items:center;justify-self:start;min-height:44px;padding:0 16px;border:0;border-radius:12px;background:#ececec;color:#555;font:inherit;text-decoration:none;cursor:pointer}.markdown img{max-width:100%;height:auto;border-radius:14px}.markdown hr{width:100%;border:0;border-top:1px solid #dedede}.markdown code.copy-code{display:inline-block;padding:1px 8px;border:1px solid #bdbdbd;border-radius:8px;background:#f5f5f5;cursor:pointer}.markdown code.copy-code:hover{background:#e9e9e9}.confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:16px;background:#0006}.confirm-dialog{width:100%;max-width:420px;display:grid;gap:12px;border-radius:14px;background:#fff}.confirm-dialog>*{margin:0}.poster-default{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.filter-button,.filter-reset,.md-help-link,.admin-tabs button,.event-back,.day-back{cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.filter-button:hover:not(:disabled){border-color:#999;background:#f3f3f3}.admin-primary:hover:not(:disabled){background:#000!important}.filter-button:focus-visible,.filter-reset:focus-visible,.md-help-link:focus-visible,.event-back:focus-visible,.day-back:focus-visible{outline:var(--focus);outline-offset:2px}.filter-button:disabled,.admin-tabs button:disabled{cursor:not-allowed;opacity:.45}.admin-tabs button:hover:not([aria-pressed=true]){background:#f3f3f3}.md-help-link:hover{background:#e2e2e2}.admin-field .search-field:has(:invalid:not(:placeholder-shown)),.admin-field .search-field:has(input:user-invalid){border-color:var(--danger)}.admin-error{margin:0;padding:10px 12px;border-radius:10px;background:#fdecee;font-size:.9rem}.search-field{overflow:hidden}main.admin{max-width:var(--admin-width);overflow-x:hidden}.admin-split{display:block}.admin-editor{display:block;min-width:0}.admin-preview{display:none}.admin-split.editing>.admin-list{display:none}.admin-split:not(.editing)>.admin-editor{display:none}.admin-card{display:grid;gap:8px;padding-bottom:12px}.admin-card .event-open{padding-bottom:0}.admin-move{display:flex;gap:8px;padding:0 16px}.admin-move .filter-button{min-height:40px;min-width:44px;padding:0 12px}.admin-field input[type=datetime-local]{min-width:0;max-width:100%}.admin-form select{text-overflow:ellipsis}.md-example pre,.markdown pre{max-width:100%}.md-examples,.md-example{min-width:0}@media(min-width:768px){main.admin{max-width:760px;margin:0 auto;padding:24px 24px 48px}}.admin-filters{display:grid;gap:10px;padding:12px 16px 0}.admin-filters .search-field input{min-width:0;width:100%}.admin-chips{display:flex;flex-wrap:wrap;gap:8px}.admin-chips button{min-height:36px;padding:0 12px;border:1px solid #c9c9c9;border-radius:14px;color:#222;background:#fff;font:inherit;font-size:.9rem;cursor:pointer}.admin-chips button[aria-pressed=true]{color:#fff;border-color:#333;background:#333}.preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}.preview-frame{display:grid;gap:8px;max-width:var(--app-width);margin:0 auto;padding:0 0 24px;text-align:left;background:var(--surface)}.preview-frame>.md-result-label{padding:8px 16px 0}.preview-frame .event-page{margin:0}.admin-preview.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;overflow-y:auto;background:var(--page-bg)}.admin-tabs{flex-wrap:wrap}.admin-tabs button{flex:1 1 auto;padding:0 12px}.admin-header-actions{display:flex;align-items:center;gap:4px}@media(min-width:768px)and (max-height:540px){.announcement{min-height:0;height:70dvh}}.favorite-tabs{padding:16px 16px 0;justify-content:center}
