:root{--gold:#c9a227;--gold-dark:#b8860b;--gold-hover:#d4af37;--slate:#1a2a3a;--slate-light:#2c3e50;--cream:#f7f5f0;--cream-dark:#ede9e0;--white:#fff;--text:#1a2a3a;--text-muted:#5a6a7a;--border:#d8d2c8;--shadow:0 4px 16px #1a2a3a14;--radius:10px;--font-serif:"Georgia", "Times New Roman", serif;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--font-sans);background:var(--cream);color:var(--text);min-height:100vh;line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{background:var(--cream);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1.5rem;padding:.85rem 2rem;display:flex}.site-header.auth{background:var(--slate);color:#fff;border-bottom:none}.logo{font-family:var(--font-serif);letter-spacing:.02em;color:var(--text);align-items:center;gap:.75rem;font-size:1.35rem;font-weight:700;display:flex}.site-header.auth .logo{color:#fff}.logo-mark{border-radius:50%;flex-shrink:0;width:48px;height:48px}.logo-text{flex-direction:column;line-height:1.15;display:flex}.logo-text span:last-child{letter-spacing:.12em;color:var(--gold-dark);font-size:.72em;font-weight:600}.site-header.auth .logo-text span:last-child{color:var(--gold)}.main-nav{align-items:center;gap:1.75rem;font-size:.95rem;font-weight:500;display:flex}.main-nav a{color:#fff;opacity:.9;transition:opacity .15s}.main-nav a:hover{opacity:1;color:var(--gold)}.header-actions{align-items:center;gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;padding:.6rem 1.4rem;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s;display:inline-flex}.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:var(--gold-hover)}.btn-gold:active{transform:scale(.98)}.btn-outline{border:1.5px solid var(--gold);color:var(--gold-dark);background:0 0}.hero{text-align:center;color:#fff;background-position:50%;background-size:cover;justify-content:center;align-items:center;height:58vh;min-height:380px;display:flex;position:relative}.hero-content h1{font-family:var(--font-serif);letter-spacing:.01em;text-shadow:0 2px 12px #00000059;margin-bottom:.35rem;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:400}.hero-content .welcome{font-family:var(--font-serif);opacity:.9;margin-bottom:.5rem;font-size:1.25rem}.tagline{text-align:center;max-width:640px;color:var(--text);margin:2.5rem auto 0;padding:0 1.5rem;font-size:1.15rem;line-height:1.6}.login-page{background:linear-gradient(160deg,#a8b2bc 0%,#f7f5f0 60%,#e8e0d5 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{background:var(--white);text-align:center;border:1px solid #c9a22740;border-radius:14px;width:100%;max-width:400px;padding:2.5rem 2.75rem;box-shadow:0 12px 40px #1a2a3a1f}.login-card .logo-mark{width:72px;height:72px;margin:0 auto .75rem}.login-card h1{font-family:var(--font-serif);color:var(--gold-dark);letter-spacing:.08em;margin-bottom:.25rem;font-size:1.15rem}.login-card h2{font-family:var(--font-serif);color:var(--text);margin-bottom:1.75rem;font-size:1.6rem;font-weight:400}.form-group{text-align:left;margin-bottom:1.15rem}.form-group label{color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem;font-weight:600;display:block}.form-group input{border:1.5px solid var(--border);background:#fcfbf9;border-radius:8px;width:100%;padding:.7rem .9rem;font-family:inherit;font-size:1rem;transition:border-color .15s}.form-group input:focus{border-color:var(--gold);outline:none}.login-card .btn{width:100%;margin-top:.5rem;padding:.75rem;font-size:1.05rem}.login-links{color:var(--text-muted);margin-top:1.5rem;font-size:.9rem}.login-links a{color:var(--gold-dark)}.login-links a:hover{text-decoration:underline}.login-error{color:#b33a3a;background:#fdecec;border-radius:8px;margin-bottom:1rem;padding:.6rem .9rem;font-size:.9rem;display:none}.login-error.show{display:block}.dashboard-main{max-width:1100px;margin:0 auto;padding:2.5rem 1.75rem 4rem}.welcome{font-family:var(--font-serif);color:var(--gold-dark);text-align:center;margin-bottom:2rem;font-size:2.1rem;font-weight:400}.card-grid{grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:3rem;display:grid}@media (width<=900px){.card-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.card-grid{grid-template-columns:1fr}}.dash-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border-top:3px solid var(--gold);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:.7rem;padding:1.6rem 1.2rem;transition:transform .15s,box-shadow .15s;display:flex}.dash-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #1a2a3a1f}.dash-card .icon{width:36px;height:36px;color:var(--gold-dark)}.dash-card .title{color:var(--text);font-size:1.05rem;font-weight:600}.announcements{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.75rem 2rem}.announcements h2{font-family:var(--font-serif);color:var(--text);border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.6rem;font-size:1.4rem}.announcement-item{border-bottom:1px solid var(--cream-dark);align-items:baseline;gap:1.25rem;padding:.9rem 0;display:flex}.announcement-item:last-child{border-bottom:none}.announcement-date{color:var(--text-muted);flex-shrink:0;min-width:90px;font-size:.85rem}.announcement-title{color:var(--text);font-weight:500}.announcement-title:hover{color:var(--gold-dark)}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
