:root{--bg: #ffffff;--ink: #1a1a1a;--muted: #6b7280;--line: #e5e7eb;--accent: #1d4ed8;--free: #059669;--taken: #9ca3af;--danger: #b91c1c;--radius: 6px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}.app{max-width:60rem;margin:0 auto;padding:0 1rem 4rem}.topbar{display:flex;align-items:center;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font-weight:700;text-decoration:none;color:var(--ink)}.topbar nav{display:flex;gap:1rem}.topbar .account{margin-left:auto;display:flex;gap:.75rem;align-items:center}a{color:var(--accent)}h1{font-size:1.6rem;margin:1.5rem 0 .25rem}h2{font-size:1.05rem;margin:0 0 .25rem}.muted{color:var(--muted)}.error{color:var(--danger)}.success{color:var(--free)}.warning{color:#b45309}button{font:inherit;padding:.5rem .9rem;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius);cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;border:none;color:var(--accent);padding:0;text-decoration:underline}button.danger{background:none;color:var(--danger);border-color:var(--danger)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.field{display:block;margin:1rem 0;max-width:24rem}.field span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}.field input{font:inherit;width:100%;padding:.5rem;border:1px solid var(--line);border-radius:var(--radius)}.filters{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.chip{background:none;color:var(--ink);border-color:var(--line);text-transform:capitalize}.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.resource-list,.booking-list{list-style:none;padding:0;display:grid;gap:.75rem}.resource-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.resource-list a{display:block;padding:1rem;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:var(--radius)}.resource-list a:hover{border-color:var(--accent)}.tag{display:inline-block;margin-top:.5rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.booking-list li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius)}.slot-grid{list-style:none;padding:0;margin:1rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem}.slot{width:100%;display:flex;flex-direction:column;gap:.15rem;background:none;color:var(--ink);border:1px solid var(--line)}.slot-time{font-weight:600}.slot-state{font-size:.75rem}.slot.free .slot-state{color:var(--free)}.slot.taken{color:var(--taken);border-style:dashed}.slot.selected{border-color:var(--accent);background:#eff6ff}.back{display:inline-block;margin-top:1rem;font-size:.9rem}.booking-form{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}.auth{max-width:24rem}.seed-hint{font-size:.8rem;margin-top:2rem}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;max-width:24rem}.row .field{margin:1rem 0 0}
