/* Shared application controls in the calendar palette. */
:root{--bg:#091329;--ink:#f6ead2;--mut:#a9adc6;--acc:#f1c574;--acc2:#ffe0a0;--card:#17233d;--line:#354363}
body{display:block;line-height:1.55}
a{color:var(--gold)}
h1,h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:normal}
.header{padding-top:max(2.5cqw,env(safe-area-inset-top));line-height:normal}
.header-actions form{margin:0}
.header-icon{text-decoration:none}
.page{display:flex;flex-direction:column}
.app-content{flex:1;min-width:0}
.page--inner .app-content{padding:0 clamp(16px,4cqw,30px) 24px}
.page--inner h1{font-size:clamp(24px,5cqw,34px);margin:0 0 12px;overflow-wrap:anywhere}
.page--inner h2{font-size:clamp(20px,4cqw,26px)}
.page--inner .header{height:26cqw;min-height:120px}
.foot{position:relative;z-index:3;color:var(--mut)}
.flash{margin:12px 6cqw 24px;background:#203d37;border-color:#476756;color:#d7f3df}
.card{border:1px solid var(--line);box-shadow:0 8px 28px #0002}
.btn{background:linear-gradient(110deg,#e5ae53,#ffe49c 45%,#f2ca7b 72%,#cb8b36);color:#17130b;border:1px solid #f8d992;border-radius:24px}
.btn:hover{background:#ffe0a0;color:#17130b}
.btn--ghost{background:transparent;color:var(--cream);border-color:#76809b}
.btn--ghost:hover{background:#263451;color:var(--cream)}
.input,.suggest{background:#101c33;color:var(--cream);border-color:var(--line)}
.input::placeholder{color:#a9adc6}
.link{color:var(--mut)}
.opt:has(input:checked),.suggest li:hover,.suggest li.on{background:#2c3852}
.chip{background:#3c3327;color:#ffe0a0}
.chip--ok,.win{background:#203d37;border-color:#476756;color:#d7f3df}
.debug{background:#3c3327;color:#ffe0a0}
.diff__bar{top:0;background:var(--night);gap:8px;flex-wrap:wrap}
.rating li.is-mine,.songs li.is-mine{background:#302c35;outline-color:#a88b5f}
.hint--ok{color:#8bdbb6}.hint--bad{color:#ffb5ab}
.welcome h1{font-family:Georgia,'Times New Roman',serif;font-size:6cqw;overflow-wrap:anywhere}
.progress-copy{margin-bottom:3cqw}
.section-heading h2{font-family:Georgia,'Times New Roman',serif}
.welcome .pwa{text-align:left;background:#1b2743b0;border:2px solid #2a3659;border-radius:2.4cqw;padding:3.6cqw 3.7cqw;margin:0 0 5cqw;font-family:'Segoe UI',Arial,sans-serif;font-size:clamp(14px,3.2cqw,23px)}
.welcome .pwa .small{font-size:clamp(13px,3cqw,21px)}
.welcome .pwa p{line-height:1.45}
.welcome .pwa .btn,.welcome .pwa .link{font-size:clamp(13px,2.7cqw,18px)}
.gift-list .gift-check{padding:0;line-height:1;border-radius:50%;font-family:Arial,sans-serif}
.calendar-bonuses{position:absolute;left:53%;top:12cqw;width:38%;max-height:23cqw;overflow:auto;z-index:2;display:grid;gap:1cqw}
.gift-row:nth-of-type(even) .calendar-bonuses{left:8%}
.calendar-bonus{display:flex;gap:1cqw;align-items:center;padding:1.5cqw;border:1px solid #786347;border-radius:2cqw;background:#17233deb;text-decoration:none;color:var(--cream);font:clamp(12px,2.5cqw,18px)/1.3 Georgia,serif;overflow-wrap:anywhere}
.calendar-bonus img{width:9cqw;height:9cqw;object-fit:cover;border-radius:1cqw}
@media(prefers-reduced-motion:reduce){.confetti{display:none}}
/* The application's reset must not override the dialog's native centering. */
#task-dialog{margin:auto}
.section-heading .line{flex:1;min-width:0}
.section-heading{margin-left:6cqw;margin-right:6cqw}
