:root{--ink:#173c32;--muted:#667b72;--paper:#f6f7f2;--line:#dfe6dc;--accent:#217451;--color:#398660;--soft:#eff5ef}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #ba9446;outline-offset:3px}.header{max-width:1232px;margin:auto;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:750;font-size:21px;line-height:1.3}.brand-icon{display:grid;place-items:center;background:var(--ink);color:#efe1b3;border-radius:13px;width:44px;height:44px;font-size:30px}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted);margin-top:4px}.header nav{display:flex;gap:23px;align-items:center;font-size:13px;font-weight:600}.header nav a{text-decoration:none}.header button{border:1px solid var(--line);padding:8px 14px;background:#fff;border-radius:10px}main{max-width:1232px;padding:42px 32px 24px;margin:auto}.intro{display:flex;gap:24px;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;margin:0;color:var(--muted)}h1{font-family:Georgia,serif;font-weight:500;font-size:42px;line-height:1.2;margin:10px 0}.subtitle{color:var(--muted);font-size:14px;margin:0}.edition{border-left:2px solid #c1cbba;padding-left:18px;white-space:nowrap;font-size:10px;font-weight:700;letter-spacing:1px}.edition small{display:block;font-size:12px;letter-spacing:0;font-weight:400;color:var(--muted);margin-top:6px}.layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,1fr);gap:26px;align-items:start}.day-card,.calendar-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 35px #193b3205}.day-card{padding:32px;border-top:5px solid var(--color);min-height:540px}.day-top{display:flex;justify-content:space-between;align-items:center}.icon-button{color:var(--muted);background:transparent;border:0;font-size:12px;padding:5px}.date-heading{font-size:16px;margin:20px 0 14px;color:var(--muted)}.rank-tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;font-size:11px;padding:3px 10px;color:var(--color);font-weight:650}.day-card h2{font-family:Georgia,serif;font-weight:500;font-size:34px;line-height:1.3;margin:15px 0 9px}.season-line{font-size:14px;color:var(--muted);margin:0}.day-meta{display:flex;gap:45px;margin-top:28px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.day-meta small{display:block;font-size:9px;letter-spacing:1.3px;color:var(--muted);margin-bottom:7px}.day-meta strong{font-size:14px;font-weight:600;display:flex;gap:8px;align-items:center}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--color)}.green{background:#398660}.white{background:#faf9ee;border:1px solid #b9b7a7}.purple{background:#795794}.red{background:#bc4e50}.rose{background:#d88cad}.black{background:#333}.notice,.transfer{font-size:12px;background:#f7f4e9;border-radius:10px;padding:13px 15px;color:#756439;line-height:1.6}.transfer{background:#eff4f8;color:#3f6178}.options{padding:17px 0 0}.options h3{font-size:12px;margin:0}.options ul{padding-left:18px;font-size:13px;margin:8px 0}.options p{font-size:11px;color:var(--muted);margin:8px 0}.readings{margin-top:26px}.readings-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.readings-title h3{font-size:17px;font-weight:600;margin:0 0 12px}.readings-title span{font-size:8px;letter-spacing:1px;color:var(--muted)}.reading-row{display:grid;grid-template-columns:92px 1fr auto;gap:12px;padding:13px 0;border-bottom:1px solid #edf0e9;font-size:14px}.reading-row small{color:var(--muted);font-size:12px}.reading-row a{color:var(--accent);text-decoration:none;font-size:12px;align-self:start}.reading-note{font-size:11px;color:var(--muted);line-height:1.6}.source-link{font-size:11px;color:var(--muted)}.day-nav{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:28px}.day-nav button,.date-input button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 8px;font-size:12px}.day-nav .active-button,.date-input button{background:var(--ink);border-color:var(--ink);color:#fff}.calendar-card{padding:23px}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.month-nav h2{font-size:19px;font-weight:600;margin:0}.month-nav button{background:#f2f5ef;border:0;border-radius:9px;width:33px;height:33px;font-size:24px;line-height:1}form label{font-size:10px;font-weight:600;color:var(--muted)}.date-input{display:flex;gap:8px;margin:5px 0 20px}.date-input input{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:9px 10px;color:var(--ink);background:#fff;font-size:13px}.date-input button{padding:8px 15px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{font-size:10px;text-align:center;color:var(--muted);margin:0 0 9px}.calendar-grid button{position:relative;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;min-height:49px;border:1px solid transparent;background:transparent;border-radius:10px;font-size:13px;color:var(--ink)}.calendar-grid button:hover{background:#f0f4ed}.calendar-grid button.selected{background:var(--ink);color:#fff}.calendar-grid button.is-today:not(.selected){border-color:#91ab98;font-weight:750}.calendar-grid .dot{width:5px;height:5px}.calendar-grid .holiday{font-weight:750}.legend{display:flex;flex-wrap:wrap;gap:9px 13px;border-top:1px solid var(--line);padding-top:18px;margin-top:18px;font-size:10px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.legend .dot{width:7px;height:7px}.calendar-help{font-size:10px;color:var(--muted);margin:12px 0 0}.rosary-card{display:flex;gap:15px;align-items:center;margin-top:18px;padding:22px;border:1px solid #d9e2d5;background:#edf2e9;border-radius:18px;text-decoration:none}.rosary-card>span{font-size:30px}.rosary-card .eyebrow{font-size:8px}.rosary-card h3{font-family:Georgia,serif;font-size:20px;font-weight:500;margin:3px 0}.rosary-card p:not(.eyebrow){font-size:11px;color:var(--muted);margin:0}.rosary-card b{margin-left:auto}.offline-info{font-size:10px;text-align:center;color:var(--muted);margin:15px 0}.about{margin-top:26px;border-top:1px solid var(--line)}summary{cursor:pointer;padding:22px 0;font-size:12px;font-weight:600;list-style:none;display:flex;justify-content:space-between}.about details div{color:var(--muted);font-size:12px;max-width:850px;padding-bottom:15px}footer{max-width:1168px;margin:20px auto 0;padding:24px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px;font-size:11px;color:var(--muted)}footer p{font-weight:700;color:var(--ink)}footer span{font-weight:400;margin-left:6px}footer nav{display:flex;gap:18px}footer a{text-decoration:none}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;z-index:3;padding:13px 20px;border-radius:12px;font-size:13px;max-width:90vw}#loading{padding:35px 0;color:var(--muted)}@media(max-width:800px){.header{padding:20px}.header nav{gap:13px;font-size:11px}.intro{display:block}.edition{margin-top:20px;padding-left:12px}main{padding:28px 18px 15px}.layout{grid-template-columns:1fr;gap:18px}h1{font-size:33px}.day-card{padding:25px}.day-card h2{font-size:29px}.day-meta{gap:30px}.side{display:flex;flex-direction:column}.calendar-card{padding:22px}.calendar-grid button{min-height:55px}.reading-row{grid-template-columns:75px 1fr auto;gap:8px;font-size:13px}.readings-title span{display:none}footer{margin:15px 18px 0;flex-direction:column;align-items:flex-start;gap:8px}footer p{margin:0}.header nav>a:first-child{display:none}}@media(prefers-reduced-motion:no-preference){button,a{transition:background .15s ease}}@media print{.header nav,.day-nav,.side,.about,.icon-button,footer nav{display:none}.layout{display:block}.day-card{box-shadow:none}.day-card{min-height:0}main{padding:0}.intro{margin-bottom:20px}}
