*,:before,:after{box-sizing:border-box}body{color:#111;background:#fafafa;margin:0;padding:16px;font-family:system-ui,sans-serif;line-height:1.4}main{max-width:40rem;margin:0 auto}h1{font-size:1.5rem}h2{margin-top:0;font-size:1.2rem}section{background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:16px;padding:12px}label{margin:12px 0 4px;font-weight:600;display:block}input,select,button{font:inherit;border:1px solid #999;border-radius:6px;max-width:100%;min-height:44px;padding:10px 12px}input[type=text],input[type=email],input[type=password],input[type=number]{width:100%}button{color:#fff;cursor:pointer;background:#111;border-color:#111}button.secondary{color:#111;background:#fff}.badge{color:#14532d;background:#e6f4ea;border-radius:999px;padding:2px 8px;font-weight:600;display:inline-block}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.row>input[type=text]{flex:10rem;width:auto}.day{grid-template-columns:4rem 1fr 1fr;align-items:center;gap:8px;margin:8px 0;display:grid}.day .closed{grid-column:1/-1;align-items:center;gap:8px;margin:0;font-weight:400;display:flex}.day .closed input{min-height:0}.day .name{font-weight:600}.error{color:#b00020;font-weight:600}.ok{color:#0a6b2d;font-weight:600}.muted{color:#666}.grid{align-items:stretch;gap:4px;display:grid;overflow-x:auto}.grid-head{text-align:center;padding:4px 0}.grid-time{color:#444;align-self:center;font-size:.85rem}.cell{color:#0a6b2d;background:#fff;border-color:#0a6b2d;padding:4px;font-size:.8rem}.cell.taken{color:#888;cursor:not-allowed;background:#eee;border-color:#ccc}.cell.blocked{color:#8a5a00;cursor:not-allowed;text-overflow:ellipsis;white-space:nowrap;background:#fff4e0;border-color:#e0b660;overflow:hidden}.cell.selected{color:#fff;background:#0a6b2d}.proof{border-top:1px solid #ddd;margin-top:8px;padding-top:8px}.proof img{border:1px solid #ddd;border-radius:6px;max-width:100%;max-height:24rem;display:block}.session-template{display:none}form:has(select[name=purpose] option[value=open_play]:checked) .session-template{display:block}.alert{background:#fff4d6;border:1px solid #e0b000;border-radius:6px;padding:8px;font-weight:600}
