.calendar{display:grid;grid-template-columns:repeat(7, 1fr);gap:8px;max-width:700px;margin:20px auto;font-family:Arial,sans-serif}.calendar .day{border:1px solid #ccc;padding:10px;min-height:80px;box-sizing:border-box;text-align:center;border-radius:6px;cursor:pointer;user-select:none;transition:background-color .3s ease,color .3s ease}.day.free{background-color:#e0f7e9;color:#2e7d32}.day.booked{background-color:#fbe9e7;color:#d32f2f;cursor:default}.day strong{display:block;font-size:1.1em;margin-bottom:6px}.day.free f\\:link\\.action,.day.free a{display:inline-block;padding:6px 12px;background-color:#388e3c;color:#fff;text-decoration:none;border-radius:4px;font-weight:600;font-size:.9em;transition:background-color .3s ease}.day.free f\\:link\\.action:hover,.day.free a:hover{background-color:#2e7d32}.navigation{max-width:700px;margin:15px auto;text-align:center;font-size:1.1em}.navigation a{color:#1976d2;text-decoration:none;margin:0 12px;font-weight:600}.navigation a:hover{text-decoration:underline}.booking-list-table{width:100%;border-collapse:collapse;margin-top:1em;font-family:sans-serif}.booking-list-cell,.booking-list-cell-head{border:1px solid #ccc;padding:8px 12px}.booking-list-row:nth-child(even){background-color:#f9f9f9}.booking-list-cell-head{background-color:#eee;font-weight:bold}.booking-list-title{font-size:1.5em;margin-bottom:.5em}