:root {
  --bg: #f4f8f6;
  --surface: rgba(255,255,255,.88);
  --surface-solid: #fff;
  --text: #16251f;
  --muted: #6d7d76;
  --line: #d9e5df;
  --line-strong: #c7d8cf;
  --green: #0d8259;
  --green-dark: #075b40;
  --green-soft: #e9f6f0;
  --lime: #b8df75;
  --red: #b9444d;
  --red-soft: #fff0f1;
  --amber: #8a6418;
  --amber-soft: #fff8e7;
  --shadow: 0 24px 64px rgba(19,50,37,.08);
  --shadow-soft: 0 14px 36px rgba(19,50,37,.055);
  --radius-xl: 28px;
  --radius-lg: 22px;
  --radius-md: 16px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background: linear-gradient(180deg,#fbfdfc 0%,#f4f8f6 38%,#eef5f1 100%);
  font-family: "Noto Sans TC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.7;
  overflow-x: hidden;
}
button,input { font: inherit; }
button { color: inherit; }
a { color: inherit; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }

.shell { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

.ambient { position: fixed; z-index: -3; border-radius: 50%; filter: blur(8px); pointer-events: none; opacity: .76; animation: drift 13s ease-in-out infinite alternate; }
.ambient-a { width: 470px; height: 470px; top: -180px; right: -150px; background: radial-gradient(circle,rgba(93,201,145,.24),transparent 68%); }
.ambient-b { width: 390px; height: 390px; top: 560px; left: -170px; background: radial-gradient(circle,rgba(184,223,117,.2),transparent 68%); animation-duration: 16s; }
.ambient-grid { position: fixed; inset: 0; z-index: -4; pointer-events:none; opacity:.22; background-image: linear-gradient(rgba(10,109,75,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(10,109,75,.035) 1px,transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom,rgba(0,0,0,.7),transparent 70%); }
@keyframes drift { from { transform: translate3d(0,0,0) scale(1); } to { transform: translate3d(24px,18px,0) scale(1.06); } }

.site-header { position: sticky; top: 0; z-index: 40; background: rgba(251,253,252,.86); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(199,216,207,.72); }
.header-inner { min-height: 76px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; align-items:center; gap:12px; text-decoration:none; min-width:0; }
.brand-logo { width:46px; height:46px; object-fit:cover; border-radius:50%; background:#fff; border:1px solid var(--line); box-shadow:0 8px 22px rgba(13,130,89,.12); transition:transform .35s ease,box-shadow .35s ease; }
.brand:hover .brand-logo { transform: rotate(-4deg) scale(1.04); box-shadow:0 12px 28px rgba(13,130,89,.18); }
.brand-copy { display:grid; line-height:1.15; }
.brand-copy strong { font-size:15px; letter-spacing:.12em; }
.brand-copy small { margin-top:4px; color:var(--muted); font-size:10px; letter-spacing:.17em; }
.header-actions { display:flex; align-items:center; gap:18px; }
.text-link { text-decoration:none; color:#405149; font-size:14px; font-weight:650; }
.text-link:hover { color:var(--green); }

.button { border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--green),#109565); padding:14px 22px; font-weight:750; cursor:pointer; text-decoration:none; box-shadow:0 12px 28px rgba(13,130,89,.18); transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,opacity .22s ease; }
.button:hover { transform:translateY(-2px); box-shadow:0 16px 36px rgba(13,130,89,.22); filter:saturate(1.05); }
.button:disabled { cursor:wait; opacity:.7; transform:none; }
.button-small { padding:10px 15px; border-radius:11px; font-size:13px; }

.hero { padding:76px 0 50px; text-align:center; }
.eyebrow,.section-kicker { color:var(--green); font-size:12px; font-weight:800; letter-spacing:.17em; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; margin-bottom:18px; }
.pulse { width:8px; height:8px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 6px rgba(184,223,117,.18); animation:pulse 2s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow:0 0 0 11px rgba(184,223,117,0); transform:scale(1.12); } }
.hero h1 { margin:0; font-size:clamp(36px,5.1vw,58px); line-height:1.15; letter-spacing:-.045em; text-wrap:balance; }
.hero-lead { max-width:760px; margin:20px auto 0; color:var(--muted); font-size:clamp(15px,1.55vw,18px); line-height:1.9; text-wrap:balance; }

.lookup-card { position:relative; overflow:hidden; max-width:900px; margin:38px auto 0; padding:12px; background:rgba(255,255,255,.9); border:1px solid rgba(199,216,207,.95); border-radius:24px; box-shadow:var(--shadow); backdrop-filter:blur(14px); }
.lookup-card::after { content:""; position:absolute; inset:-2px; pointer-events:none; border-radius:inherit; background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.78) 50%,transparent 80%); transform:translateX(-120%); animation:sheen 6.8s ease-in-out infinite; }
@keyframes sheen { 0%,72% { transform:translateX(-120%); } 88%,100% { transform:translateX(120%); } }
.lookup-row { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.input-wrap { position:relative; }
.input-wrap input { width:100%; height:62px; padding:0 52px 0 48px; border:1px solid transparent; border-radius:16px; outline:none; background:#f6faf8; color:var(--text); font-size:17px; transition:border .2s ease,background .2s ease,box-shadow .2s ease; }
.input-wrap input:focus { background:#fff; border-color:#97cbb3; box-shadow:0 0 0 4px rgba(13,130,89,.08); }
.input-icon { position:absolute; left:18px; top:50%; transform:translateY(-50%); color:var(--green); font-size:18px; }
.clear-input { position:absolute; right:14px; top:50%; transform:translateY(-50%); border:0; width:30px; height:30px; border-radius:50%; background:#eaf2ee; color:#5d6e66; cursor:pointer; font-size:18px; transition:transform .18s ease,background .18s ease; }
.clear-input:hover { transform:translateY(-50%) rotate(8deg); background:#deebe5; }
.lookup-button { min-width:148px; height:62px; position:relative; z-index:1; }
.button-loader { display:none; width:20px; height:20px; border:2px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
.lookup-button.is-loading .button-label { display:none; }
.lookup-button.is-loading .button-loader { display:inline-block; }
@keyframes spin { to { transform:rotate(360deg); } }
.lookup-meta { position:relative; z-index:1; display:flex; justify-content:center; flex-wrap:wrap; gap:9px; padding:9px 8px 1px; color:#829089; font-size:12px; }
.lookup-meta .dot { color:#b7c3bd; }
.quick-row { margin-top:18px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.quick-chip { border:1px solid var(--line); background:rgba(255,255,255,.78); border-radius:999px; padding:8px 12px; cursor:pointer; font-size:13px; transition:transform .18s ease,border-color .18s ease,color .18s ease,background .18s ease; }
.quick-chip:hover { transform:translateY(-2px); border-color:#93c6ae; color:var(--green); background:#fff; }

.message-section { margin-top:14px; }
.message-box { padding:17px 20px; border-radius:var(--radius-md); border:1px solid #ebd39f; background:var(--amber-soft); color:#6b511f; font-size:14px; }
.message-box.error { border-color:#edc0c4; background:var(--red-soft); color:#8f3039; }

.result-section { padding:30px 0 28px; scroll-margin-top:95px; }
.result-head { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:18px; }
.result-head h2 { margin:6px 0 0; font-size:clamp(27px,4vw,40px); line-height:1.2; letter-spacing:-.03em; word-break:break-word; }
.result-actions { display:flex; gap:8px; flex-wrap:wrap; }
.ghost-button,.mini-button,.text-button { border:1px solid var(--line); background:rgba(255,255,255,.78); color:#3d5148; border-radius:11px; padding:9px 12px; cursor:pointer; font-size:13px; font-weight:650; transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease; }
.ghost-button:hover,.mini-button:hover { border-color:#8fc2aa; color:var(--green); background:#fff; transform:translateY(-1px); }
.ghost-button-accent { border-color:#aed7c4; background:var(--green-soft); color:var(--green-dark); }
.text-button { background:transparent; border:0; padding:7px 0; color:var(--muted); }
.text-button:hover { color:var(--green); }

.status-panel { display:flex; gap:18px; align-items:flex-start; padding:24px; background:var(--surface-solid); border:1px solid var(--line); border-radius:var(--radius-xl); box-shadow:0 16px 52px rgba(18,49,36,.06); transition:transform .28s ease,border-color .28s ease; }
.status-panel:hover { transform:translateY(-2px); }
.status-panel.available { border-color:#b8dfcc; background:linear-gradient(135deg,#fff,#f0faf5); }
.status-panel.unknown { border-color:#ead8ad; background:linear-gradient(135deg,#fff,#fffaf1); }
.status-icon { flex:0 0 auto; width:50px; height:50px; border-radius:16px; display:grid; place-items:center; background:var(--green-soft); color:var(--green); font-size:22px; }
.status-icon::before { content:"✓"; font-weight:800; }
.status-panel.available .status-icon::before { content:"○"; }
.status-panel.unknown .status-icon::before { content:"?"; }
.status-topline { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.status-badge,.source-badge { display:inline-flex; align-items:center; min-height:25px; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:800; letter-spacing:.07em; }
.status-badge { color:var(--green-dark); background:var(--green-soft); }
.status-panel.unknown .status-badge { color:var(--amber); background:var(--amber-soft); }
.source-badge { color:#53655d; background:#eef3f1; }
.status-copy h3 { margin:8px 0 5px; font-size:20px; line-height:1.35; }
.status-copy p { margin:0; color:var(--muted); font-size:14px; }

.info-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:14px; }
.info-card,.detail-card { background:rgba(255,255,255,.9); border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.info-card { min-height:136px; padding:19px; border-radius:var(--radius-lg); display:flex; flex-direction:column; transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.info-card:hover { transform:translateY(-3px); border-color:#c7dbd1; box-shadow:0 18px 42px rgba(18,49,36,.07); }
.info-label { color:var(--muted); font-size:12px; font-weight:700; }
.info-card strong { margin-top:auto; font-size:16px; line-height:1.45; word-break:break-word; }
.info-card small { margin-top:5px; color:#8c9b94; font-size:11px; }

.detail-grid { display:grid; grid-template-columns:1.35fr .8fr; gap:14px; margin-top:14px; }
.detail-card { margin-top:14px; padding:22px; border-radius:var(--radius-lg); transition:transform .22s ease,border-color .22s ease; }
.detail-card:hover { transform:translateY(-2px); border-color:#c9dcd3; }
.detail-grid .detail-card { margin-top:0; }
.card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:16px; }
.card-heading h3 { margin:4px 0 0; font-size:18px; line-height:1.4; }
.card-heading p { margin:5px 0 0; color:var(--muted); font-size:13px; }
.list-stack { display:grid; gap:8px; }
.list-item { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:11px 13px; border-radius:12px; background:#f5f9f7; }
.list-item code { min-width:0; overflow-wrap:anywhere; color:#32463d; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px; }
.list-item span { flex:0 0 auto; color:#91a098; font-size:10px; font-weight:700; }
.metric-list { display:grid; gap:0; }
.metric-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid #edf2ef; }
.metric-row:last-child { border-bottom:0; }
.metric-row span { color:var(--muted); font-size:12px; }
.metric-row strong { text-align:right; font-size:13px; overflow-wrap:anywhere; }

.dns-records { display:grid; gap:9px; }
.dns-group { display:grid; grid-template-columns:72px minmax(0,1fr); gap:12px; padding:13px 0; border-top:1px solid #edf2ef; }
.dns-group:first-child { border-top:0; }
.dns-type { display:inline-flex; align-self:start; justify-content:center; min-width:58px; padding:5px 8px; border-radius:9px; background:var(--green-soft); color:var(--green-dark); font-size:11px; font-weight:800; letter-spacing:.08em; }
.dns-values { display:grid; gap:5px; min-width:0; }
.dns-value,.dns-empty { overflow-wrap:anywhere; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px; color:#344940; }
.dns-empty { color:#94a39c; font-family:inherit; }
.status-list { display:flex; flex-wrap:wrap; gap:8px; }
.status-pill { padding:7px 10px; border-radius:999px; background:#f2f7f4; border:1px solid #e3ece7; color:#4f6259; font-size:12px; }

.raw-details { margin-top:14px; border:1px solid var(--line); border-radius:var(--radius-lg); background:rgba(255,255,255,.84); overflow:hidden; }
.raw-details summary { cursor:pointer; padding:16px 18px; font-size:13px; font-weight:700; }
.raw-toolbar { display:flex; justify-content:flex-end; padding:0 16px 10px; }
.raw-details pre { margin:0; max-height:430px; overflow:auto; padding:18px; background:#0d2a20; color:#d8efe5; font-size:11px; line-height:1.65; white-space:pre-wrap; word-break:break-word; }

.history-section { padding:58px 0 30px; }
.section-title-row { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; }
.section-title-row h2 { margin:6px 0 0; font-size:clamp(25px,3vw,34px); line-height:1.25; }
.history-list { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.history-item { border:1px solid var(--line); background:rgba(255,255,255,.78); padding:11px 15px; border-radius:14px; cursor:pointer; font-size:14px; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.history-item:hover { transform:translateY(-2px); border-color:#94c7af; background:#fff; }
.history-empty { color:var(--muted); font-size:13px; margin:16px 0 0; }

.notice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:38px 0 78px; }
.notice-card { min-height:248px; padding:28px; border:1px solid var(--line); border-radius:24px; background:rgba(255,255,255,.84); transition:transform .24s ease,box-shadow .24s ease; }
.notice-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-soft); }
.notice-number { color:#a0b1a9; font-size:12px; font-weight:800; letter-spacing:.1em; }
.notice-card h3 { margin:54px 0 12px; font-size:18px; line-height:1.45; }
.notice-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.8; }
.notice-card a { display:inline-block; margin-top:16px; text-decoration:none; font-weight:700; font-size:14px; }
.accent-card { color:#fff; border-color:transparent; background:linear-gradient(145deg,#0d8259,#08704d); }
.accent-card .notice-number,.accent-card p { color:rgba(255,255,255,.76); }

.site-footer { padding:34px 0 28px; background:rgba(247,250,248,.8); border-top:1px solid var(--line); }
.footer-inner { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.footer-brand { display:flex; align-items:center; gap:13px; }
.footer-brand img { width:42px; height:42px; object-fit:cover; border-radius:50%; background:#fff; border:1px solid var(--line); }
.footer-inner strong { font-size:14px; letter-spacing:.08em; }
.footer-inner p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.footer-links { display:flex; gap:16px; font-size:13px; }
.footer-links a { text-decoration:none; }
.footer-links a:hover { color:var(--green); }
.footer-bottom { margin-top:24px; padding-top:18px; border-top:1px solid #e5ece8; color:#8b9992; font-size:11px; }

.toast { position:fixed; left:50%; bottom:28px; z-index:100; transform:translate(-50%,18px); padding:10px 14px; border-radius:999px; background:#16362a; color:#fff; font-size:13px; opacity:0; pointer-events:none; transition:opacity .2s ease,transform .2s ease; box-shadow:0 12px 30px rgba(0,0,0,.14); }
.toast.show { opacity:1; transform:translate(-50%,0); }

.share-dialog { width:min(620px,calc(100% - 28px)); max-height:min(760px,calc(100vh - 40px)); padding:0; border:0; border-radius:26px; background:transparent; color:var(--text); }
.share-dialog::backdrop { background:rgba(10,30,22,.42); backdrop-filter:blur(8px); }
.share-card { position:relative; padding:30px; border:1px solid rgba(220,232,226,.9); border-radius:26px; background:#fff; box-shadow:0 28px 80px rgba(8,36,25,.24); animation:dialogIn .25s ease both; }
@keyframes dialogIn { from { opacity:0; transform:translateY(14px) scale(.98); } to { opacity:1; transform:none; } }
.dialog-close { position:absolute; top:14px; right:14px; width:34px; height:34px; border:0; border-radius:50%; background:#eef4f1; color:#617169; cursor:pointer; font-size:20px; }
.share-icon { width:56px; height:56px; margin-bottom:14px; }
.share-icon img { width:100%; height:100%; object-fit:cover; border-radius:50%; border:1px solid var(--line); }
.share-card h2 { margin:6px 0 8px; font-size:26px; }
.share-card > p { margin:0; color:var(--muted); font-size:14px; }
.share-options { display:grid; gap:10px; margin-top:22px; }
.share-option { display:flex; align-items:center; gap:14px; width:100%; text-align:left; padding:15px; border:1px solid var(--line); border-radius:16px; background:#fbfdfc; cursor:pointer; transition:transform .18s ease,border-color .18s ease,background .18s ease; }
.share-option:hover { transform:translateY(-2px); border-color:#9ccab5; background:#fff; }
.share-option-icon { flex:0 0 42px; height:42px; display:grid; place-items:center; border-radius:13px; background:var(--green-soft); color:var(--green-dark); font-size:12px; font-weight:800; }
.share-option > span:last-child { display:grid; gap:3px; min-width:0; }
.share-option strong { font-size:14px; }
.share-option small { color:var(--muted); font-size:12px; line-height:1.55; }
.share-url-preview { margin-top:16px; padding:12px 14px; border-radius:13px; background:#f4f8f6; }
.share-url-preview span { display:block; color:var(--muted); font-size:11px; margin-bottom:4px; }
.share-url-preview code { display:block; overflow-wrap:anywhere; font-size:11px; color:#395148; }

.propagation-card .card-heading { margin-bottom:16px; }
.propagation-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.propagation-region { min-width:0; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fbfdfc; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.propagation-region:hover { transform:translateY(-2px); border-color:#9ccab5; box-shadow:0 10px 28px rgba(18,49,36,.06); }
.propagation-region.resolved { background:linear-gradient(180deg,#fbfefc,#f1faf6); border-color:#c8e5d6; }
.propagation-region.empty { background:#fffaf1; border-color:#efdfb5; }
.propagation-region.error { background:#fff5f5; border-color:#efcaca; }
.propagation-region-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.propagation-location { display:flex; align-items:center; gap:8px; min-width:0; }
.propagation-location strong { font-size:14px; }
.propagation-flag { font-size:19px; line-height:1; }
.propagation-badge { flex:0 0 auto; padding:4px 8px; border-radius:999px; font-size:10px; font-weight:800; background:#e5f4ec; color:var(--green-dark); }
.propagation-region.empty .propagation-badge { background:#fff0c9; color:#8b6416; }
.propagation-region.error .propagation-badge { background:#ffe4e6; color:#a33b44; }
.propagation-records { display:grid; gap:9px; margin-top:14px; }
.propagation-row { display:grid; gap:4px; }
.propagation-row > span { color:#7a8982; font-size:10px; font-weight:700; letter-spacing:.04em; }
.propagation-row code { display:block; min-width:0; overflow-wrap:anywhere; color:#31483d; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:10px; line-height:1.5; }
.propagation-ttl { color:#92a097; font-size:9px; }
.propagation-note { margin:13px 0 0; color:#8a9891; font-size:11px; line-height:1.7; }
.propagation-empty { grid-column:1/-1; padding:18px; border:1px dashed var(--line); border-radius:14px; color:var(--muted); font-size:13px; text-align:center; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }
.result-section.reveal.is-visible .info-card { animation:cardUp .46s ease both; }
.result-section.reveal.is-visible .info-card:nth-child(2){ animation-delay:.05s; }
.result-section.reveal.is-visible .info-card:nth-child(3){ animation-delay:.1s; }
.result-section.reveal.is-visible .info-card:nth-child(4){ animation-delay:.15s; }
@keyframes cardUp { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

.pdf-report-capture {
  position:fixed;
  top:0;
  left:0;
  z-index:2147483000;
  width:794px;
  min-height:1123px;
  padding:38px;
  background:#fff;
  color:#16251f;
  font-family:"Noto Sans TC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55;
  pointer-events:none;
  transform:none !important;
  opacity:1 !important;
}
.pdf-report-capture * { box-sizing:border-box; }
.pdf-report-header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-bottom:18px; border-bottom:1px solid #dfe9e4; }
.pdf-brand { display:flex; align-items:center; gap:12px; }
.pdf-brand img { width:48px; height:48px; object-fit:cover; border-radius:50%; border:1px solid #dbe7e1; }
.pdf-brand div { display:grid; gap:2px; }
.pdf-brand strong { font-size:16px; letter-spacing:.08em; }
.pdf-brand span { color:#798981; font-size:9px; letter-spacing:.16em; }
.pdf-date { color:#7f8e87; font-size:10px; }
.pdf-title-block { padding:28px 0 20px; }
.pdf-title-block > span { color:#0d8259; font-size:10px; font-weight:800; letter-spacing:.14em; }
.pdf-title-block h1 { margin:6px 0 4px; font-size:32px; line-height:1.2; overflow-wrap:anywhere; }
.pdf-title-block p { margin:0; color:#687a71; font-size:13px; }
.pdf-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pdf-summary { min-height:92px; padding:14px; border:1px solid #dfe9e4; border-radius:14px; background:#f8fbf9; }
.pdf-summary span { display:block; color:#76877f; font-size:10px; margin-bottom:8px; }
.pdf-summary strong { display:block; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.pdf-block { margin-top:14px; padding:16px; border:1px solid #dfe9e4; border-radius:15px; background:#fff; break-inside:avoid; page-break-inside:avoid; }
.pdf-block h2 { margin:0 0 10px; font-size:15px; }
.pdf-helper { margin:-4px 0 12px; color:#7d8d85; font-size:9px; }
.pdf-list { display:grid; gap:6px; }
.pdf-value { padding:7px 9px; border-radius:9px; background:#f5f9f7; color:#32473e; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:9px; overflow-wrap:anywhere; }
.pdf-value.muted { color:#8a9891; font-family:inherit; }
.pdf-dns-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pdf-dns-grid > div { min-width:0; }
.pdf-dns-grid b { display:block; margin-bottom:5px; color:#0d8259; font-size:10px; }
.pdf-region-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pdf-region-card { padding:12px; border:1px solid #dfe9e4; border-radius:12px; background:#f9fcfa; break-inside:avoid; page-break-inside:avoid; }
.pdf-region-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.pdf-region-head strong { font-size:11px; }
.pdf-region-head span { padding:3px 6px; border-radius:999px; background:#e7f5ee; color:#0b6d4c; font-size:8px; font-weight:800; }
.pdf-region-line { display:grid; gap:3px; margin-top:6px; }
.pdf-region-line b { color:#7a8982; font-size:8px; }
.pdf-region-line code { color:#33483f; font-size:8px; overflow-wrap:anywhere; }
.pdf-report-footer { margin-top:16px; padding-top:14px; border-top:1px solid #dfe9e4; }
.pdf-report-footer > span { display:block; color:#7b8b83; font-size:9px; }
.pdf-report-footer code { display:block; margin-top:4px; color:#30463c; font-size:8px; overflow-wrap:anywhere; }
.pdf-report-footer p { margin:9px 0 0; color:#8a9891; font-size:8px; line-height:1.6; }

.pdf-generating-mask {
  position:fixed;
  inset:0;
  z-index:2147483647;
  display:grid;
  place-items:center;
  align-content:center;
  gap:10px;
  background:rgba(244,248,246,.94);
  backdrop-filter:blur(10px);
  color:#183229;
}
.pdf-generating-mask strong { font-size:16px; }
.pdf-generating-mask small { color:#75877e; font-size:12px; }
.pdf-mask-spinner { width:34px; height:34px; border-radius:50%; border:3px solid #d5e8df; border-top-color:#0d8259; animation:spin .8s linear infinite; }

@media (max-width: 960px) {
  .shell { width:min(100% - 32px,1160px); }
  .hero { padding-top:62px; }
  .info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .detail-grid { grid-template-columns:1fr; }
  .notice-grid { grid-template-columns:1fr 1fr; }
  .propagation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .notice-card:last-child { grid-column:1/-1; }
}

@media (max-width: 720px) {
  body { font-size:15px; }
  .shell { width:min(100% - 24px,1160px); }
  .site-header { position:sticky; }
  .header-inner { min-height:68px; gap:12px; }
  .brand-logo { width:40px; height:40px; }
  .brand-copy strong { font-size:13px; }
  .brand-copy small { font-size:8px; }
  .header-actions { gap:10px; }
  .header-actions .text-link { display:none; }
  .button-small { padding:9px 12px; font-size:12px; }
  .hero { padding:52px 0 36px; }
  .hero h1 { font-size:clamp(34px,10vw,46px); line-height:1.18; }
  .hero-lead { margin-top:16px; font-size:15px; line-height:1.85; }
  .lookup-card { margin-top:30px; border-radius:20px; }
  .lookup-row { grid-template-columns:1fr; }
  .input-wrap input,.lookup-button { height:56px; }
  .lookup-button { width:100%; }
  .lookup-meta { font-size:11px; }
  .result-head { align-items:flex-start; flex-direction:column; }
  .result-actions { width:100%; }
  .result-actions .ghost-button { flex:1; }
  .status-panel { padding:20px; border-radius:22px; }
  .status-icon { width:44px; height:44px; border-radius:14px; }
  .info-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .info-card { min-height:124px; padding:16px; }
  .detail-card { padding:18px; }
  .dns-group { grid-template-columns:58px minmax(0,1fr); }
  .propagation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .notice-grid { grid-template-columns:1fr; padding-bottom:56px; }
  .notice-card:last-child { grid-column:auto; }
  .notice-card { min-height:auto; padding:22px; }
  .notice-card h3 { margin-top:34px; }
  .footer-inner { flex-direction:column; }
  .share-card { padding:24px 18px 20px; }
}

@media (max-width: 500px) {
  .shell { width:min(100% - 20px,1160px); }
  .brand-copy small { display:none; }
  .button-small { white-space:nowrap; }
  .eyebrow,.section-kicker { font-size:10px; }
  .hero h1 { font-size:34px; }
  .quick-row { justify-content:flex-start; }
  .quick-row > span { width:100%; text-align:left; }
  .lookup-card { padding:9px; }
  .input-wrap input { font-size:16px; }
  .info-grid { grid-template-columns:1fr; }
  .status-panel { gap:13px; }
  .status-copy h3 { font-size:18px; }
  .metric-row { grid-template-columns:1fr; gap:4px; }
  .metric-row strong { text-align:left; }
  .card-heading { align-items:flex-start; }
  .dns-group { grid-template-columns:1fr; gap:7px; }
  .dns-type { justify-self:start; }
  .propagation-grid { grid-template-columns:1fr; }
  .history-section { padding-top:46px; }
  .section-title-row { align-items:flex-start; }
  .history-item { width:100%; text-align:left; }
  .share-option { align-items:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
