:root{--blue: #1a4f8c;--blue-dark: #123a68;--blue-light: #eaf1f8;--bg: #f4f6f9;--card: #ffffff;--border: #dde4ec;--text: #1c2530;--muted: #647184;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button{cursor:pointer;font-family:inherit}a{color:var(--blue)}.navbar{display:flex;align-items:center;gap:1.5rem;background:linear-gradient(90deg,var(--blue-dark),var(--blue));color:#fff;padding:.6rem 1.5rem;flex-wrap:wrap;box-shadow:0 2px 8px #0000001f}.navbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem;white-space:nowrap}.navbar-brand img{height:36px;background:#fff;border-radius:6px;padding:2px 6px}.navbar-links{display:flex;gap:1.1rem;flex:1;flex-wrap:wrap}.navbar-links a{color:#fff;text-decoration:none;opacity:.85;padding:.25rem 0;border-bottom:2px solid transparent;font-size:.95rem}.navbar-links a.active,.navbar-links a:hover{opacity:1;border-bottom-color:#fff}.navbar-user{display:flex;align-items:center;gap:.75rem;font-size:.9rem}.navbar-user button{background:#ffffff2e;color:#fff;border:none;border-radius:4px;padding:.35rem .75rem}.page{max-width:980px;margin:0 auto;padding:1.5rem}.page h1{color:var(--blue-dark)}.page-narrow{max-width:760px;margin:0 auto;padding:1.5rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--blue-light),var(--bg))}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:2rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1rem;box-shadow:0 8px 24px #123a681a}.auth-card .auth-logo{display:block;height:56px;margin:0 auto .5rem}.auth-card h1{text-align:center;color:var(--blue-dark);font-size:1.3rem;margin:0}.auth-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.auth-card input{padding:.5rem;border:1px solid var(--border);border-radius:4px;font-size:1rem}.auth-card button[type=submit]{background:var(--blue);color:#fff;border:none;border-radius:4px;padding:.6rem;font-size:1rem}.auth-card button[type=submit]:hover{background:var(--blue-dark)}.hero{color:#fff;padding:3rem 1.5rem;margin-bottom:1rem;background-size:cover;background-position:center}.hero-content{max-width:980px;margin:0 auto}.hero h1{color:#fff;font-size:2rem;margin:0 0 .4rem}.hero p{font-size:1.1rem;opacity:.95;margin:0}.quick-links{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}.quick-links a{background:#ffffff26;border:1px solid rgba(255,255,255,.4);color:#fff;text-decoration:none;padding:.4rem .9rem;border-radius:999px;font-size:.9rem}.quick-links a:hover{background:#ffffff4d}.card-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1rem}.muted{color:var(--muted);font-size:.85rem}.error{color:#b3261e;background:#fdecea;border:1px solid #f5c6c2;padding:.6rem .8rem;border-radius:6px}.date-picker{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.date-picker input{padding:.4rem;border:1px solid var(--border);border-radius:4px}.booking-grid-wrapper{overflow-x:auto;margin-bottom:2rem}.booking-grid{border-collapse:collapse;width:100%}.booking-grid th,.booking-grid td{border:1px solid var(--border);padding:.4rem .6rem;text-align:center;white-space:nowrap;font-size:.85rem}.booking-grid th{background:var(--blue-light);color:var(--blue-dark)}.slot-free button{background:var(--blue);color:#fff;border:none;border-radius:4px;padding:.25rem .6rem}.slot-free button:hover{background:var(--blue-dark)}.slot-booked{background:#eef0f3;color:var(--muted)}.slot-mine{background:#dbe9f8;font-weight:600}.link-button{background:none;border:none;color:var(--blue-dark);text-decoration:underline;padding:0;font-size:.8rem;display:block;margin:.15rem auto 0}.members-table{width:100%;border-collapse:collapse;background:var(--card)}.members-table th,.members-table td{border-bottom:1px solid var(--border);padding:.6rem;text-align:left;font-size:.9rem}.badge{padding:.15rem .5rem;border-radius:999px;font-size:.75rem}.badge-ok{background:#dbe9f8;color:var(--blue-dark)}.badge-off{background:#eef0f3;color:var(--muted)}.loading{text-align:center;padding:2rem;color:var(--muted)}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem}.hub-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;text-decoration:none;color:var(--text);transition:box-shadow .15s,transform .15s}.hub-card:hover{box-shadow:0 6px 18px #123a681f;transform:translateY(-2px)}.hub-card strong{color:var(--blue-dark);display:block;margin-bottom:.35rem;font-size:1.05rem}.timeline{list-style:none;padding:0;margin:1.5rem 0;border-left:3px solid var(--blue-light)}.timeline li{position:relative;padding:0 0 1.4rem 1.5rem}.timeline li:before{content:"";position:absolute;left:-8px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--blue);border:2px solid white}.timeline .year{font-weight:700;color:var(--blue-dark);display:block}.board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.5rem}.board-card strong{display:block;color:var(--blue-dark);margin-bottom:.15rem}.board-card .role{color:var(--muted);font-size:.85rem;margin-bottom:.5rem;display:block}.team-table{width:100%;border-collapse:collapse;background:var(--card);margin-top:1rem}.team-table th,.team-table td{border-bottom:1px solid var(--border);padding:.6rem;text-align:left;font-size:.9rem}.team-table th{color:var(--blue-dark)}.fee-table{width:100%;border-collapse:collapse;background:var(--card);margin-top:1rem}.fee-table td{border-bottom:1px solid var(--border);padding:.7rem .6rem;font-size:.9rem;vertical-align:top}.fee-table td:last-child{text-align:right;font-weight:700;color:var(--blue-dark);white-space:nowrap}.fee-table .fee-desc{color:var(--muted);font-size:.8rem}.schedule-img{max-width:100%;border:1px solid var(--border);border-radius:8px;margin-top:1rem}.section-block{margin-bottom:2rem}.fullday-box{background:var(--blue-light);border:1px solid var(--border);border-radius:8px;padding:1rem}.fullday-box strong{color:var(--blue-dark)}.fullday-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.fullday-button{background:var(--blue);color:#fff;border:none;border-radius:6px;padding:.5rem .9rem;font-size:.9rem}.fullday-button:hover{background:var(--blue-dark)}
