:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#23332d;background:#f4f6f2}*{box-sizing:border-box}body{margin:0}a{color:#27644e}header{background:#fff;border-bottom:1px solid #dfe6df}.wrap{max-width:1100px;margin:auto;padding:18px 22px}.nav{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.brand{font-size:1.12rem;font-weight:750;text-decoration:none;color:#234d3d}nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}nav a{text-decoration:none}nav span{color:#67756e;font-size:.88rem}.hero{background:linear-gradient(120deg,#235b46,#4b896f);color:white;padding:28px;border-radius:15px;margin:18px 0}.hero h1{margin:0}.hero p{margin-bottom:0}.panel{background:#fff;border:1px solid #e0e8e1;border-radius:15px;padding:22px;margin:20px 0;box-shadow:0 2px 12px #143b2010}.narrow{max-width:600px}.monthhead{display:flex;justify-content:space-between;align-items:center;gap:10px}.monthhead h2{margin:0}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.weekday{text-align:center;font-weight:700;color:#6b7b72;padding:12px 0}.day{min-height:92px;border-radius:7px;padding:9px;overflow-wrap:anywhere}.day strong{display:block}.day small{font-size:.78rem}.day.free{background:#e8f4e9}.day.pending{background:#ffedc9}.day.occupied{background:#f9dad7}.day.blank{background:#f4f6f2}.legend{display:flex;gap:20px;flex-wrap:wrap;margin-top:18px}.muted,footer{color:#647269;font-size:.88rem}label{display:block;font-weight:650;margin:15px 0}input,textarea,select{width:100%;font:inherit;padding:11px;border:1px solid #b7c8bb;border-radius:8px;margin-top:6px;background:white}button{background:#286a51;color:white;border:0;border-radius:8px;padding:11px 17px;font:inherit;cursor:pointer}button:hover{filter:brightness(.92)}button.secondary{background:#e9eeea;color:#24503f}button.link{background:none;color:#286a51;padding:0}button.small{padding:7px 10px;font-size:.85rem}.inline{display:inline}.flash{background:#e2f4e9;border-left:4px solid #318360;padding:14px;margin:16px 0;border-radius:5px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #e4ebe5;padding:11px;text-align:left;vertical-align:top}th{background:#f4f7f4}.break{overflow-wrap:anywhere}footer{padding-bottom:35px}@media(max-width:650px){.wrap{padding:12px}.panel{padding:12px}.day{min-height:70px;padding:4px;font-size:.82rem}.day small{font-size:.64rem}.monthhead{font-size:.82rem}.legend{gap:8px}}
