:root{color-scheme:dark;--bg:#081f1d;--ink:#f0f1e7;--muted:#a3b6ac;--gold:#d8bd7c;--line:#ffffff20}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums}button,input,a{touch-action:manipulation}button,input{font:inherit;color:var(--ink);background:#ffffff08;border:1px solid var(--line);padding:11px 15px;border-radius:7px}button{cursor:pointer}a{color:var(--gold)}button:hover{border-color:var(--gold)}:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.tv-screen{position:relative;width:100%;height:100vh;height:100svh;overflow:hidden;background:radial-gradient(ellipse at 15% 0%,#24514765,transparent 65%),var(--bg)}.tv-stage{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--stage-scale,.5));transform-origin:center;visibility:hidden}.tv-stage.ready{visibility:visible}.tv-content{width:100%;height:100%;display:grid;grid-template-rows:100px minmax(240px,1fr) 265px 200px 35px;gap:15px;animation:quiet-shift 240s ease-in-out infinite}.tv-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:22px}.seal{border:1px solid var(--gold);color:var(--gold);width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:40px}.eyebrow{font-size:17px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}h1{font-family:Georgia,serif;font-weight:400;font-size:51px;margin:8px 0 0}.date{text-align:right;color:var(--muted);font-size:23px;line-height:1.6}.hero{display:flex;justify-content:space-between;align-items:center}.clock{font-size:190px;line-height:1;letter-spacing:-.065em;font-weight:400;white-space:nowrap}.clock span{font-size:64px;letter-spacing:-.02em;color:var(--muted);margin-left:14px}.next{text-align:right}.next h2{font-family:Georgia,serif;font-size:76px;font-weight:400;color:var(--gold);margin:14px 0}.countdown{font-size:34px;color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.card{position:relative;border:1px solid var(--line);border-radius:15px;padding:32px 20px 16px;background:#ffffff04;min-width:0}.card.active{border-color:var(--gold);background:linear-gradient(140deg,#d8bd7c23,#d8bd7c05)}.card .ar{font-family:Georgia,serif;font-size:34px;color:var(--muted);margin-bottom:12px}.card.active .ar{color:var(--gold)}.card .name{font-size:22px;color:var(--muted)}.card .time{font-size:64px;letter-spacing:-.04em;margin-top:6px;white-space:nowrap}.card.active:after{content:'Neste bønn';position:absolute;top:13px;right:16px;font-size:15px;color:var(--gold)}.jamaah{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px;margin-top:10px;color:var(--gold);font-size:20px}.jamaah strong{font-weight:400}.friday{display:grid;grid-template-columns:260px 1fr;align-items:center;border:1px solid #d8bd7c55;border-radius:15px;background:#d8bd7c08;padding:24px 30px;gap:28px}.friday h2{font-family:Georgia,serif;font-size:43px;color:var(--gold);font-weight:400;margin:9px 0}.friday .ar{font-family:Georgia,serif;font-size:24px;color:var(--muted)}.friday-list{display:grid;grid-template-columns:1fr 1fr;gap:25px}.friday-entry{display:flex;justify-content:space-between;gap:16px;align-items:center;border-left:1px solid var(--line);padding-left:25px}.friday-label{font-size:17px;color:var(--muted);margin-bottom:10px}.friday-date{font-size:25px;white-space:nowrap}.friday-time{font-size:66px;letter-spacing:-.03em}.tv-bottom{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:17px}.tv-bottom a{text-decoration:none;color:var(--muted)}.screen-controls{position:absolute;bottom:4vh;left:50%;transform:translateX(-50%);display:flex;gap:8px;opacity:0;transition:opacity .2s;z-index:3}.tv-screen.controls-visible .screen-controls,.screen-controls:focus-within,.screen-controls:hover{opacity:1}.screen-controls button,.screen-controls a{font-size:14px;padding:8px 12px;background:#16342f;text-decoration:none;border-radius:7px;border:1px solid var(--line)}.error{position:absolute;left:6%;right:6%;top:42%;padding:22px;border:1px solid #f6c6a4;border-radius:10px;background:var(--bg);color:#f6c6a4;font-size:24px;z-index:4}.details{max-width:1500px;margin:auto;padding:60px 5vw 30px}.lower{display:grid;grid-template-columns:1.6fr 1fr;gap:45px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}h3{font-family:Georgia,serif;font-size:30px;font-weight:400;margin:0}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:18px;white-space:nowrap}th{text-align:right;font-weight:400;color:var(--muted);font-size:.85em;padding:12px 8px}td{text-align:right;padding:16px 8px;border-top:1px solid var(--line)}th:first-child,td:first-child{text-align:left}.today{color:var(--gold)}.note{border-left:1px solid var(--line);padding-left:35px;color:var(--muted);font-size:15px;line-height:1.8}.note h3{color:var(--ink);margin-bottom:15px}summary{color:var(--ink);cursor:pointer}.tools{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}#calendar{display:none;margin-top:45px}#calendar.open{display:block}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:45px;color:var(--muted);font-size:13px}#screenStatus{margin-top:10px}#wakeStatus{font-size:13px;color:var(--muted)}@keyframes quiet-shift{0%,100%{transform:translate(-3px,-2px)}25%{transform:translate(3px,-2px)}50%{transform:translate(3px,2px)}75%{transform:translate(-3px,2px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tv-content{animation:none}}.tv-stage[data-orientation=portrait]{width:900px;height:1500px}.tv-stage[data-orientation=portrait] .tv-content{grid-template-rows:150px minmax(310px,1fr) 600px 340px 40px}.tv-stage[data-orientation=portrait] h1{font-size:48px}.tv-stage[data-orientation=portrait] .date{font-size:22px;max-width:290px}.tv-stage[data-orientation=portrait] .clock{font-size:150px}.tv-stage[data-orientation=portrait] .clock span{font-size:45px}.tv-stage[data-orientation=portrait] .hero{align-items:flex-start;justify-content:center;flex-direction:column;gap:22px}.tv-stage[data-orientation=portrait] .next{display:flex;align-items:baseline;gap:20px;text-align:left;flex-wrap:wrap}.tv-stage[data-orientation=portrait] .next h2{font-size:52px;margin:0}.tv-stage[data-orientation=portrait] .countdown{font-size:29px}.tv-stage[data-orientation=portrait] .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.tv-stage[data-orientation=portrait] .card{padding:35px 25px 20px}.tv-stage[data-orientation=portrait] .card .time{font-size:76px}.tv-stage[data-orientation=portrait] .friday{grid-template-columns:190px 1fr;gap:20px;padding:25px}.tv-stage[data-orientation=portrait] .friday-list{grid-template-columns:1fr;gap:30px}.tv-stage[data-orientation=portrait] .friday-time{font-size:63px}.tv-stage[data-orientation=portrait] .friday-date{font-size:27px}.tv-stage[data-orientation=portrait] .friday h2{font-size:37px}@media(max-width:800px){.details{padding:35px 18px}.lower{grid-template-columns:1fr;gap:35px}.note{border-left:0;border-top:1px solid var(--line);padding:25px 0 0}h3{font-size:25px}table{font-size:15px}th,td{padding:12px 5px}footer{flex-direction:column}}@media print{.tv-screen{height:600px}.screen-controls{display:none}.details{padding:25px}}

/* The solar cycle shares the TV canvas with the unchanged daily timetable. */
.tv-content{grid-template-rows:90px minmax(150px,1fr) 280px 230px 40px}
.clock{font-size:154px}.clock span{font-size:48px}.next h2{font-size:64px;margin:8px 0}.countdown{font-size:29px}
.card{padding-top:27px}.card .ar{font-size:30px;margin-bottom:10px}.card .time{font-size:60px}.card .name{font-size:21px}
.friday{display:flex;align-items:baseline;justify-content:center;gap:17px;border:0;border-radius:0;background:none;padding:0}
.friday h2{font:400 27px Georgia,serif;margin:0}.friday strong{font-size:31px;font-weight:400;color:var(--gold)}
.solar-cycle{min-width:0;min-height:0;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#18374b70,#0a1b2a40);padding:17px 22px 10px;overflow:hidden}
.solar-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;height:36px}
.solar-heading h2{font:400 24px Georgia,serif;display:inline;margin:0 17px 0 0}.solar-heading>div>span{font-size:14px;color:var(--muted)}
.solar-controls{display:flex;align-items:center;gap:16px;flex-shrink:0}.solar-controls .solar-now{color:var(--gold);font-size:17px;min-width:100px;text-align:right}
.solar-now:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:8px;vertical-align:3px}
.solar-controls button{border-color:#ffffff26;border-radius:20px;padding:7px 12px;font-size:14px;white-space:nowrap;color:var(--muted)}
.solar-controls button:hover,.solar-controls button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.solar-chart{height:calc(100% - 36px);width:100%;min-height:0}.solar-chart>p{color:var(--muted);font-size:18px;padding:30px}
.solar-svg{display:block;width:100%;height:100%;overflow:visible}
.solar-night-ground{fill:#071724;fill-opacity:.33}.solar-horizon{stroke:#a8b6c7;stroke-opacity:.27;stroke-width:1}
.solar-horizon-label{font-size:13px;letter-spacing:1.2px;fill:var(--muted)}
.solar-day-path{stroke:url(#solarDayLine);stroke-width:2.5;fill:none}
.solar-night-path{stroke:#9db0cb;stroke-opacity:.5;stroke-width:1.8;fill:none;stroke-dasharray:4 6}
.solar-rise-point{fill:#d7aa76}.solar-rise-label{font-size:14px;fill:var(--muted)}
.solar-leader{stroke:#b7c4d4;stroke-opacity:.18;stroke-width:1;fill:none;stroke-dasharray:2 5}
.solar-prayer-point{fill:#0d2638;stroke:var(--gold);stroke-width:1.8}
.solar-prayer-name{fill:var(--ink);font:400 20px Georgia,serif}
.solar-prayer-time{fill:var(--gold);font:19px Arial,sans-serif;font-variant-numeric:tabular-nums}
.solar-sun.is-night .solar-rays{opacity:.35}.solar-sun.is-night{opacity:.75}
.tv-stage[data-orientation=portrait] .tv-content{grid-template-rows:135px minmax(235px,1fr) 340px 550px 45px}
.tv-stage[data-orientation=portrait] .clock{font-size:142px}.tv-stage[data-orientation=portrait] .next h2{font-size:49px}
.tv-stage[data-orientation=portrait] .solar-heading{height:48px;align-items:flex-start}
.tv-stage[data-orientation=portrait] .solar-heading h2{display:block;margin:0 0 5px;font-size:26px}
.tv-stage[data-orientation=portrait] .solar-chart{height:calc(100% - 48px)}
.tv-stage[data-orientation=portrait] .solar-controls{flex-direction:column;align-items:flex-end;gap:7px}
.tv-stage[data-orientation=portrait] .solar-controls button{font-size:16px;padding:5px 12px}
.tv-stage[data-orientation=portrait] .solar-controls .solar-now{font-size:19px}
.tv-stage[data-orientation=portrait] .solar-prayer-name{font-size:23px}
.tv-stage[data-orientation=portrait] .solar-prayer-time{font-size:21px}
.tv-stage[data-orientation=portrait] .card .time{font-size:70px}
.tv-stage[data-orientation=portrait] .friday{display:flex;padding:0;gap:14px}
.tv-stage[data-orientation=portrait] .friday h2{font-size:25px}.tv-stage[data-orientation=portrait] .friday strong{font-size:29px}
@media(prefers-reduced-motion:reduce){.solar-sun{transition:none}}

.screen-controls{left:auto;right:4vw;bottom:1.2vh;transform:none}


.mobile-only,.mobile-nav{display:none}
.view-switch{font-size:15px}

#hijriDate{font-size:.85em;color:var(--gold)}
.lower{grid-template-columns:1fr}
.calculation-info{margin-top:25px;border:1px solid var(--line);border-radius:12px;padding:16px 20px;color:var(--muted);font-size:15px;line-height:1.8}
.calculation-info>summary{font-size:17px;min-height:28px;line-height:28px}
.calculation-info .note{border:0;padding:20px 0 0;max-width:900px}
.calendar-tools{margin-top:18px}
