/* v3.3.7 fit and finish */
/* Date tiles: a little bigger box, smaller text, nothing touches the border. */
.ph-date-tile{width:64px!important;height:70px!important;padding:6px 4px;gap:2px;box-sizing:border-box}
.ph-date-tile b{font-size:22px!important;line-height:1!important;margin:1px 0!important}
.ph-date-tile small{font-size:10px!important;line-height:1!important;letter-spacing:.6px!important}
.agenda-date{min-width:64px!important;width:64px!important;min-height:66px!important;padding:8px 4px!important;box-sizing:border-box;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;overflow:hidden}
.agenda-date b{font-size:24px!important;line-height:1!important;letter-spacing:0!important}
.agenda-date span{font-size:10px!important;line-height:1!important;letter-spacing:.6px}
/* Countdown: NEXT EPISODE / number / DAYS LEFT */
.ph-count{min-width:96px!important;max-width:118px!important;min-height:112px!important;padding:12px 10px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.ph-count .ph-count-top{font-size:10px;letter-spacing:.8px;line-height:1.15;color:#c4b5fd;text-align:center}
.ph-count b{font-size:clamp(26px,9vw,38px)!important}
.ph-count small{margin-top:0!important;font-size:11px!important;line-height:1.15;text-align:center}
/* Sliders: track filled exactly to the value (0 = empty, 100 = full). */
.sound-dialog input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;height:44px;margin:0;padding:0}
.sound-dialog input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:99px;background:linear-gradient(90deg,#a7f3d0 0 var(--p,0%),#ffffff26 var(--p,0%) 100%)}
.sound-dialog input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;margin-top:-7px;border-radius:50%;background:#a7f3d0;border:3px solid #141b33;box-shadow:0 0 0 1px #a7f3d0}
.sound-dialog input[type=range]::-moz-range-track{height:8px;border-radius:99px;background:linear-gradient(90deg,#a7f3d0 0 var(--p,0%),#ffffff26 var(--p,0%) 100%)}
.sound-dialog input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#a7f3d0;border:3px solid #141b33}
/* Crew corner tabs: six tabs, scroll sideways on small phones */
.crew-tabs{display:flex!important;overflow-x:auto;scrollbar-width:none;gap:4px;flex-wrap:nowrap!important}
.crew-tabs::-webkit-scrollbar{display:none}
.crew-tabs button{flex:0 0 auto!important;white-space:nowrap;padding-left:14px!important;padding-right:14px!important}
/* UFO names */
.ufo-intro p{font-size:12px;color:#b4afce;line-height:1.5;margin:0 0 12px}
.ufo-add{display:flex;gap:8px;margin-bottom:14px}.ufo-add input{flex:1;min-width:0}
.ufo-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ufo-list li{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#1b1f46,#141a33);border:1px solid #c4b5fd33}
.ufo-name{flex:1;min-width:0;font-size:15px;line-height:1.35;color:#fff}
.ufo-name em,.ph-ufo em{font-style:normal;color:#a7f3d0;text-shadow:0 0 14px #34d39966}
.ufo-tools{display:flex;gap:2px}.ufo-tools .icon-button{width:44px;height:44px;color:#b4afce;background:none;border:0}
.ph-ufo{font-size:clamp(26px,8vw,34px)!important;line-height:1.12!important;overflow-wrap:break-word}
.ph-ufo .ph-bang{color:#a7f3d0}
/* Ranking: glowing bars */
.rank-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:2px 0 14px}
.rank-head h2{margin:4px 0 0;font-size:20px}
.rank-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rank-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:10px 12px;border-radius:16px;background:#141a33;border:1px solid #ffffff14}
.rank-pos{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:18px;color:#c4b5fd;background:#ffffff0a}
.rank-pos.medal{color:#0b1020}
.rank-pos.medal-1{background:linear-gradient(145deg,#fde68a,#d97706)}.rank-pos.medal-2{background:linear-gradient(145deg,#f3f4f6,#9ca3af)}.rank-pos.medal-3{background:linear-gradient(145deg,#fed7aa,#c2410c)}
.rank-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:7px}
.rank-line b{font-weight:400;font-size:14px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-count{font-size:13px;color:#a7f3d0;white-space:nowrap}
.rank-bar{height:10px;border-radius:99px;background:#ffffff12;overflow:hidden}
.rank-bar i{display:block;height:100%;width:var(--w);border-radius:99px;background:linear-gradient(90deg,#7c3aed,#db2777 60%,#f9a8d4);box-shadow:0 0 12px #db277799,0 0 22px #7c3aed66}
.rank-row.top-1 .rank-bar i{background:linear-gradient(90deg,#d97706,#fde68a);box-shadow:0 0 14px #f59e0bAA}
.rank-row.top-2 .rank-bar i{background:linear-gradient(90deg,#6b7280,#f3f4f6);box-shadow:0 0 12px #e5e7eb88}
.rank-row.top-3 .rank-bar i{background:linear-gradient(90deg,#c2410c,#fed7aa);box-shadow:0 0 12px #fb923c99}
@media (prefers-reduced-motion:no-preference){.rank-bar i{animation:rankGrow .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*60ms)}}
@keyframes rankGrow{from{width:0}}
.rank-edit{list-style:none;margin:12px 0;padding:0;display:grid;gap:6px;max-height:50vh;overflow:auto}
.rank-edit li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 4px 6px 12px;border-radius:14px;background:#ffffff08}
.rank-edit b{font-weight:400;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-step{display:flex;align-items:center;gap:6px;flex:none}
.rank-step output{min-width:34px;text-align:center;font-size:16px;color:#a7f3d0}
.rank-step .step{width:44px;height:44px;border-radius:14px;border:1px solid #ffffff26;background:#ffffff0d;color:#fff;font-size:20px}
/* Creator mode switch */
.creator-switch{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;background:none;border:0;color:var(--ink);font:inherit}
.creator-switch i{position:relative;width:46px;height:26px;border-radius:99px;background:#ffffff26;flex:none;transition:background .2s}
.creator-switch i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.creator-switch.on i{background:#a7f3d0}.creator-switch.on i::after{transform:translateX(20px);background:#0b1020}
#creator-toggle{width:100%;padding:0 4px}
.creator-card{grid-template-columns:auto 1fr auto!important}
/* Games: XP bar, skins with XP labels, stats + achievements, profile gate, score manager */
.xp-bar{margin:10px 0 12px;padding:12px 14px;border-radius:16px;background:#0e1430;border:1px solid #c4b5fd33}
.xp-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.xp-line b{font-size:16px;color:#a7f3d0;font-weight:400}.xp-line small{font-size:11px;color:#b4afce;text-align:right}
.xp-track{height:10px;border-radius:99px;background:#ffffff14;overflow:hidden}
.xp-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#34d399,#a7f3d0);box-shadow:0 0 12px #34d39988}
.skin-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;overflow:visible!important}
.skin{position:relative;min-width:0!important}
.skin.locked img{opacity:.45}
.skin small{font-size:10px!important;white-space:nowrap}
.skin .skin-need{display:block;font-style:normal;font-size:10px;color:#c4b5fd;opacity:.8;margin-top:1px}
.skin.locked .skin-need{display:none}
.stats-entry{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;min-height:64px;padding:12px 16px;margin:4px 0 16px;border-radius:20px;border:1px solid #fcd34d55;background:radial-gradient(120% 160% at 0% 0%,#f59e0b26,transparent 60%),linear-gradient(135deg,#1b1f46,#141a33);color:var(--ink);text-align:left}
.stats-entry-ico{font-size:24px}.stats-entry b{display:block;font-weight:400;font-size:15px}.stats-entry small{font-size:11px;color:#b4afce}
.stats-page h2{margin:4px 0 14px}.stats-page h3{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 10px;font-size:16px}.stats-page h3 small{font-size:12px;color:#a7f3d0}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stat{padding:10px 12px;border-radius:14px;background:#ffffff0a;border:1px solid #ffffff14;min-width:0}
.stat small{display:block;font-size:10px;letter-spacing:.6px;color:#c4b5fd;text-transform:uppercase}.stat b{display:block;font-weight:400;font-size:14px;margin-top:4px;color:#fff;overflow-wrap:anywhere}
.ach-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:40vh;overflow:auto}
.ach{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:10px;border-radius:14px;background:#ffffff08;border:1px solid #ffffff12;opacity:.6}
.ach span{grid-row:span 2;font-size:20px}.ach b{font-weight:400;font-size:12px}.ach small{font-size:10px;color:#b4afce;line-height:1.35}
.ach.got{opacity:1;border-color:#fcd34d66;background:linear-gradient(135deg,#f59e0b1f,#ffffff08)}
.profile-gate{text-align:center}.profile-gate img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 8px 20px #34d39955)}.profile-gate h2{margin:8px 0}.profile-gate p{color:#b4afce;font-size:13px}
.board-tools{display:flex;gap:14px;align-items:center}.text.quiet{color:#b4afce!important}
.manage-board{list-style:none;margin:12px 0;padding:0;display:grid;gap:6px;max-height:50vh;overflow:auto}
.manage-board li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 6px 6px 12px;border-radius:12px;background:#ffffff08;font-size:13px}
.icon-button.quiet{width:44px;height:44px;background:none;border:0;color:#b4afce;font-size:20px}

/* Rainbow skin cycles through colours (stops with reduce-motion) */
@media (prefers-reduced-motion:no-preference){.skin-cycle{animation:skinCycle 4s linear infinite}}
@keyframes skinCycle{from{filter:sepia(1) saturate(8) hue-rotate(0deg) brightness(1.15) drop-shadow(0 0 6px #f9a8d4)}to{filter:sepia(1) saturate(8) hue-rotate(360deg) brightness(1.15) drop-shadow(0 0 6px #f9a8d4)}}
.skin.locked .skin-cycle{animation:none}
