:root { color-scheme: dark; font-family: Inter, ui-sans-serif, system-ui, sans-serif; color: #edf5ff; background: #0b1119; }
* { box-sizing: border-box; }
body { margin: 0; min-height: 100dvh; display: grid; grid-template-rows: 1fr auto; align-items: center; gap: 28px; padding: 20px; background: #0b1119 url("assets/bg01.png") center / cover no-repeat; }
body.is-dialog-open { overflow: hidden; }
.maintenance-shell { width: min(680px, 100%); margin: auto; }
.maintenance-brand { margin-bottom: 28px; }
.maintenance-brand img { display: block; width: 76px; height: 76px; }
h1 { max-width: 620px; font-size: clamp(2.6rem, 8vw, 5.5rem); line-height: .98; letter-spacing: 0; margin: 0; }

.maintenance-footer { width: min(1180px, 100%); display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 auto; padding-top: 18px; border-top: 1px solid rgba(111, 176, 242, .18); color: #91a4b7; font-size: .78rem; }
.maintenance-legal-links { display: flex; flex-wrap: wrap; gap: 18px; }
.maintenance-footer a { color: inherit; text-decoration: none; }
.maintenance-footer a:hover, .maintenance-footer a:focus-visible { color: #8bdcff; outline: none; }

.maintenance-legal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(3, 8, 14, .78); backdrop-filter: blur(10px); }
.maintenance-legal-backdrop[hidden] { display: none; }
.maintenance-legal-dialog { width: min(840px, 100%); max-height: min(760px, calc(100dvh - 40px)); display: grid; gap: 16px; padding: 20px; overflow: hidden; border: 1px solid rgba(111, 176, 242, .28); border-radius: 6px; background: linear-gradient(180deg, rgba(10, 24, 40, .99), rgba(7, 17, 31, .99)); box-shadow: 0 26px 80px rgba(0, 0, 0, .46); }
.maintenance-legal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.maintenance-legal-head span { display: block; margin-bottom: 4px; color: #91a4b7; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.maintenance-legal-head h2 { margin: 0; color: #8bdcff; font-size: 1.45rem; }
.maintenance-legal-head button { width: 40px; height: 40px; flex: 0 0 40px; border: 1px solid rgba(111, 176, 242, .28); border-radius: 4px; color: #edf5ff; background: rgba(7, 18, 31, .86); font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.maintenance-legal-head button:hover, .maintenance-legal-head button:focus-visible { border-color: #8bdcff; color: #8bdcff; outline: none; }
.maintenance-legal-message { margin: 0; color: #b7c7d6; line-height: 1.55; }
.maintenance-legal-content { min-height: 0; max-height: min(600px, calc(100dvh - 180px)); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: 2px 12px 4px 0; color: #d6e2ed; font-size: .92rem; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 620px) {
  body { padding: 14px; }
  .maintenance-footer { align-items: flex-start; flex-direction: column; gap: 10px; }
  .maintenance-legal-backdrop { padding: 12px; }
  .maintenance-legal-dialog { max-height: calc(100dvh - 24px); padding: 16px; }
  .maintenance-legal-content { max-height: calc(100dvh - 160px); }
}
