:root{--cal-navy:#17345f;--cal-blue:#2b65a8;--cal-gold:#d2a83b;--cal-paper:#fffdf8;--cal-ink:#202632;--cal-line:#dce1e8;--cal-muted:#667085}*{box-sizing:border-box}.calendar-body{margin:0;background:#eef1f5;color:var(--cal-ink);font-family:Georgia,serif}.calendar-top{min-height:76px;padding:1rem max(1.2rem,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--cal-navy);color:#fff}.calendar-top>a{display:flex;flex-direction:column;color:#fff;text-decoration:none}.calendar-top b{font-size:1rem;letter-spacing:.03em}.calendar-top span{font-size:.78rem;color:#e9cc77}.calendar-top nav{display:flex;gap:1rem;flex-wrap:wrap}.calendar-top nav a{color:#fff;text-decoration:none;font-size:.88rem}.calendar-shell{max-width:1180px;margin:auto;padding:clamp(1.2rem,4vw,3rem)}.calendar-intro{max-width:780px;margin:3rem auto;text-align:center}.calendar-intro h1,.calendar-heading h1{font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;color:var(--cal-navy);margin:.4rem 0 1rem}.cal-eyebrow{font:700 .72rem Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--cal-blue)}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:920px;margin:auto}.cal-card{background:var(--cal-paper);padding:clamp(1.3rem,4vw,2.2rem);border:1px solid var(--cal-line);box-shadow:0 10px 30px rgba(25,45,70,.08)}.cal-form,.event-form{display:grid;gap:1rem}.cal-form label,.event-form label{display:grid;gap:.35rem;font-weight:700;font-size:.82rem}.cal-form input,.event-form input,.event-form select,.event-form textarea,.cal-filters input{width:100%;padding:.72rem;border:1px solid #abb6c5;background:#fff;font:inherit}.event-form textarea{min-height:90px}.cal-form button,.event-form button,.cal-filters button,.calendar-tools button,.cal-button{display:inline-block;border:0;border-radius:3px;padding:.75rem 1rem;background:var(--cal-blue);color:#fff;text-decoration:none;font:700 .82rem Arial,sans-serif;cursor:pointer}.cal-button.secondary{background:#fff;color:var(--cal-blue);border:1px solid var(--cal-blue)}.cal-message{padding:1rem;margin-bottom:1rem}.cal-message.success{background:#e6f5ec;color:#205f3a}.cal-message.error{background:#fdeced;color:#8a2531}.calendar-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem}.heading-actions,.button-row{display:flex;gap:.7rem;flex-wrap:wrap}.cal-filters{display:flex;align-items:center;gap:1.2rem;padding:1rem;background:#fff;border:1px solid var(--cal-line);margin-bottom:1rem;flex-wrap:wrap}.cal-filters label{display:flex;gap:.45rem;align-items:center}.cal-filters label input{width:auto}.cal-filters input[type=month]{width:auto}.calendar-grid{background:#fff;border:1px solid var(--cal-line);display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{grid-column:1/-1;display:grid;grid-template-columns:repeat(7,1fr);background:var(--cal-navy);color:#fff}.weekdays b{padding:.7rem;text-align:center;font-size:.75rem}.calendar-day{min-height:145px;padding:.55rem;border-right:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line)}.calendar-day.outside{background:#f6f7f9;color:#9aa1ad}.calendar-day>time{display:block;text-align:right;font:700 .8rem Arial,sans-serif}.cal-entry{display:flex;gap:.4rem;margin-top:.45rem;font-size:.72rem;line-height:1.2}.cal-entry>span,.type-dot{width:.65rem;height:.65rem;border-radius:50%;background:var(--dot);flex:0 0 .65rem;margin-top:.15rem;display:inline-block}.cal-entry b,.cal-entry small{display:block}.cal-entry small{color:var(--cal-muted);margin-top:.1rem}.cal-entry.promotion{background:#fff7db;padding:.35rem}.cal-entry.liturgical{opacity:.78}.calendar-tools{margin-top:1rem;padding:1.2rem;background:#fff;border:1px solid var(--cal-line)}.calendar-tools form{display:flex;align-items:center;justify-content:space-between;gap:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.form-grid.four{grid-template-columns:repeat(4,1fr)}fieldset{border:1px solid var(--cal-line);padding:1rem}legend{font-weight:700}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}.privacy-note{padding:1rem;background:#fff8dd;border-left:4px solid var(--cal-gold)}.table-wrap{overflow:auto;background:#fff}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:.8rem;border-bottom:1px solid var(--cal-line);text-align:left;vertical-align:top}.table-wrap td small{display:block;color:var(--cal-muted)}.status{display:inline-block;padding:.25rem .45rem;border-radius:1rem;background:#e5e9ee;font-size:.72rem}.status.published{background:#dff4e7;color:#23643b}.status.proposed,.status.changes_pending{background:#fff1c6;color:#72520a}.actions{display:flex;gap:.55rem;flex-wrap:wrap}.actions form{display:inline}.link-button{border:0;background:none;color:var(--cal-blue);padding:0;cursor:pointer}.danger-link,.danger{color:#9b2835!important}.confirm-card{max-width:720px;margin:3rem auto}.confirm-card dl{display:grid;grid-template-columns:130px 1fr}.confirm-card dt,.confirm-card dd{padding:.65rem;border-bottom:1px solid var(--cal-line);margin:0}.public-event-list{display:grid;gap:1rem}.public-event-list article{display:grid;grid-template-columns:90px 1fr;gap:1.4rem;padding:1.5rem;background:#fff;border:1px solid var(--cal-line)}.public-event-list time{display:grid;place-items:center;align-content:center;background:var(--cal-navy);color:#fff}.public-event-list time b{text-transform:uppercase;font-size:.75rem}.public-event-list time span{font-size:2.2rem}.public-event-list h2{margin:.25rem 0}.user-requests{margin-top:2rem}.user-requests form{display:grid;grid-template-columns:1fr 160px auto;gap:1rem;margin-top:.7rem;align-items:center}.user-requests span small{display:block}.setup{max-width:560px;margin:4rem auto}@media(max-width:850px){.calendar-grid{display:block}.weekdays{display:none}.calendar-day{min-height:0}.calendar-day.outside{display:none}.auth-grid,.form-grid,.form-grid.four{grid-template-columns:1fr}.calendar-heading,.calendar-tools form{align-items:flex-start;flex-direction:column}.calendar-top{align-items:flex-start;flex-direction:column}.public-event-list article{grid-template-columns:70px 1fr}}
