/* Shared pastel game panels: compact controls, readable decisions and real progress. */
#challenge-control{position:relative}.challenge-popover{position:absolute;right:0;top:calc(100% + 12px);width:min(500px,calc(100vw - 28px));background:#fff8ff;border:1px solid #dcc4ee;border-radius:22px;box-shadow:0 18px 65px #58376c35;z-index:90;padding:18px;color:#49345d}.challenge-popover[hidden]{display:none}.challenge-popover-heading,.challenge-mission-top,.challenge-award-entry,.rating-bar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.challenge-popover-heading h2{margin:3px 0 12px}.challenge-popover-tabs{display:flex;gap:6px}.challenge-popover-tabs button{flex:1}.challenge-popover-tabs .selected{background:#72518c;color:#fff}.challenge-missions{max-height:min(58vh,650px);overflow:auto;overscroll-behavior:contain;padding:3px}.challenge-mission{padding:16px;margin-top:12px;border:1px solid #e0cce9;border-radius:16px;background:#fff}.challenge-mission h3{margin:8px 0}.challenge-mission p,.challenge-panel-hint{font-size:13px;line-height:1.7}.challenge-mission-top{font-size:12px;color:#79608a}.challenge-mission.is-complete{border-color:#97c8ad;background:#f3fbf5}.challenge-rewards{color:#765089}.challenge-mission>button{margin-top:12px;width:100%}.challenge-award-entry{padding:12px 0;border-bottom:1px solid #e8d7ef}.challenge-steps>div{display:grid;grid-template-columns:1fr auto;gap:6px;margin:12px 0}.challenge-steps progress{grid-column:1/-1;width:100%;height:9px;accent-color:#ad7ec9}.challenge-notice{position:fixed;right:24px;bottom:100px;z-index:120;width:min(360px,calc(100vw - 32px));padding:22px;border:1px solid #cbaddc;border-radius:20px;background:#fff7ff;box-shadow:0 12px 50px #603b7533}.challenge-notice>button:first-child{float:right}.award-registration-list label{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dec8eb;border-radius:14px;margin:10px 0}.award-registration-list label>span{flex:1}.award-registration-list input{width:22px;height:22px;accent-color:#9164ad}.award-registration-list small{display:block}.award-midmonth{background:#f8effd;padding:16px;border-radius:16px}.award-result-card{padding:16px;border-bottom:1px solid #e5d2ee}.award-result-card.is-own{background:#fffae5}.award-score-table{width:100%;border-collapse:collapse}.award-score-table td,.award-score-table th{padding:8px;text-align:left}.award-category{padding:14px;margin:12px 0;background:#fbf3ff;border-radius:14px}
.rating-bar-rows{display:block!important}.rating-bar-row{padding:12px 0;border-bottom:1px solid #e7d9ee}.rating-bar-head b{font-size:13px}.rating-bar-head>span{font-variant-numeric:tabular-nums}.score-plus{color:#308466}.score-minus{color:#c54d65}.rating-meter{height:12px;margin-top:9px;background:#efe5f3;border-radius:8px;position:relative;overflow:hidden}.rating-zero{position:absolute;left:50%;height:100%;width:1px;background:#aa8eba;z-index:1}.rating-meter-fill{height:100%;position:absolute;background:linear-gradient(90deg,#c5a0df,#aa70c6,#e8a7ce);border-radius:7px;transition:left .6s ease,width .6s ease}.rating-meter-fill.negative{background:linear-gradient(90deg,#d9788c,#e7a1af)}.rating-meter-scale{display:flex;justify-content:space-between;font-size:10px;color:#9984a4;margin:3px 0}.score-change{margin-left:8px;font-size:11px;font-style:normal;padding:2px 5px;border-radius:8px;background:#f8dde5}.score-change.positive{background:#e1f5e9;color:#2d7c56}.rating-bar-row>small{font-size:11px;line-height:1.5;display:block}.score-total-up strong{animation:score-total-pop .5s ease}#album-score-particles{position:fixed;inset:0;z-index:400;pointer-events:none}.album-score-particle{position:absolute;font-size:23px;animation:album-score-burst 1s ease-out forwards;pointer-events:none}@keyframes album-score-burst{0%{opacity:0;transform:scale(.4)}15%{opacity:1}100%{opacity:0;transform:translate(var(--particle-x),var(--particle-y)) rotate(var(--particle-rotate)) scale(1.25)}}@keyframes score-total-pop{50%{transform:scale(1.13);color:#bb70ac}}
.rpg-event-dialog{max-width:760px!important}.rpg-choice{margin:12px 0}.rpg-event-dialog .rpg-choice-button{width:100%;display:grid!important;grid-template-columns:36px 1fr 24px;gap:14px;align-items:center;text-align:left;padding:17px 20px!important;min-height:68px;background:linear-gradient(110deg,#fffaff,#f2e7fb)!important;border:1px solid #d5b7e7!important;border-radius:15px!important;color:#513665!important;box-shadow:0 3px 0 #e2cceb;transition:transform .16s,border-color .16s,box-shadow .16s}.rpg-choice-button strong{font-size:16px;line-height:1.5;font-weight:650}.rpg-choice-button:hover:not(:disabled),.rpg-choice-button:focus-visible{transform:translateX(4px);border-color:#a76cc5!important;box-shadow:0 4px 16px #c9a7df77;outline:2px solid #d4b6e6;outline-offset:2px}.rpg-choice-number{width:34px;height:34px;display:grid;place-items:center;border:1px solid #d6b9e9;border-radius:10px;background:#e9d8f4;color:#87609f;font-size:12px;letter-spacing:1px}.rpg-choice-arrow{font-size:27px;color:#a77cbf}.rpg-choice-effects{padding:6px 17px 0 69px;font-size:12px;color:#846d94}.rpg-choice-effects summary{cursor:pointer;min-height:26px;line-height:26px}.rpg-choice-effects p{font-size:12px;line-height:1.8;margin:4px 0}.rpg-choice-button:disabled{opacity:.5;box-shadow:none}.rpg-result-decision{border-left:3px solid #be92d4;background:#f5eafb;padding:14px 18px;border-radius:0 12px 12px 0}.rpg-result-changes{display:grid;gap:8px;margin:22px 0;max-height:45vh;overflow:auto}.rpg-result-changes>div{display:flex;justify-content:space-between;gap:18px;border-radius:11px;padding:11px 14px}.event-gain{color:#227445;background:#e9f7ee}.event-loss{color:#bb354b;background:#ffedf0}.rpg-result-confirm{width:100%;min-height:48px}.starlit-outcome{display:none!important}.youtube-team-card{background:#fbf0fc;border:1px solid #e5ceeb;border-radius:16px;padding:18px;margin-top:16px}.youtube-materials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.youtube-materials article{min-width:0}.youtube-material-cover{aspect-ratio:16/9;border-radius:14px;background:linear-gradient(135deg,#e5dcf8,#f6dfee);display:grid;place-items:center;font-size:40px;color:#a487b5}.youtube-materials h3{font-size:15px}.youtube-materials p{font-size:12px}
@media(max-width:600px){#challenge-control{position:static}.challenge-popover{right:14px;top:72px}.challenge-notice{right:16px;bottom:100px}.rpg-event-dialog .rpg-choice-button{padding:14px!important;gap:10px;grid-template-columns:30px 1fr 16px}.rpg-choice-button strong{font-size:14px}.rpg-choice-effects{padding-left:54px}.youtube-materials{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.rating-meter-fill,.rpg-choice-button{transition:none}.album-score-particle,.score-total-up strong{animation:none}}

.award-result{padding:18px;margin:12px 0;border:1px solid #e4d3ee;border-radius:16px;background:#faf4ff}.award-result.own-winner{background:#fffae9;border-color:#dbc68b}.award-preparation-card{padding:14px;border-radius:14px;background:#f5ebfb}.challenge-result{padding:16px;background:#eaf6ef;color:#296b4c;border-radius:14px}

/* A body-level panel stays inside the visible viewport, including at browser zoom. */
#challenge-popover{position:fixed;right:auto;box-sizing:border-box;z-index:2000;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:16px;overflow-wrap:anywhere}
#challenge-popover .challenge-missions{max-height:none;overflow:visible;min-width:0}
#challenge-popover .challenge-popover-heading{position:sticky;top:-16px;z-index:1;background:#fff8ff;padding:8px 0}
#challenge-popover .challenge-popover-tabs{flex-wrap:wrap}
#challenge-popover .challenge-award-entry{flex-wrap:wrap}
.challenge-abandon{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #ecdae7}
.challenge-abandon small{flex:1;min-width:150px;color:#966171}
.challenge-abandon button{color:#b13b57;border-color:#e0a7b6;background:#fff0f3}

.new-player-tutorial{max-width:640px;margin:auto}.tutorial-heading{display:flex;gap:16px;align-items:center}.tutorial-heading p{margin:5px 0;font-size:13px;color:#8b6b9d}.tutorial-symbol{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;background:linear-gradient(140deg,#ebd9fb,#fbe0ed);font-size:30px;color:#9b6bb2;flex-shrink:0}.tutorial-progress{width:100%;height:7px;accent-color:#b88ad0;margin:18px 0}.new-player-tutorial h1{font-size:25px;line-height:1.5}.tutorial-intro{line-height:1.9;color:#684b7b}.tutorial-tips{padding-left:22px;line-height:1.9;margin:20px 0}.tutorial-tips li{padding:5px 0;color:#735882}.tutorial-visit{width:100%;min-height:46px}.tutorial-navigation,.tutorial-footer{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:15px}.tutorial-footer{border-top:1px solid #ecdcf2;padding-top:12px}.tutorial-footer button{font-size:12px;background:transparent;padding:6px 10px}.tutorial-dock{border:1px solid #d6b4e6;border-radius:18px;background:linear-gradient(110deg,#f3e5ff,#ffedf7);padding:15px 18px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.tutorial-dock small,.tutorial-dock b{display:block}.tutorial-dock small{font-size:11px;color:#956aaa;margin-bottom:4px}.tutorial-focus{outline:3px solid #bd8ed6!important;outline-offset:4px;border-radius:16px;scroll-margin:20px}
@media(max-width:600px){.new-player-tutorial h1{font-size:21px}.tutorial-tips{font-size:13px}.tutorial-dock{padding:13px}.tutorial-dock .actions{width:100%}.tutorial-dock .actions button{flex:1}}

.story-dialogue{display:grid;gap:12px;margin:20px 0}.story-message{padding:14px 17px;border:1px solid #e2ceee;border-radius:16px;background:#faf3ff;max-width:94%}.story-speaker{display:flex;align-items:center;gap:8px;font-size:13px}.story-speaker small{font-size:10px;background:#e8d5f2;padding:2px 7px;border-radius:20px}.story-message p{font-size:14px;line-height:1.85;margin:7px 0 0}.story-member{margin-right:20px}.story-media{background:#eff4fc;border-color:#cfdbee;margin-left:20px}.story-media .story-speaker small{background:#dae6f7}.story-fan{background:#fff1f7;border-color:#efcfe0;margin-left:30px}.story-fan .story-speaker small{background:#f7dbe9}.story-staff{background:#f3f4f7;border-color:#dcdde6}.story-question{font-size:17px;margin-top:24px}.story-earlier{padding:12px;border:1px dashed #dcc7e8;border-radius:12px;font-size:12px;color:#82628f}.story-earlier .story-message{opacity:.85}.directed-story h1{line-height:1.5}
/* Spotlight sits above modals without intercepting the real game controls. */
#tutorial-guide{position:fixed;inset:0;pointer-events:none;z-index:10000}#tutorial-guide [hidden]{display:none!important}.guide-spotlight{position:fixed;border:2px solid #e7c3ff;border-radius:15px;box-shadow:0 0 0 9999px #2413338c,0 0 24px #edc3ff;pointer-events:none;transition:left .15s,top .15s,width .15s,height .15s}.guide-tap{position:fixed;font-size:28px;filter:drop-shadow(0 2px 3px #582b7466);animation:guide-tap 1.15s ease-in-out infinite;pointer-events:none}.guide-tap:before{content:'';position:absolute;width:28px;height:28px;top:-8px;left:-5px;border:2px solid #fff;border-radius:50%;animation:guide-ring 1.15s ease-out infinite}.guide-coach{pointer-events:auto;position:fixed;box-sizing:border-box;width:340px;padding:17px 19px;border:1px solid #d0a3e5;border-radius:20px;background:#fff8ff;box-shadow:0 12px 45px #39204c4a;color:#50335f;overflow:auto;overscroll-behavior:contain}.guide-coach:before{content:'✦';float:right;color:#bd88d3;font-size:24px}.guide-step-count{font-size:10px;letter-spacing:1.5px;color:#9c70b0}.guide-coach h2{font-size:17px;margin:8px 0;line-height:1.5}.guide-coach p{font-size:13px;line-height:1.8;margin:8px 0 14px}.guide-coach-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.guide-coach-actions button{font-size:11px;padding:7px 10px;min-height:34px}.guide-wait-label{font-size:11px;color:#a77db8;flex:1}.guide-coach-actions .primary{flex:1}.guide-coach button:focus-visible{outline:3px solid #c392db;outline-offset:2px}@keyframes guide-tap{0%,100%{transform:translateY(4px) rotate(-12deg)}50%{transform:translateY(-5px) rotate(-12deg)}}@keyframes guide-ring{from{opacity:.8;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}@media(prefers-reduced-motion:reduce){.guide-tap,.guide-tap:before{animation:none}.guide-spotlight{transition:none}}@media(max-height:500px){.guide-coach{padding:10px 14px;max-height:45dvh!important}.guide-coach p{font-size:12px;line-height:1.5;margin:6px 0}.guide-coach h2{font-size:15px;margin:5px 0}}
