*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f4f5f7;color:#1d2330}
.muted{color:#667}.tiny{font-size:12px;color:#889}.err{color:#b00020;min-height:1em}
#gate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#1f3a5f}
#gate form{background:#fff;padding:28px;border-radius:12px;width:min(92vw,360px);text-align:center}
#gate input,#gate button{width:100%;padding:12px;margin-top:8px;font-size:16px;border-radius:8px;border:1px solid #ccd}
button{cursor:pointer}#gate button{background:#1f3a5f;color:#fff;border:0}
.banner{background:#b00020;color:#fff;text-align:center;padding:6px;font-weight:700;font-size:13px;letter-spacing:.5px}
header{background:#fff;padding:16px 20px 0;border-bottom:1px solid #dde}header h1{margin:0;font-size:22px}header p{margin:4px 0 10px}
nav{display:flex;gap:4px}.tab{border:0;background:none;padding:10px 16px;font-size:15px;border-bottom:3px solid transparent}.tab.active{border-color:#1f3a5f;font-weight:600}
section{max-width:1100px;margin:0 auto;padding:16px}
.controls{position:sticky;top:0;background:#f4f5f7;padding:8px 0;z-index:2}
#q{width:100%;padding:11px 14px;font-size:16px;border:1px solid #ccd;border-radius:8px}
#chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{border:1px solid #ccd;background:#fff;border-radius:99px;padding:5px 12px;font-size:13px}.chip.on{background:#1f3a5f;color:#fff;border-color:#1f3a5f}
.day h2{font-size:17px;margin:20px 0 8px;border-bottom:1px solid #dde;padding-bottom:4px}.day h2 span{color:#889;font-weight:400;font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.card{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0002;cursor:pointer}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.card .c{padding:8px 10px;font-size:13px}
.card .fn{font-size:11px;color:#889;word-break:break-all;margin-top:4px}.tag{display:inline-block;background:#eef;border-radius:4px;padding:1px 6px;font-size:11px;margin:4px 4px 0 0}
.planwrap{position:relative;max-width:900px;margin:0 auto}.planwrap img{width:100%;display:block;border-radius:8px;box-shadow:0 1px 3px #0002}
.pin{position:absolute;transform:translate(-50%,-100%);background:#b00020;color:#fff;border:2px solid #fff;border-radius:99px;padding:4px 9px;font-size:12px;font-weight:600;box-shadow:0 2px 4px #0005}
.pin.on{background:#1f3a5f}
#lb{position:fixed;inset:0;background:#000e;display:flex;align-items:center;justify-content:center;z-index:10}
#lb figure{margin:0;max-width:90vw;text-align:center}#lb img{max-width:90vw;max-height:78vh}#lb figcaption{color:#fff;margin-top:8px;font-size:14px}
#lb button{background:none;border:0;color:#fff;font-size:40px;padding:10px}#lbX{position:absolute;top:8px;right:12px;font-size:28px!important}
.empty{color:#889;padding:30px;text-align:center}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr);gap:8px}header h1{font-size:18px}#lb button{font-size:30px}}
[hidden]{display:none!important}
