#toppc-opening-notice:not([open]) { display: none; }
#toppc-opening-notice {
    box-sizing: border-box;
    width: min(580px, calc(100% - 32px));
    max-height: calc(100dvh - 32px);
    margin: auto;
    padding: 32px;
    overflow-y: auto;
    color: var(--fs-text, #f3f4f6);
    background: var(--fs-surface, #111827);
    border: 1px solid var(--fs-border, #1f2d40);
    border-top: 4px solid #0057ff;
    border-radius: 20px;
    box-shadow: 0 24px 80px #0008;
    font-size: 16px;
    font-weight: 400;
    font-family: inherit;
    line-height: 1.6;
}
#toppc-opening-notice::backdrop { background: rgb(0 0 0 / 72%); }
#toppc-opening-notice .toppc-notice-label { display: block; padding-right: 28px; color: var(--fs-text-muted, #9ca3af); font-size: 13px; }
#toppc-opening-notice h2 { margin: 12px 24px 4px 0; font-size: clamp(22px, 5vw, 28px); line-height: 1.2; color: inherit; }
#toppc-opening-notice .toppc-notice-date { margin: 0 0 22px; color: var(--fs-purple-light, #3da5ff); font-weight: 700; }
#toppc-opening-notice p { margin: 0 0 16px; }
#toppc-opening-notice a { color: var(--fs-purple-light, #3da5ff); text-decoration: underline; }
#toppc-opening-notice button { font: inherit; cursor: pointer; }
#toppc-opening-notice .toppc-notice-x { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: inherit; font-size: 30px; line-height: 1; }
#toppc-opening-notice .toppc-notice-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
#toppc-opening-notice .toppc-notice-actions > * { flex: 1; padding: 12px 16px; border-radius: 10px; font-size: 14px; font-weight: 600; text-align: center; white-space: nowrap; }
#toppc-opening-notice .toppc-notice-book { background: #0057ff; color: #fff; text-decoration: none; border: 1px solid #0057ff; }
#toppc-opening-notice .toppc-notice-actions button { background: transparent; color: inherit; border: 1px solid var(--fs-text-muted, #9ca3af); }
#toppc-opening-notice :focus-visible { outline: 3px solid var(--fs-purple-light, #3da5ff); outline-offset: 3px; }
@media (max-width: 480px) {
    #toppc-opening-notice { padding: 24px 20px; font-size: 15px; }
    #toppc-opening-notice .toppc-notice-actions { flex-direction: column; }
}
