/* 学习成长：chip under the pass chip, the card, pulse toasts and the share poster (study-growth.js) */
.sagrow-chip{position:fixed;left:14px;top:66px;z-index:19;display:flex;align-items:center;gap:9px;max-width:min(270px,calc(100vw - 28px));
 padding:5px 15px 5px 5px;border:1px solid #9cc4ff4d;border-radius:999px;background:linear-gradient(100deg,rgba(22,30,62,.9),rgba(52,32,70,.86));
 color:#eef0ff;font:inherit;text-align:left;cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.34);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
 transition:transform .15s}
.sagrow-chip:hover{transform:translateY(-1px)}
.sagrow-chip:active{transform:scale(.97)}
.sagrow-chip:focus-visible{outline:2px solid #ffc46b;outline-offset:2px}
.sagrow-chip.in-stage{position:absolute;left:10px;top:58px;z-index:16}
.sa-music-desk .sagrow-chip{display:none}
.sagrow-chip-text{display:grid;min-width:0}
.sagrow-chip-text b{font:600 12.5px/1.3 'Songti SC','Noto Serif SC',serif;letter-spacing:.06em;white-space:nowrap}
.sagrow-chip-text small{font-size:11px;line-height:1.35;color:#c9d4ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sagrow-ring{--p:0;flex:none;position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
 background:conic-gradient(#ffb44f calc(var(--p)*360deg),rgba(255,255,255,.15) 0)}
.sagrow-ring::before{content:'';position:absolute;inset:3px;border-radius:50%;background:#1d1f3d}
.sagrow-ring>*{position:relative}
.sagrow-ring svg{width:19px;height:19px;fill:#ff8a3c}
.sagrow-chip[data-state=done] small{color:#cdeaa9}
.sagrow-chip[data-state=night]{border-color:#ffd27a80;animation:sagrow-glow 2.6s ease-in-out infinite}
.sagrow-chip[data-state=night] small{color:#ffe08a}
@keyframes sagrow-glow{0%,100%{box-shadow:0 6px 22px rgba(0,0,0,.34),0 0 0 0 rgba(255,210,122,0)}50%{box-shadow:0 6px 22px rgba(0,0,0,.34),0 0 0 6px rgba(255,210,122,.25)}}
@media (max-width:400px){.sagrow-chip{gap:7px;padding:4px 12px 4px 4px;top:60px}.sagrow-ring{width:30px;height:30px}.sagrow-ring svg{width:16px;height:16px}
 .sagrow-chip-text b{font-size:11.5px}.sagrow-chip-text small{font-size:10.5px}}

/* ── card ── */
.sagrow-card{box-sizing:border-box;width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #d9d3ee;border-radius:20px;
 background:#f8f6fc;color:#2b2540;color-scheme:light;overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 90px rgba(8,6,20,.55)}
.sagrow-card::backdrop{background:rgba(12,10,28,.62);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.sagrow-head{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 12px;padding:18px 22px 14px;
 background:linear-gradient(110deg,#1d2148,#3a2754);color:#fff3df}
.sagrow-head small{grid-column:1;font-size:12px;letter-spacing:.12em;color:#f3cf98}
.sagrow-head h2{grid-column:1;margin:0;font:700 24px/1.25 'Songti SC','Noto Serif SC',serif;letter-spacing:.08em}
.sagrow-close{grid-column:2;grid-row:1/3;align-self:center;border:1px solid #ffffff40;border-radius:999px;background:#ffffff14;color:#fff;padding:7px 14px;font:inherit;cursor:pointer}
.sagrow-body{display:grid;gap:14px;padding:16px 18px 6px}
.sagrow-empty{padding:60px 24px;text-align:center;color:#5d5578}
.sagrow-flash{margin:0;padding:10px 14px;border-radius:12px;background:#fff4dc;color:#7a4b12;font-size:14px}
.sagrow-sec{padding:14px 16px;border-radius:16px;background:#fff;border:1px solid #e7e2f3}
.sagrow-sec h3{margin:0 0 10px;font:700 16px/1.3 'Songti SC','Noto Serif SC',serif;letter-spacing:.06em;color:#2b2540}
.sagrow-sec h4{margin:12px 0 6px;font-size:13px;color:#5d5578}
.sagrow-big{margin:0 0 8px;color:#5d5578;font-size:13px}
.sagrow-big strong{font:800 30px/1 -apple-system,'PingFang SC',sans-serif;color:#2b2540;margin-right:2px}
.sagrow-note{margin:8px 0 0;font-size:12.5px;line-height:1.6;color:#6c6487}
.sagrow-ladder{position:relative;height:10px;margin:8px 8px 44px;border-radius:99px;background:#ece8f6}
.sagrow-fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:linear-gradient(90deg,#ffb44f,#ff7a45)}
.sagrow-mark{position:absolute;top:-4px;display:grid;justify-items:center;transform:translateX(-50%);font-size:11px;color:#8d85a8;white-space:nowrap}
.sagrow-mark::before{content:'';width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid #d6d0e8;box-sizing:border-box}
.sagrow-mark b{margin-top:4px;font-weight:600}
.sagrow-mark.is-on{color:#b25b14}.sagrow-mark.is-on::before{border-color:#ff8a3c;background:#ffe2b8}
.sagrow-mark:last-child{transform:translateX(-90%)}
.sagrow-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.sagrow-day{display:grid;justify-items:center;gap:2px;padding:8px 2px;border-radius:12px;background:#f3f0fa;color:#8d85a8;font-size:11px}
.sagrow-day b{font-weight:600;font-size:11.5px}
.sagrow-day.is-on{background:linear-gradient(160deg,#ffd38a,#ff9a55);color:#5a2a08}
.sagrow-day.is-next{outline:2px dashed #ff9a55;outline-offset:-2px;color:#b25b14}
.sagrow-event{background:linear-gradient(160deg,#20254d,#3a2754);color:#eef0ff;border-color:#3d3a6a}
.sagrow-event h3{color:#ffe2a8}
.sagrow-event h4{color:#c9d4ff}
.sagrow-event .sagrow-note{color:#c7c3e3}
.sagrow-event .sagrow-big{color:#c9d4ff}.sagrow-event .sagrow-big strong{color:#ffe2a8}
.sagrow-ev-head p{margin:0 0 4px;font-size:13px;color:#c9d4ff}
.sagrow-ev-now{font-weight:600;color:#ffe08a!important}
.sagrow-ev-live{color:#9fe0b5!important}
.sagrow-ev-mine{margin-top:12px;padding-top:12px;border-top:1px solid #ffffff1f}
.sagrow-tiers{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.sagrow-tier{display:grid;gap:3px;padding:9px 8px;border-radius:12px;background:#ffffff12;border:1px solid #ffffff1c;font-size:11px;color:#c7c3e3}
.sagrow-tier b{font-size:14px;color:#fff}
.sagrow-tier.is-on{background:linear-gradient(160deg,#ffd38a,#ff9a55);color:#5a2a08;border-color:transparent}.sagrow-tier.is-on b{color:#3d1d06}
.sagrow-board{margin:0;padding:0;list-style:none;display:grid;gap:4px}
.sagrow-board li{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:#ffffff0d;font-size:13px}
.sagrow-board li span{font-weight:700;color:#ffd27a;text-align:center}
.sagrow-board li b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sagrow-board li small{color:#c9d4ff}
.sagrow-board li.is-me{background:#ffd27a2e}
.sagrow-settled{margin:8px 0 0;padding:8px 12px;border-radius:10px;background:#9fe0b51f;color:#cfeedb;font-size:12.5px}
.sagrow-rules{margin-top:10px;font-size:12.5px;line-height:1.6;color:#c7c3e3}
.sagrow-rules summary{cursor:pointer;color:#ffe2a8}
.sagrow-rules p{margin:6px 0}
.sagrow-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sagrow-primary,.sagrow-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 16px;border-radius:999px;font:600 14px/1 inherit;font-family:inherit;cursor:pointer;text-decoration:none}
.sagrow-primary{border:0;background:linear-gradient(100deg,#ff9a55,#ff6f45);color:#fff;box-shadow:0 6px 16px rgba(255,111,69,.3)}
.sagrow-primary:disabled{opacity:.5;cursor:default;box-shadow:none}
.sagrow-ghost{border:1px solid #cfc7e6;background:#fff;color:#3b3360}
.sagrow-event .sagrow-ghost{background:#ffffff14;border-color:#ffffff40;color:#fff}
.sagrow-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sagrow-badge{display:grid;justify-items:center;gap:2px;padding:10px 4px;border-radius:14px;background:#f3f0fa;color:#8d85a8;font-size:11.5px}
.sagrow-badge b{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#e5e0f2;color:#8d85a8;font:800 15px/1 -apple-system,sans-serif}
.sagrow-badge.is-on b{background:radial-gradient(circle at 35% 30%,#fff1c4,#e9b44c 60%,#b9822a);color:#4a2a12;box-shadow:0 3px 10px rgba(185,130,42,.35)}
.sagrow-badge.is-on{color:#8a5a14}
.sagrow-voucher{display:grid;gap:6px;margin-top:12px}
.sagrow-voucher p{margin:0;font-size:13px;color:#3b3360}
.sagrow-voucher .sagrow-ghost{justify-self:start}
.sagrow-vbar{height:8px;border-radius:99px;background:#ece8f6;overflow:hidden}
.sagrow-vbar i{display:block;height:100%;background:linear-gradient(90deg,#9c8cff,#d77cff)}
.sagrow-friend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #efebf7}
.sagrow-friend:first-of-type{border-top:0}
.sagrow-friend b{font-weight:600}
.sagrow-friend small{flex:1;color:#8d85a8}
.sagrow-card .sagrow-when{flex:none;width:auto;max-width:150px;min-height:34px;border:1px solid #cfc7e6;border-radius:10px;background:#fff;color:#3b3360;padding:0 8px;font:inherit;font-size:13px}
.sagrow-pref{display:flex;align-items:flex-start;gap:8px;margin:6px 0;font-size:13.5px;line-height:1.45;cursor:pointer}
.sagrow-pref input{margin-top:3px;accent-color:#ff7a45}
.sagrow-foot{position:sticky;bottom:0;display:flex;justify-content:center;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#f8f6fc00,#f8f6fc 40%)}
@media (max-width:520px){.sagrow-tiers,.sagrow-badges{grid-template-columns:repeat(2,1fr)}.sagrow-week{gap:4px}.sagrow-day{font-size:10px;padding:6px 1px}.sagrow-day b{font-size:10px}
 .sagrow-body{padding:12px 10px 4px}.sagrow-sec{padding:12px}}

/* ── toasts ── */
.sagrow-toasts{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top));z-index:2147483000;display:grid;gap:8px;justify-items:center;transform:translateX(-50%);pointer-events:none;width:max-content;max-width:calc(100vw - 24px)}
.sagrow-toast{display:flex;align-items:center;gap:8px;padding:9px 16px 9px 12px;border-radius:999px;background:rgba(24,26,52,.94);color:#fff;font-size:13.5px;
 box-shadow:0 10px 30px rgba(0,0,0,.35);border:1px solid #ffffff26;animation:sagrow-in .35s cubic-bezier(.2,.9,.3,1.2) both;transition:opacity .5s,transform .5s}
.sagrow-toast svg{width:18px;height:18px;fill:#ff9a55;flex:none}
.sagrow-toast.is-gold{background:linear-gradient(100deg,#6b3d10f0,#4a2c48f0);border-color:#ffd27a66}
.sagrow-toast.is-gold svg{fill:#ffd27a}
.sagrow-toast.is-night{background:linear-gradient(100deg,#1d2148f0,#3a2754f0);border-color:#9cc4ff66}
.sagrow-toast.is-out{opacity:0;transform:translateY(-8px)}
@keyframes sagrow-in{from{opacity:0;transform:translateY(-12px) scale(.96)}}

/* ── poster ── */
.sagrow-poster{box-sizing:border-box;width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:14px;border:0;border-radius:18px;background:#f8f6fc;overflow:auto}
.sagrow-poster::backdrop{background:rgba(12,10,28,.7)}
.sagrow-poster img{display:block;width:100%;height:auto;border-radius:12px}
.sagrow-poster .sagrow-acts{justify-content:center}
@media (prefers-reduced-motion:reduce){.sagrow-chip,.sagrow-toast{animation:none!important}}

/* 唱片铺：保底淘碟券 (record-shop.js) */
.sar-dig.sar-voucher{flex-wrap:wrap;row-gap:2px;margin-top:8px;background:linear-gradient(100deg,#6d55e8,#b552e0);color:#fff;box-shadow:0 8px 20px rgba(109,85,232,.3);color:#fff!important}
.sar-dig.sar-voucher small{flex-basis:100%;text-align:center;font-size:12px}
