:root{color-scheme:light;--green:#008344;--green-dark:#006b37;--ink:#163a2b;--muted:#677268;--line:#e5e9e1;--cream:#fff8ed}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;background:var(--cream);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:500;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input{font:inherit}
button,a,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
a{color:var(--green-dark);text-underline-offset:4px}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.55}
[hidden]{display:none!important}
button:focus-visible,a:focus-visible,input:focus-visible,.file-button:has(+input:focus-visible){outline:3px solid #bb742f;outline-offset:4px}
.page{max-width:680px;margin:0 auto;padding:48px 24px 20px}
.event-header{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:28px;padding:0 4px}
.event-header>div{min-width:0}
.event-organizer{font-size:.875rem;color:var(--green-dark);font-weight:750;margin-bottom:10px}
h1{font-size:clamp(1.8rem,5vw,2.25rem);line-height:1.16;letter-spacing:-.035em;font-weight:800;margin:0;overflow-wrap:break-word}
.event-date{color:#89512e;font-size:.9375rem;font-weight:650;margin:10px 0 0}
.logo{max-width:100px;max-height:116px;object-fit:contain;flex-shrink:0}
.upload-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 10px 32px #28392308}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}
h2{font-size:1.2rem;font-weight:750;line-height:1.35;letter-spacing:-.015em;margin:0}
.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 18px 28px;border:1.5px dashed #cbd8ca;border-radius:12px;background:#f7faf5;transition:border-color .15s,background .15s}
.dropzone.dragging{background:#edf6e9;border-color:var(--green)}
.upload-icon{display:block;color:var(--green);margin-bottom:22px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;border:1px solid var(--green);border-radius:9px;padding:13px 24px;background:var(--green);color:#fff;font-size:1rem;font-weight:750;text-decoration:none;cursor:pointer;transition:background .15s}
.button:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}
.file-button{min-width:220px}
.file-button[aria-disabled=true]{background:#e6ece2;border-color:#e6ece2;color:#707a6e;cursor:default}
.wide{width:100%}
.secondary{margin-top:10px;background:#fff;color:var(--green-dark);border-color:#d2ddd0}
.secondary:hover:not(:disabled){background:#f0f5ed;color:var(--green-dark);border-color:#b9cdb7}
.formats{font-size:.875rem;color:var(--muted);margin:14px 0 0;font-weight:550}
.notice{font-size:.875rem;font-weight:600;border-radius:9px;background:#fff4d8;color:#755328;padding:12px 14px;margin:0 0 18px;line-height:1.5}
.notice.error{background:#fff0eb;color:#a63b27}
.notice.success{background:#ecf6e8;color:#22623c}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.queue-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}
.queue-heading h2{font-size:1rem}
.text-button{border:0;background:transparent;color:var(--green-dark);font-size:.875rem;font-weight:650;text-decoration:underline;text-underline-offset:4px;padding:8px 0}
.queue{padding:0;margin:6px 0 18px;list-style:none;max-height:340px;overflow:auto}
.file-row{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.thumb{width:48px;height:48px;object-fit:cover;border-radius:8px;background:#eef2ea;color:#6d7869;display:grid;place-items:center;font-size:.75rem;font-weight:700}
.file-name{font-size:.875rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-meta{font-size:.75rem;color:var(--muted);margin-top:2px}
.file-state{font-size:.8125rem;color:#586f57;overflow-wrap:anywhere;margin-top:2px}
.file-state.failed{color:#a63b27}
.file-state.done{color:var(--green-dark);font-weight:650}
.remove{border:0;background:transparent;font-size:1.35rem;color:#7c8978;padding:3px}
.progress{width:100%;height:5px;border:0;margin-top:7px;border-radius:4px;accent-color:var(--green);background:#edf0ec}
.progress::-webkit-progress-bar{background:#edf0ec;border-radius:4px}
.progress::-webkit-progress-value{background:var(--green);border-radius:4px}
.overall{font-size:.875rem;font-weight:600;color:#536a52;margin-bottom:15px}
.keep-open{font-size:.8125rem;color:var(--muted);text-align:center;margin:14px 0 0}
footer{display:flex;justify-content:center;padding:0 24px 24px;font-size:.8125rem;color:var(--muted)}
.brand{display:flex;align-items:center;justify-content:center;padding:30px 24px 18px}
.brand-name{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.03em;color:var(--green-dark)}
.brand-place{display:block;font-size:.75rem;font-weight:750;text-align:center;letter-spacing:.22em;margin-top:3px;color:#89512e}
.admin-page{max-width:750px;margin:0 auto;padding:16px 24px 50px}
.admin-page h1{font-size:2rem}
.admin-page .upload-card{margin:22px 0}
.admin-info{font-size:.9375rem;color:var(--muted)}
.admin-info code{font-size:.8125rem;overflow-wrap:anywhere}
.field{display:grid;gap:7px;margin:18px 0}
.field label{font-size:.9375rem;font-weight:650}
input[type=password]{width:100%;min-height:48px;border:1px solid #cbd8ca;border-radius:8px;padding:11px;background:#fff;color:var(--ink)}
.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}
.admin-actions .button{margin:0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}
.stat{padding:16px;background:#f6f8f2;border-radius:10px}
.stat strong{display:block;font-size:1.7rem;font-weight:800}
.stat span{font-size:.8125rem;color:var(--muted)}
.logo-admin{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:20px 0}
.logo-admin img{max-width:140px;max-height:90px;object-fit:contain}
.top-link{display:inline-block;font-size:.875rem;margin-bottom:18px}
.logout-row{display:flex;justify-content:space-between;align-items:center;gap:15px}
.file-upload-label{display:block;margin:15px 0;font-size:.875rem}
.file-upload-label input{display:block;margin-top:9px;width:100%}
@media(max-width:550px){.page{padding:28px 16px 18px}.event-header{gap:16px;padding:0 2px;margin-bottom:24px}.event-header h1{font-size:1.8rem}.event-organizer{font-size:.8125rem;margin-bottom:8px}.event-date{font-size:.875rem;margin-top:8px}.logo{max-width:76px;max-height:96px}.upload-card{padding:22px 20px;border-radius:15px}.card-top{margin-bottom:17px}.dropzone{padding:28px 14px 25px}.file-button{min-width:0;width:100%}.upload-icon{margin-bottom:20px}.stats{grid-template-columns:1fr}.admin-page .upload-card{padding:20px}.admin-actions .button{width:100%}.queue-heading{align-items:flex-start}.queue-heading h2{padding-top:8px}.admin-page h1{font-size:1.7rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
