/* LINE login (LIFF) page: views/frontend/line_liff */
.line-liff-page { margin: 0; padding: 24px 16px; background: #f5f7f6; color: #202723; font: 16px/1.7 -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif; }
.line-liff-card { box-sizing: border-box; max-width: 560px; margin: 5vh auto; padding: 28px; border-radius: 16px; background: #fff; text-align: center; box-shadow: 0 6px 28px #132b1710; }
.line-liff-card h1 { margin-top: 0; font-size: 24px; }
.line-liff-card [hidden] { display: none !important; }
.line-liff-button, .line-liff-secondary { box-sizing: border-box; display: block; width: 100%; margin: 16px 0; padding: 14px 18px; border: 0; border-radius: 8px; background: #06c755; color: #fff; text-decoration: none; font: inherit; font-weight: 700; cursor: pointer; }
.line-liff-secondary { background: #edf3ef; color: #202723; }
.line-liff-text-button { display: inline-block; padding: 8px; border: 0; background: transparent; color: #27683e; font: inherit; text-decoration: underline; cursor: pointer; }
.line-liff-qr { display: flex; justify-content: center; margin: 16px auto; }
.line-liff-qr img, .line-liff-qr canvas { max-width: 100%; height: auto; }
.line-liff-error { color: #c0392b; font-weight: 700; }
.line-liff-note, .line-liff-footer { font-size: 13px; color: #5c655f; }
.line-liff-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; margin-top: 24px; }
.line-liff-footer a { color: inherit; }
.line-liff-card :focus-visible { outline: 3px solid #135c37; outline-offset: 3px; }
.line-liff-loading { padding: 16px 0; }
.line-liff-spinner { display: inline-block; width: 36px; height: 36px; border: 4px solid #d7e8dc; border-top-color: #06c755; border-radius: 50%; animation: line-liff-spin 0.8s linear infinite; }
@keyframes line-liff-spin { to { transform: rotate(360deg); } }
