:root{--bg: #f5f5f7;--card: #ffffff;--text: #1d1d1f;--muted: #6e6e73;--line: #d2d2d7;--bar: #1d1d1f;--ok: #198754;--warn: #ffc107;--none: #0d6efd;--accent: #0071e3;--radius: 18px;--shadow: 0 4px 16px rgba(0, 0, 0, .08);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg)}#root{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;background:var(--bar)}.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;text-decoration:none}.badge img{display:block;height:40px;width:auto}.main{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:24px 16px}.footer{padding:16px;text-align:center;color:var(--muted);border-top:1px solid var(--line)}.section-title{margin:0 0 24px;padding-bottom:16px;font-size:1.5rem;font-weight:500;border-bottom:1px solid var(--line)}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.grid{display:grid;grid-template-columns:1fr;gap:24px}@media(min-width:576px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.report>.grid+.grid,.report>.card-wide+.card-wide{margin-top:24px}.card{display:flex;flex-direction:column;min-width:0;padding:20px;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.card-wide{width:100%}.card-title{margin:0 0 16px;font-size:1rem;font-weight:700}.card-row{display:flex;align-items:center;gap:6px;margin:0 0 12px;overflow-wrap:anywhere}.status{width:18px;height:18px;flex:none}.status-ok circle{fill:var(--ok)}.status-warn path:first-child{fill:var(--warn)}.status-none circle{fill:var(--none)}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:auto;padding-top:12px;color:var(--muted)}.pager button{min-width:36px;min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:1.1rem;cursor:pointer}.pager button:disabled{opacity:.4;cursor:default}.pager button:focus-visible,.button:focus-visible,.photos summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.photos summary{cursor:pointer;font-weight:500;padding:8px 0}.photo{display:block;max-width:100%;max-height:512px;margin-top:8px;border:2px solid var(--line);border-radius:8px}.photo-fallback{color:var(--muted)}.speakers{display:grid;grid-template-columns:1fr;gap:16px;border-top:1px solid var(--line);padding-top:16px}@media(min-width:768px){.speakers{grid-template-columns:1fr 1fr}}.speaker h4{margin:0 0 12px;font-size:1rem}.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.cosmetic-item{margin:0}.cosmetic-item figcaption{font-weight:700}.cosmetic-item .photo{width:100%;aspect-ratio:9 / 16;object-fit:cover}.notice{padding:12px 16px;border-radius:12px;background:#fff3cd}.message{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:560px;margin:48px auto;padding:24px;text-align:center;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.message p{margin:0}.button{padding:10px 20px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:inherit;font-weight:500;cursor:pointer}.button-secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.portal{display:flex;flex-direction:column;align-items:center;gap:16px}.portal .section-title{align-self:stretch}.portal-qr{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.qr{width:320px;height:320px;max-width:100%;background:#fff;border-radius:12px}
