:root{color-scheme:light dark;--paper: #f6f2e7;--surface: #fffdf7;--line: #e5ddc9;--line-soft: #efe9da;--ink: #16332a;--ink-soft: #52685d;--ink-faint: #8d9a91;--gold: #8f6d28;--alert: #8b3626;--hero-bg: #16382b;--hero-ink: #f6f1e3;--hero-soft: #a2bdad;--hero-gold: #d7b872;--hero-line: rgba(246, 241, 227, .16);--track: #ded7c5;--switch-on: #16382b;--primary-bg: #16382b;--primary-ink: #f6f1e3;--shadow: 0 1px 2px rgba(20, 48, 37, .05), 0 10px 24px -16px rgba(20, 48, 37, .25);--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius: 16px;--radius-lg: 20px;--gap: 18px}@media (prefers-color-scheme: dark){:root{--paper: #0d1512;--surface: #14201c;--line: #25352e;--line-soft: #1d2b25;--ink: #e9e5d7;--ink-soft: #a3b3a8;--ink-faint: #74857a;--gold: #c9a758;--alert: #d9836e;--hero-bg: #1a3a2d;--hero-ink: #f2ecdd;--hero-soft: #9dbdab;--track: #2b3b34;--switch-on: #3d8062;--primary-bg: #2f6550;--primary-ink: #f4f0e4;--shadow: 0 1px 2px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html{background:var(--paper);-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}.page{max-width:25rem;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 18px calc(32px + env(safe-area-inset-bottom))}main{display:flex;flex-direction:column;gap:var(--gap)}.masthead{text-align:center;padding:2px 0 20px}.wordmark{margin:0 0 16px;font-size:11px;font-weight:600;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:var(--ink-faint)}.gregorian{font-family:var(--serif);font-size:26px;font-weight:400;letter-spacing:.01em;line-height:1.2;margin:0;color:var(--ink)}.hijri{display:flex;width:100%;align-items:center;justify-content:center;gap:7px;background:none;border:0;padding:5px 0;margin:2px 0 0;font:inherit;font-size:15px;color:var(--ink-soft);border-radius:9px;cursor:pointer;min-height:32px;-webkit-tap-highlight-color:transparent}.hijri-adjust{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--gold);border:1px solid currentColor;border-radius:5px;padding:0 4px;line-height:1.5}.occasion{margin:10px 0 0}.occasion-name{display:block;font-family:var(--serif);font-size:19px;color:var(--gold)}.occasion-note{display:block;font-size:12px;color:var(--ink-faint);margin-top:1px}.place{display:flex;width:100%;align-items:center;justify-content:center;gap:5px;margin:10px 0 0;font-size:14px;letter-spacing:.02em;color:var(--ink-faint)}.place:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.panel-heading{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}.panel-empty{margin:0;color:var(--ink-soft);font-size:15px}.times{list-style:none;margin:0;padding:0}.time-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;margin:0 -12px;border-bottom:1px solid var(--line-soft);border-radius:12px}.time-row:last-child{border-bottom:0}.time-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:17px}.time-right{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.time-value{font-family:var(--serif);font-size:21px;font-variant-numeric:tabular-nums;white-space:nowrap}.time-value--range{font-size:16px}.time-unavailable{font-family:var(--sans);font-size:14px;color:var(--ink-faint)}.time-until{font-size:12px;color:var(--ink-faint);white-space:nowrap}.time-qualifier{font-size:12px;color:var(--ink-faint)}.time-row--minor .time-name,.time-row--minor .time-value{color:var(--ink-faint);font-size:15px}.time-row--now{background:var(--hero-bg);border-bottom-color:transparent;color:var(--hero-ink)}.time-row--now+.time-row{border-top:0}.time-row--now .time-name{font-weight:600}.time-row--now .time-value{font-weight:600;color:var(--hero-ink)}.time-row--now .time-qualifier,.time-row--now .time-until{color:var(--hero-soft)}.time-row--now .time-tag{color:var(--hero-bg);background:var(--hero-gold);border-color:var(--hero-gold)}.time-row--active{background:color-mix(in srgb,var(--gold) 12%,var(--surface));border-left:3px solid var(--gold);border-bottom-color:transparent;padding-left:9px}.time-tag{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid currentColor;border-radius:999px;padding:1px 7px;line-height:1.6}.time-progress{position:absolute;left:12px;right:12px;bottom:7px;height:2px;border-radius:2px;background:var(--hero-line);overflow:hidden}.time-progress span{display:block;height:100%;background:var(--hero-gold);transform-origin:left center;transition:transform .9s linear}.qibla-summary{display:flex;align-items:center;gap:18px;width:100%;background:none;border:0;padding:2px 0 0;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.qibla-text{display:flex;flex-direction:column;gap:2px}.qibla-hint--action{color:var(--gold)}.dial{width:92px;height:92px;flex:none}.dial-ring{fill:none;stroke:var(--line);stroke-width:2}.dial-hub{fill:var(--ink-faint)}.dial-tick{stroke:var(--ink-faint);stroke-width:2}.needle path{fill:var(--ink)}.needle--aligned path{fill:var(--gold)}.needle{transition:transform .12s linear}.qibla-bearing{font-family:var(--serif);font-size:30px;line-height:1.1;font-variant-numeric:tabular-nums}.qibla-hint{font-size:13px;color:var(--ink-faint)}.overlay{position:fixed;inset:0;background:#0a1812c7;display:flex;align-items:center;justify-content:center;padding:24px;z-index:10}.overlay-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 22px 22px;text-align:center;width:100%;max-width:20rem}.overlay-card .dial{width:180px;height:180px}.overlay-bearing{font-family:var(--serif);font-size:19px;margin:14px 0 6px;font-variant-numeric:tabular-nums}.overlay-status{margin:0 0 14px;font-size:15px;color:var(--ink-soft)}.overlay-status--aligned{color:var(--gold);font-weight:600}.overlay-note{margin:0 0 14px;font-size:13px;color:var(--ink-faint)}.notify-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:56px;padding:0 20px;border:1px solid var(--hero-bg);border-radius:var(--radius);background:var(--hero-bg);color:var(--hero-ink);font:inherit;cursor:pointer;box-shadow:var(--shadow);-webkit-tap-highlight-color:transparent}.notify-button-icon{display:flex;flex:none;color:var(--hero-gold)}.notify-button-icon svg{width:20px;height:20px}.notify-button-label{flex:1;font-size:17px;font-weight:600}.notify-button-state{font-size:13px;letter-spacing:.04em;color:var(--hero-soft)}.overlay--bottom{align-items:flex-end;padding:0}.sheet{background:var(--surface);border-top:1px solid var(--line);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:10px 20px calc(20px + env(safe-area-inset-bottom));width:100%;max-width:26rem;max-height:90vh;overflow-y:auto;animation:sheet-rise .22s cubic-bezier(.22,1,.36,1)}@keyframes sheet-rise{0%{transform:translateY(16px);opacity:.6}to{transform:translateY(0);opacity:1}}.sheet-grip{display:block;width:36px;height:4px;margin:0 auto 14px;border-radius:2px;background:var(--line)}.sheet-heading{margin:0;font-family:var(--serif);font-size:23px;font-weight:400}.sheet-intro{margin:3px 0 14px;font-size:14px;line-height:1.5;color:var(--ink-faint)}.sheet-blocker{margin:0 0 14px;padding:12px 14px;border:1px solid var(--gold);border-radius:12px;font-size:14px;line-height:1.5;color:var(--ink);background:color-mix(in srgb,var(--gold) 10%,transparent)}.sheet-close{width:100%;margin-top:14px}.switches{list-style:none;margin:0 0 16px;padding:0}.switch-row{border-bottom:1px solid var(--line-soft)}.switch-row:last-child{border-bottom:0}.toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:4px 0;background:none;border:0;font:inherit;color:inherit;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent}.toggle-text{flex:1;display:flex;flex-direction:column;gap:1px}.toggle-label{font-size:17px}.toggle-meta{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-faint)}.toggle-state{font-size:10px;font-weight:600;letter-spacing:.14em;color:var(--ink-faint);min-width:2.6em;text-align:right}.toggle-track{width:46px;height:28px;border-radius:14px;background:var(--track);position:relative;flex:none;transition:background .16s ease}.toggle[aria-checked=true] .toggle-track{background:var(--switch-on)}.toggle[aria-checked=true] .toggle-state{color:var(--ink-soft)}.toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fffdf7;box-shadow:0 1px 2px #0003;transition:transform .16s ease}.toggle[aria-checked=true] .toggle-knob{transform:translate(18px)}.toggle:disabled{opacity:.5;cursor:default}.bulk-actions{display:flex;gap:10px}.switch-message{margin:14px 0 0;padding-left:22px;position:relative;font-size:14px;line-height:1.55;color:var(--ink-soft)}.switch-message:before{position:absolute;left:0;top:0;font-weight:700}.switch-message--good:before{content:"✓";color:var(--gold)}.switch-message--bad:before{content:"✕";color:var(--alert)}.switch-message--bad{color:var(--alert)}.button{flex:1;min-height:44px;padding:0 16px;border-radius:11px;border:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent}.button--primary{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-ink)}.button--quiet{width:100%;margin-top:10px;border-style:dashed;font-weight:500;color:var(--ink-soft)}.button:disabled{opacity:.5;cursor:default}.notice{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.notice p{margin:0 0 14px;font-size:15px;line-height:1.55}.notice p:last-child{margin-bottom:0}.notice--alert{border-color:var(--alert)}.notice--alert p{color:var(--alert)}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
