:root{--color-primary: #2d5a3d;--color-primary-light: #3a7350;--color-primary-dark: #1e3d29;--color-accent: #e8a63a;--color-accent-light: #f0c06a;--color-ocean: #3a6b8a;--color-ocean-light: #e8f0f5;--color-bg: #fafaf7;--color-white: #ffffff;--color-text: #2c2c2c;--color-muted: #6b6b6b;--color-border: #ddd;--color-border-light: #eee;--color-success: #2d7a4f;--color-warning: #c67a1a;--color-danger: #b5332e;--color-pending: #d4a843;--radius: 6px;--radius-lg: 10px;--max-width: 72rem;--shadow: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 2px 8px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg)}h1,h2,h3{font-family:"DM Serif Display",Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.01em}body{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 1rem}main{flex:1;padding:2rem 0}.site-header{background:var(--color-primary);color:var(--color-white);padding:0;box-shadow:var(--shadow-md);position:sticky;top:0;z-index:100}.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-width);margin:0 auto;padding:.75rem 1rem}.site-logo{font-family:"DM Serif Display",Georgia,serif;font-size:1.35rem;font-weight:400;color:var(--color-white);text-decoration:none;display:flex;align-items:center;gap:.5rem;letter-spacing:-.01em}.site-logo:hover{text-decoration:none;color:var(--color-accent-light)}.site-nav{display:flex;align-items:center;gap:.25rem}.site-nav a{color:#ffffffe6;padding:.5rem .75rem;border-radius:var(--radius);font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.site-nav a:hover{background:#ffffff26;color:var(--color-white);text-decoration:none}.site-nav a.active{background:#fff3;color:var(--color-white)}.nav-submit{background:var(--color-accent)!important;color:var(--color-primary-dark)!important;font-weight:600!important;padding:.5rem 1rem!important}.nav-submit:hover{background:var(--color-accent-light)!important}.nav-toggle{display:none;background:none;border:none;color:var(--color-white);font-size:1.5rem;cursor:pointer;padding:.25rem}@media(max-width:768px){.nav-toggle{display:block}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-primary-dark);flex-direction:column;padding:.5rem;gap:0}.site-nav.open{display:flex}.site-nav a{padding:.75rem 1rem;width:100%;border-radius:0}}.site-footer{background:var(--color-primary-dark);color:#fffc;padding:2rem 0 1rem;margin-top:auto;font-size:.875rem}.footer-inner{max-width:var(--max-width);margin:0 auto;padding:0 1rem}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-bottom:1.5rem}.footer-about h3,.footer-links h3{color:var(--color-white);font-size:.95rem;margin-bottom:.75rem}.footer-about p{line-height:1.6;margin-bottom:.5rem}.footer-links ul{list-style:none}.footer-links li{margin-bottom:.4rem}.footer-links a{color:var(--color-accent-light);font-size:.85rem}.footer-links a:hover{color:var(--color-accent)}.footer-about a{color:var(--color-accent-light)}.footer-about a:hover{color:var(--color-accent)}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:1rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:#ffffff80}.footer-bottom a{color:var(--color-accent-light)}.footer-bottom a:hover{color:var(--color-accent)}.sponsors-bar{background:var(--color-white);border-top:1px solid var(--color-border-light);margin-top:3rem;padding:2rem 0;text-align:center}.sponsors-inner{max-width:var(--max-width);margin:0 auto;padding:0 1rem}.sponsors-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-muted);margin-bottom:1rem}.sponsor-logos{display:flex;align-items:center;justify-content:center;gap:3rem;flex-wrap:wrap}.sponsor-link{display:inline-flex;align-items:center;opacity:1;transition:opacity .2s}.sponsor-link:hover{opacity:.7;text-decoration:none}.sponsor-logo{height:200px;width:auto}@media(max-width:768px){.footer-grid{grid-template-columns:1fr;gap:1.5rem}.sponsor-logo{height:150px}}.calendar{background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--color-primary);color:var(--color-white)}.calendar-header h2{font-size:1.35rem}.calendar-nav{display:flex;gap:.5rem}.calendar-nav a{color:var(--color-white);background:#ffffff26;border:none;padding:.35rem .75rem;border-radius:var(--radius);cursor:pointer;font-size:.85rem;text-decoration:none;transition:background .15s}.calendar-nav a:hover{background:#ffffff40;text-decoration:none}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-primary-light);color:#ffffffe6;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.calendar-weekdays span{padding:.5rem;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--color-border-light)}.calendar-day{min-height:90px;min-width:0;overflow:hidden;padding:.35rem;border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light);position:relative}.calendar-day:nth-child(7n){border-right:none}.calendar-day.outside{background:#f5f5f2;color:var(--color-muted)}.calendar-day.today{background:var(--color-ocean-light)}.calendar-day-number{font-size:.8rem;font-weight:600;color:var(--color-muted);margin-bottom:.2rem}.calendar-day.today .calendar-day-number{color:var(--color-ocean)}.calendar-event{display:block;font-size:.7rem;line-height:1.3;padding:.15rem .3rem;margin-bottom:.15rem;border-radius:3px;background:var(--color-primary);color:var(--color-white);text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.calendar-event:hover{background:var(--color-primary-light);text-decoration:none}.calendar-event.multi-day{background:var(--color-ocean)}.calendar-event-image{display:block;text-decoration:none;border-radius:4px;overflow:hidden;position:relative}.calendar-event-image img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block}.calendar-event-image-title{display:block;font-size:.65rem;line-height:1.3;padding:.2rem .25rem;color:var(--color-white);background:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event-image:hover .calendar-event-image-title{background:var(--color-primary-light)}.calendar-desktop{display:block}.events-mobile{display:none}@media(max-width:768px){.calendar-desktop{display:none}.events-mobile{display:block}}.view-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem}.view-tab{padding:.4rem 1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500;color:var(--color-muted);background:var(--color-white);border:1px solid var(--color-border);text-decoration:none;transition:all .15s}.view-tab:hover{color:var(--color-primary);border-color:var(--color-primary);text-decoration:none}.view-tab.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.card{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-image{width:100%;max-height:400px;object-fit:contain;border-radius:var(--radius);margin-bottom:.75rem;background:var(--color-bg)}.card-date{font-size:.8rem;font-weight:600;color:var(--color-ocean);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.card-title{font-family:"DM Serif Display",Georgia,serif;font-size:1.2rem;font-weight:400;margin-bottom:.4rem;color:var(--color-text)}.card-title a{color:inherit}.card-title a:hover{color:var(--color-primary)}.card-location{font-size:.85rem;color:var(--color-muted);margin-bottom:.4rem}.card-description{font-size:.9rem;color:var(--color-text);line-height:1.5}.card-categories{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}.events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.badge{display:inline-block;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.badge-community{background:#e0f0e5;color:#2d5a3d}.badge-arts{background:#f0e0f0;color:#6b3a6b}.badge-outdoors{background:#dceee5;color:#2a6b4a}.badge-food{background:#fbecd0;color:#8a5e1a}.badge-markets{background:#fde8d0;color:#8a4e1a}.badge-fundraisers{background:#ffe0e0;color:#8a2e2e}.badge-kids{background:#e0e8ff;color:#3a4e8a}.badge-government{background:#e5e5e5;color:#4a4a4a}.badge-health{background:#e0f5f0;color:#2a6b5a}.badge-classes{background:#f5f0e0;color:#6b5a2a}.badge-other{background:#eee;color:#555}.badge-road{background:#fde8d0;color:#8a4e1a}.badge-business{background:#e0e8ff;color:#3a4e8a}.badge-lost{background:#ffe0e0;color:#8a2e2e}.badge-news{background:#e0f0e5;color:#2d5a3d}.badge-volunteer{background:#f5f0e0;color:#6b5a2a}.badge-pending{background:#fff3cd;color:#856404}.badge-approved{background:#d4edda;color:#155724}.badge-rejected{background:#f8d7da;color:#721c24}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.25rem;border-radius:var(--radius);font-size:.9rem;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:background .15s,transform .1s}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-light);color:var(--color-white)}.btn-accent{background:var(--color-accent);color:var(--color-primary-dark)}.btn-accent:hover{background:var(--color-accent-light)}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-danger:hover{background:#9a2a26}.btn-success{background:var(--color-success);color:var(--color-white)}.btn-sm{font-size:.8rem;padding:.35rem .75rem}.btn-lg{font-size:1rem;padding:.75rem 1.75rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem;color:var(--color-text)}.form-group .hint{font-size:.8rem;color:var(--color-muted);margin-top:.2rem}input[type=text],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=file],input[type=password],select,textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;font-family:inherit;color:var(--color-text);background:var(--color-white);transition:border-color .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2d5a3d26}textarea{resize:vertical;min-height:100px}.checkbox-group{display:flex;align-items:flex-start;gap:.5rem}.checkbox-group input[type=checkbox]{margin-top:.25rem;width:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.form-row{grid-template-columns:1fr}}.form-error{color:var(--color-danger);font-size:.85rem;margin-top:.25rem}.form-disclaimer{font-size:.8rem;color:var(--color-muted);margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border-light)}.form-disclaimer a{color:var(--color-primary)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}.categories-grid label{display:flex;align-items:center;gap:.4rem;font-weight:400;font-size:.85rem;cursor:pointer}.categories-grid input[type=checkbox]{width:auto}.ohnohoney{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.section-header h2{font-size:1.75rem;color:var(--color-text)}.hero{text-align:center;padding:2.5rem 1rem 2rem}.hero h1{font-size:2.75rem;color:var(--color-primary-dark);margin-bottom:.5rem;line-height:1.15}.hero p{font-size:1.15rem;color:var(--color-muted);max-width:36rem;margin:0 auto 1.75rem;line-height:1.6}@media(max-width:768px){.hero h1{font-size:2rem}}.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1.5rem;padding:1rem;background:var(--color-white);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.filters .form-group{margin-bottom:0;flex:1;min-width:150px}.filters .form-group label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted)}.admin-table{width:100%;border-collapse:collapse;background:var(--color-white);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.admin-table th{background:var(--color-primary);color:var(--color-white);padding:.75rem 1rem;text-align:left;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.admin-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border-light);font-size:.9rem;vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#fafaf7}.admin-actions{display:flex;gap:.35rem;flex-wrap:wrap}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.9rem;margin-bottom:1rem}.alert-success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.alert-error{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.alert-info{background:var(--color-ocean-light);color:var(--color-ocean);border:1px solid #c8dce8}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-muted)}.empty-state h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--color-text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.text-center{text-align:center}.text-muted{color:var(--color-muted)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
