/* Same Sky Harbor composition, with clearer tactile surfaces and audio controls. */
/* Child dialog must be above its leaderboard parent (both were z-index:200). */
#modal-add-friend {z-index:240;}
.reward-badge {
  position:absolute;inset-block-start:3px;inset-inline-end:3px;z-index:6;
  width:12px;height:12px;padding:0;
  border:2px solid #f8e2aa;border-radius:50%;background:#e96749;
  box-shadow:0 2px 5px #08233c66;
  pointer-events:none;
}
.reward-badge[hidden] {display:none!important;}
.reward-ready>.reward-badge {animation:harbor-reward-notice 1.2s ease-in-out 3;}
.reward-badge-compact {width:10px;height:10px;inset-block-start:2px;inset-inline-end:2px;}
@keyframes harbor-reward-notice {0%,100%{scale:1}50%{scale:1.12}}
html.harbor-low-motion .reward-badge {animation:none!important;}
@media(prefers-reduced-motion:reduce){.reward-badge{animation:none!important;}}
/* Living Harbor: keep composition; the unused gem slot is intentionally removed. */
.kingdom-wallets {grid-template-columns:repeat(2,minmax(0,1fr));}
.kingdom-wallet {min-height:44px;}
.kingdom-wallet b {font-size:clamp(11px,2.8vw,15px);}
.kingdom-wallet.kingdom-flight {grid-template-columns:28px minmax(0,1fr);}
.kingdom-wallet,.home-level-strip,#score-hero,#combo-chip {
  box-shadow:inset 0 1px 0 var(--cq-gold-300),inset 0 -3px 0 #08233c66,0 4px 7px #08233c33;
}
.modal-card,#lb-card {
  box-shadow:inset 0 1px 0 var(--cq-gold-300),inset 0 0 0 4px #70c6e914,0 16px 34px #08233c88;
}
#overlay {
  box-shadow:inset 0 1px 0 var(--cq-gold-300),inset 0 0 0 4px #70c6e919,0 18px 40px #08233c99;
}
#overlay.active .go-score-panel {animation:harbor-card-arrive .4s ease-out both;}
.go-score-panel,.continue-score-card,.account-flight-stats,.sky-store-hero {
  box-shadow:inset 0 1px 0 #fff6e555,inset 0 -3px 0 #08233c22,0 5px 12px #08233c33;
}
.modal-head,#lb-head {
  background:linear-gradient(115deg,#70c6e919,transparent 60%),linear-gradient(180deg,var(--cq-blue-700),var(--cq-blue-950));
  box-shadow:inset 0 1px 0 #fff6e533,0 3px 8px #08233c22;
}
.set-card,.inv-section,.mission-row,.power-card,.theme-card,.friend-card,.dr-day,.combo-fx-card {
  box-shadow:inset 0 1px 0 #fff6e52b,inset 0 -2px 0 #08233c33,0 4px 8px #08233c22;
}
.mission-row.done,.dr-day.today {
  box-shadow:inset 0 1px 0 var(--cq-gold-300),inset 0 0 0 2px #e3ad5333,0 4px 10px #08233c33;
}
.power-btn,.theme-card-btn,.dr-cta-big,.btn-secondary,.btn-continue,.btn-play-sm {min-height:44px;}
button:not(:disabled) {transition:translate .16s ease,box-shadow .2s ease;}
button:not(:disabled):active {translate:0 2px;}
.kingdom-card::before,.treasure-box::before,.m-icon,.power-icon img {transition:translate .25s ease,rotate .25s ease;}
.kingdom-card:active::before,.treasure-box:active::before {translate:0 2px;rotate:-3deg;}
@media(hover:hover){
  .kingdom-card:hover::before,.treasure-box:hover::before {translate:0 -3px;}
  .btn-menu:hover .m-icon,.power-card:hover .power-icon img {translate:0 -2px;}
  .power-card:hover,.theme-card:hover,.friend-card:hover {border-color:var(--cq-gold-300);}
}
.modal.active .modal-card,#lb-panel.open #lb-card {animation:harbor-panel-arrive .28s cubic-bezier(.2,.75,.3,1) both;}
.modal.active .mission-row,.modal.active .power-card,.modal.active .dr-day {animation:harbor-card-arrive .32s ease-out both;}
.modal.active :is(.mission-row,.power-card,.dr-day):nth-child(2) {animation-delay:.035s;}
.modal.active :is(.mission-row,.power-card,.dr-day):nth-child(3) {animation-delay:.07s;}
.modal.active :is(.mission-row,.power-card,.dr-day):nth-child(n+4) {animation-delay:.1s;}
@keyframes harbor-panel-arrive {from{opacity:0;translate:0 8px;scale:.985}to{opacity:1;translate:0 0;scale:1}}
@keyframes harbor-card-arrive {from{opacity:0;translate:0 5px}to{opacity:1;translate:0 0}}
#modal-daily.active .dr-hero-icon {animation:harbor-reward-hover 4s ease-in-out infinite;}
@keyframes harbor-reward-hover {0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -3px;rotate:2deg}}
.home-level-track i,.level-fill,.game-level-chip em {transition:width .6s cubic-bezier(.2,.7,.3,1);}
body:has(.modal.active) #screen-menu .mission-propeller {animation-play-state:paused;}
body:has(.modal.active) #screen-menu .btn-play::after,body:has(#lb-panel.open) #screen-menu .btn-play::after {animation-play-state:paused;}
html.harbor-paused *,html.harbor-paused *::before,html.harbor-paused *::after {animation-play-state:paused!important;}
/* Görünmezken de dönen sonsuz animasyonlar (seviye atlama kartı, oyuna geçiş pervanesi) yalnızca
   katman açıkken çalışsın — kapalıyken her karede boşuna stil/çizim işi yapıyorlardı. */
