*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f4f1ea;color:#1c2333}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}header{background:#142b4c;color:#fff;padding:18px 0;position:sticky;top:0;z-index:5}
.hdr{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}h1{margin:0;font-size:28px}.tag{margin:4px 0 0;opacity:.85;font-size:14px}
.counter{text-align:right;font-size:14px}.counter b{font-size:24px;color:#e8b23c}.bar{width:240px;height:8px;background:#ffffff30;border-radius:4px;margin:6px 0 4px auto}.bar i{display:block;height:100%;background:#e8b23c;border-radius:4px}
.toolbar{display:flex;gap:10px;align-items:center;margin:18px 0;flex-wrap:wrap}button,.btn{background:#142b4c;color:#fff;border:0;padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
button:disabled{opacity:.4;cursor:default}#modeBtn.on{background:#e8b23c;color:#142b4c}#selInfo{font-size:14px;flex:1}
.gridwrap{position:relative;width:1000px;max-width:100%;aspect-ratio:1;margin:0 auto;border:1px solid #142b4c;background:#fff;
background-image:linear-gradient(#eee 1px,transparent 1px),linear-gradient(90deg,#eee 1px,transparent 1px);background-size:1% 1%}
#grid{position:absolute;inset:0}#grid a{position:absolute;display:block;overflow:hidden}#grid img{width:100%;height:100%;object-fit:cover;display:block}
#grid a.reserved{background:repeating-linear-gradient(45deg,#e8b23c55,#e8b23c55 4px,#fff 4px,#fff 8px)}
#sel{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.picking #sel{pointer-events:auto;cursor:crosshair}
#tip{position:fixed;background:#142b4c;color:#fff;padding:6px 10px;border-radius:6px;font-size:13px;pointer-events:none;display:none;max-width:260px;z-index:9}
.card{background:#fff;border-radius:14px;padding:22px 26px;margin:24px 0;box-shadow:0 2px 10px #0001}.hidden{display:none}.small{font-size:13px;opacity:.75}
details{border-bottom:1px solid #eee;padding:10px 0}summary{font-weight:600;cursor:pointer}footer{padding:20px 0 40px}
