:root{--ink:#000;--muted:#909398;--line:#c2cbd6;--line-soft:#e8eaed;--soft:#f5f5f5;--charcoal:#313336;--blue:#1d3b9e;--blue-hover:#294bbd;--blue-soft:#eef1fb;--green:#64c465;--green-dark:#397f3d;--green-soft:#edf8ed;--white:#fff}
*{box-sizing:border-box}
html{font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white)}
body{margin:0;min-width:320px;background:var(--white);font-weight:400}
button,input,select{font:inherit}
button,a{touch-action:manipulation}
.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}
.topbar{height:72px;padding:0 max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--charcoal);color:var(--white);border-bottom:1px solid #44464a}
.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--white);color:var(--blue)}.brand-mark svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.brand div{display:flex;flex-direction:column;line-height:1}.brand strong{font-size:16px;font-weight:600;letter-spacing:.01em}
.help-button{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 13px;border:1px solid #62656a;border-radius:7px;background:transparent;color:var(--white);font-size:13px;font-weight:500;cursor:pointer}.help-button span{display:grid;place-items:center;width:19px;height:19px;border:1px solid #aeb1b5;border-radius:50%;font-size:12px;line-height:1}.help-button:hover{background:#414449;border-color:#8c9095}.help-button:focus-visible{outline:3px solid rgba(255,255,255,.45);outline-offset:2px}
main{max-width:1120px;margin:0 auto;padding:36px 24px 72px}
.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.intro h1{margin:0;font-size:clamp(28px,3.5vw,36px);line-height:1.25;letter-spacing:-.025em;font-weight:600}.lead{margin:9px 0 0;color:var(--muted);font-size:14px}
.filters{background:var(--soft);border:1px solid var(--line-soft);border-radius:10px;padding:16px}
.search-field{position:relative;display:block}.search-field svg{position:absolute;left:15px;top:50%;width:19px;height:19px;transform:translateY(-50%);fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round}.search-field input{width:100%;height:48px;padding:0 46px;border:1px solid var(--line);border-radius:8px;background:var(--white);font-size:15px;outline:none;transition:border-color .15s,box-shadow .15s}.search-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,59,158,.12)}.input-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:21px;cursor:pointer;display:none}.input-clear.visible{display:block}.input-clear:hover{background:var(--line-soft)}
.select-row{display:grid;grid-template-columns:1.35fr 1fr auto;gap:12px;align-items:end;margin-top:14px}.select-row label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:500}.select-row select{height:42px;padding:0 36px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font-size:13px;outline:none}.select-row select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,59,158,.1)}.reset-button{height:42px;padding:0 15px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:#4d5055;font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer}.reset-button:hover{background:#eceef1;color:var(--ink)}.active-filters{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.active-filters:empty{display:none}.filter-chip{border:1px solid rgba(29,59,158,.13);border-radius:7px;padding:6px 9px;background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:500;cursor:pointer}.filter-chip::after{content:" ×"}
.results{margin-top:30px}.result-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:0 2px}.result-head h2{margin:0;font-size:17px;font-weight:600}.result-head h2 span{color:var(--blue);margin-right:.28em}.download-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:7px;background:var(--white);color:#4d5055;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.download-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.download-button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.download-button:disabled{opacity:.4;cursor:not-allowed}
.company-list{display:grid;gap:8px}.company-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:16px 18px;background:var(--white);border:1px solid var(--line-soft);border-radius:8px;transition:background .15s,border-color .15s}.company-card:nth-child(2n){background:#fafafa}.company-card:hover{background:var(--soft);border-color:var(--line)}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.card-tags span{padding:4px 7px;border-radius:5px;font-size:11px;font-weight:500}.region-tag{background:var(--green-soft);color:var(--green-dark)}.industry-tag{background:var(--blue-soft);color:var(--blue)}.company-name{margin:0;font-size:16px;line-height:1.45;font-weight:600}.company-address{margin:5px 0 0;color:#666a70;font-size:13px}.meta{display:flex;gap:18px;margin:10px 0 0}.meta div{display:flex;gap:7px}.meta dt{color:var(--muted);font-size:11px}.meta dd{margin:0;font-size:11px;font-weight:500}.actions{display:flex;align-items:center;gap:7px}.action{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:7px;color:#4d5055;background:var(--white);font-size:12px;font-weight:500;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}.action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.action:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.action.primary{border-color:var(--blue);background:var(--blue);color:#fff}.action.primary:hover{border-color:var(--blue-hover);background:var(--blue-hover)}.action.disabled{display:none}
.empty-state{text-align:center;padding:56px 20px;background:var(--soft);border:1px solid var(--line-soft);border-radius:8px}.empty-state div{font-size:38px;color:var(--muted)}.empty-state h3{margin:8px 0;font-size:17px}.empty-state p{color:var(--muted);font-size:13px}.empty-state button{border:0;border-radius:7px;padding:10px 15px;background:var(--blue);color:#fff;font-weight:500;cursor:pointer}
.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:22px}.pagination button{min-width:38px;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#4d5055;font-size:13px;font-weight:500;cursor:pointer}.pagination button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.pagination button.current{background:var(--blue);border-color:var(--blue);color:#fff}.pagination button:disabled{opacity:.35;cursor:not-allowed}
.help-dialog{width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:12px;background:var(--white);color:var(--ink);box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:auto}.help-dialog::backdrop{background:rgba(20,22,25,.62)}.help-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 24px 18px;border-bottom:1px solid var(--line-soft)}.help-eyebrow{margin:0 0 5px;color:var(--blue);font-size:11px;font-weight:700}.help-dialog h2{margin:0;font-size:21px;font-weight:600}.help-close{flex:0 0 auto;width:36px;height:36px;border:1px solid var(--line-soft);border-radius:7px;background:var(--white);color:#5e6268;font-size:23px;line-height:1;cursor:pointer}.help-close:hover{background:var(--soft);color:var(--ink)}.help-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:20px 24px 8px}.help-option{display:grid;grid-template-columns:36px 1fr;gap:11px;padding:16px;border:1px solid var(--line-soft);border-radius:9px;background:#fafafa}.help-option-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:var(--blue-soft);color:var(--blue);font-size:18px;font-weight:700}.help-option h3{margin:3px 0 7px;font-size:14px;font-weight:600}.help-option p{margin:0;color:#666a70;font-size:12px;line-height:1.75}.help-note{margin:12px 24px 0;padding:14px 15px;border:1px solid #e7b84c;border-radius:8px;background:#fff8e6;color:#5d4919}.help-note strong{display:flex;align-items:center;gap:7px;font-size:13px}.help-note strong span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#d99000;color:#fff;font-size:12px}.help-note p{margin:7px 0 0;font-size:12px;line-height:1.75}.help-done{display:block;width:calc(100% - 48px);height:42px;margin:18px 24px 24px;border:0;border-radius:7px;background:var(--blue);color:var(--white);font-size:13px;font-weight:600;cursor:pointer}.help-done:hover{background:var(--blue-hover)}
.topbar-actions{display:flex;align-items:center;gap:8px}.name-button{height:38px;max-width:180px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:#d5d7da;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.name-button:hover{background:#414449;color:var(--white)}.name-button:focus-visible{outline:3px solid rgba(255,255,255,.45);outline-offset:2px}
.marks{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;border-top:1px solid var(--line-soft)}.mark-button{height:32px;padding:0 11px;border:1px dashed var(--line);border-radius:7px;background:transparent;color:#666a70;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.mark-button:hover:not(:disabled){border-style:solid;border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.mark-button:disabled{opacity:.5;cursor:default}.mark-badge{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:4px 11px;border-radius:7px;font-size:12px;background:var(--blue-soft);color:var(--blue)}.mark-badge.won{background:var(--green-soft);color:var(--green-dark)}.mark-badge strong{font-weight:600}.mark-badge span{color:#4d5055}.mark-undo{padding:0;border:0;background:transparent;color:#666a70;font-size:12px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.mark-undo:hover{color:var(--ink)}.mark-undo:disabled{opacity:.5;cursor:default}
.help-option.wide{grid-column:1/-1}
.name-dialog{width:min(420px,calc(100vw - 32px));margin:auto;padding:0;border:0;border-radius:12px;background:var(--white);color:var(--ink);box-shadow:0 18px 60px rgba(0,0,0,.28)}.name-dialog::backdrop{background:rgba(20,22,25,.62)}.name-dialog form{padding:24px}.name-dialog h2{margin:0;font-size:18px;font-weight:600}.name-dialog p{margin:8px 0 16px;color:#666a70;font-size:13px;line-height:1.7}.name-dialog input{width:100%;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:8px;font-size:15px;outline:none}.name-dialog input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(29,59,158,.12)}.name-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.name-cancel,.name-save{height:42px;padding:0 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer}.name-cancel{border:1px solid var(--line);background:var(--white);color:#4d5055}.name-cancel:hover{background:var(--soft)}.name-save{border:0;background:var(--blue);color:var(--white)}.name-save:hover{background:var(--blue-hover)}
.notice{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:12px 16px;border-radius:8px;background:var(--charcoal);color:var(--white);font-size:13px;line-height:1.6;box-shadow:0 8px 28px rgba(0,0,0,.24);z-index:10}.notice[hidden]{display:none}
.region-picker{margin-top:14px}.picker-label{display:block;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:500}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip-row.area{margin-top:8px;padding:10px;border:1px solid var(--line-soft);border-radius:8px;background:var(--white)}.chip-row[hidden]{display:none}.region-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.region-chip small{color:var(--muted);font-size:11px;font-weight:400;font-variant-numeric:tabular-nums}.region-chip:hover{border-color:var(--blue);color:var(--blue)}.region-chip:focus-visible{outline:3px solid rgba(29,59,158,.25);outline-offset:1px}.region-chip[aria-checked="true"]{border-color:var(--blue);background:var(--blue);color:var(--white)}.region-chip[aria-checked="true"] small{color:rgba(255,255,255,.78)}.chip-row.area .region-chip{min-height:34px;border-color:var(--line-soft);background:var(--soft)}.chip-row.area .region-chip[aria-checked="true"]{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.chip-row.area .region-chip[aria-checked="true"] small{color:var(--blue)}
@media(max-width:820px){.select-row{grid-template-columns:1fr 1fr}.reset-button{grid-column:span 2}.company-card{grid-template-columns:1fr}.actions{border-top:1px solid var(--line-soft);padding-top:13px}.marks{padding-top:13px}.action{flex:1}}
@media(max-width:560px){.topbar{height:62px;padding:0 14px}.brand{gap:9px}.brand strong{font-size:14px}.brand-mark{width:34px;height:34px;border-radius:8px}.brand-mark svg{width:23px;height:23px}.help-button{height:36px;padding:0 10px;font-size:12px}main{padding:26px 14px 52px}.intro{margin-bottom:18px}.lead{font-size:13px;line-height:1.7}.filters{padding:12px;border-radius:8px}.select-row{grid-template-columns:1fr}.reset-button{grid-column:auto}.company-card{padding:15px 14px;gap:13px}.actions{display:grid;grid-template-columns:1fr 1fr}.official-action{grid-column:span 2}.meta{display:grid;gap:5px}.result-head{align-items:center}.download-button{height:36px;padding:0 10px;font-size:11px}.pagination button{min-width:35px;height:37px}.pagination .page-number.mobile-hide{display:none}.help-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:10px}.help-dialog-head{padding:19px 18px 15px}.help-dialog h2{font-size:19px}.help-options{grid-template-columns:1fr;padding:14px 18px 5px}.brand{flex:none}.brand strong{white-space:nowrap}.topbar{gap:8px}.topbar-actions{min-width:0;gap:2px}.help-button{flex:none;white-space:nowrap}.name-button{min-width:0;max-width:84px;padding:0 6px;font-size:12px}.mark-button,.mark-badge{font-size:12px}.name-dialog form{padding:20px 18px}.help-option{padding:14px}.help-note{margin:10px 18px 0}.help-done{width:calc(100% - 36px);margin:16px 18px 18px}}
