:root{--bg:#fffbea;--ink:#1c1b17;--sub:#6b665a;--line:#e6dfc3;--ac:#ff6a00;--ac2:#ffe08a;--neg:#d62828;--pos:#0a8a4a;--card:#fff}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.7}
.hd{padding:12px 16px;border-bottom:3px solid var(--ink);background:var(--ac2)}
.hd{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.hd nav{display:flex;gap:14px;font-size:.85rem}.hd nav a{color:var(--ink);font-weight:700}
.logo{color:var(--ink);font-weight:800;text-decoration:none}
.wrap{max-width:560px;margin:0 auto;padding:20px 16px 40px}
.hero h1{font-size:1.7rem;line-height:1.35;margin:.4em 0}
.hero p,.lead{color:var(--sub)}
.tools{display:grid;gap:12px;margin-top:20px}
.tool{display:flex;gap:12px;align-items:center;padding:16px;background:var(--card);border:2px solid var(--ink);border-radius:14px;color:var(--ink);text-decoration:none;box-shadow:4px 4px 0 var(--ink)}
.tool.soon{opacity:.5;box-shadow:none;border-style:dashed}
.tool-ico{font-size:2rem}.tool small{color:var(--sub)}
.ttl{font-size:1.4rem;margin:.2em 0}
.card{background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:18px;margin-top:16px;box-shadow:4px 4px 0 var(--ink)}
.fld{display:block;margin-bottom:20px;font-weight:700}
.fld b{float:right;color:var(--ac)}
input[type=range]{width:100%;accent-color:var(--ac);margin-top:8px}
input[type=number]{width:100%;padding:10px;font-size:1rem;border:2px solid var(--ink);border-radius:8px;margin-top:6px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0}
.seg span{display:block;text-align:center;padding:10px 4px;border:2px solid var(--ink);border-radius:10px;font-size:.85rem;cursor:pointer;background:#fff}
.seg small{display:block;color:var(--sub);font-weight:400}
.seg input:checked+span{background:var(--ac2);box-shadow:inset 0 0 0 2px var(--ac)}
.chk{display:flex;gap:10px;align-items:flex-start}.chk input{width:22px;height:22px;margin-top:4px;accent-color:var(--ac)}
.chk small{display:block;font-weight:400;color:var(--sub)}
.btn{display:block;width:100%;text-align:center;padding:14px;margin-top:12px;font-size:1.05rem;font-weight:800;color:#fff;background:var(--ac);border:2px solid var(--ink);border-radius:12px;cursor:pointer;text-decoration:none;box-shadow:3px 3px 0 var(--ink)}
.btn.x{background:#000}.btn.ghost{background:#fff;color:var(--ink)}
.err{background:#ffe3e3;border:2px solid var(--neg);padding:10px;border-radius:8px;margin-top:12px}
.lbl{margin:0;font-size:.8rem;font-weight:800;color:var(--sub)}
.rank{font-size:1.6rem;margin:.1em 0;color:var(--ac)}.sub{margin:0 0 12px;color:var(--sub)}
.big{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.big div{background:var(--bg);border:2px solid var(--line);border-radius:10px;padding:10px;text-align:center}
.big small{display:block;color:var(--sub)}.big strong{font-size:1.5rem}
.neg strong{color:var(--neg)}.pos strong{color:var(--pos)}
.calc{width:100%;border-collapse:collapse;font-size:.88rem;margin:8px 0 16px}
.calc th{text-align:left;font-weight:500;padding:6px 0;border-bottom:1px dashed var(--line)}
.calc td{text-align:right;font-weight:700;border-bottom:1px dashed var(--line);white-space:nowrap}
.calc .tot th,.calc .tot td{font-weight:800;border-bottom:2px solid var(--ink)}
.ai{background:#eef6ff;border-left:5px solid #2575fc;padding:10px 14px;border-radius:6px;margin-bottom:8px}.ai p{margin:.3em 0}
.ad{margin-top:16px;min-height:100px;border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:var(--sub);font-size:.8rem}
.aff{box-shadow:none;border-style:dashed}
.ft{max-width:560px;margin:0 auto;padding:0 16px 40px;color:var(--sub);font-size:.78rem}
.sec{font-size:1.1rem;margin:28px 0 8px}
.rows{list-style:none;margin:0;padding:0;background:var(--card);border:2px solid var(--ink);border-radius:14px;overflow:hidden}
.rows li a{display:flex;gap:10px;align-items:center;padding:10px 14px;border-bottom:1px dashed var(--line);color:var(--ink);text-decoration:none;font-size:.9rem}
.rows li:last-child a{border-bottom:0}
.rows .no{font-weight:800;color:var(--ac);width:1.8em}.rows .tt{flex:1;font-weight:700}.rows .mt{color:var(--sub);font-size:.8rem;text-align:right}
.rows .v{font-weight:800}.bar{height:8px;background:var(--ac);border-radius:4px}
.empty{color:var(--sub);padding:14px}
.pager{display:flex;justify-content:space-between;margin-top:14px}.pager a{color:var(--ink);font-weight:700}
.btn:disabled{opacity:.6;cursor:wait}.note{color:var(--neg);font-size:.85rem;margin:6px 0 0}[hidden]{display:none!important}
.ft-nav{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 12px}.ft-nav a{color:var(--ink);font-weight:700}
.doc h2{font-size:1.05rem;margin:28px 0 6px;border-left:5px solid var(--ac);padding-left:8px}.doc p,.doc li{font-size:.92rem}.doc ul{padding-left:1.3em}
.doc .upd{color:var(--sub);font-size:.8rem}
.fld input[type=text],.fld input[type=email],.fld textarea{width:100%;padding:10px;font-size:1rem;border:2px solid var(--ink);border-radius:8px;margin-top:6px;font-family:inherit}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.ok{background:#e6f7ec;border:2px solid var(--pos);padding:10px;border-radius:8px;margin-top:12px}
.sec-link{color:var(--ink);text-decoration:none}.badge{color:var(--ac);font-weight:700}
.crumb{font-size:.8rem;color:var(--sub);margin:0}.crumb a{color:var(--sub)}
.note-line{font-size:.85rem;color:var(--sub);margin:-6px 0 14px}.links-line{text-align:center;font-size:.85rem;margin:12px 0 4px}.links-line a{color:var(--ink);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.chips a{font-size:.78rem;padding:4px 10px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);text-decoration:none}.chips a.on{background:var(--ac2);box-shadow:inset 0 0 0 2px var(--ac)}.chips small{color:var(--sub)}
.rblist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rb{background:var(--card);border:2px solid var(--ink);border-radius:14px;padding:12px 14px}
.rb-top{display:flex;gap:10px;align-items:baseline;font-size:.78rem;color:var(--sub)}.rb-top .no{font-size:1.1rem;font-weight:800;color:var(--ac)}.rb-top a{color:var(--sub)}
.rb-head{display:flex;flex-wrap:wrap;gap:4px 16px;font-weight:700;margin:4px 0}.rb-head b{font-size:1.1rem}
b.neg{color:var(--neg)}b.pos{color:var(--pos)}
.rb .calc{margin:6px 0 0}