#level-up-flight:not(.active) .level-up-propeller img,#level-up-flight:not(.active) .level-up-route i,
#play-transition:not(.active) img {animation:none!important;}
html.harbor-low-motion :is(.modal.active .modal-card,.mission-row,.power-card,.dr-day,.dr-hero-icon,.mission-propeller),
html.harbor-low-motion #screen-menu .btn-play::after {animation:none!important;}
.audio-level-row {
  display:grid;grid-template-columns:auto minmax(70px,1fr) 36px;align-items:center;gap:12px;
  color:var(--cq-ivory);padding:0 0 12px;font-size:12px;
}
.audio-level-row input {width:100%;height:44px;margin:0;accent-color:var(--cq-gold-500);cursor:pointer;}
.audio-level-row input:disabled {opacity:.35;cursor:default;}
.audio-level-row output {font-variant-numeric:tabular-nums;text-align:end;}
/* Müzik parçası seçici (2026-10-14) — seviye satırıyla aynı hizada, pirinç çerçeveli lacivert kutu */
.music-track-row {grid-template-columns:auto minmax(0,1fr);}
.music-track-row select {
  width:100%;min-height:44px;padding:0 34px 0 12px;border-radius:12px;border:1.5px solid var(--cq-gold-line);
  background:var(--cq-blue-900) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23e3ad53' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;
  color:var(--cq-ivory);font:inherit;font-size:14px;font-weight:700;appearance:none;-webkit-appearance:none;cursor:pointer;text-overflow:ellipsis;
}
.music-track-row select option {background:var(--cq-blue-950);color:var(--cq-ivory);}
.music-track-row select:disabled {opacity:.35;cursor:default;}
/* Haftalık posta kutusu (2026-10-14): kaçırılan gün soluk ve gri, tik yerine çizgi */
.dr-day.missed,.tb-day.missed {opacity:.42;filter:grayscale(.85);}
.daily-missed {font-weight:800;font-size:22px;color:var(--cq-blue-700);line-height:1;}
button:focus-visible,input:focus-visible {outline:3px solid var(--cq-gold-300);outline-offset:3px;}
#screen-menu .btn-play {isolation:isolate;}
#screen-menu .btn-play::after {
  content:"";position:absolute;inset:9px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(110deg,transparent 20%,rgba(255,246,229,.18) 48%,transparent 70%);
  opacity:0;animation:harbor-cta-light 6s ease-in-out infinite;
}
@keyframes harbor-cta-light {0%,65%,100%{opacity:0}78%,88%{opacity:1}}
.setting-group .toggle {min-height:44px;display:flex;align-items:center;}
#combo-chip.c-warm,#combo-chip.c-hot,#combo-chip.c-fire,#combo-chip.c-inferno {
  background:linear-gradient(145deg,var(--cq-blue-700),var(--cq-blue-950));
  border-color:var(--cq-gold-300);box-shadow:inset 0 0 0 2px #70c6e933,0 0 12px #70c6e944;
}
#combo-chip.c-fire,#combo-chip.c-inferno {box-shadow:inset 0 0 0 2px #f8e2aa66,0 0 16px #70c6e988;}
#combo-chip.pop #comboDisplay {animation:harbor-combo-number .42s cubic-bezier(.18,.8,.3,1);}
@keyframes harbor-combo-number {0%{transform:scale(.8);opacity:.65}48%{transform:scale(1.2);opacity:1}100%{transform:scale(1)}}
#scoreDisplay {font-variant-numeric:tabular-nums;transform-origin:center;}
#scoreDisplay.score-punch {animation:harbor-score-soft .6s ease-in-out;}
@keyframes harbor-score-soft {0%,100%{transform:scale(1)}40%{transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){
  .harbor-atmosphere {display:none;}
  .modal.active .modal-card,#lb-panel.open #lb-card,.modal.active .mission-row,.modal.active .power-card,.modal.active .dr-day,#modal-daily.active .dr-hero-icon,.mission-propeller,#overlay.active .go-score-panel {animation:none!important;}
  button,.kingdom-card::before,.treasure-box::before,.m-icon,.power-icon img,.home-level-track i,.level-fill,.game-level-chip em {transition:none!important;}
  button:not(:disabled):active {translate:none;}
  #screen-menu .btn-play::after{animation:none;opacity:.3;}
  #game-container,.score-punch,.screen.active,.modal.active .modal-card{animation:none!important;}
  #combo-chip.pop #comboDisplay{animation:none;}
}
