:root{--accent:#4d5dff;--ink:#111;--bg:#ece8dc;--card:#fff;--muted:#777;--danger:#c0392b;--shadow:6px 6px 0 var(--ink);--shadow-sm:4px 4px 0 var(--ink);--shadow-btn:3px 3px 0 var(--ink);--radius:5px;--mono:"SF Mono", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:ui-sans-serif,system-ui,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.5}#app{max-width:480px;margin:0 auto;padding:32px 20px 48px}.app-header{margin-bottom:20px}.badge{background:var(--ink);color:var(--accent);border:3px solid var(--ink);box-shadow:var(--shadow-sm);letter-spacing:.12em;padding:6px 14px;font-size:13px;font-weight:800;display:inline-block}.card{background:var(--card);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px 18px}.main-card{box-shadow:var(--shadow);margin-bottom:16px}.accent-card{background:var(--accent);color:var(--ink)}.label{letter-spacing:.06em;margin:0 0 6px;font-size:13px;font-weight:800}.ip-value{letter-spacing:-.02em;word-break:break-all;margin:0;font-size:clamp(26px,8vw,36px);font-weight:800}.mono{font-family:var(--mono)}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.tag{background:var(--ink);color:var(--accent);border-radius:3px;padding:4px 10px;font-size:12px;font-weight:800}.btn{background:var(--card);color:var(--ink);border:2.5px solid var(--ink);box-shadow:var(--shadow-btn);cursor:pointer;border-radius:3px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:800;transition:transform 50ms,box-shadow 50ms}.btn:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.btn:active{box-shadow:0 0 0 var(--ink);transform:translate(3px,3px)}.copy-feedback{min-height:18px;margin:10px 0 0;font-size:12px;font-weight:800}.row-card{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.row-label{letter-spacing:.06em;font-size:12px;font-weight:800}.ipv6{word-break:break-all;font-size:13px}.muted{color:var(--muted)}.detail-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.detail-label{letter-spacing:.1em;color:var(--muted);margin:0 0 4px;font-size:10px;font-weight:800}.detail-value{word-break:break-word;margin:0;font-size:15px;font-weight:800}.span-2{grid-column:1/3}.note{color:var(--muted);text-align:center;margin:22px 0 0;font-size:11px}.loading .ip-value{color:var(--muted)}.error-card{box-shadow:var(--shadow)}.error-card .label{color:var(--danger)}.error-msg{margin:8px 0 14px;font-size:13px}
