/* CL1 (2026-10-25): rewards calendar — dock button + panel (dark/light, 390/desktop). */
:root{--cl1-bg:#17121a;--cl1-bg2:#211921;--cl1-line:rgba(255,217,138,.14);--cl1-text:#f3e6d0;--cl1-mute:rgba(243,230,208,.62);--cl1-gold:#ffd98a;--cl1-red:#ff4d6d;--cl1-green:#3ddc97;--cl1-cell:rgba(255,255,255,.04);--cl1-shadow:0 18px 50px rgba(0,0,0,.55)}
html[data-theme="light"]{--cl1-bg:#fffaf5;--cl1-bg2:#f6ece4;--cl1-line:rgba(120,80,50,.16);--cl1-text:#2a1d22;--cl1-mute:rgba(42,29,34,.6);--cl1-gold:#a86b12;--cl1-red:#d6264a;--cl1-green:#14935c;--cl1-cell:rgba(60,30,20,.045);--cl1-shadow:0 18px 50px rgba(60,30,20,.22)}

/* dock button: same size and look as Fortune / Support / Chat */
html body .p25-utilities .cl1-badge{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:52px;height:54px;min-width:0;padding:0!important;margin:0;box-sizing:border-box;border-radius:13px!important;border:1px solid rgba(133,97,64,.47)!important;background:linear-gradient(155deg,#39232f,#1a1820)!important;box-shadow:inset 0 1px 0 rgba(255,228,181,.08)!important;color:#efdbb7!important;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;transition:transform .15s,border-color .15s}
html body .p25-utilities .cl1-badge:hover,html body .p25-utilities .cl1-badge[aria-expanded="true"]{border-color:rgba(255,77,109,.7)!important;transform:translateY(-1px)}
html body .p25-utilities .cl1-badge:focus-visible{outline:2px solid #ffd98a;outline-offset:2px}
html body .p25-utilities.is-game .cl1-badge{display:none!important}
.cl1-badge .cl1-ico{display:flex;flex-direction:column;align-items:center;width:26px;height:26px;border-radius:6px;overflow:hidden;background:#f6efe6;box-shadow:0 2px 6px rgba(0,0,0,.45)}
.cl1-badge .cl1-ico i{display:block;width:100%;height:9px;background:linear-gradient(180deg,#ff5a78,#d81f48);color:#fff;font:700 6.5px/9px Arimo,system-ui,sans-serif;font-style:normal;text-align:center;text-transform:uppercase;letter-spacing:.04em}
.cl1-badge .cl1-ico b{display:block;color:#2a1d22;font:800 13px/17px Arimo,system-ui,sans-serif;text-align:center}
.cl1-badge .cl1-label{font:600 8px/1 Arimo,system-ui,sans-serif;white-space:nowrap;color:inherit}
.cl1-badge .cl1-dot{display:none;position:absolute;right:-4px;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--cl1-green,#3ddc97);border:2px solid #17121a;box-sizing:border-box}
.cl1-badge.is-ready .cl1-dot{display:block}
.cl1-badge.is-fresh .cl1-dot{animation:cl1-pulse 1.8s ease-out 3}
@keyframes cl1-pulse{0%{box-shadow:0 0 0 0 rgba(61,220,151,.6)}100%{box-shadow:0 0 0 9px rgba(61,220,151,0)}}
/* folded dock ("•••" on phones): a quiet dot that a reward is waiting, until the calendar was opened today */
html body .p25-utilities.cl1-ready.is-collapsed:not(.is-game) .p25-utilities-toggle{position:relative}
html body .p25-utilities.cl1-ready.is-collapsed:not(.is-game) .p25-utilities-toggle::after{content:"";position:absolute;right:-3px;top:-3px;width:10px;height:10px;border-radius:50%;background:#3ddc97;border:2px solid #17121a}

/* panel */
.cl1-veil{position:fixed;inset:0;z-index:1095;background:rgba(0,0,0,.42);backdrop-filter:blur(1px)}
.cl1-veil[hidden],.cl1-panel[hidden]{display:none!important}
.cl1-panel{position:fixed;z-index:1096;width:312px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;overscroll-behavior:contain;box-sizing:border-box;padding:14px 14px 12px;border-radius:16px;border:1px solid var(--cl1-line);background:var(--cl1-bg);color:var(--cl1-text);box-shadow:var(--cl1-shadow);font-family:Arimo,system-ui,sans-serif;animation:cl1-in .16s ease-out}
.cl1-panel.is-sheet{left:12px!important;right:12px!important;top:auto!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;width:auto;max-width:none;max-height:min(78vh,620px);border-radius:18px;animation:cl1-up .18s ease-out}
@keyframes cl1-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@keyframes cl1-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.cl1-panel *{box-sizing:border-box}
.cl1-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cl1-head>div{flex:1;min-width:0}
.cl1-head b{display:block;font:700 15px/1.2 Arimo,system-ui,sans-serif;color:var(--cl1-text)}
.cl1-head small{display:block;margin-top:2px;font:500 12px/1.2 Arimo,system-ui,sans-serif;color:var(--cl1-mute)}
.cl1-head-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--cl1-bg2);color:var(--cl1-red)}
.cl1-panel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.cl1-close{display:grid!important;place-items:center;width:32px;height:32px;padding:0!important;border-radius:10px!important;border:1px solid var(--cl1-line)!important;background:var(--cl1-bg2)!important;color:var(--cl1-text)!important;cursor:pointer;box-shadow:none!important}
.cl1-close:hover{border-color:var(--cl1-red)!important;color:var(--cl1-red)!important}
.cl1-month{font:700 12px/1 Arimo,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--cl1-gold);margin:2px 0 8px}
.cl1-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cl1-wd{font:600 10px/1 Arimo,system-ui,sans-serif;color:var(--cl1-mute);text-align:center;padding:2px 0 4px}
.cl1-wd.is-we{color:var(--cl1-red);opacity:.8}
.cl1-day{position:relative;display:grid;place-items:center;height:32px;border-radius:9px;background:var(--cl1-cell);font:600 12.5px/1 Arimo,system-ui,sans-serif;color:var(--cl1-text)}
.cl1-day.is-past{opacity:.45}
.cl1-day.is-today{opacity:1;background:var(--cl1-red);color:#fff;font-weight:800;box-shadow:0 4px 14px rgba(255,77,109,.35)}
.cl1-day.is-got{opacity:1}
.cl1-day.is-got::after,.cl1-day.is-gift::before{content:"";position:absolute;bottom:3px;width:5px;height:5px;border-radius:50%}
.cl1-day.is-got::after{background:var(--cl1-green);left:calc(50% - 2.5px)}
.cl1-day.is-gift::before{background:var(--cl1-gold);left:calc(50% + 4px)}
.cl1-day.is-today.is-got::after{background:#fff}
.cl1-legend{display:flex;flex-wrap:wrap;gap:12px;margin:9px 0 2px;font:500 11px/1.2 Arimo,system-ui,sans-serif;color:var(--cl1-mute)}
.cl1-legend span{display:inline-flex;align-items:center;gap:5px}
.cl1-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}
.cl1-legend i.is-today{background:var(--cl1-red)}.cl1-legend i.is-got{background:var(--cl1-green)}.cl1-legend i.is-gift{background:var(--cl1-gold)}
.cl1-today{margin:12px 0 6px;font:700 11px/1 Arimo,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--cl1-mute)}
.cl1-rows{display:grid;gap:6px}
.cl1-row{display:flex!important;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 10px!important;border-radius:12px!important;border:1px solid var(--cl1-line)!important;background:var(--cl1-bg2)!important;color:var(--cl1-text)!important;text-decoration:none!important;text-align:left;cursor:pointer;font:inherit;box-shadow:none!important;transition:border-color .15s,transform .15s}
.cl1-row:hover{border-color:var(--cl1-red)!important;transform:translateY(-1px)}
.cl1-row:focus-visible{outline:2px solid var(--cl1-gold);outline-offset:2px}
.cl1-row-ico{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:10px;background:var(--cl1-cell);color:var(--cl1-gold)}
.cl1-row-txt{flex:1;min-width:0}
.cl1-row-txt b{display:block;font:700 13px/1.25 Arimo,system-ui,sans-serif;color:var(--cl1-text)}
.cl1-row-txt small{display:block;margin-top:2px;font:500 11.5px/1.3 Arimo,system-ui,sans-serif;color:var(--cl1-mute)}
.cl1-row-end{flex:none;display:grid;place-items:center;color:var(--cl1-mute)}
.cl1-row-end em{font:700 12px/1 Arimo,system-ui,sans-serif;font-style:normal;color:#fff;background:var(--cl1-red);padding:7px 10px;border-radius:9px}
.cl1-row.is-ready{border-color:rgba(61,220,151,.45)!important}
.cl1-row.is-ready .cl1-row-ico{color:var(--cl1-green)}
.cl1-row.is-done .cl1-row-end{color:var(--cl1-green)}
.cl1-note{margin:10px 0 0;font:500 10.5px/1.3 Arimo,system-ui,sans-serif;color:var(--cl1-mute);text-align:center}
@media (max-width:699px){.cl1-day{height:36px;font-size:13.5px}.cl1-row{min-height:52px}}
@media (prefers-reduced-motion:reduce){.cl1-panel,.cl1-badge.is-fresh .cl1-dot{animation:none!important}}
