:root{--bg:#fafafa;--fg:#111;--card:#fff;--mut:#666;--acc:#111;--err:#b00020}
*{box-sizing:border-box}
body{font:16px/1.4 system-ui,sans-serif;margin:0;padding:1.5rem 1.2rem 5.5rem;max-width:30rem;margin-inline:auto;background:var(--bg);color:var(--fg)}
h1{font-size:1.4rem}h2{font-size:1.1rem;margin-top:1.6rem}
button,.btn{font:inherit;padding:.8rem 1.2rem;border:0;border-radius:.6rem;background:var(--acc);color:#fff;width:100%;margin:.4rem 0;cursor:pointer}
button.sec,.btn.sec{background:#e5e5e5;color:var(--fg)}
input,textarea,select{font:inherit;width:100%;padding:.7rem;border:1px solid #ccc;border-radius:.6rem;margin:.3rem 0;background:#fff}
.msg{color:var(--err);min-height:1.4em}
ul{list-style:none;padding:0}
li{background:var(--card);border-radius:.6rem;padding:.8rem;margin:.5rem 0;display:flex;justify-content:space-between;gap:.6rem;align-items:center}
li small,small{color:var(--mut);display:block}
li form button{width:auto;padding:.4rem .8rem;margin:0}
.link{word-break:break-all;font-size:.8rem}
.qr svg{width:100%;height:auto}
.empty{color:var(--mut);text-align:center;margin:2rem 0}
.card{background:var(--card);border-radius:.6rem;padding:.9rem;margin:.6rem 0}
.card.done{opacity:.7}
.card p{margin:.2rem 0 .6rem}
.card form.opts{display:flex;flex-wrap:wrap;gap:.4rem}
.card form.opts button{width:auto;flex:1 1 40%;margin:0}
.card form.own{margin-top:.6rem}
.fb{display:flex;gap:.4rem}.fb form{flex:1}.fb button{width:100%;padding:.5rem}
details summary{color:var(--mut);cursor:pointer;margin:.4rem 0}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid #ddd;padding-bottom:env(safe-area-inset-bottom)}
.bottom-nav a{flex:1;text-align:center;padding:.8rem .2rem;color:var(--fg);text-decoration:none;font-size:.9rem;position:relative}
.bottom-nav a.on{font-weight:700;box-shadow:inset 0 3px 0 var(--acc)}
.badge{background:var(--err);color:#fff;border-radius:1rem;font-size:.7rem;padding:.05rem .4rem;margin-left:.2rem;vertical-align:top}
.card.bad{background:#fde8ea;border-left:4px solid var(--err)}
.err{color:var(--err)}.ok{color:var(--mut)}
.bar{display:flex;align-items:center;gap:.5rem;margin:.3rem 0}.bar>span{width:2.5rem;font-size:.8rem}
.track{flex:1;height:.6rem;background:#e5e5e5;border-radius:.3rem;overflow:hidden}.track i{display:block;height:100%;background:var(--acc)}
.bar small{display:inline}
.text{white-space:pre-wrap}
li a{color:var(--fg)}
