.line-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #efcedb; }
.line-tools[hidden], .line-tools [hidden] { display: none; }
.line-tools a { color: #742644; font-size: 13px; line-height: 1.6; text-underline-offset: 3px; }
.line-tools p { width: 100%; margin: 0; color: #513e47; font-size: 12px; line-height: 1.5; }
.line-gate { width: 100%; text-align: center; }
.line-gate[hidden], .line-gate [hidden] { display: none; }
.line-gate p { margin: 0 0 10px; color: #513e47; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.line-gate .line-login-button { display: flex; width: 100%; height: 48px; text-decoration: none; }
.line-gate .line-login-button[hidden] { display: none; }
.line-gate .line-login-button img { width: 48px; height: 48px; }
.line-gate .line-login-button span { flex: 1; padding-right: 48px; }
.top-page.line-dialog-open { overflow: hidden; }
.top-entry-actions .line-dialog-trigger { display: flex; width: 100%; height: 48px; }
.line-dialog-trigger[hidden] { display: none; }
.line-dialog-trigger span { flex: 1; padding-right: 44px; }
.line-login-dialog .line-dialog-note { margin: 16px 0 4px; color: #65535c; font-size: 12px; text-align: center; }
.line-login-dialog .line-dialog-error { margin: 0 0 16px; color: #992442; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.line-login-dialog:has(.line-dialog-error:not([hidden])) [data-line-gate-message] { display: none; }
.line-login-dialog .line-dialog-privacy { margin-top: 12px; color: #65535c; font-size: 12px; }
.line-dialog-privacy summary { width: fit-content; margin-inline: auto; padding: 8px; cursor: pointer; }
.line-login-dialog > form { margin: 0; text-align: center; }
.line-login-dialog :focus-visible, .line-dialog-trigger:focus-visible { outline: 3px solid #742644; outline-offset: 3px; }
.line-page { margin: 0; background: #fffafc; color: #332a2f; font: 16px/1.6 system-ui, sans-serif; letter-spacing: 0; }
.line-page * { box-sizing: border-box; }
.line-main { width: min(100% - 32px, 760px); margin: 32px auto; }
.line-eyebrow { color: #9a3d62; font-size: 14px; margin: 0 0 8px; }
.line-main h1 { font-size: 24px; line-height: 1.4; margin: 0 0 20px; }
.line-main h2 { font-size: 18px; margin: 0; }
.line-main p { overflow-wrap: anywhere; }
.line-note, .line-privacy { color: #65535c; font-size: 14px; }
.line-main a { color: #853858; text-underline-offset: 3px; }
.line-action { min-height: 44px; border: 1px solid #9b3860; border-radius: 6px; padding: 10px 18px; background: #a93867; color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.line-action:disabled { opacity: .5; cursor: wait; }
.line-login-button { display: inline-flex; align-items: center; height: 44px; max-width: 100%; padding: 0; border: 0; border-radius: 4px; background: #06c755; color: #fff; font: 700 14px/1 system-ui, sans-serif; cursor: pointer; }
.line-login-button img { display: block; width: 44px; height: 44px; flex: none; border-right: 1px solid rgb(0 0 0 / 10%); }
.line-login-button span { padding: 0 20px; }
.line-login-button:hover { background: #05b34c; }
.line-login-button:active { background: #048b3b; }
.line-text-button { border: 0; padding: 8px; min-height: 44px; color: #853858; background: transparent; font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; }
.line-session, .line-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.line-session { border-block: 1px solid #ead8df; padding: 8px 0; }
.line-entry { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; padding: 20px 0; border-bottom: 1px solid #ead8df; }
.line-entry time { font-size: 13px; color: #65535c; }
.line-entry p { grid-column: 1; margin: 0; }
.line-entry form { grid-column: 2; grid-row: 1 / 3; align-self: center; }
.line-pagination { margin: 20px 0; }
.line-error { border-left: 3px solid #b62c46; padding: 10px 14px; background: #fff0f2; }
.line-success { color: #176544; }
.line-privacy { margin-top: 28px; }
.line-privacy summary { cursor: pointer; min-height: 36px; }
.line-back { display: inline-block; margin-top: 20px; }
:where(.line-main, .line-tools) :focus-visible { outline: 2px solid #a93867; outline-offset: 3px; }
@media (max-width: 420px) { .line-entry { grid-template-columns: 1fr; } .line-entry form { grid-column: 1; grid-row: auto; } .line-action { width: 100%; } }
