@import url("https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&display=swap");
html{background:#0a0c14}
@supports(padding-top:env(safe-area-inset-top)){body{padding-top:env(safe-area-inset-top)}}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(circle at 50% 6%,rgba(201,169,110,0.07),transparent 30%),radial-gradient(circle at 82% 35%,rgba(55,90,130,0.08),transparent 35%),radial-gradient(circle at 15% 70%,rgba(55,90,130,0.05),transparent 30%)}
.card{border-color:rgba(201,169,110,0.1)!important;box-shadow:inset 1px 1px 1px rgba(255,255,255,0.03),0 1px 3px rgba(0,0,0,0.2)!important}
.card:hover{border-color:rgba(201,169,110,0.2)!important;box-shadow:inset 1px 1px 1px rgba(255,255,255,0.04),0 2px 8px rgba(201,169,110,0.06)!important}
.repair-card{border-color:rgba(201,169,110,0.25)!important;background:rgba(201,169,110,0.03)!important}
.repair-card:hover{border-color:rgba(201,169,110,0.4)!important;background:rgba(201,169,110,0.06)!important}
.fortune-card{border-left:2px solid rgba(201,169,110,0.4)!important;background:linear-gradient(135deg,rgba(201,169,110,0.04),rgba(255,255,255,0.02))!important}
.gold-border{border-color:rgba(201,169,110,0.2)!important}
.shelf-icon-item{padding:8px 4px!important;background:rgba(255,255,255,0.025)!important;border-color:rgba(201,169,110,0.08)!important}
.shelf-icon-item:hover{background:rgba(201,169,110,0.08)!important;border-color:rgba(201,169,110,0.25)!important}
.notice-card{border-left:2px solid rgba(201,169,110,0.2)!important}
.hm-cell{border-radius:3px!important;background:rgba(255,255,255,0.008)!important}
.hm-cell.l1{background:rgba(201,169,110,0.12)!important}
.hm-cell.l2{background:rgba(201,169,110,0.25)!important}
.hm-cell.l3{background:rgba(201,169,110,0.42)!important}
.hm-cell.l4{background:rgba(201,169,110,0.65)!important}
.pond-card{background:linear-gradient(180deg,rgba(15,23,42,0.4),rgba(20,40,70,0.3),rgba(15,23,42,0.5))!important;overflow:hidden!important}
.player{border:1px solid rgba(201,169,110,0.15)!important;border-radius:14px 14px 0 0!important;margin:0 4px!important;border-top-color:rgba(201,169,110,0.12)!important}
.player-btn.play{color:#c9a96e!important;text-shadow:0 0 8px rgba(201,169,110,0.3)}
.player-progress-fill{background:linear-gradient(90deg,#c9a96e,#e0c080)!important}
.section span{color:rgba(201,169,110,0.5)!important}
.section::after{background:linear-gradient(90deg,rgba(201,169,110,0.15),transparent 60%)!important}
.panda-status::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#c9a96e;box-shadow:0 0 4px rgba(201,169,110,0.5);margin-right:6px;vertical-align:middle}

/* Notice card: expand to full width overlay when open */
.layer2{position:relative}
.notice-card{position:relative;transition:all .3s;z-index:1}
.notice-content.open{max-height:400px!important;overflow-y:auto!important}
.layer2:has(.notice-content.open) .notice-card{
  position:absolute!important;
  top:0!important;
  right:0!important;
  left:0!important;
  z-index:10!important;
  background:rgba(20,25,40,0.97)!important;
  backdrop-filter:blur(20px)!important;
  border-color:rgba(201,169,110,0.3)!important;
  box-shadow:0 4px 24px rgba(0,0,0,0.4)!important;
}

/* === Player Dock Upgrade === */
.player{border:1px solid rgba(201,169,110,0.15)!important;border-radius:14px 14px 0 0!important;margin:0 4px!important;
  
  background:linear-gradient(180deg,rgba(15,18,28,0.95),rgba(10,12,20,0.98))!important;
  backdrop-filter:blur(30px)!important;
  -webkit-backdrop-filter:blur(30px)!important;
  border:1.5px solid rgba(201,169,110,0.3)!important;border-radius:14px!important;bottom:18px!important;left:14px!important;right:14px!important;width:auto!important;
  padding-bottom:13px!important;
}
.player-art{
  width:46px!important;height:46px!important;
  border-radius:8px!important;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.player-name{font-size:13px!important;font-weight:500!important}
.player-artist{font-size:10px!important}
.player-btn{font-size:18px!important;color:var(--mute)!important;padding:6px!important}
.player-btn.play{
  font-size:24px!important;
  color:#0f1117!important;
  background:linear-gradient(135deg,#d4b477,#c9a96e,#b8944f)!important;
  width:42px!important;height:42px!important;
  border-radius:50%!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-shadow:0 2px 10px rgba(201,169,110,0.35)!important;
  text-shadow:none!important;
}
.player-progress{
  height:2px!important;
  top:-6px!important;
  border-radius:2px!important;
  background:rgba(255,255,255,0.08)!important;
}
.player-progress-fill{
  border-radius:2px!important;
  position:relative!important;
}
.player-progress-fill::after{
  content:'';
  position:absolute;
  right:-4px;top:-3px;
  width:8px;height:8px;
  border-radius:50%;
  background:#c9a96e;
  box-shadow:0 0 4px rgba(201,169,110,0.5);
}

/* === Hide Scrollbar === */
body::-webkit-scrollbar{display:none}
body{-ms-overflow-style:none;scrollbar-width:none}

/* === Shelf Room Color Temps === */
.shelf-icon-item:nth-child(1){background:rgba(201,130,80,0.14)!important;border-color:rgba(201,130,80,0.25)!important}
.shelf-icon-item:nth-child(2){background:rgba(100,160,220,0.08)!important}
.shelf-icon-item:nth-child(3){background:rgba(220,160,80,0.08)!important}
.shelf-icon-item:nth-child(4){background:rgba(230,220,200,0.08)!important}
.shelf-icon-item:nth-child(5){background:rgba(180,160,120,0.08)!important}
.shelf-icon-item:nth-child(1):hover{background:rgba(201,150,100,0.18)!important}
.shelf-icon-item:nth-child(2):hover{background:rgba(100,160,220,0.18)!important}
.shelf-icon-item:nth-child(3):hover{background:rgba(220,160,80,0.18)!important}
.shelf-icon-item:nth-child(4):hover{background:rgba(230,220,200,0.18)!important}
.shelf-icon-item:nth-child(5):hover{background:rgba(180,160,120,0.18)!important}

/* === Weaker normal cards, stronger action cards === */
.card{border-color:rgba(255,255,255,0.03)!important}
.fortune-card,.repair-card{border-color:rgba(201,169,110,0.15)!important}
.gold-border{border-color:rgba(201,169,110,0.12)!important}

/* === Notice fade mask === */

/* === GPT Round 2 + Player Dock === */

/* Hide scrollbar */
body::-webkit-scrollbar{display:none}
body{-ms-overflow-style:none;scrollbar-width:none}

/* Shelf room temperatures */
.shelf-icon-item:nth-child(1){background:rgba(201,130,80,0.14)!important;border-color:rgba(201,130,80,0.25)!important}
.shelf-icon-item:nth-child(2){background:rgba(70,140,220,0.14)!important;border-color:rgba(70,140,220,0.25)!important}
.shelf-icon-item:nth-child(3){background:rgba(230,150,60,0.14)!important;border-color:rgba(230,150,60,0.25)!important}
.shelf-icon-item:nth-child(4){background:rgba(230,220,200,0.14)!important;border-color:rgba(230,220,200,0.22)!important}
.shelf-icon-item:nth-child(5){background:rgba(180,155,90,0.14)!important;border-color:rgba(180,155,90,0.25)!important}

/* Notice fade mask */

/* Player Dock - premium style */
.player{border:1px solid rgba(201,169,110,0.15)!important;border-radius:14px 14px 0 0!important;margin:0 4px!important;
  padding:57px 14px 14px!important;
  background:rgba(8,10,18,0.97)!important;
  backdrop-filter:blur(30px)!important;
  -webkit-backdrop-filter:blur(30px)!important;
  border:1.5px solid rgba(201,169,110,0.3)!important;border-radius:14px!important;bottom:18px!important;left:14px!important;right:14px!important;width:auto!important;
  padding-bottom:13px!important;
}
.player-art{
  width:32px!important;
  height:32px!important;
  border-radius:6px!important;
  box-shadow:0 2px 8px rgba(0,0,0,0.4);
}
.player-name{font-size:11px!important;font-weight:500}
.player-artist{font-size:10px!important;color:rgba(201,169,110,0.6)!important}
.player-btn{font-size:18px!important;color:rgba(232,226,214,0.6)!important;padding:6px!important}
.player-btn:hover{color:#e8e2d6!important}
.player-btn.play{
  font-size:18px!important;
  color:#0f1117!important;
  background:linear-gradient(135deg,#c9a96e,#e0c080)!important;
  width:28px!important;
  height:28px!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 2px 12px rgba(201,169,110,0.3)!important;
  text-shadow:none!important;
}
.player-progress{
  height:2px!important;
  top:-2px!important;
  background:rgba(255,255,255,0.08)!important;
  border-radius:2px!important;
}
.player-progress-fill{
  border-radius:2px!important;
  position:relative;
}
.player-progress-fill::after{
  content:'';
  position:absolute;
  right:-5px;
  top:50%;
  transform:translateY(-50%);
  width:10px;
  height:10px;
  border-radius:50%;
  background:#c9a96e;
  box-shadow:0 0 6px rgba(201,169,110,0.5);
}

/* Weaker normal cards, stronger key cards */
.card{border-color:rgba(255,255,255,0.03)!important}
.fortune-card,.repair-card,.gold-border{border-color:rgba(201,169,110,0.15)!important}
.card:hover{border-color:rgba(201,169,110,0.12)!important}
.fortune-card:hover,.repair-card:hover{border-color:rgba(201,169,110,0.3)!important}

body{padding-bottom:100px!important}

/* Notice: text sinks to bottom, nothing else changes */
.notice-card{display:flex!important;flex-direction:column!important}
.notice-content{margin-top:auto!important}

/* Player: center content vertically, kill empty bottom */
.player{align-items:center!important;align-content:center!important;gap:4px!important}
.player .player-progress{margin-top:4px!important;margin-bottom:0!important}
#pTimeDisplay{margin-top:0!important;margin-bottom:0!important}

/* Player: compact, progress hugs bottom */
.player .player-progress{margin-top:4px!important;margin-bottom:0!important;padding-bottom:0!important}
.player{padding-bottom:13px!important;gap:2px!important}
#pTimeDisplay{font-size:8px!important;margin:0!important;padding:0!important}

/* Player: content lower in frame */
.player{justify-content:flex-end!important;padding-top:4px!important}

/* Play/pause button: always gold circle regardless of state */
#pPlayBtn{font-size:18px!important;color:#0f1117!important;background:linear-gradient(135deg,#c9a96e,#e0c080)!important;width:30px!important;height:30px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;box-shadow:0 2px 14px rgba(201,169,110,0.4)!important;border:none!important}

/* === Background images === */
.header{position:relative;overflow:visible}
.header::after{content:'';position:absolute;inset:0;background:url(/img/bg-header.png) center 20%/cover no-repeat;opacity:0.68;pointer-events:none;z-index:-1;-webkit-mask-image:linear-gradient(to bottom,black 65%,transparent 100%);mask-image:linear-gradient(to bottom,black 65%,transparent 100%)}

.fortune-card{position:relative;overflow:hidden}
.fortune-card::after{content:'';position:absolute;inset:0;background:url(/img/bg-fortune.png) center/cover no-repeat;opacity:0.35;pointer-events:none;z-index:0}
.fortune-card>*{position:relative;z-index:1}

.repair-card{position:relative;overflow:hidden}
.repair-card::after{content:'';position:absolute;inset:0;background:url(/img/bg-repair.png) center/cover no-repeat;opacity:0.68;pointer-events:none;z-index:0}
.repair-card>*{position:relative;z-index:1}

.shelf-card{position:relative;overflow:hidden}
.shelf-card::after{content:'';position:absolute;inset:0;background:url(/img/bg-shelf.png) center/cover no-repeat;opacity:0.55;pointer-events:none;z-index:0}
.shelf-card>*{position:relative;z-index:1}

.pond-card{position:relative;overflow:hidden}
.pond-card::after{content:'';position:absolute;inset:0;background:url(/img/bg-pond.png) center/cover no-repeat;opacity:0.68;pointer-events:none;z-index:0}
.pond-card>*{position:relative;z-index:1}

.repair-label{color:#e8e2d6!important;opacity:1!important;font-weight:500!important}
.shelf-icon-item{opacity:1!important}
.shelf-icon-item img{opacity:1!important}
.shelf-icon-item span{color:#e8e2d6!important;opacity:0.9!important}

/* Stronger shelf + repair opacity */
.shelf-icon-item{backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}
.repair-card .repair-label{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,0.5)!important}

/* Firefly floating effect */

/* Firefly v1 style */
.fireflies{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.firefly{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(201,169,110,0.8) 0%,rgba(201,169,110,0) 70%);animation:ff-float linear infinite,ff-glow ease-in-out infinite alternate}
@keyframes ff-float{
  0%{transform:translate(0,0) scale(1)}
  25%{transform:translate(30px,-60px) scale(0.8)}
  50%{transform:translate(-20px,-120px) scale(1.1)}
  75%{transform:translate(40px,-80px) scale(0.9)}
  100%{transform:translate(0,0) scale(1)}
}
@keyframes ff-glow{
  0%{opacity:0}
  50%{opacity:1}
  100%{opacity:0.1}
}

/* Koi status bars */
.pond-bars{display:flex;flex-direction:row;gap:12px;width:70%;margin:0 auto;padding-top:0;padding-bottom:4px;align-items:flex-end;justify-content:center}
.pond-bar-row{display:flex;align-items:center;gap:2px;font-size:9px;flex-direction:column}
.pond-bar-icon{width:14px;text-align:center;font-size:11px}
.pond-bar-track{width:24px;height:4px;background:rgba(255,255,255,0.08);border-radius:2px;overflow:hidden}
.pond-bar-fill{height:100%;border-radius:2px;transition:width .5s}
.pond-bar-val{width:16px;text-align:right;color:var(--mute);font-size:7px}

/* Heatmap stats row */
.heat-stats{display:flex;justify-content:space-around;margin-top:6px;padding-top:4px;border-top:1px solid rgba(201,169,110,0.08)}
.heat-stat{display:flex;align-items:baseline;gap:1px}
.heat-stat span{font-size:10px;font-weight:600;color:var(--mute)}
.heat-stat small{font-size:8px;color:var(--mute)}

/* Pond layout fix: bars stick to bottom */

/* Pond title pinned to top like heatmap */



/* Pond card: grid 3 rows - title top, koi center, bars bottom */
.pond-card{display:grid!important;grid-template-rows:auto 1fr auto!important;padding:13px 12px 8px!important;min-height:90px!important}
.pond-card .pond-title{justify-self:center}
.pond-card .pond-koi,.pond-card #pondKoi{justify-self:center;align-self:center}
.pond-water{width:100%;align-self:end}

/* Receipt modal */
.receipt-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.receipt-paper{background:#f5f1e8;color:#2a2a2a;font-family:'Courier New',monospace;padding:24px 20px 20px;max-width:320px;width:100%;max-height:90vh;overflow-y:auto;border-radius:4px;box-shadow:0 20px 40px rgba(0,0,0,0.5);position:relative;font-size:12px;line-height:1.6}

.receipt-close{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:rgba(0,0,0,0.1);border:none;color:#666;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}
.receipt-close:active{background:rgba(0,0,0,0.2)}
.receipt-hdr{text-align:center;border-bottom:1.5px dashed #888;padding-bottom:12px;margin-bottom:10px;margin-top:8px}
.receipt-hdr img{image-rendering:pixelated;width:56px;height:56px;margin-bottom:6px}
.receipt-hdr h1{font-size:14px;margin:0;letter-spacing:3px;font-weight:bold}
.receipt-hdr small{font-size:9px;color:#888;letter-spacing:1px}
.receipt-sec{border-bottom:1px dashed #888;padding:8px 0;margin:0}
.receipt-sec h2{font-size:10px;color:#666;margin:0 0 6px 0;letter-spacing:2px;font-weight:bold}
.receipt-row{display:flex;justify-content:space-between;font-size:11px;margin:2px 0}
.receipt-row .v{font-weight:bold;color:#1a1a1a}
.receipt-ft{text-align:center;font-size:9px;color:#888;margin-top:12px;padding-top:8px}
.receipt-stamp{display:inline-block;border:1.5px solid #999;padding:3px 10px;font-size:9px;letter-spacing:2px;color:#666;margin-top:8px;transform:rotate(-3deg)}
.nv{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;max-width:100%}



.notice-content:not(.open) .ns~.ns{display:none}
.repair-card{min-height:unset!important;padding:12px!important}.repair-card img{margin-bottom:1px!important;margin-top:0!important}

.fortune-title,.shelf-title,.heatmap-title,.pond-title,.notice-title{font-family:"Ma Shan Zheng",serif!important}
