.calendar-page{padding-block:48px 80px}.calendar-hero{justify-content:space-between;align-items:center;gap:32px;margin-bottom:36px;display:flex}.calendar-hero h1{color:var(--ink);margin:15px 0 20px;font-size:clamp(42px,5vw,74px);line-height:.98}.calendar-hero h1 em{color:var(--gold);font-weight:500}.calendar-hero>div:first-child>p:last-child{max-width:560px;color:var(--muted-foreground);font-size:16px}.calendar-hero-seal{border:1px solid var(--border);width:184px;height:184px;color:var(--gold);box-shadow:inset 0 0 0 9px var(--background), inset 0 0 0 10px var(--border);border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:12px;display:flex}.calendar-hero-seal span{font-family:var(--font-display);text-align:center;color:var(--ink);font-size:31px;line-height:.98}.calendar-hero-seal small{text-transform:uppercase;letter-spacing:.15em;font-size:8px}.calendar-rites{border:0;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 26px;padding:0;display:grid}.calendar-rites label{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:9px;align-items:center;gap:16px;padding:21px 24px;transition:border-color .15s,background .15s;display:flex;position:relative}.calendar-rites label.is-active{border-color:var(--gold);background:#f0eada}.calendar-rites label:focus-within{outline:2px solid var(--gold);outline-offset:3px}.calendar-rites input{opacity:0;width:1px;height:1px;position:absolute}.calendar-rite-symbol{width:42px;height:42px;color:var(--gold);border:1px solid #94703a38;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.calendar-rites strong{color:var(--ink);font-size:16px;font-weight:600;display:block}.calendar-rites small{color:var(--muted-foreground);margin-top:3px;font-size:12px;display:block}.calendar-radio-mark{border:1px solid var(--gold);border-radius:50%;flex-shrink:0;width:16px;height:16px;margin-left:auto}.is-active .calendar-radio-mark{background:var(--gold);box-shadow:inset 0 0 0 3px #f0eada}.calendar-workspace{grid-template-columns:minmax(0,1.8fr) minmax(290px,1fr);align-items:start;gap:24px;display:grid}.calendar-month-panel{border:1px solid var(--border);background:var(--card);border-radius:10px;min-width:0;padding:28px}.calendar-toolbar{justify-content:space-between;align-items:center;gap:14px;display:flex}.calendar-month-heading h2{text-transform:capitalize;color:var(--ink);margin:8px 0 0;font-size:33px}.calendar-month-heading .eyebrow{font-size:9px}.calendar-month-arrows{gap:7px;display:flex}.calendar-month-arrows button,.calendar-date-controls>button{background:var(--background);color:var(--ink);border:1px solid var(--border);border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:38px;display:inline-flex}.calendar-month-arrows button{width:36px}.calendar-page button:disabled{opacity:.38;cursor:default}.calendar-page button:not(:disabled),.calendar-page select,.calendar-page input[type=date]{cursor:pointer}.calendar-page :is(button,select,input[type=date]):focus-visible{outline:2px solid var(--gold);outline-offset:3px}.calendar-date-controls{flex-wrap:wrap;align-items:end;gap:10px;margin:22px 0 18px;display:flex}.calendar-date-controls>button{min-height:39px;padding:8px 12px;font-size:12px}.calendar-date-controls label{flex-direction:column;gap:4px;min-width:0;display:flex}.calendar-date-controls label>span{color:var(--muted-foreground);font-size:10px}.calendar-date-controls :is(select,input){border:1px solid var(--border);min-height:39px;color:var(--ink);background:#fff;border-radius:5px;max-width:100%;padding:7px 9px;font-size:12px}.calendar-date-picker{margin-left:auto}.calendar-filters{border:0;border-top:1px solid var(--border);flex-wrap:wrap;gap:7px 14px;margin:0;padding:16px 0;display:flex}.calendar-filters label{color:var(--muted-foreground);cursor:pointer;align-items:center;gap:6px;font-size:10px;display:inline-flex}.calendar-filters input{accent-color:var(--gold);width:12px;height:12px}.calendar-filters label:has(input:checked){color:var(--ink)}.calendar-loading{background:var(--background);color:var(--muted-foreground);border-radius:5px;align-items:center;gap:8px;margin-bottom:10px;padding:10px;font-size:12px;display:flex}.calendar-load-error,.calendar-input-error{color:var(--destructive);margin-bottom:12px;font-size:12px}.calendar-load-error{background:#a13e3e09;border-radius:5px;padding:12px}.calendar-load-error button{align-items:center;gap:6px;margin-top:6px;font-weight:600;display:inline-flex}.calendar-grid{flex-direction:column;display:flex}.calendar-weekdays,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar-weekdays{color:var(--muted-foreground);text-align:center;padding:8px 0 13px;font-size:10px}.calendar-weekdays>:last-child{color:#a74440}.calendar-week{margin-bottom:4px}.calendar-week>div{min-width:0}.calendar-day{border:1px solid var(--border);width:100%;height:109px;color:var(--ink);text-align:left;background:0 0;border-radius:5px;flex-direction:column;align-items:start;padding:9px 6px 8px;transition:background .15s,border-color .15s;display:flex;position:relative}.calendar-day:hover{background:#eeebe3}.calendar-day.is-sunday{background:#a7444005}.calendar-day.is-selected{border-color:var(--ink);background:var(--ink);color:var(--night-foreground)}.calendar-day.is-today:not(.is-selected){border-color:var(--gold)}.calendar-day-number{font-size:17px;line-height:1.2;font-family:var(--font-display);align-items:center;gap:5px;margin-bottom:6px;font-weight:600;display:flex}.calendar-day.is-sunday:not(.is-selected) .calendar-day-number{color:#a74440}.calendar-today-mark{background:var(--gold);border-radius:50%;width:4px;height:4px;display:inline-block}.calendar-day-title{-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:8px;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.calendar-day-names{color:var(--muted-foreground);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:4px;font-size:7px;line-height:1.2;display:-webkit-box;overflow:hidden}.calendar-day.is-selected .calendar-day-names{color:#b5c2cf}.calendar-day-indicators{align-items:center;gap:4px;margin-top:auto;padding-top:5px;display:flex}.calendar-day-indicators i,.calendar-legend i{border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.calendar-liturgy-dot{border:1px solid #1d304338;width:6px!important;height:6px!important}.calendar-nameday-dot{background:var(--gold)}.calendar-history-dot{background:#758ca1}.calendar-indulgence-dot{background:#896c90}.calendar-legend{border-top:1px solid var(--border);color:var(--muted-foreground);flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-top:15px;padding-top:14px;font-size:9px;display:flex}.calendar-legend span{align-items:center;gap:5px;display:flex}.calendar-legend-color{background:#52745d}.calendar-keyboard-hint{text-align:center;color:var(--muted-foreground);margin-top:10px;font-size:9px}.calendar-detail{border:1px solid var(--border);background:var(--card);border-radius:10px;min-width:0;overflow:hidden}.calendar-selected-date{background:var(--night);color:var(--night-foreground);padding:26px 28px 23px}.calendar-selected-date>span{text-transform:uppercase;letter-spacing:.16em;color:#d6b379;font-size:9px}.calendar-selected-date p{align-items:center;gap:18px;margin:11px 0;display:flex}.calendar-selected-date strong{font-family:var(--font-display);font-size:80px;font-weight:500;line-height:.9}.calendar-selected-date p>span{font-family:var(--font-display);font-size:27px;line-height:1}.calendar-selected-date p small{font-family:var(--font-sans);color:#a9b8c7;margin-top:9px;font-size:11px;display:block}.calendar-selected-date>div{color:#a9b8c7;border-top:1px solid #ffffff1a;margin-top:17px;padding-top:12px;font-size:9px}.calendar-detail-body{padding:26px}.calendar-detail-body section+section{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.calendar-detail-eyebrow{text-transform:uppercase;letter-spacing:.09em;color:var(--gold);align-items:center;gap:8px;margin-bottom:12px;font-size:8px;display:flex}.calendar-liturgy h2{color:var(--ink);font-size:29px;line-height:1.1}.calendar-day-tags{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.calendar-day-tags>span{background:var(--background);color:var(--muted-foreground);border-radius:3px;align-items:center;gap:5px;padding:3px 7px;font-size:9px;display:inline-flex}.calendar-color-tag i{border:1px solid #1d304338;border-radius:50%;width:7px;height:7px;display:inline-block}.calendar-season{color:var(--muted-foreground);margin-top:11px;font-size:11px}.calendar-source-link{color:var(--gold);text-underline-offset:3px;align-items:center;gap:4px;margin-top:12px;font-size:10px;text-decoration:underline;display:inline-flex}.calendar-observance-group{margin-top:17px}.calendar-observance-group h3{font-family:var(--font-sans);margin-bottom:5px;font-size:10px;font-weight:600}.calendar-observance-group ul{color:var(--muted-foreground);padding:0;font-size:11px;list-style:none}.calendar-observance-group li+li{margin-top:4px}.calendar-day-note{color:var(--muted-foreground);margin-top:12px;font-size:10px}.calendar-namedays p{font-family:var(--font-display);color:var(--ink);font-size:23px;line-height:1.35}.calendar-namedays small{color:var(--muted-foreground);margin-top:10px;font-size:9px;display:block}.calendar-history article+article,.calendar-indulgences article+article{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.calendar-anniversary-date{align-items:center;gap:10px;margin-bottom:9px;display:flex}.calendar-anniversary-date strong{font-family:var(--font-display);color:var(--gold);font-size:27px;line-height:1}.calendar-anniversary-date span{color:var(--muted-foreground);font-size:9px}.calendar-history h3,.calendar-indulgences h3{color:var(--ink);margin-bottom:8px;font-size:23px;line-height:1.1}.calendar-history article p,.calendar-indulgences article p,.calendar-empty{color:var(--muted-foreground);font-size:11px;line-height:1.7}.calendar-indulgence-link{color:var(--gold);text-underline-offset:3px;align-items:center;gap:7px;margin-top:16px;font-size:11px;text-decoration:underline;display:inline-flex}.calendar-indulgence-link svg{flex-shrink:0}.calendar-agenda{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-top:34px;padding:30px}.calendar-agenda-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.calendar-agenda-heading h2{text-transform:capitalize;color:var(--ink);margin-top:8px;font-size:35px}.calendar-agenda-heading>span{color:var(--muted-foreground);font-size:11px}.calendar-agenda-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;display:grid}.calendar-agenda-list button{border-top:1px solid var(--border);text-align:left;width:100%;min-width:0;color:var(--ink);align-items:center;gap:12px;padding:15px 6px;display:flex}.calendar-agenda-list button:hover,.calendar-agenda-list button.is-selected{background:var(--background)}.calendar-agenda-list time{font-family:var(--font-display);text-align:center;flex-shrink:0;width:32px;font-size:30px;line-height:.9}.calendar-agenda-list time small{font-family:var(--font-sans);color:var(--muted-foreground);margin-top:7px;font-size:8px;display:block}.calendar-agenda-icon{color:var(--gold);flex-shrink:0}.calendar-agenda-list button>span:last-of-type{min-width:0}.calendar-agenda-list strong{font-size:11px;font-weight:500;line-height:1.5;display:block}.calendar-agenda-list button>span>small{color:var(--muted-foreground);margin-top:3px;font-size:9px;display:block}.calendar-agenda-list button>svg:last-child{color:var(--muted-foreground);flex-shrink:0;margin-left:auto}.calendar-notes{max-width:820px;color:var(--muted-foreground);align-items:start;gap:15px;margin:28px auto 0;font-size:10px;display:flex}.calendar-notes>svg{color:var(--gold);flex-shrink:0;margin-top:3px}.calendar-notes p+p{margin-top:5px}.calendar-notes a{color:var(--gold);font-size:10px}@media (width>=1280px){.calendar-day{height:118px;padding:10px 8px}.calendar-day-title{font-size:9px}.calendar-day-names{font-size:8px}}@media (width<=1023px){.calendar-workspace{grid-template-columns:minmax(0,1.55fr) minmax(265px,1fr);gap:16px}.calendar-month-panel{padding:20px}.calendar-detail-body{padding:22px}.calendar-day{height:89px}.calendar-day-title{-webkit-line-clamp:2;font-size:7px}.calendar-day-names{display:none}}@media (width<=767px){.calendar-page{padding-block:30px 50px}.calendar-hero{margin-bottom:26px}.calendar-hero>div:first-child>p:last-child{max-width:440px;font-size:13px}.calendar-hero-seal{display:none}.calendar-rites{gap:9px}.calendar-rites label{align-items:start;gap:8px;padding:15px 12px}.calendar-rite-symbol{display:none}.calendar-rites strong{font-size:13px}.calendar-rites small{font-size:9px;line-height:1.5}.calendar-radio-mark{width:12px;height:12px;margin-top:4px}.calendar-workspace{grid-template-columns:minmax(0,1fr)}.calendar-month-heading h2{font-size:31px}.calendar-month-panel{padding:20px 16px}.calendar-day{height:80px}.calendar-day-title{-webkit-line-clamp:2;font-size:8px}.calendar-detail{margin-top:2px}.calendar-selected-date{padding:22px 24px}.calendar-selected-date strong{font-size:65px}.calendar-detail-body{padding:24px}.calendar-liturgy h2{font-size:31px}.calendar-namedays p{font-size:25px}.calendar-history h3,.calendar-indulgences h3{font-size:26px}.calendar-agenda{margin-top:24px;padding:24px 18px}.calendar-agenda-list{grid-template-columns:minmax(0,1fr)}.calendar-agenda-list strong{font-size:12px}}@media (width<=400px){.calendar-day{align-items:center;height:65px;padding:8px 3px}.calendar-day-title{display:none}.calendar-day-indicators{padding-top:0}.calendar-day-number{font-size:20px}.calendar-date-controls{gap:8px}.calendar-date-picker{flex:1;margin-left:0;min-width:125px!important}.calendar-date-controls :is(select,input){padding-inline:6px;font-size:10px}.calendar-date-controls>button{padding-inline:8px}.calendar-filters{gap:7px 10px}.calendar-filters label{gap:4px;font-size:9px}.calendar-filters label>svg{display:none}.calendar-weekdays,.calendar-week{gap:3px}.calendar-keyboard-hint{display:none}}@media (prefers-reduced-motion:reduce){.calendar-day,.calendar-rites label{transition:none}}.calendar-saint-lives{border-bottom:1px solid var(--border);padding-block:20px}.calendar-saint-lives ul{gap:10px;margin-block:14px;padding:0;list-style:none;display:grid}.calendar-saint-lives a{color:var(--ink);border:1px solid var(--border);border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-family:Cormorant Garamond,Georgia,serif;font-size:19px;line-height:1.3;display:flex}.calendar-saint-lives a:hover{border-color:var(--gold)}.calendar-saint-lives a svg{color:var(--gold);flex-shrink:0}.calendar-saint-lives small{color:var(--muted-foreground);font-size:10px;line-height:1.6;display:block}.calendar-saints-error button{padding-block:7px;text-decoration:underline}.calendar-print-controls{border-top:1px solid var(--border);flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:16px;padding-top:15px;display:flex}.calendar-print-controls label{gap:4px;min-width:0;display:grid}.calendar-print-controls label>span{color:var(--muted-foreground);font-size:10px}.calendar-print-controls select,.calendar-print-controls button{border:1px solid var(--border);background:var(--card);min-height:39px;color:var(--ink);border-radius:5px;max-width:100%;padding:7px 10px;font-size:12px}.calendar-print-controls button{border-color:var(--ink);background:var(--ink);color:var(--night-foreground);justify-content:center;align-items:center;gap:7px;display:inline-flex}.calendar-print-controls>p{color:var(--muted-foreground);flex-basis:100%;font-size:10px;line-height:1.5}.calendar-print-standalone a{color:var(--gold);text-underline-offset:3px;text-decoration:underline}.calendar-print-sheet{color:#000;break-inside:avoid;page-break-inside:avoid;background:#fff;border:0;width:277mm;height:189mm;margin:0;padding:0;font-family:Arial,sans-serif;font-size:7.5pt;line-height:1.3;display:none;position:relative}.calendar-print-sheet.calendar-print-list{width:190mm;height:276mm;font-size:8pt}.calendar-print-sheet.is-fitted{overflow:hidden}.calendar-print-sheet.is-measuring{visibility:hidden;pointer-events:none;display:block;position:fixed;top:0;left:-100000px}.calendar-print-content{width:calc(100% / var(--calendar-print-scale,1));transform:scale(var(--calendar-print-scale,1));transform-origin:0 0;display:flow-root;position:absolute;top:0;left:0}.calendar-print-sheet,.calendar-print-sheet *{box-sizing:border-box;text-shadow:none!important;box-shadow:none!important}.calendar-print-heading{text-align:center;margin-bottom:3mm}.calendar-print-heading h1{color:#000;text-transform:capitalize;margin:1mm 0;font-family:Georgia,serif;font-size:20pt;line-height:1.15}.calendar-print-heading p{margin:0;font-size:8pt;line-height:1.3}.calendar-print-table{table-layout:fixed;border-collapse:collapse;border:.3mm solid #555;width:100%}.calendar-print-table th{text-align:center;border:.2mm solid #777;padding:1.2mm;font-size:8pt;font-weight:700}.calendar-print-table td{vertical-align:top;overflow-wrap:anywhere;border:.2mm solid #777;height:22mm;padding:1.3mm}.calendar-print-table p{margin:.7mm 0 0}.calendar-print-date{align-items:baseline;gap:2mm;margin-bottom:1mm;display:flex}.calendar-print-date time{font-size:13pt;font-weight:700;line-height:1}.calendar-print-date span{font-size:7pt}.calendar-print-feast{font-weight:700}.calendar-print-history,.calendar-print-indulgences{border-top:.2mm dotted #999;margin-top:.7mm;padding-top:.7mm}.calendar-print-footer{margin-top:2mm;font-size:6.5pt;line-height:1.3}.calendar-print-list-days>section{border-top:.2mm solid #888;min-height:7mm;padding:1mm 0 1mm 32mm;position:relative}.calendar-print-list-days .calendar-print-date{gap:1.5mm;width:30mm;display:flex;position:absolute;inset:1mm auto auto 0}.calendar-print-list-days .calendar-print-date time{font-size:12pt}.calendar-print-list-days .calendar-print-date span{font-size:7pt}.calendar-print-list-days .calendar-print-day-content{overflow-wrap:anywhere;grid-template-columns:1.2fr 1fr;gap:.5mm 3mm;display:grid}.calendar-print-list-days p{margin:0}.calendar-print-list-days .calendar-print-history,.calendar-print-list-days .calendar-print-indulgences{border:0;grid-column:1/-1;margin:0;padding:0}@media print{:is(html:has(.calendar-print-sheet),body:has(>.calendar-print-sheet)){color:#000!important;background:#fff!important;width:auto!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}body:has(>.calendar-print-sheet)>:not(.calendar-print-sheet){display:none!important}body>.calendar-print-sheet{visibility:visible!important;display:block!important;position:relative!important;inset:auto!important}}
