/* Avoid double-tap zoom while keeping scrolling and pinch zoom available. */
html {
  touch-action: manipulation;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.maintenance-dialog { box-sizing:border-box; width:min(440px,calc(100% - 40px)); max-height:calc(100dvh - 40px); padding:0; border:0; border-radius:24px; background:#fff; color:#202a36; box-shadow:0 28px 90px #132b2840; font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif; text-align:left; overflow:auto; }
.maintenance-dialog:focus { outline:none; }
.maintenance-dialog::backdrop { background:#182b2966; backdrop-filter:blur(5px); }
.maintenance-hero { position:relative; overflow:hidden; background:linear-gradient(125deg,#126a58,#0e4b42); padding:28px 28px 30px; color:#fff; }
.maintenance-hero::after { content:''; position:absolute; width:180px; height:180px; border:30px solid #ffffff07; border-radius:50%; right:-100px; bottom:-110px; pointer-events:none; }
.maintenance-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:30px; }
.maintenance-brand { font-size:15px; font-weight:600; letter-spacing:.04em; }
.maintenance-brand > span { margin-left:10px; padding-left:10px; border-left:1px solid #ffffff40; font-weight:400; font-size:11px; color:#ffffff99; }
.maintenance-status { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border:1px solid #ffffff26; border-radius:20px; background:#ffffff0c; color:#d6eee5; font-size:10px; white-space:nowrap; }
.maintenance-status i { width:4px; height:4px; border-radius:50%; background:#afe4c9; }
.maintenance-dialog h1 { position:relative; font-size:25px; font-weight:600; margin:0 0 10px; line-height:1.4; letter-spacing:.01em; overflow-wrap:anywhere; }
.maintenance-hero-note { margin:0; font-size:12px; line-height:1.6; color:#c0dcd1; }
.maintenance-body {padding:26px 28px 24px;}
.maintenance-message { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.9; font-size:14px; color:#6d7882; margin:0 0 24px; }
 .maintenance-time { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; padding-top:18px; border-top:1px solid #edf0ee; }
.maintenance-time-heading { grid-column:1 / -1; display:flex; align-items:center; gap:6px; margin-bottom:18px; font-size:11px; color:#8b9690; }
.maintenance-time-heading svg { width:14px; height:14px; color:#82918a; }
.maintenance-time-heading small { margin-left:auto; font-size:10px; color:#a1aaa6; }
.maintenance-time-row { display:flex; flex-direction:column; gap:8px; color:#89958e; font-size:11px; line-height:1.6; min-width:0; }
.maintenance-time-row strong { display:flex; flex-direction:column; gap:2px; font-weight:400; font-variant-numeric:tabular-nums; }
.maintenance-date {font-size:11px;color:#98a29c;letter-spacing:.02em;}
.maintenance-clock {font-size:26px;line-height:1.3;font-weight:500;color:#57695f;letter-spacing:.01em;}
.maintenance-end { border-left:1px solid #edf0ee; padding-left:24px; }
.maintenance-end > span {color:#167964;}
.maintenance-end .maintenance-clock {color:#126a58;}
.maintenance-footer { margin:20px 0 0; color:#a0aaa5; font-size:10px; text-align:center; line-height:1.6; }
.maintenance-background { min-height:100vh; margin:0; background:#f4f7f5; }
.maintenance-locked { overflow:hidden; }
.maintenance-static { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); margin:0; }
@media(max-width:480px) {
 .maintenance-dialog { width:calc(100% - 36px); max-width:440px; max-height:calc(100dvh - 40px); margin:auto; border-radius:24px; }
 .maintenance-hero {padding:26px 26px 28px;} .maintenance-heading {margin-bottom:26px;}
 .maintenance-body {padding:24px 26px max(26px,env(safe-area-inset-bottom));}
 .maintenance-static {top:50%;left:50%;bottom:auto;transform:translate(-50%,-50%);margin:0;}
}
@media(max-width:350px) {.maintenance-hero,.maintenance-body {padding-left:20px;padding-right:20px;} .maintenance-dialog h1 {font-size:23px;} .maintenance-time {column-gap:18px;} .maintenance-end {padding-left:18px;} }
/* Share the site's card palette; reserve amber for the warning symbol. */
.visitor-notice-dialog { box-sizing:border-box; position:fixed; inset:0; margin:auto; width:min(340px,calc(100% - 48px)); max-height:calc(100dvh - 48px); padding:24px; border:1px solid var(--line,#e9edf1); border-radius:20px; background:var(--surface,#fff); color:var(--ink,#202a36); box-shadow:0 12px 36px #163c3214; font-family:inherit; overflow:auto; text-align:left; }
.visitor-notice-dialog::backdrop { background:#214a3e26; backdrop-filter:blur(2px); }
.visitor-notice-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.visitor-notice-symbol { display:flex; flex:none; align-items:center; justify-content:center; width:40px; height:40px; border-radius:12px; background:var(--orange-soft,#fff4e8); color:var(--orange,#aa6a31); }
.visitor-notice-symbol svg { width:25px; height:25px; }
.visitor-notice-dialog h2 { margin:0; font-size:18px; line-height:1.5; font-weight:600; color:var(--ink,#202a36); overflow-wrap:anywhere; }
.visitor-notice-dialog h2:focus { outline:none; }
.visitor-notice-dialog p { margin:0; font-size:14px; line-height:1.85; color:var(--muted,#727e8c); white-space:pre-line; overflow-wrap:anywhere; }
.visitor-notice-actions { margin:22px -24px -24px; padding:0; border-top:1px solid var(--line,#e9edf1); }
.visitor-notice-confirm { display:block; width:100%; min-height:54px; border:0; border-radius:0 0 20px 20px; padding:15px 20px; background:transparent; color:var(--green,#167964); font:inherit; font-size:15px; font-weight:500; line-height:1.5; cursor:pointer; touch-action:manipulation; }
.visitor-notice-confirm:active { background:var(--green-soft,#eaf5ef); }
.visitor-notice-confirm:focus-visible { outline:2px solid var(--green,#167964); outline-offset:-5px; }
@media(hover:hover) { .visitor-notice-confirm:hover { background:var(--surface-soft,#f5f7f8); } }
