:root{--bg:#f6f7f9;--card:#fff;--fg:#1b1d21;--sub:#6b7280;--line:#e3e6ea;--accent:#2563eb;--ok:#16a34a}
@media (prefers-color-scheme:dark){:root{--bg:#111316;--card:#1b1e23;--fg:#e8eaed;--sub:#9aa0a6;--line:#2c3036;--accent:#60a5fa;--ok:#4ade80}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.6}
.wrap{max-width:880px;margin:0 auto;padding:16px}
h1{font-size:1.4rem;margin:8px 0 4px}
.lead{color:var(--sub);margin:0 0 16px;font-size:.92rem}
h2{font-size:1.05rem;margin:28px 0 10px}
.note{color:var(--sub);font-size:.8rem;margin:-4px 0 10px}
input[type=text]{width:100%;font-size:1rem;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.k{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:84px;padding:8px 4px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--fg);cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}
.k:active{transform:scale(.96)}
.k .s{font-size:1.8rem;line-height:1.2}
.k .n{font-size:.68rem;color:var(--sub);text-align:center;line-height:1.3}
.k.done{border-color:var(--ok)}
.blist{display:flex;flex-direction:column;gap:8px}
.bc{display:flex;align-items:stretch;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px}
.full{flex:0 0 46%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:8px 10px;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--fg);cursor:pointer;font:inherit;text-align:left;min-height:64px}
.full .s{font-size:1.25rem;line-height:1.3;padding-bottom:6px;word-break:break-all}
.full .n{font-size:.7rem;color:var(--sub)}
.parts{flex:1;display:flex;flex-wrap:wrap;gap:6px;align-content:center}
.chip{min-width:48px;min-height:52px;padding:2px 8px 8px;line-height:1.3;font-size:1.5rem;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--fg);cursor:pointer;font-family:inherit}
.full:active,.chip:active{transform:scale(.95)}
.full.done,.chip.done{border-color:var(--ok)}
.rows{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;text-align:left;color:var(--fg);font:inherit;width:100%}
.row .t{flex:1;font-size:1.2rem;word-break:break-all}
.row .l{font-size:.72rem;color:var(--sub);white-space:nowrap}
.row.done{border-color:var(--ok)}
.ad{margin:20px 0;min-height:100px;text-align:center;overflow:hidden}
#toast{position:fixed;left:50%;top:16px;transform:translateX(-50%) translateY(-20px);background:var(--fg);color:var(--bg);padding:10px 18px;border-radius:999px;font-size:.9rem;opacity:0;transition:.2s;pointer-events:none;z-index:9}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
footer{margin:40px 0 20px;color:var(--sub);font-size:.8rem;text-align:center}
footer a{color:var(--sub)}
.hide{display:none!important}
.crumb{font-size:.78rem;color:var(--sub);margin:4px 0 8px}.crumb a{color:var(--sub)}
.top{display:inline-block;margin:0;font-size:1.4rem;font-weight:700;color:var(--fg);text-decoration:none}
.links{display:flex;flex-wrap:wrap;gap:6px}.links a{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--fg);text-decoration:none;font-size:.85rem}
.body{font-size:.92rem}
.cp{font-size:.75rem;color:var(--sub);font-family:ui-monospace,monospace}
dl.faq dt{font-weight:700;margin-top:12px;font-size:.92rem}dl.faq dd{margin:4px 0 0;font-size:.88rem;color:var(--sub)}
section h2 a{color:inherit;text-decoration:none}
.more{font-size:.8rem;margin-top:6px;display:inline-block}
/* 文字数カウント */
:root{--bad:#dc2626}
@media (prefers-color-scheme:dark){:root{--bad:#f87171}}
.tool{display:flex;flex-direction:column;gap:12px}
.primary{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.primary .big{font-size:2.4rem;font-weight:800;line-height:1.2;word-break:break-all}
.primary .big #p-unit{font-size:.95rem;font-weight:600;color:var(--sub);margin-left:8px}
.psub{font-size:.82rem;color:var(--sub);margin-top:4px}
.lim{display:block;font-size:.85rem;color:var(--sub);margin-bottom:6px}
.lim select{font:inherit;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
.bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:8px}
.bar i{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .15s}
.primary.over .big,.primary.over .psub,.sns.over .cnt{color:var(--bad)}
.primary.over .bar i,.sns.over .bar i{background:var(--bad)}
textarea#txt{width:100%;min-height:200px;font:inherit;font-size:1rem;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);resize:vertical}
.btns{display:flex;gap:8px;margin-top:8px}
.btns button,.fmt button{font:inherit;font-size:.9rem;padding:9px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);cursor:pointer}
.btns button.main{background:var(--accent);border-color:var(--accent);color:#fff}
.btns button:disabled{opacity:.4;cursor:default}
.btns button:active:not(:disabled),.fmt button:active{transform:scale(.97)}
.panel h2{margin:12px 0 8px}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.st{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.st .l{font-size:.7rem;color:var(--sub)}.st .v{font-size:1.2rem;font-weight:700}
.sns{margin-bottom:10px}.sl{display:flex;justify-content:space-between;font-size:.85rem}
.sn{font-size:.72rem;color:var(--sub);margin-top:2px}
.fmt{display:flex;flex-wrap:wrap;gap:6px}
.chk{display:block;margin-top:10px;font-size:.82rem;color:var(--sub)}
.privacy{font-size:.78rem;color:var(--sub);margin:0}
.lim input{font:inherit;width:5em;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
.tbl{width:100%;border-collapse:collapse;font-size:.9rem;margin:8px 0 12px}
.tbl th,.tbl td{border:1px solid var(--line);padding:6px 8px;text-align:left}
.tbl th{background:var(--card)}
.tblwrap{overflow-x:auto}
