/* 일일 퀘스트 — 퀘스트 창 [일일] 탭(quest_daily.js). 한 열 긴 줄: [그림 40] 이름 + 진행 막대 · 현재/목표 · 오늘 n/하루 · 보상 칸 40 · [보상 받기] 글자 폭 알약.
   판 = 퀘스트 창 목록 판(.qw-list 어두운 반투명) 그대로 · 상세 판 없음. 크기 = GUI 450 기준(아이콘 40 · 줄 52 · 본문 12.5 · 알약 28). */
#ui .qwin .qw-body.qw-one { grid-template-columns: 1fr; }
#ui .qwin .qw-body.qw-one > .qw-detail { display: none; }
#ui .qwin .qd-head { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 28px; padding: 0 4px 0 10px; border-left: 2px solid var(--ink); font-size: 11.5px; font-weight: 800; color: var(--ink); }
#ui .qwin .qd-sum { display: flex; align-items: center; gap: 8px; font-size: 10.5px; font-weight: 700; color: var(--ink-soft); }
#ui .qwin .qd-sum b { color: #68d890; font-weight: 900; }
/* [전체 받기](11-05 사용자) = 머리 오른쪽 글자 폭 알약 26 — 받을 것이 있으면 금 · 없으면 흐림(누름 없음) */
#ui .qwin .qd-all { flex: none; min-width: 0; height: 26px; padding: 0 12px; white-space: nowrap; font-size: 11.5px; font-weight: 800; transition: transform .06s; }
#ui .qwin .qd-all.off { pointer-events: none; opacity: .45; }
#ui .qwin .qd-all:active { transform: scale(.92); }
#ui .qwin .qd-all.press { animation: qd-press .2s ease-out; }
#ui .qwin .qd-all.busy { filter: saturate(.4); }
#ui .qwin .qd-list { display: flex; flex-direction: column; gap: 4px; }
#ui .qwin .qd-row { position: relative; flex: none; display: grid; grid-template-columns: 40px minmax(0, 1fr) 76px auto 40px auto; align-items: center; gap: 10px; height: 52px; padding: 0 10px 0 6px;
  border-radius: 8px; background: rgba(255, 255, 255, .045); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); overflow: hidden; }
