:root { color-scheme: light; --ink:#172a3a; --muted:#526477; --line:#dce3e8; --teal:#087e83; --bg:#f3f6f8; }
* { box-sizing:border-box; }
body { margin:0; font:14px/1.7 "Yu Gothic UI","Meiryo",sans-serif; color:var(--ink); background:var(--bg); }
header { background:#142e40; color:white; padding:28px max(24px,calc((100vw - 1450px)/2)); border-bottom:5px solid #34b5b0; }
header small { letter-spacing:.15em; color:#8fd5d3; }
h1 { font-size:clamp(23px,3vw,34px); margin:4px 0 8px; line-height:1.4; }
header p { margin:0; color:#d0e1e9; }
a { color:#07666b; text-underline-offset:3px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible { outline:3px solid #34b5b0; outline-offset:4px; }
.header-links { display:flex; gap:16px; flex-wrap:wrap; margin-top:14px; }
.header-links a { color:#c3f5f0; }
.help-link { font-size:13px; }
main { max-width:1510px; margin:auto; padding:24px; }
h2 { font-size:20px; margin:0 0 10px; }
button,select,input { font:inherit; }
button { cursor:pointer; border:1px solid var(--line); background:white; border-radius:6px; padding:8px 13px; color:var(--ink); }
button:hover { border-color:var(--teal); }
button:disabled { opacity:.4; cursor:default; }
button.active { background:var(--teal); color:white; border-color:var(--teal); }
.cards { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
.card { background:white; border:1px solid var(--line); border-radius:10px; padding:18px 20px; }
.card span,.card small { color:var(--muted); }
.card strong { font-size:32px; display:block; font-variant-numeric:tabular-nums; line-height:1.4; }
.notice { border-left:4px solid #299598; background:#eaf6f5; padding:16px 20px; margin:18px 0; border-radius:5px; }
.notice p { margin:5px 0; }
.filters,.panel { background:white; border:1px solid var(--line); border-radius:10px; padding:20px; margin:18px 0; }
.filters { display:grid; grid-template-columns:repeat(5,minmax(125px,1fr)); gap:12px; }
label { font-size:12px; color:var(--muted); }
select,input { display:block; width:100%; padding:8px; margin-top:4px; border:1px solid #becbd4; border-radius:5px; background:white; color:var(--ink); }
.toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0; }
.grow { flex:1; }
.modeRow { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:20px; }
.modeRow label { min-width:245px; }
.modeNote { padding:12px 15px; border-radius:5px; background:#f2f5f8; color:#354f63; }
.subtle { color:var(--muted); font-size:12px; }
.scroll { overflow:auto; max-height:630px; border:1px solid var(--line); border-radius:6px; }
table { border-collapse:collapse; width:100%; white-space:nowrap; font-size:13px; }
th { position:sticky; top:0; z-index:1; background:#eaf0f4; text-align:left; }
th button { padding:10px; border:0; border-radius:0; background:transparent; font-weight:600; text-align:left; width:100%; }
td { padding:10px; border-bottom:1px solid #e7ecf0; }
tbody tr:hover { background:#eef8f8; }
td.numeric { text-align:right; font-variant-numeric:tabular-nums; }
.tag { display:inline-block; padding:2px 8px; border-radius:5px; background:#edf2f5; font-size:12px; }
.tag.HIT { background:#d9f3ea; color:#075846; }
.tag.WATCHING { background:#e6eefb; color:#295ba0; }
.tag.MISS { background:#f7e7e3; color:#91422f; }
.hold { color:#7e6540; font-size:12px; }
.empty { padding:30px; color:var(--muted); text-align:center; }
dialog { border:1px solid var(--line); border-radius:12px; max-width:900px; width:calc(100vw - 32px); max-height:85vh; padding:0; overflow:hidden; }
dialog[open] { display:flex; flex-direction:column; }
.detail-header { display:flex; align-items:flex-start; gap:16px; padding:18px 24px; flex:none; border-bottom:1px solid var(--line); background:white; }
.detail-header h2 { flex:1; min-width:0; margin:0; overflow-wrap:anywhere; }
.detail-header button { flex:none; white-space:nowrap; }
.detail-content { min-height:0; overflow:auto; padding:20px 24px 24px; overscroll-behavior:contain; }
dialog::backdrop { background:#10263788; }
dl { display:grid; grid-template-columns:200px 1fr; gap:8px; margin:20px 0; }
dt { color:var(--muted); }
dd { margin:0; overflow-wrap:anywhere; }
pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#f1f4f6; padding:15px; font-size:12px; }
footer { font-size:12px; color:var(--muted); padding:12px 0 32px; }
.quality { display:flex; gap:10px; flex-wrap:wrap; }
.quality span { padding:8px 12px; background:#f0f4f7; border-radius:6px; }
#count,#pageInfo { font-size:13px; }
.glossary-main { max-width:1100px; }
.glossary-toc { display:flex; flex-wrap:wrap; gap:8px 22px; padding:0; list-style:none; }
.glossary-main section { scroll-margin-top:18px; }
.glossary-terms { display:block; margin:0; }
.glossary-terms > div { display:grid; grid-template-columns:230px minmax(0,1fr); gap:10px 20px; padding:12px 0; border-bottom:1px solid var(--line); }
.glossary-terms > div:last-child { border-bottom:0; }
.glossary-terms dt { font-weight:600; color:var(--ink); overflow-wrap:anywhere; }
.glossary-terms small { display:block; color:var(--muted); font-weight:400; }
.glossary-main code { font-size:.9em; overflow-wrap:anywhere; }
.score-guide { white-space:normal; margin-top:18px; }
.score-guide caption { text-align:left; font-weight:600; margin-bottom:8px; }
.score-guide th { position:static; padding:9px 10px; }
.score-guide td:last-child { width:65px; font-weight:600; }
.faq-main { max-width:1180px; padding-bottom:100px; }
.faq-main section,.faq-main article { scroll-margin-top:20px; }
.faq-main h3 { font-size:17px; line-height:1.65; margin:0 0 12px; }
.faq-main p { margin:9px 0; }
.faq-toc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 32px; }
.faq-toc-grid h3 { color:var(--teal); margin-bottom:8px; }
.faq-toc-grid ol { margin:0; padding-left:30px; }
.faq-toc-grid li { margin:0 0 10px; padding-left:3px; }
.faq-toc-grid a { display:block; }
.faq-question { padding:22px 0; border-top:1px solid var(--line); }
.faq-answer { max-width:940px; }
.faq-return { display:block; width:fit-content; font-size:13px; padding:8px 0; margin-top:12px; }
.faq-top-link { position:fixed; right:24px; bottom:24px; z-index:5; color:white; background:#087277; border:1px solid white; border-radius:24px; padding:10px 20px; box-shadow:0 3px 12px #142e4026; text-decoration:none; }
.faq-top-link:hover { background:#075d61; }
.faq-table-wrap { max-width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:6px; margin:16px 0; }
.faq-table { white-space:normal; line-height:1.65; }
.faq-table caption { text-align:left; padding:12px; font-weight:600; background:#f1f6f8; }
.faq-table th { position:static; padding:10px 12px; }
.faq-table td { padding:10px 12px; overflow-wrap:anywhere; vertical-align:top; }
.faq-table tbody th { background:#f7fafb; vertical-align:top; font-weight:600; }
.faq-rating-table { min-width:850px; table-layout:fixed; }
.faq-rating-table th:nth-child(1) { width:12%; }
.faq-rating-table th:nth-child(2) { width:7%; }
.faq-rating-table th:nth-child(3),.faq-rating-table th:nth-child(4),.faq-rating-table th:nth-child(5) { width:17%; }
.faq-rating-table th:nth-child(6) { width:30%; }
.faq-mapping { border-top:4px solid var(--teal); }
.faq-question:target { background:#f3faf9; box-shadow:0 0 0 12px #f3faf9; border-radius:4px; }
.discovery-main { padding-bottom:85px; }
.discovery-table th { padding:12px 10px; }
.discovery-table td { vertical-align:top; }
.discovery-table small { display:block; color:var(--muted); font-size:11px; white-space:normal; min-width:100px; }
.discovery-table .stars { display:block; }
.discovery-table .confidence-score { font-size:19px; }
.discovery-table .confidence-score small { display:inline; }
.stars { color:#9b6500; font-size:18px; letter-spacing:1px; white-space:nowrap; }
.confidence-score { margin-left:8px; font-size:24px; font-variant-numeric:tabular-nums; }
.confidence-score small { font-weight:normal; font-size:12px; color:var(--muted); }
.check-label { display:flex; gap:8px; align-items:center; }
.check-label input { width:auto; margin:0; }
.stock-form { display:flex; align-items:end; flex-wrap:wrap; gap:12px; }
.stock-form label:first-child { flex:1; min-width:180px; }
.stock-form label:last-child { min-width:240px; }
.stock-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; flex-wrap:wrap; }
.stock-heading p { margin:0; }
.stock-matches { display:flex; gap:10px; flex-wrap:wrap; }
.rating-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.rating-card { background:white; border:1px solid var(--line); border-top:4px solid var(--teal); border-radius:10px; padding:20px; overflow-wrap:anywhere; }
.rating-card h3 { margin:0; font-size:20px; }
.rating-card small { color:var(--muted); }
.rating-card .toolbar { margin-top:0; }
.target-metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:14px 0; border-block:1px solid var(--line); }
.target-metrics span,.target-metrics small { display:block; color:var(--muted); font-size:12px; }
.target-metrics strong { font-size:25px; }
.current-confidence { background:#f0f7f6; padding:14px; border-radius:6px; margin:16px 0; }
.current-confidence > span { color:var(--muted); font-size:12px; }
.current-confidence p { margin:5px 0 0; font-size:12px; }
.evidence-block { border:1px solid var(--line); padding:16px; border-radius:8px; margin:16px 0; }
.evidence-block h3 { margin:0 0 10px; font-size:17px; }
.evidence-block dl { margin-bottom:0; }
.trust-main { max-width:1530px; padding-bottom:85px; }
.trust-intro { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:6px 0 20px; }
.trust-intro h2 { margin-bottom:4px; }
.trust-intro p { margin:0; }
.trust-search-link { border:1px solid #aacac9; padding:10px 14px; border-radius:6px; background:white; white-space:nowrap; }
.trust-controls { display:grid; grid-template-columns:180px minmax(200px,1fr) 230px auto; align-items:end; gap:16px; padding:20px; background:white; border:1px solid var(--line); border-radius:10px; }
.trust-filters { margin:14px 0; }
.trust-filters summary { cursor:pointer; color:#07666b; width:fit-content; }
.trust-filters .filters { margin-top:10px; }
.trust-summary { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; padding:15px 0 5px; }
.trust-summary strong { font-size:25px; }
.trust-summary span { color:var(--muted); font-size:13px; }
.trust-reading { color:var(--muted); font-size:13px; }
.trust-results { padding:6px 18px 10px; }
.trust-table-wrap { overflow:auto; border:1px solid var(--line); border-radius:6px; max-height:760px; }
.trust-table { white-space:normal; line-height:1.6; }
.trust-table th { padding:13px 12px; font-size:12px; }
.trust-table td { padding:16px 12px; vertical-align:middle; }
.trust-table th:nth-child(1) { width:20%; }
.trust-table th:nth-child(2) { width:20%; }
.trust-table th:nth-child(3) { width:21%; }
.trust-table th:nth-child(4) { width:15%; }
.trust-table th:nth-child(5) { width:16%; }
.trust-table small,.trust-grade-line small { display:block; color:var(--muted); font-size:11px; font-weight:normal; }
.trust-stock { font-size:14px; font-weight:600; }
.trust-price { font-variant-numeric:tabular-nums; white-space:nowrap; }
.trust-grade-line { display:flex; align-items:center; gap:12px; margin-bottom:4px; }
.trust-grade { display:inline-flex; align-items:center; justify-content:center; min-width:49px; height:49px; padding:0 9px; border-radius:8px; font-size:27px; line-height:1; background:#eef1f4; color:#42576b; }
.trust-grade.grade-A,.trust-grade.grade-Aminus { background:#d9f1e7; color:#076046; }
.trust-grade.grade-B { background:#e0effb; color:#265c8c; }
.trust-grade.grade-C { background:#f0eee1; color:#766232; }
.trust-grade.grade-D { background:#f5e6e4; color:#8a4841; }
.trust-grade-line > span { font-size:17px; font-variant-numeric:tabular-nums; }
.trust-pending { font-size:13px; font-weight:600; color:#78674d; }
.trust-rate { font-size:20px; font-variant-numeric:tabular-nums; }
.trust-table .trust-status { color:#07666b; margin-top:3px; }
.trust-table button { padding:7px 9px; font-size:12px; white-space:nowrap; }
.trust-main details p { color:var(--muted); }
.business-day-nav { display:flex; align-items:center; gap:14px; min-width:0; }
.business-day-nav h2 { margin:0; text-align:center; }
.day-icon { flex:none; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; padding:0; border:1px solid #b5d9d7; border-radius:50%; background:#eaf6f4; color:#087277; box-shadow:0 2px 5px #173c3b12; transition:background .15s,border-color .15s,box-shadow .15s; }
.day-icon:hover:not(:disabled) { background:#d3eeea; border-color:#339d96; box-shadow:0 3px 9px #173c3b22; }
.day-icon:focus-visible { outline:3px solid #34b5b0; outline-offset:3px; }
.day-icon:disabled { background:#f1f4f5; color:#859596; border-color:#d9e1e2; box-shadow:none; opacity:.5; }
.group-trust-cell .trust-grade { min-width:38px; height:34px; font-size:21px; vertical-align:middle; margin-right:8px; }
.group-trust-cell > small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.download-confirm { max-width:460px; }
.download-confirm-body { padding:26px; }
#downloadFileInfo { padding:14px; border-radius:8px; background:#f0f5f7; }
#downloadFileName,#downloadFileSize { display:block; overflow-wrap:anywhere; }
#downloadFileName { font-size:13px; }
#downloadFileSize { color:var(--muted); font-size:13px; margin-top:8px; }
.download-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
.download-actions button { min-width:90px; }
@media(max-width:1100px) {
  .trust-controls { grid-template-columns:180px 1fr; }
  .trust-table { min-width:960px; }
}
@media(max-width:650px) {
  .business-day-nav { display:grid; grid-template-columns:42px minmax(0,1fr) 42px; gap:10px; width:100%; }
  .business-day-nav h2 { font-size:16px; }
  .trust-list-toolbar { row-gap:14px; }
  .download-confirm-body { padding:20px; }
  .trust-intro { display:block; }
  .trust-search-link { display:inline-block; margin-top:10px; }
  .trust-controls { grid-template-columns:1fr; gap:10px; padding:15px; }
  .trust-summary { gap:6px 15px; }
  .trust-results { padding:6px 10px 10px; }
  .trust-table-wrap { max-height:none; border:0; overflow:visible; }
  .trust-table { min-width:0; display:block; }
  .trust-table thead { display:none; }
  .trust-table tbody { display:block; }
  .trust-table tr { display:grid; grid-template-columns:1fr 1fr; padding:15px 0; border-top:2px solid var(--line); gap:12px; }
  .trust-table td { padding:0; border:0; min-width:0; overflow-wrap:anywhere; }
  .trust-table td:nth-child(1),.trust-table td:nth-child(2),.trust-table td:nth-child(3),.trust-table td:nth-child(6) { grid-column:1/-1; }
  .trust-table td:nth-child(4)::before,.trust-table td:nth-child(5)::before { content:attr(data-label); display:block; margin-bottom:6px; font-size:11px; color:var(--muted); }
  .trust-stock { font-size:16px; }
  .trust-table button { width:100%; }
}
@media(max-width:1100px) { .rating-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media print {
  .faq-top-link,.faq-return { display:none; }
  .faq-main { max-width:none; padding:0; }
  .faq-table-wrap { overflow:visible; }
  .faq-rating-table { min-width:0; }
}
@media(max-width:850px) {
  .rating-grid { grid-template-columns:1fr; }
  .stock-form label:last-child { width:100%; min-width:0; }
  .rating-card { padding:16px; }
  main { padding:14px; }
  .cards { grid-template-columns:repeat(2,1fr); }
  .card { padding:13px; }
  .card strong { font-size:27px; }
  .filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  header { padding:24px 18px; }
  dl { grid-template-columns:1fr; }
  dd { margin-bottom:8px; }
  .glossary-terms > div { grid-template-columns:1fr; gap:3px; }
  .glossary-terms dd { margin-bottom:0; }
  .detail-header { padding:14px 16px; gap:10px; }
  .detail-content { padding:16px; }
  .faq-toc-grid { grid-template-columns:1fr; gap:12px; }
  .faq-main .panel { padding:18px 16px; }
  .faq-main h3 { font-size:16px; }
  .faq-top-link { right:14px; bottom:14px; }
  .faq-main { padding-bottom:90px; }
}
