:root{
  --bg:#f7f7f4;--surface:#fff;--text:#1f2328;--muted:#5d646b;--line:#e3e3dc;
  --brand:#0f766e;--brand-weak:#e6f4f1;--hl:#fde68a;
  --ok:#15803d;--ok-bg:#e8f6ec;--ratio:#1d4ed8;--ratio-bg:#e8eefc;
  --cond:#b45309;--cond-bg:#fdf3e2;--ng:#b91c1c;--ng-bg:#fdecec;
  --pr:#7c3aed;--radius:12px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#141617;--surface:#1d2022;--text:#e8eaeb;--muted:#a3a9ae;--line:#2f3336;
  --brand:#2dd4bf;--brand-weak:#163331;--hl:#7a5c00;
  --ok:#4ade80;--ok-bg:#16301f;--ratio:#93b4ff;--ratio-bg:#1b2540;
  --cond:#fbbf24;--cond-bg:#33280f;--ng:#f87171;--ng-bg:#3a1a1a;--pr:#c4b5fd}}
:root[data-theme="dark"]{
  --bg:#141617;--surface:#1d2022;--text:#e8eaeb;--muted:#a3a9ae;--line:#2f3336;
  --brand:#2dd4bf;--brand-weak:#163331;--hl:#7a5c00;
  --ok:#4ade80;--ok-bg:#16301f;--ratio:#93b4ff;--ratio-bg:#1b2540;
  --cond:#fbbf24;--cond-bg:#33280f;--ng:#f87171;--ng-bg:#3a1a1a;--pr:#c4b5fd}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;line-height:1.75;font-size:16px}
a{color:var(--brand)}
.wrap{max-width:820px;margin:0 auto;padding:0 16px}
h1{font-size:1.55rem;line-height:1.4;margin:.6em 0 .4em}
h2{font-size:1.15rem;margin:1.8em 0 .6em;padding-left:.6em;border-left:4px solid var(--brand)}
.small{font-size:.85rem;color:var(--muted)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin:16px 0}
.card h2{margin-top:.2em}
/* header/footer */
.site-header{background:var(--surface);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px}
.logo{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text);text-decoration:none;font-size:1.1rem}
.logo small{font-weight:400;font-size:.72rem;color:var(--muted)}
.logo-mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;font-size:1rem}
.gnav{display:flex;gap:12px;font-size:.9rem;white-space:nowrap}
.gnav a{text-decoration:none}
.site-footer{margin-top:48px;border-top:1px solid var(--line);background:var(--surface);padding:24px 0}
.fnav{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.88rem;margin-bottom:10px}
/* hero/search */
.hero{padding:20px 0 4px}
.hero h1{font-size:1.8rem}
.hl{background:linear-gradient(transparent 60%,var(--hl) 60%)}
.lead{margin:.2em 0 1em}
.search{display:flex;gap:8px}
.search input{flex:1;min-width:0;font-size:1.05rem;padding:12px 14px;border:2px solid var(--brand);border-radius:10px;background:var(--surface);color:var(--text)}
.search button{font-size:1rem;font-weight:700;padding:0 18px;border:0;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .search button{color:#0b1f1d}}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0;align-items:center}
.chips-label{font-size:.82rem;color:var(--muted)}
.chip{font-size:.85rem;padding:3px 10px;border:1px solid var(--line);border-radius:99px;background:var(--surface);text-decoration:none;color:var(--text)}
.chip:hover{border-color:var(--brand)}
.result:empty{display:none}
.result{margin-top:8px}
.r-main{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.r-main h3{margin:.2em 0;font-size:1.2rem}
.r-main .kamoku-big{margin:.1em 0}
.r-more{margin:10px 0 0;padding:0;list-style:none}
.r-more li a{display:flex;gap:8px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.r-none{background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:14px 16px}
/* badges & verdict */
.badge{display:inline-block;font-size:.78rem;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap;margin-right:6px;vertical-align:middle}
.v-ok.badge,.badge.v-ok{color:var(--ok);background:var(--ok-bg)}
.badge.v-ratio{color:var(--ratio);background:var(--ratio-bg)}
.badge.v-cond{color:var(--cond);background:var(--cond-bg)}
.badge.v-ng{color:var(--ng);background:var(--ng-bg)}
.verdict{border-width:2px}
.verdict.v-ok{border-color:var(--ok)}.verdict.v-ratio{border-color:var(--ratio)}.verdict.v-cond{border-color:var(--cond)}.verdict.v-ng{border-color:var(--ng)}
.r-main.v-ok{border-color:var(--ok)}.r-main.v-ratio{border-color:var(--ratio)}.r-main.v-cond{border-color:var(--cond)}.r-main.v-ng{border-color:var(--ng)}
.verdict-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.verdict .badge{font-size:.95rem;padding:4px 12px}
.verdict-sub{font-size:.9rem;color:var(--muted)}
.kamoku-label{margin:.8em 0 0;font-size:.8rem;color:var(--muted)}
.kamoku-big{font-size:1.6rem;font-weight:700;margin:0;line-height:1.3}
.kamoku-big a{text-decoration:none}
.alt{font-size:.9rem;margin:.3em 0}
.summary{margin:.8em 0 0}
.item-name{color:var(--muted);font-size:.9rem;margin:0}
.list{padding-left:1.3em}.list li{margin:.3em 0}
.list.warn li::marker{color:var(--cond)}
/* journal */
.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;background:var(--surface)}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;font-size:.92rem}
th{background:var(--brand-weak)}
.journal td:nth-child(2),.journal td:nth-child(4){white-space:nowrap}
table.info th{width:9em}
/* calc */
.calc-row{display:flex;flex-wrap:wrap;gap:12px}
.calc-row label{display:flex;align-items:center;gap:6px;font-size:.9rem;flex-wrap:wrap}
.calc-row input{width:8em;font-size:1rem;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}
.calc-row input[data-ratio]{width:5em}
.calc-out{margin:.8em 0 0;font-weight:700}
/* grids */
.item-grid,.kamoku-grid,.rel,.legend{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.item-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.kamoku-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.item-grid a,.kamoku-grid a,.rel a{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;height:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--text)}
.item-grid a:hover,.kamoku-grid a:hover,.rel a:hover{border-color:var(--brand)}
.item-grid small{color:var(--muted);width:100%}
.kamoku-grid a{justify-content:space-between}
.kamoku-grid span{font-size:.8rem;color:var(--muted)}
.rel{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.legend li{display:flex;align-items:center;gap:4px;font-size:.92rem}
.inline-list{display:flex;flex-wrap:wrap;gap:6px 14px;padding-left:1.2em}
/* PR */
.pr-box{margin:28px 0;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.pr-head{font-weight:700;margin:0 0 .2em}
.pr-head2{font-weight:700;margin:1em 0 .4em}
.pr-label{display:inline-block;font-size:.72rem;font-weight:700;color:var(--pr);border:1px solid var(--pr);border-radius:4px;padding:0 6px;margin-right:8px;vertical-align:2px}
.pr-btns{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:8px}
.btn-aff{display:block;text-align:center;padding:11px 10px;border-radius:10px;background:#f97316;color:#fff;font-weight:700;text-decoration:none}
.btn-aff.alt{background:var(--brand)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn-aff.alt{color:#0b1f1d}}
.crumb{font-size:.8rem;color:var(--muted);margin-top:14px}
.crumb a{color:var(--muted)}
.sources ul{padding-left:1.2em;font-size:.9rem}
.back{margin-top:24px}
.doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:8px 18px 18px;margin-top:12px}
.pc{display:none}
@media (min-width:720px){.pc{display:inline}.hero h1{font-size:2.2rem}h1{font-size:1.8rem}}
@media (max-width:420px){.logo small{display:none}.gnav{gap:10px;font-size:.85rem}}
.card>p:first-child{margin-top:0}.card>p:last-child{margin-bottom:0}
.inline-list{list-style:none;padding-left:0}.inline-list li a{display:inline-block;padding:2px 0}
