:root{--bg:#F4F3F1;--card:#fff;--ink:#1F1E1D;--mute:#6E6A66;--line:#DDDBD8;--acc:#3F7F7C;--warn:#B3412F;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}
@media(prefers-color-scheme:dark){:root{--bg:#1B1B1A;--card:#262625;--ink:#EDEDEB;--mute:#A8A39E;--line:#3A3938;--acc:#6FB3AF;--warn:#E07C6A}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,system-ui,sans-serif}
main{max-width:420px;margin:0 auto;padding:24px 20px;text-align:center}
h1{font:400 1.7rem Jost,sans-serif;margin:.4rem 0}.sub{color:var(--mute);margin:0 0 14px}
img.logo{max-width:240px;border-radius:14px;display:block;margin:8px auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;text-align:left;box-shadow:0 6px 18px rgba(0,0,0,.05)}
label{display:block;font-size:.85rem;color:var(--mute);margin:10px 0 4px}
input{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
button{width:100%;margin-top:14px;padding:12px;border:0;border-radius:8px;background:var(--acc);color:#fff;font:inherit;cursor:pointer}
button.alt{background:none;color:var(--acc);border:1px solid var(--acc)}.seg{display:flex;gap:8px;margin:12px 0}.seg button{margin:0;background:none;color:var(--mute);border:1px solid var(--line)}.seg button.on{background:var(--mute);color:#fff}
.err{color:var(--warn);margin:10px 0 0}.note{font-size:.85rem;color:var(--mute)}code{word-break:break-all;background:var(--bg);padding:2px 6px;border-radius:6px}
table{width:100%;border-collapse:collapse;font-size:.8rem}td,th{padding:5px;border-bottom:1px solid var(--line);text-align:left}

main.wide{max-width:980px;text-align:left}
textarea,select{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit}
h2{font:400 1.3rem Jost,sans-serif;margin:.2rem 0 .8rem}h3{font:500 1rem Jost,sans-serif;margin:1.1rem 0 .4rem}
.chk{display:flex;gap:10px;align-items:flex-start;margin:10px 0;color:var(--ink);font-size:.95rem}.chk input{width:auto;margin-top:4px}
.row{display:flex;gap:8px}.row button{margin-top:14px}.bar{height:6px;background:var(--line);border-radius:6px;margin:6px 0 14px}.bar div{height:6px;background:var(--acc);border-radius:6px}
.alarm{background:rgba(179,65,47,.10);border:1px solid var(--warn);border-radius:8px;padding:10px 12px;margin:12px 0;font-size:.92rem}.alarm ul{margin:6px 0 0;padding-left:20px}
details{margin:10px 0;border:1px solid var(--line);border-radius:8px;padding:8px 12px}summary{cursor:pointer;color:var(--acc)}.legal{font-size:.88rem;max-height:340px;overflow:auto;margin-top:8px}.legal h4{margin:12px 0 4px;font-weight:500}
.top{display:flex;align-items:center;gap:12px;margin-bottom:12px}.top .sp{flex:1}.mini{height:44px;border-radius:8px}.sm{width:auto;margin:0;padding:8px 12px;font-size:.85rem}
.tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--line)}.tab{width:auto;margin:0;background:none;color:var(--mute);border-radius:8px 8px 0 0;padding:10px 16px}.tab.on{color:var(--ink);border-bottom:2px solid var(--acc)}
.tw{overflow-x:auto}tr.lk{cursor:pointer}tr.lk:hover{background:var(--bg)}th{color:var(--mute);font-weight:500;width:34%}table tr:first-child th{width:auto}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;background:var(--bg);border:1px solid var(--line);font-size:.78rem}.pill.ok{color:var(--acc);border-color:var(--acc)}.pill.warn{color:var(--warn);border-color:var(--warn)}
.row3{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;margin:6px 0}.ok-t{color:var(--acc)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media(max-width:600px){main.wide{padding:16px 12px}.row3{grid-template-columns:1fr}}
.tabs.scroll{flex-wrap:wrap}.tabs.scroll .tab{padding:10px 12px}main:not(.wide) .tabs{margin:12px 0}
a{color:var(--acc)}
.file{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.file a{word-break:break-all}.file .sm{margin-left:auto}.log{padding:8px 0;border-bottom:1px solid var(--line);font-size:.92rem}input[type=file]{padding:8px}
