:root{--color-text: #1e293b;--color-bg: #f8fafc;--color-border: #cbd5e1;--color-warning-bg: #fef3c7;--color-warning-border: #f59e0b;--color-error: #b91c1c;--grade-a: #15803d;--grade-b: #0369a1;--grade-c: #b45309;--grade-d: #b91c1c}*{box-sizing:border-box}body{margin:0;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif;color:var(--color-text);background:var(--color-bg);line-height:1.6}.app{max-width:1200px;margin:0 auto;padding:1rem}.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:#0369a1;color:#fff;padding:.5rem 1rem;border-radius:0 0 6px}.skip-link:focus{left:0}:focus-visible{outline:3px solid #0369a1;outline-offset:2px}.app-header h1{font-size:1.4rem;margin-bottom:.25rem}.app-header p{margin-top:0;color:#475569}.app-header .related-link{margin-top:.4rem;font-size:.85rem;color:#0369a1}.app-header .related-link a{color:#0369a1;text-decoration:underline;text-underline-offset:2px}.disclaimer{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:6px;padding:.75rem 1rem;font-size:.9rem;margin-bottom:1rem}.layout{display:grid;grid-template-columns:320px 1fr;gap:1rem}@media(max-width:800px){.layout{grid-template-columns:1fr}}@media print{.app-nav,.pane-form,.candidate-toolbar,.decision,.disclaimer,.skip-link{display:none!important}}.pane{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:1rem}fieldset{border:1px solid var(--color-border);border-radius:6px;margin-bottom:.75rem}legend{font-weight:600;padding:0 .25rem}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.25rem}.checkbox-grid label{display:flex;align-items:center;gap:.35rem;font-size:.9rem}form label{display:block;margin-bottom:.5rem;font-size:.9rem}form input[type=number],form select{display:block;width:100%;padding:.35rem;border:1px solid var(--color-border);border-radius:4px}button{padding:.5rem 1.25rem;border:none;border-radius:6px;background:#0369a1;color:#fff;font-size:1rem;cursor:pointer}button:disabled{background:#94a3b8;cursor:not-allowed}.results-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.results-header h2{margin:0;font-size:1.1rem}.dataset-meta{margin:0;color:#64748b;font-size:.85rem}.candidate-list{display:grid;gap:.75rem}.candidate-card{border:1px solid var(--color-border);border-left-width:5px;border-radius:6px;padding:.75rem 1rem}.candidate-card.confidence-A{border-left-color:var(--grade-a)}.candidate-card.confidence-B{border-left-color:var(--grade-b)}.candidate-card.confidence-C{border-left-color:var(--grade-c)}.candidate-card.confidence-D{border-left-color:var(--grade-d)}.candidate-card.expired{background:#fff7ed}.candidate-card header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.org-type{font-size:.85rem;font-weight:600;background:#e2e8f0;border-radius:999px;padding:.1rem .6rem}.confidence-badge{font-size:.85rem;font-weight:600}.grade-A{color:var(--grade-a)}.grade-B{color:var(--grade-b)}.grade-C{color:var(--grade-c)}.grade-D{color:var(--grade-d)}.candidate-card h3{margin:.4rem 0 0}.office-name{margin:0;color:#475569}.candidate-note{font-size:.85rem;font-weight:600;color:#b45309;margin:.4rem 0}.warning{background:var(--color-warning-bg);border-radius:4px;padding:.4rem .6rem;font-size:.85rem;margin:.4rem 0}.error{color:var(--color-error);font-weight:600}dl{display:grid;grid-template-columns:auto 1fr;gap:.1rem .75rem;font-size:.85rem;margin:.5rem 0}dt{font-weight:600;color:#64748b}dd{margin:0}.evidence h4{margin:.5rem 0 .25rem;font-size:.9rem}.candidate-detail{margin-top:.5rem;border-top:1px dashed var(--color-border);padding-top:.4rem}.candidate-detail summary{cursor:pointer;font-weight:600;font-size:.9rem}.candidate-detail-body .detail-section{margin-top:.4rem}.candidate-detail-body .detail-section h4{margin:.4rem 0 .2rem;font-size:.85rem}.candidate-detail-body ul{margin:0;padding-left:1.2rem;font-size:.85rem}.candidate-detail-body .evidence-host{margin-left:.3rem}.evidence-host{color:#64748b;font-size:.85rem}.placeholder{color:#64748b}.map-container{width:100%;height:320px;border:1px solid var(--color-border);border-radius:6px}.map-note{color:#64748b;font-size:.85rem;margin:.35rem 0 1rem}.decision{border-top:1px dashed var(--color-border);margin-top:.6rem;padding-top:.5rem}.decision h4{margin:0 0 .35rem;font-size:.9rem}.decision-buttons{display:flex;gap:.4rem;flex-wrap:wrap}.decision-buttons button{background:#e2e8f0;color:var(--color-text);font-size:.85rem;padding:.3rem .8rem}.decision-buttons button.decision-active{background:#0369a1;color:#fff}.decision-note{display:block;font-size:.8rem;color:#64748b;margin-top:.4rem}.decision-note textarea{display:block;width:100%;border:1px solid var(--color-border);border-radius:4px;font-size:.85rem;margin-top:.2rem}.app-nav{display:flex;gap:.4rem;margin-bottom:1rem}.app-nav button{background:#e2e8f0;color:var(--color-text)}.app-nav button.nav-active{background:#0369a1;color:#fff}.hidden{display:none}.settings-section{border-bottom:1px dashed var(--color-border);padding:.5rem 0 .9rem;margin-bottom:.5rem}.settings-section h3{margin:0 0 .4rem;font-size:1rem}.settings-note{color:#475569;font-size:.9rem}.settings-section input[type=number]{width:10rem;margin:.25rem 0 .5rem}.audit-table-wrap{overflow-x:auto}.audit-table{border-collapse:collapse;width:100%;font-size:.85rem}.audit-table th,.audit-table td{border:1px solid var(--color-border);padding:.35rem .5rem;text-align:left;white-space:nowrap}.audit-table th{background:#f1f5f9}.audit-correlation{font-family:monospace;font-size:.75rem}.address-search{display:flex;gap:.4rem;margin-top:.2rem}.address-search input{flex:1;padding:.35rem;border:1px solid var(--color-border);border-radius:4px}.address-search button{white-space:nowrap;font-size:.85rem;padding:.35rem .7rem}.address-results{list-style:none;margin:.4rem 0;padding:0;border:1px solid var(--color-border);border-radius:4px}.address-results li+li{border-top:1px solid var(--color-border)}.address-results li{display:block;width:100%;text-align:left;background:#fff;color:var(--color-text);font-size:.85rem;padding:.35rem .7rem;cursor:pointer}.address-results li:hover,.address-results li.active{background:#e0f2fe}.admin-page{display:flex;flex-direction:column;gap:.8rem}.table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th,.admin-table td{border:1px solid var(--color-border);padding:.4rem .5rem;text-align:left;vertical-align:top}.admin-table th{background:#f1f5f9;white-space:nowrap}.import-form summary{cursor:pointer;font-weight:600;margin:.4rem 0}.import-form form{display:flex;flex-direction:column;gap:.5rem;max-width:32rem}.import-form textarea{font-family:ui-monospace,monospace;font-size:.8rem}.review-toolbar{display:flex;gap:.6rem;align-items:center}.review-card{border:1px solid var(--color-border);border-radius:6px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.4rem}.review-card header{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.review-card time{margin-left:auto;color:#64748b;font-size:.8rem}.review-source{color:#475569;font-size:.85rem}.state-badge{font-size:.8rem;border-radius:999px;padding:.1rem .6rem;background:#e2e8f0}.state-badge.state-approved{background:#dcfce7}.state-badge.state-rejected{background:#fee2e2}.state-badge.state-quarantined{background:#fef3c7}.state-badge.state-in_review{background:#dbeafe}.state-badge.state-fb-new{background:#fee2e2}.state-badge.state-fb-reviewed{background:#dbeafe}.state-badge.state-fb-resolved{background:#dcfce7}.candidate-toolbar{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center;background:#f1f5f9;border:1px solid var(--color-border);border-radius:6px;padding:.5rem .7rem;margin-bottom:.75rem}.candidate-toolbar label{display:flex;align-items:center;gap:.3rem;font-size:.8rem;color:#334155}.candidate-toolbar select{padding:.25rem .4rem;border:1px solid var(--color-border);border-radius:4px;font-size:.8rem}.candidate-toolbar .toolbar-check{gap:.25rem;white-space:nowrap}.candidate-toolbar .toolbar-count{margin:0 0 0 auto;font-size:.8rem;color:#475569}.success{color:#15803d;font-weight:600}.feedback-form{display:flex;flex-direction:column;gap:.6rem;max-width:38rem}.feedback-form input[type=url],.feedback-form select,.feedback-form textarea{display:block;width:100%;padding:.4rem;border:1px solid var(--color-border);border-radius:4px;font-size:.9rem}.settings-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.file-upload{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem 1.25rem;border-radius:6px;background:#0369a1;color:#fff;font-size:1rem;cursor:pointer}.file-upload input,.print-area{display:none}@media print{body{background:#fff}.app{max-width:none;padding:0}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{display:block;position:absolute;inset:0;padding:.5cm}.print-area table{border-collapse:collapse;width:100%;font-size:8pt;page-break-inside:auto}.print-area th,.print-area td{border:1px solid #334155;padding:2px 4px;text-align:left;vertical-align:top;word-break:break-word}.print-area th{background:#e2e8f0}.print-area tr{page-break-inside:avoid}.print-area h1{font-size:13pt;margin:0 0 .2cm}.print-area p{font-size:9pt;margin:.1cm 0}.print-disclaimer{border:1px solid #b45309;background:#fef3c7;padding:.15cm}}.review-note{font-size:.85rem;color:#475569}.review-actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.review-actions input{flex:1;min-width:12rem;padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:4px}.payload{background:#f8fafc;border:1px solid var(--color-border);border-radius:4px;padding:.5rem;font-size:.75rem;overflow-x:auto;max-height:16rem}.quality-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.8rem}.quality-card{border:1px solid var(--color-border);border-radius:6px;padding:.7rem .9rem}.quality-card h3{margin:0 0 .3rem;font-size:.95rem}.quality-value{font-size:1.8rem;font-weight:700;margin:.1rem 0}.quality-value.quality-alert{color:#dc2626}.quality-warn{color:#b45309;font-size:.85rem}.quality-list{list-style:none;padding:0;margin:.3rem 0 0;font-size:.9rem}.success{color:#15803d;font-size:.9rem}
