/* Shared foundation for every provincial and national page. */
:root {
    --site-primary:#1a56db; --site-primary-dark:#1e40af; --site-danger:#b91c1c;
    --site-border:#e5e7eb; --site-radius:6px;
    --site-font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
    --primary:var(--site-primary); --primary-dark:var(--site-primary-dark);
}
body { font-family:var(--site-font); display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; height:auto; }
body > :not(script):not(style):not(dialog) { flex-shrink:0; }
body > footer { margin-top:auto !important; flex-shrink:0; width:100%; align-self:stretch; }
button,input,select,textarea { font-family:inherit; }
:is(button,a,input,select,textarea,[tabindex]):focus-visible { outline:3px solid #93b4ff; outline-offset:2px; }
button:disabled { cursor:not-allowed; }
[data-account-details] { cursor:pointer; text-decoration:underline dotted; text-underline-offset:4px; }
button.account-detail-trigger { color:inherit; font:inherit; font-weight:700; border:0; background:transparent; padding:2px 0; text-align:left; overflow-wrap:anywhere; }
[data-self-account] { max-width:min(320px,80vw); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-detail-card { position:fixed; z-index:15000; box-sizing:border-box; width:min(420px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); display:flex; flex-direction:column; padding:16px; gap:10px; border:1px solid #dbe3ef; border-radius:12px; background:#fff; color:#172b4d; box-shadow:0 12px 40px #142b4d33; font:14px/1.6 var(--site-font); text-align:left; }
.account-detail-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.account-detail-head strong { overflow-wrap:anywhere; min-width:0; }
.account-detail-close { flex-shrink:0; border:1px solid #dbe3ef; background:#f8fafc; color:#334155; padding:4px 10px; border-radius:6px; cursor:pointer; font:inherit; }
.account-detail-phone { overflow-wrap:anywhere; }
.account-detail-label { color:#64748b; font-size:12px; }
.account-detail-note { min-height:24px; max-height:min(360px,45dvh); overflow:auto; overscroll-behavior:contain; white-space:pre-wrap; overflow-wrap:anywhere; scrollbar-gutter:stable; padding:10px; background:#f8fafc; border:1px solid #edf1f6; border-radius:6px; user-select:text; }
.account-detail-hint { font-size:12px; color:#64748b; }
.site-error { padding:12px 14px; margin:10px 0; border:1px solid #fecaca; border-radius:var(--site-radius); background:#fef2f2; color:var(--site-danger); font-size:13px; line-height:1.6; }
.site-error button { margin-left:8px; text-decoration:underline; background:transparent; border:0; color:inherit; cursor:pointer; }
.site-loading { color:#64748b; padding:12px 0; font-size:13px; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
