:root{--ink:#1b2733;--ink-soft:#5a6b7b;--paper:#f2f5f7;--card:#fff;--line:#dde4ea;--accent:#0f4c81;--safe:#2e7d32;--warn:#c75000;--danger:#b3261e;--chip:#eef3f7;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Meiryo,sans-serif;background:var(--paper);color:var(--ink);line-height:1.65}header.app{background:var(--accent);color:#fff;padding:18px 20px 16px;border-bottom:4px solid #f4b400}header.app h1{font-size:1.15rem;letter-spacing:.04em;font-weight:700}header.app p{font-size:.78rem;opacity:.85;margin-top:2px}main{max-width:1080px;margin:0 auto;padding:18px 16px 60px}.search-box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px}.search-row{display:flex;gap:8px;flex-wrap:wrap}.search-row input{flex:1 1;min-width:240px;font-size:1rem;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;outline:none}.search-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,76,129,.15)}.search-row button{font-size:1rem;font-weight:700;padding:10px 22px;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}.search-row button:hover{background:#0c3d68}.search-row button:disabled{background:#9ab2c6;cursor:wait}.hint{font-size:.76rem;color:var(--ink-soft);margin-top:8px}#candidates{margin-top:10px;display:none}#candidates .cand{display:block;width:100%;text-align:left;background:var(--chip);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-top:6px;cursor:pointer;font-size:.9rem}#candidates .cand:hover{border-color:var(--accent);background:#e3edf5}#status{font-size:.85rem;color:var(--ink-soft);margin:6px 2px}#status.error{color:var(--danger);font-weight:700}#overall{display:none;border-radius:var(--radius);padding:14px 16px;margin:14px 0;font-weight:700;font-size:1rem;border:1.5px solid}#overall.hit{background:#fdeaea;border-color:var(--danger);color:var(--danger)}#overall.near{background:#fff4e5;border-color:var(--warn);color:var(--warn)}#overall.clear{background:#eaf4ea;border-color:var(--safe);color:var(--safe)}#overall small{display:block;font-weight:400;font-size:.78rem;color:var(--ink-soft);margin-top:4px}#share{display:none;margin:0 0 14px}#share button{font-size:.82rem;font-weight:700;padding:8px 16px;border:1.5px solid var(--accent);background:#fff;color:var(--accent);border-radius:8px;cursor:pointer}#share button:hover{background:#eef3f7}#share-note{font-size:.75rem;color:var(--ink-soft);margin-left:8px;word-break:break-all}.cards{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}@media (max-width:840px){.cards{grid-template-columns:1fr}}.hz-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;display:flex;align-items:center;gap:10px}.hz-card .bar{width:6px;align-self:stretch;border-radius:3px;background:#c9d4dd}.hz-card.hit .bar{background:var(--danger)}.hz-card.near .bar{background:var(--warn)}.hz-card.clear .bar{background:var(--safe)}.hz-card .body{flex:1 1}.hz-card .name{font-size:.88rem;font-weight:700}.hz-card .verdict{font-size:.95rem;font-weight:700}.hz-card.hit .verdict{color:var(--danger)}.hz-card.near .verdict{color:var(--warn)}.hz-card.clear .verdict{color:var(--safe)}.hz-card .detail{font-size:.76rem;color:var(--ink-soft)}.hz-card .law{font-size:.7rem;color:#5a6b7b;margin-top:4px;line-height:1.5}.hz-card .evidence{font-size:.67rem;color:#94a3af;margin-top:3px;line-height:1.5;word-break:break-all}.hz-card .evidence a{color:var(--accent);text-decoration:underline;white-space:nowrap}.swatch{width:14px;height:14px;border-radius:3px;display:inline-block;vertical-align:-2px;border:1px solid rgba(0,0,0,.15);margin-right:4px}.map-wrap{margin-top:10px}#map{height:480px;border-radius:var(--radius);border:1px solid var(--line);background:#dfe7ed}@media (max-width:840px){#map{height:380px}}.map-note{font-size:.74rem;color:var(--ink-soft);margin-top:6px}.links{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 16px;font-size:.85rem;display:none}.links a{color:var(--accent);font-weight:700}.disclaimer{margin-top:14px;background:#fff8e6;border:1px solid #e8d48a;border-radius:var(--radius);padding:12px 16px;font-size:.78rem;color:#6b5800}.disclaimer strong{color:#8a6d00}footer{font-size:.72rem;color:var(--ink-soft);text-align:center;padding:20px 10px}