:root{--bg:#fbfaf6;--card:#fff;--ink:#1c1c1c;--muted:#6b7264;--line:#e7e4da;--green:#0f6b4f;--green-soft:#e7f2ed;--red:#b3261e;--red-soft:#fbeae9;--amber-soft:#fdf3e0}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--green);text-decoration:none}.shell{max-width:760px;margin:0 auto;padding:16px 14px 60px}.top{justify-content:space-between;gap:12px;padding:10px 0 16px}.brand,.top{display:flex;align-items:center}.brand{gap:10px}.brand img{height:42px;width:auto;border-radius:8px}.brand .t1{font-weight:700;font-size:1.05rem;line-height:1.15}.brand .t2{font-size:.75rem;color:var(--muted)}.linkbtn{background:none;border:none;color:var(--muted);font-size:.8rem;cursor:pointer;padding:6px}.linkbtn:hover{color:var(--ink)}.login-wrap{max-width:360px;margin:12vh auto 0;text-align:center;padding:0 16px}.login-wrap img{height:64px;border-radius:12px;margin-bottom:18px}.login-wrap h1{font-size:1.3rem;margin-bottom:6px}.login-wrap p{color:var(--muted);font-size:.9rem;margin-bottom:22px}.login-wrap form{display:flex;flex-direction:column;gap:10px}.login-wrap input{padding:13px 14px;font-size:1rem;border:1px solid var(--line);border-radius:10px;background:var(--card);outline:none;text-align:center}.login-wrap input:focus{border-color:var(--green)}.btn{padding:13px 14px;font-size:1rem;font-weight:600;border:none;border-radius:10px;background:var(--green);color:#fff;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.err{color:var(--red);font-size:.85rem;min-height:1.2em}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip{padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:.85rem;cursor:pointer;color:var(--ink)}.chip.active{background:var(--green);border-color:var(--green);color:#fff}.search{width:100%;padding:12px 14px;font-size:.95rem;border:1px solid var(--line);border-radius:10px;background:var(--card);outline:none;margin-bottom:18px}.search:focus{border-color:var(--green)}.dategroup{margin-bottom:22px}.datehead{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 2px 8px;display:flex;justify-content:space-between}.datehead .today-tag{color:var(--green)}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px}.card.cancelled{opacity:.62}.card .row1{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.card .who{font-weight:700;font-size:1rem}.card .time{font-weight:700;color:var(--green);white-space:nowrap;font-size:.95rem}.card .tour{color:var(--ink);font-size:.88rem;margin-top:3px}.badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.badge{font-size:.74rem;padding:3px 9px;border-radius:999px;background:var(--green-soft);color:var(--green);font-weight:600}.badge.grey{background:#f0efe9;color:var(--muted)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.amber{background:var(--amber-soft);color:#8a5a00}.meta{margin-top:10px;display:grid;grid-gap:4px;gap:4px;font-size:.85rem;color:var(--muted)}.meta b{color:var(--ink);font-weight:600}.notes{margin-top:8px;font-size:.82rem;color:var(--muted);background:var(--bg);border-radius:8px;padding:8px 10px}.empty{padding:40px 0;font-size:.95rem}.empty,.updated{text-align:center;color:var(--muted)}.updated{font-size:.75rem;margin-top:8px}footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:.8rem;line-height:1.7}@media (max-width:480px){.brand img{height:36px}.card{padding:12px 13px}}