*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a1a;min-height:100dvh}.status{text-align:center;padding:4rem 1rem;font-size:1.125rem}.status.error{color:#dc2626}.panel-list{max-width:1200px;margin:0 auto;padding:2rem 1rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.card{background:#fff;border:1px solid #e5e5e5;border-radius:12px;overflow:hidden;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px -4px #0000001a}.card-banner{position:relative;aspect-ratio:16 / 9;background:#f0f0f0;overflow:hidden}.card-banner img{width:100%;height:100%;object-fit:cover}.banner-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#e0e7ff,#dbeafe)}.type-badge{position:absolute;top:.5rem;left:.5rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .5rem;border-radius:4px;color:#fff}.type-lecture{background:#2563eb}.type-workshop{background:#16a34a}.type-meetup{background:#9333ea}.type-tournament{background:#dc2626}.type-etc{background:#737373}.card-body{padding:.875rem;display:flex;flex-direction:column;gap:.375rem}.panel-name{font-size:.95rem;font-weight:600;line-height:1.3}.panel-name-th{font-size:.8rem;color:#737373;line-height:1.3}.panel-meta{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.duration{font-size:.75rem;color:#525252;background:#f5f5f5;padding:.15rem .4rem;border-radius:4px}.languages{display:flex;gap:.25rem}.lang-tag{font-size:.65rem;font-weight:600;color:#2563eb;background:#eff6ff;padding:.15rem .35rem;border-radius:3px}.panel-owner{display:flex;align-items:center;gap:.5rem;margin-top:.375rem;padding-top:.5rem;border-top:1px solid #f0f0f0}.owner-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#e5e5e5;flex-shrink:0}.owner-avatar-placeholder{display:inline-block}.owner-name{font-size:.8rem;font-weight:500;color:#525252}@media(max-width:640px){.grid{grid-template-columns:1fr}}
