:root{--bg:#f6f6f3;--fg:#1c1c1c;--card:#fff;--mut:#666;--acc:#d01012;--bd:#ddd}
@media(prefers-color-scheme:dark){:root{--bg:#161616;--fg:#eee;--card:#222;--mut:#999;--acc:#ff4b4d;--bd:#3a3a3a}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.4 system-ui,sans-serif}
body.center{display:grid;place-items:center;min-height:100vh}
header{display:flex;gap:12px;align-items:center;padding:12px 16px;background:var(--acc);color:#fff;position:sticky;top:0;z-index:5}
header a{color:#fff;text-decoration:none;font-weight:700;font-size:20px}header form{margin-left:auto}
main{max-width:980px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;width:min(360px,92vw)}
input,button,select{font:inherit;padding:10px 12px;border-radius:8px;border:1px solid var(--bd);background:var(--card);color:var(--fg)}
button,.btn{background:var(--acc);color:#fff;border:0;cursor:pointer;font-weight:600;text-decoration:none;padding:10px 14px;border-radius:8px;display:inline-block}
button.sec,.btn.sec{background:var(--card);color:var(--fg);border:1px solid var(--bd)}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.row input{flex:1;min-width:140px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.tile{background:var(--card);border:1px solid var(--bd);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;display:block}
.tile img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#ddd}
.tile div{padding:8px 10px;font-size:14px}.tile b{display:block}.mut{color:var(--mut);font-size:13px}
.err{color:var(--acc);margin:0;min-height:1em}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}
.slots label{display:block;text-align:center;cursor:pointer}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0}
.photos figure{margin:0;position:relative}.photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.photos button{position:absolute;top:4px;right:4px;padding:2px 8px}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:6px;border-bottom:1px solid var(--bd);text-align:left}
td img{width:36px;height:36px;object-fit:contain}h2{margin:20px 0 8px}

.tw{position:relative}.tw .del{position:absolute;top:6px;right:6px;padding:4px 8px;opacity:.9}
.zoom{position:relative;display:inline-block}
.zoom .big{display:none;position:absolute;left:44px;top:-60px;width:180px;height:180px;object-fit:contain;
background:#fff;border:1px solid var(--bd);border-radius:10px;padding:6px;box-shadow:0 6px 20px #0005;z-index:10;pointer-events:none}
.zoom:hover .big{display:block}
@media(hover:none){.zoom .big{display:none!important}}

.bar{height:10px;background:var(--bd);border-radius:5px;overflow:hidden}#barf{height:100%;background:#2e9e4f;width:0;transition:width .2s}
tr.ok td{background:color-mix(in srgb,#2e9e4f 15%,transparent)}.cnt{white-space:nowrap}.cnt button{padding:6px 12px}
.miss{color:var(--acc);font-size:13px;font-weight:600}