/* 처음 열 때만 줄이 차례로 들어온다(처치마다 바뀐 줄을 갈아 끼울 때는 다시 돌지 않음) — 순차 간격 40 ms(12줄 넘으면 같은 시각) */
#ui .qwin .qd-list.enter .qd-row { animation: fx-card-in .26s cubic-bezier(.2, .8, .3, 1) both; animation-delay: calc(var(--i, 0) * 40ms); }
#ui .qwin .qd-row .qr-cell { width: 40px; height: 40px; animation: none; }
#ui .qwin .qd-list.enter .qd-row .qr-cell { animation: qr-pop .42s cubic-bezier(.2, .9, .3, 1.2) both; animation-delay: calc(var(--i, 0) * 40ms + 120ms); }
#ui .qwin .qd-row .qr-cell .qr-pic, #ui .qwin .qd-row .qr-cell .qr-pic img { width: 26px; height: 26px; }
#ui .qwin .qd-row .qr-cell em { font-size: 10px; }
/* 그림: 몬스터 얼굴 · 건물 모형 = 둥근 네모 40 어두운 판 · 아무 몬스터 = 흰 선 칼 글리프 */
#ui .qwin .qd-pic { width: 40px; height: 40px; border-radius: 8px; overflow: hidden; display: grid; place-items: center; background: rgba(0, 0, 0, .35); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
#ui .qwin .qd-pic canvas { width: 40px; height: 40px; object-fit: contain; image-rendering: pixelated; }
#ui .qwin .qd-pic.bld canvas { width: 44px; height: 37px; image-rendering: auto; }
#ui .qwin .qd-glyph { width: 22px; height: 22px; background: #f2f0e7; -webkit-mask: url(../../assets/icons/hud-attack.svg) center / contain no-repeat; mask: url(../../assets/icons/hud-attack.svg) center / contain no-repeat; }
#ui .qwin .qd-glyph.gen, #ui .qwin .qd-glyph.prod { -webkit-mask-image: url(icon-quest.png); mask-image: url(icon-quest.png); }
#ui .qwin .qd-main { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
#ui .qwin .qd-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; font-weight: 800; color: var(--ink); }
/* 진행 막대 6 — 채움 = 베이지(목록 고른 줄 색) · 다 채움 = 초록(받을 것 #68d890) */
#ui .qwin .qd-bar { position: relative; height: 6px; border-radius: 3px; background: rgba(0, 0, 0, .45); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); overflow: hidden; }
#ui .qwin .qd-bar > i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: linear-gradient(90deg, #c7bba3, #ece4d3); transition: width .35s cubic-bezier(.2, .8, .3, 1); }
#ui .qwin .qd-row.s-ready .qd-bar > i { background: linear-gradient(90deg, #3fae6a, #68d890); }
#ui .qwin .qd-p { font-style: normal; font-size: 13px; font-weight: 900; color: var(--ink); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
#ui .qwin .qd-p small { font-size: 10.5px; font-weight: 700; color: var(--ink-soft); }
#ui .qwin .qd-day { flex: none; height: 20px; padding: 0 9px; border-radius: 10px; display: grid; place-items: center; font-size: 10.5px; font-weight: 800; color: var(--ink-soft); white-space: nowrap; background: rgba(13, 16, 17, .58); box-shadow: inset 0 0 0 1px rgba(67, 73, 74, .7); }
#ui .qwin .qd-btn { flex: none; min-width: 0; white-space: nowrap; font-size: 12px; font-weight: 800; transition: transform .06s; }
#ui .qwin .qd-btn.off { pointer-events: none; }
#ui .qwin .qd-btn:active { transform: scale(.92); }
#ui .qwin .qd-btn.press { animation: qd-press .2s ease-out; }
#ui .qwin .qd-btn.busy { filter: saturate(.4); }
#ui .qwin .qd-end { flex: none; justify-self: end; height: 28px; padding: 0 14px; border-radius: 14px; display: grid; place-items: center; font-size: 12px; font-weight: 800; color: #68d890; white-space: nowrap; background: rgba(104, 216, 144, .1); box-shadow: inset 0 0 0 1px rgba(104, 216, 144, .3); }
/* 받을 것 = 초록 테 맥동(등급 빛 1047 ms — 목록 qw-ready 와 같은 것) · 오늘 완료 = 흐리게 · 방금 받음 = 금빛 훑기 */
#ui .qwin .qd-row.s-ready { animation: qw-ready 1.047s ease-in-out infinite alternate; }
#ui .qwin .qd-list.enter .qd-row.s-ready { animation: fx-card-in .26s cubic-bezier(.2, .8, .3, 1) both, qw-ready 1.047s ease-in-out .3s infinite alternate; animation-delay: calc(var(--i, 0) * 40ms), .3s; }
#ui .qwin .qd-row.s-done { opacity: .5; }
#ui .qwin .qd-row.s-done .qd-bar > i { background: rgba(236, 228, 211, .45); }
#ui .qwin .qd-row.got::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 40%; background: linear-gradient(90deg, transparent, rgba(255, 236, 170, .32), transparent); animation: qt-sheen .7s ease-out both; pointer-events: none; }
@keyframes qd-press { 0% { transform: scale(.92); } 60% { transform: scale(1.06); } 100% { transform: scale(1); } }
/* 알리미 머리(퀘스트 단추) 점 = 받을 일일 보상(성장 탭 qw-dot 과 같은 초록 · 628 ms) */
#hud .qt-head.qd-dot { position: relative; }
#hud .qt-head.qd-dot::after { content: ""; position: absolute; right: -2px; top: -2px; width: 6px; height: 6px; border-radius: 50%; background: #68d890; box-shadow: 0 0 0 1px rgba(0, 0, 0, .5); animation: qt-dot .628s ease-in-out infinite alternate; }
