.calendar-wrapper{--navy: #1a2b4a;--navy-mid: #243656;--gold: #c9a84c;--gold-light: #dfc374;--red: #b91c1c;--cream: #faf8f4;--white: #ffffff;--border: #e5e2db;--text: #1a2b4a;--text-dim: #6b7280;--radius: 8px;--shadow: 0 2px 12px rgba(0,0,0,.08);font-family:Inter,-apple-system,sans-serif;color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;width:100%}.calendar-wrapper .controls{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem}.calendar-wrapper .month-nav{display:flex;align-items:center;gap:.75rem}.calendar-wrapper .month-nav button{background:var(--white);border:1px solid var(--border);color:var(--navy);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;font-weight:700}.calendar-wrapper .month-nav button:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}.calendar-wrapper .month-nav .current-month{font-family:Playfair Display,Oswald,serif;font-weight:700;font-size:1.25rem;min-width:200px;text-align:center;color:var(--navy);text-transform:uppercase;letter-spacing:.04em}.calendar-wrapper .view-toggle{display:flex;background:var(--white);border-radius:20px;overflow:hidden;border:1px solid var(--border)}.calendar-wrapper .view-toggle button{background:transparent;border:none;color:var(--text-dim);padding:7px 18px;cursor:pointer;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:all .2s}.calendar-wrapper .view-toggle button.active{background:var(--navy);color:var(--white)}.calendar-wrapper .filter-section{margin-bottom:1.25rem;background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.calendar-wrapper .type-filter-row,.calendar-wrapper .county-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:center}.calendar-wrapper .county-filter-row{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border)}.calendar-wrapper .filter-row-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-right:.25rem;white-space:nowrap}.calendar-wrapper .type-pills,.calendar-wrapper .filter-pills{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.calendar-wrapper .filter-pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;padding:5px 14px;border-radius:14px;border:1px solid var(--border);background:var(--white);color:var(--text-dim);cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}.calendar-wrapper .filter-pill .pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 1.5px #ffffffd9}.calendar-wrapper .filter-pill:hover{border-color:var(--navy);color:var(--navy)}.calendar-wrapper .filter-pill.active{background:var(--navy);border-color:var(--navy);color:var(--white)}.calendar-wrapper .type-pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;padding:5px 14px;border-radius:14px;border:1px solid var(--border);background:var(--white);color:var(--text-dim);cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}.calendar-wrapper .type-pill .pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.calendar-wrapper .type-pill:hover{border-color:var(--navy);color:var(--navy)}.calendar-wrapper .type-pill.active{background:var(--navy);border-color:var(--navy);color:var(--white)}.calendar-wrapper .list-event .type-badge{display:inline-block;font-size:.6rem;padding:2px 8px;border-radius:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-left:6px;vertical-align:middle}.calendar-wrapper .type-badge.political{background:#fde8e8;color:#991b1b}.calendar-wrapper .type-badge.community{background:#e8f5e9;color:#1b5e20}.calendar-wrapper .calendar-container{max-width:1100px;margin:0 auto}.calendar-wrapper .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;background:var(--white);border-radius:var(--radius);overflow:hidden;border:2px solid var(--navy)}.calendar-wrapper .cal-header{background:var(--navy);padding:12px 4px;text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--white);border-right:1px solid rgba(255,255,255,.15)}.calendar-wrapper .cal-header:last-child{border-right:none}.calendar-wrapper .cal-day{background:var(--white);min-height:110px;padding:8px;position:relative;transition:background .15s;cursor:default;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-wrapper .cal-grid>div:not(.cal-header):nth-child(7n+7){border-right:none}.calendar-wrapper .cal-day:hover{background:var(--cream)}.calendar-wrapper .cal-day.other-month{background:#f9f8f6;opacity:.45}.calendar-wrapper .cal-day.today{box-shadow:inset 0 0 0 2px var(--red);background:#fef7f7}.calendar-wrapper .cal-day .day-num{font-size:.8rem;font-weight:600;color:var(--text-dim);margin-bottom:4px;display:block}.calendar-wrapper .cal-day.today .day-num{color:var(--red);font-weight:800}.calendar-wrapper .cal-event{font-size:.65rem;padding:3px 5px;border-radius:3px;margin-bottom:3px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;line-height:1.4;transition:filter .15s}.calendar-wrapper .cal-event:hover{filter:brightness(1.15)}.calendar-wrapper .cal-event.county-bastrop{background:#b91c1c;color:#fff}.calendar-wrapper .cal-event.county-hays{background:#2563eb;color:#fff}.calendar-wrapper .cal-event.county-fayette{background:#7c3aed;color:#fff}.calendar-wrapper .cal-event.county-travis{background:#d97706;color:#fff}.calendar-wrapper .cal-event.county-williamson{background:#059669;color:#fff}.calendar-wrapper .cal-event.county-fredericksburg{background:#db2777;color:#fff}.calendar-wrapper .cal-event.county-statewide{background:var(--gold);color:var(--navy)}.calendar-wrapper .cal-event.county-burleson{background:#3b82f6;color:#fff}.calendar-wrapper .cal-event.county-cacrc{background:#65a30d;color:#fff}.calendar-wrapper .cal-event.county-wtp{background:#0d9488;color:#fff}.calendar-wrapper .cal-event.county-gawtp{background:#92400e;color:#fff}.calendar-wrapper .cal-more{font-size:.65rem;color:var(--red);font-weight:700;cursor:pointer;padding:1px 4px}.calendar-wrapper .list-view{display:none}.calendar-wrapper .list-view.active,.calendar-wrapper .cal-grid-wrap{display:block}.calendar-wrapper .cal-grid-wrap.hidden{display:none}.calendar-wrapper .list-month-group{margin-bottom:2rem}.calendar-wrapper .list-month-label{font-family:Playfair Display,Oswald,serif;font-weight:700;font-size:1.2rem;color:var(--navy);border-bottom:2px solid var(--border);padding-bottom:.5rem;margin-bottom:.8rem;text-transform:uppercase;letter-spacing:.04em}.calendar-wrapper .list-event{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:.8rem .5rem;border-bottom:1px solid var(--border);transition:background .15s;cursor:pointer;border-radius:var(--radius);text-align:left}.calendar-wrapper .list-event:hover{background:var(--cream)}.calendar-wrapper .list-date{text-align:center;padding-top:2px}.calendar-wrapper .list-date .day{font-family:Playfair Display,Oswald,serif;font-weight:800;font-size:1.6rem;color:var(--navy);line-height:1}.calendar-wrapper .list-date .weekday{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-weight:700;display:block}.calendar-wrapper .list-info h3{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:.25rem;margin-top:0;text-transform:none;letter-spacing:0}.calendar-wrapper .list-info .org-badge{display:inline-block;font-size:.65rem;padding:2px 8px;border-radius:10px;font-weight:700;margin-right:6px;margin-bottom:4px;vertical-align:middle}.calendar-wrapper .list-info .time-loc{font-size:.85rem;color:var(--text-dim)}.calendar-wrapper .list-info .time-loc strong{color:var(--red);font-weight:700}.calendar-wrapper .modal-overlay{display:none;position:fixed;inset:0;background:#1a2b4aa6;z-index:1000;backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:1.5rem}.calendar-wrapper .modal-overlay.show{display:flex}.calendar-wrapper .modal{background:var(--white);border:1px solid var(--border);border-radius:12px;max-width:520px;width:100%;padding:2rem;position:relative;box-shadow:0 8px 40px #00000026;max-height:80vh;overflow-y:auto;text-align:left}.calendar-wrapper .modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--text-dim);font-size:1.4rem;cursor:pointer}.calendar-wrapper .modal-close:hover{color:var(--red)}.calendar-wrapper .modal h2{font-family:Playfair Display,Oswald,serif;font-weight:700;font-size:1.3rem;color:var(--navy);margin-bottom:.5rem;padding-right:2rem;line-height:1.3;text-transform:none;letter-spacing:0}.calendar-wrapper .modal .modal-org{display:inline-block;font-size:.75rem;padding:3px 10px;border-radius:12px;font-weight:700;margin-bottom:1rem}.calendar-wrapper .modal .detail-row{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.6rem;font-size:.95rem}.calendar-wrapper .modal .detail-row .icon{width:20px;text-align:center;flex-shrink:0;font-size:.95rem;margin-top:1px}.calendar-wrapper .modal .detail-row .detail-text{color:var(--text)}.calendar-wrapper .modal .detail-row .detail-text a{color:var(--red);text-decoration:underline;text-underline-offset:2px}.calendar-wrapper .modal .detail-row .detail-text a:hover{color:var(--navy)}.calendar-wrapper .modal-actions{display:flex;gap:.5rem;margin-top:1.5rem}.calendar-wrapper .modal-actions a{display:inline-block;padding:9px 20px;border-radius:6px;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s;text-transform:uppercase;letter-spacing:.04em}.calendar-wrapper .modal-actions .btn-primary{background:var(--red);color:var(--white)}.calendar-wrapper .modal-actions .btn-primary:hover{background:#991b1b}.calendar-wrapper .modal-actions .btn-secondary{background:var(--cream);border:1px solid var(--border);color:var(--navy)}.calendar-wrapper .modal-actions .btn-secondary:hover{background:var(--navy);color:var(--white);border-color:var(--navy)}.calendar-wrapper .cal-footer{text-align:center;padding:2rem 1.5rem;border-top:2px solid var(--border);margin-top:2rem}.calendar-wrapper .cal-footer p{font-size:.85rem;color:var(--text-dim)}.calendar-wrapper .cal-footer a{color:var(--red);font-weight:600;text-decoration:underline;text-underline-offset:2px}.calendar-wrapper .cal-footer a:hover{color:var(--navy)}.calendar-wrapper .filter-toggle-btn{display:none;width:100%;padding:10px 16px;background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);color:var(--navy);font-size:.85rem;font-weight:700;cursor:pointer;margin-bottom:.5rem;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.04em}.calendar-wrapper .filter-toggle-btn .filter-chevron{font-size:.7rem;transition:transform .2s}.calendar-wrapper .filter-toggle-btn[aria-expanded=true] .filter-chevron{transform:rotate(180deg)}@media (max-width: 700px){.calendar-wrapper .cal-day{min-height:70px;padding:3px}.calendar-wrapper .cal-day .day-num{font-size:.7rem}.calendar-wrapper .cal-event{font-size:.5rem;padding:1px 3px}.calendar-wrapper .cal-header{font-size:.55rem;padding:6px 2px}.calendar-wrapper .controls{padding:.7rem .8rem}.calendar-wrapper .hide-on-mobile{display:none!important}.calendar-wrapper .filter-toggle-btn{display:flex}.calendar-wrapper .filter-section.collapsed-mobile{display:none!important}.calendar-wrapper .filter-section.expanded-mobile{display:block!important}}@media (max-width: 480px){.calendar-wrapper .cal-day{min-height:55px}.calendar-wrapper .cal-event{display:none}.calendar-wrapper .cal-day.has-events:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--red)}}@keyframes fadeSlide{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.calendar-wrapper .list-event{animation:fadeSlide .3s ease both}.calendar-wrapper .modal{animation:fadeSlide .25s ease both}
