:root{--primary:#2563eb;--primary-hover:#1d4ed8;--bg:#f8fafc;--surface:#fff;--text:#1e293b;--text-muted:#64748b;--border:#e2e8f0;--error:#dc2626;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,.btn{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:.5rem 1rem;font-size:.875rem;line-height:1.4;display:inline-block}button:hover,.btn:hover{background:var(--bg)}button:disabled{opacity:.5;cursor:not-allowed}.btn,button[type=submit],.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn:hover,button[type=submit]:hover,.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);text-decoration:none}.btn-danger{border-color:var(--error);color:var(--error);background:0 0}.btn-danger:hover{background:var(--error);color:#fff}.btn-sm{padding:.25rem .5rem;font-size:.8rem}.error{color:var(--error);margin:.5rem 0}.layout header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex}.layout header .logo{color:var(--primary);font-size:1.25rem;font-weight:700}.logo-short{display:none}@media (width<=600px){.logo-full{display:none}.logo-short{display:inline}}.layout header nav{align-items:center;gap:1rem;display:flex}.layout header .user-name{color:var(--text-muted);font-size:.875rem}.layout main{max-width:960px;margin:1.5rem auto;padding:0 1rem}.login-page{text-align:center;padding:4rem 1rem}.login-page h1{margin-bottom:.5rem;font-size:2rem}.login-page p{color:var(--text-muted);margin-bottom:2rem}.login-buttons{flex-direction:column;align-items:center;gap:.75rem;display:flex}.login-buttons .btn{text-align:center;min-width:240px;padding:.75rem 1.5rem}.category-filter{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.category-filter button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:.375rem .75rem;font-size:.875rem}.category-filter button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.resource-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:1rem;display:block}.resource-card:hover{border-color:var(--primary);text-decoration:none}.resource-card h3{margin-bottom:.25rem}.resource-card p{color:var(--text-muted);font-size:.875rem}.resource-image{object-fit:cover;border-radius:var(--radius);width:100%;height:140px;margin-bottom:.5rem}.resource-detail-image{border-radius:var(--radius);width:100%;max-width:400px;height:auto;margin-bottom:1rem}.booking-modal-backdrop{z-index:100;background:#00000080;border:none;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;padding:0;display:flex;position:fixed;inset:0}.booking-modal-backdrop:not([open]){display:none}.booking-modal{border-radius:var(--radius);background:#fff;width:90%;max-width:480px;padding:1.5rem;box-shadow:0 8px 32px #0003}.booking-modal h3{margin-top:0}.booking-form .optional{color:#888;font-size:.8rem;font-weight:400}.booking-form{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.booking-form label{flex-direction:column;font-size:.875rem;font-weight:500;display:flex}.booking-form label:nth-child(-n+2){grid-column:span 2}.booking-form input,.booking-form textarea{border:1px solid var(--border);border-radius:var(--radius);margin-top:.25rem;padding:.5rem;font-size:.875rem}.booking-form textarea{resize:vertical;min-height:60px}.booking-form-actions{grid-column:span 2;gap:.5rem;display:flex}.booking-form-actions button{flex:1}.bookings-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.bookings-header h3{margin:0}.booking-list{list-style:none}.booking-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.75rem;display:flex}.booking-item.past{opacity:.5}.booking-time{color:var(--text-muted);font-size:.8rem;display:block}.booking-toggle{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;border-radius:var(--radius);justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-left:.25rem;font-size:1.5rem;display:inline-flex}.booking-toggle:hover{color:var(--text);background:var(--bg)}.booking-description{color:var(--text-muted);white-space:pre-wrap;margin-top:.25rem;font-size:.85rem}.booking-owner{color:var(--text-muted);font-size:.8rem}.loading{text-align:center;color:var(--text-muted);padding:2rem}.profile-form{flex-direction:column;gap:.75rem;max-width:400px;margin-bottom:1.5rem;display:flex}.profile-form label{flex-direction:column;font-size:.875rem;font-weight:500;display:flex}.profile-form input{border:1px solid var(--border);border-radius:var(--radius);margin-top:.25rem;padding:.5rem;font-size:.875rem}.profile-info{color:var(--text-muted);font-size:.875rem}.profile-info p{margin-bottom:.25rem}.sign-out{margin-top:2rem;display:inline-block}.message{color:var(--primary);font-size:.875rem}.admin-links{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem;display:grid}.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:1.25rem;display:block}.admin-card:hover{border-color:var(--primary);text-decoration:none}.admin-card h3{margin-bottom:.25rem}.admin-card p{color:var(--text-muted);font-size:.875rem}.admin-section{margin-top:1rem}.admin-section h2{margin-bottom:1rem}.admin-form{flex-wrap:wrap;align-items:end;gap:.5rem;margin-bottom:1.5rem;display:flex}.admin-form input,.admin-form select{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;font-size:.875rem}.admin-form label{flex-direction:column;gap:.25rem;font-size:.875rem;font-weight:500;display:flex}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;padding:.5rem .75rem;font-size:.875rem}.admin-table th{background:var(--bg);font-weight:600}.admin-table td button{margin-right:.25rem}.admin-table td select{border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;font-size:.8rem}.monospace{font-family:monospace}@media (width<=600px){.booking-form{grid-template-columns:1fr}.booking-form label:nth-child(-n+2),.booking-form-actions{grid-column:1}}
