*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #f59e0b;--bg: #ffffff;--text: #111111;--muted: #6b7280;--border: #e5e7eb;--radius: 8px}@media(prefers-color-scheme:dark){:root{--bg: #111111;--text: #f9fafb;--muted: #9ca3af;--border: #374151}}body{font-family:system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100dvh;-webkit-text-size-adjust:100%}.page{max-width:640px;margin:0 auto;padding:1.5rem 1rem 4rem}.page--center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;gap:1.5rem}h1{font-size:1.5rem;font-weight:700;margin-bottom:1.25rem}.status{color:var(--muted);text-align:center;padding:2.5rem 0;font-size:1rem}.status.error{color:#ef4444}.empty{color:var(--muted);text-align:center;padding:3rem 0}.scroll-sentinel{height:1px}.load-more-spinner{text-align:center;padding:1.5rem 0;color:var(--muted);font-size:.875rem}.not-found{text-align:center;padding:4rem 1rem;color:var(--muted)}.upload{margin-bottom:1.25rem}.upload__input{display:none}.upload__btn{display:block;width:100%;padding:1.25rem;font-size:1.125rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer;min-height:64px;transition:opacity .15s}.upload__btn:disabled{opacity:.7;cursor:default}.grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.grid__item{aspect-ratio:1;padding:0;border:none;background:var(--border);cursor:pointer;overflow:hidden;border-radius:4px}.grid__thumb{width:100%;height:100%;object-fit:cover;display:block}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:100}.lightbox__img{max-width:100%;max-height:100dvh;object-fit:contain}.lightbox__close{position:fixed;top:1rem;right:1rem;width:44px;height:44px;border:none;background:#ffffff26;color:#fff;font-size:1.25rem;border-radius:50%;cursor:pointer;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.25rem;min-height:48px;font-size:1rem;font-weight:600;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);cursor:pointer}.btn--sm{min-height:36px;padding:.5rem .875rem;font-size:.875rem}.btn--secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.btn--danger{background:#ef4444}.input{display:block;width:100%;padding:.75rem 1rem;font-size:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.login-form{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.shake{animation:shake .4s ease}.new-event-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.row{display:flex;gap:.5rem}.events-list{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.event-row{border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.event-row__name{font-weight:600;font-size:1.125rem}.event-row__id{color:var(--muted);font-size:.875rem;margin-bottom:.75rem}.event-row__controls{display:flex;flex-direction:column;gap:.5rem}.event-row__confirm-text{font-size:.875rem;color:var(--muted);align-self:center}.toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;min-height:36px;-webkit-user-select:none;user-select:none}.toggle input{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:var(--accent)}
