[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:#f6f4f0;color:#222}
#login{min-height:100vh;display:grid;place-items:center}#lform{background:#fff;padding:28px;border-radius:14px;box-shadow:0 2px 14px #0002;width:min(92vw,340px);display:grid;gap:12px;text-align:center}
input[type=password]{padding:12px;font-size:16px;border:1px solid #bbb;border-radius:8px}button,.btn{cursor:pointer;border:0;border-radius:8px;padding:12px 16px;font-size:16px;background:#2b5d8a;color:#fff;display:inline-block;text-align:center}
.btn.alt{background:#5b7a99}.btn.off{background:#ddd;color:#777;cursor:not-allowed}.ghost{background:transparent;color:#2b5d8a}#lerr{color:#b00;min-height:1.3em}
header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;box-shadow:0 1px 4px #0002}header h1{font-size:18px;margin:0;flex:1}#status{color:#666;font-size:14px}
.up{margin:14px;padding:14px;background:#fff;border:2px dashed #bbb;border-radius:12px}.up.on{border-color:#2b5d8a;background:#eef4fa}.up h2{margin:0 0 10px;font-size:16px}.btns{display:flex;gap:8px;flex-wrap:wrap}.hint{color:#777;font-size:13px}
.row{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:14px;border-top:1px solid #eee}.row .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.ok{color:#176b2c}.bad{color:#b00}
#grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;padding:0 14px 30px}.tile{aspect-ratio:1;background:#ddd center/cover no-repeat;color:#444;padding:0;border-radius:6px;font-size:13px}
#modal{position:fixed;inset:0;background:#000;display:flex;flex-direction:column;z-index:9}.mh{display:flex;gap:10px;align-items:center;padding:10px;color:#fff}.mh span{flex:1;font-size:14px;direction:ltr;text-align:left;overflow:hidden;text-overflow:ellipsis}#mbody{flex:1;display:grid;place-items:center;color:#fff;min-height:0}#mbody img,#mbody video{max-width:100%;max-height:100%}
