*{box-sizing:border-box}
html,body{margin:0;max-width:100%;overflow-x:hidden}
body{font:16px system-ui,sans-serif;color:#222;background:#fff;padding-bottom:64px}
main{min-height:100vh}
.pad{padding:0 14px}
h1{font-size:20px;margin:12px 0}
h2{font-size:16px;margin:16px 0 4px}
h3.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#666;margin:12px 0 2px}
.hint{font-size:13px;color:#666;margin:4px 0}
p,li{overflow-wrap:anywhere}
ul,ol{margin:0;padding-left:20px;line-height:1.55}
a{color:#2563eb}
button{font:inherit;cursor:pointer}
textarea,input{width:100%;font:inherit;padding:8px;border:1px solid #ccc;border-radius:8px}
label{display:block;margin:8px 0;font-size:14px}
#notice{background:#d1e7dd;color:#0f5132;padding:10px 14px;font-size:14px}
#load-notice{background:#fff3cd;color:#664d03;padding:10px 14px;font-size:14px}
.repo-error{color:#842029;font-size:14px}
#banner{background:#fff3cd;color:#664d03;padding:10px 14px;font-size:14px}
.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;background:#fff;border-top:1px solid #ddd;padding:12px 0}
.tabs a{color:#555;text-decoration:none;font-size:14px}
.tabs a.on{color:#2563eb;font-weight:700}
.row{display:flex;gap:10px;align-items:center;border:1px solid #e5e5e5;border-radius:10px;padding:6px;margin:8px 0;color:inherit;text-decoration:none}
.sq{width:56px;height:56px;border-radius:8px;flex:none;overflow:hidden}
.pic img,.placeholder{display:block;width:100%;height:100%;object-fit:cover}
.placeholder{background:linear-gradient(135deg,#e9b872,#a4572a)}
.filters{display:flex;gap:16px;padding:12px 14px;font-size:14px}
.filters a{color:#555;text-decoration:none}
.filters a.on{color:#2563eb;font-weight:700}
.filters .quiet{margin-left:auto;font-size:12px;opacity:.6}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
.grid a{display:block;aspect-ratio:1}
.tile{width:100%;height:100%}
.hero{height:200px;position:relative}
.watch{position:absolute;right:10px;bottom:10px;background:#000c;color:#fff;border-radius:14px;padding:6px 12px;font-size:13px;text-decoration:none}
.titlebar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.heart{background:none;border:0;font-size:28px;color:#d6336c;padding:4px 8px}
.btn{display:block;width:100%;text-align:center;background:#2563eb;color:#fff;border:0;border-radius:10px;padding:11px;margin:10px 0;font-weight:600}
.btn.cooked{background:#2f855a}
.link{background:none;border:0;color:#2563eb;padding:8px 4px}
.danger{color:#b42318}
button.confirm-delete{background:#b42318;color:#fff;border:0;border-radius:8px;padding:8px 12px}
.actions{margin:20px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.edit-form{width:100%}
.missing{background:#f5f5f5;border-radius:8px;padding:10px}
.links{list-style:none;padding:0}
.links li{padding:8px 0;border-bottom:1px solid #eee}
.url{display:block;overflow-wrap:anywhere}
.tag{font-size:12px;color:#666}
.tag.failed{color:#b42318}
.empty{color:#666;padding:14px}
.filters .quiet2{font-size:12px;opacity:.6}
