/* 단풍수첩 공통 스타일 (메인 페이지·몬스터 도감 공용) */
/* 메이플스토리 서체 ⓒ NEXON (무료 배포 서체) */
@font-face{font-family:"Maplestory";src:url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-04@2.1/MaplestoryOTFBold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

/* ── 색상 토큰: 낮(헤네시스) / 밤(엘리니아) ── */
:root{
  --font-game:"Maplestory",Pretendard,"Pretendard Variable","Malgun Gothic",sans-serif;
  --font-body:Pretendard,"Pretendard Variable","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  --bg:#FBF4E6;--card:#FFFCF5;--input:#FFFFFF;--sunken:#F8EEDC;
  --border:#ECD9B8;--border-strong:#D9BC8E;--edge:#EAD3AE;
  --text:#2A1B0E;--text-sub:#58402A;--text-faint:#77593D;
  --accent:#F08A1C;--accent-hi:#FFB443;--accent-lo:#C8650C;--accent-ink:#B55600;--accent-soft:#FFEBD1;
  --success:#3B962B;--success-soft:#E6F4DA;--danger:#D6432D;--danger-soft:#FCE5DE;
  --meter-track:#EADBC2;
  --wood-hi:#A8723F;--wood-lo:#83522A;
  --shadow:0 4px 0 var(--edge),0 18px 36px -26px rgba(90,55,20,.55);
  --radius:18px;--header-h:66px;color-scheme:light}
[data-theme="dark"]{
  --bg:#17120D;--card:#221B14;--input:#2A2219;--sunken:#1C1611;
  --border:#3B2F22;--border-strong:#54432F;--edge:#0E0A07;
  --text:#FCF5EA;--text-sub:#DDCBB2;--text-faint:#B39C82;
  --accent:#FF9B2F;--accent-hi:#FFB443;--accent-lo:#C8650C;--accent-ink:#FFB357;--accent-soft:#3A2714;
  --success:#6CC657;--success-soft:#1E3018;--danger:#FF6B57;--danger-soft:#3B1C16;
  --meter-track:#33291F;
  --wood-hi:#8A5C30;--wood-lo:#6A4320;
  --shadow:0 4px 0 var(--edge),0 18px 36px -24px rgba(0,0,0,.7);color-scheme:dark}

/* ── 기본 ── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
[hidden]{display:none!important}
a{color:var(--accent-ink)}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent-hi);outline-offset:2px}
.container{max-width:1140px;margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:10px;background:var(--text);color:var(--card);font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}
.nowrap{display:inline-block}
.icon{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.leaf-icon{fill:currentColor;stroke:none}

/* ── 헤더 ── */
.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:var(--card);border-bottom:2px solid var(--border)}
.site-header .container{height:100%;display:flex;align-items:center;gap:12px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);flex:none}
.brand-logo{display:block;width:42px;height:42px;flex:none;transition:transform .3s ease}
.brand:hover .brand-logo{transform:rotate(-8deg) translateY(-1px)}
.brand-text{display:grid;line-height:1.1}
.brand-name{font-family:var(--font-game);font-size:21px;letter-spacing:-.01em}
.brand-name em{font-style:normal;color:var(--accent)}
.brand-sub{font-size:11px;color:var(--text-sub);font-weight:600;margin-top:2px}
.main-nav{display:flex;gap:4px;margin-left:auto}
.main-nav a{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:12px;color:var(--text-sub);font-size:15px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background-color .15s,color .15s}
.main-nav a:hover{background:var(--sunken);color:var(--text)}
.main-nav a[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink)}
.theme-toggle{width:40px;height:40px;flex:none;border-radius:12px;border:2px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;display:grid;place-items:center;transition:transform .2s}
.theme-toggle:hover{background:var(--sunken);transform:rotate(-12deg)}
.theme-toggle .icon{width:18px;height:18px}
.theme-toggle .sun,[data-theme="dark"] .theme-toggle .moon{display:none}
[data-theme="dark"] .theme-toggle .sun{display:block}

/* ── 첫 화면 ── */
.hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;text-align:center;padding:80px 0 136px;background:#2a1d14 url('../autumn-hero.png') center 58%/cover no-repeat;background-image:image-set(url('../autumn-hero.webp') type('image/webp'),url('../autumn-hero.png') type('image/png'))}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 40%,rgba(30,16,6,.25),rgba(30,16,6,.6) 75%),linear-gradient(180deg,rgba(30,16,6,.35),rgba(30,16,6,.15) 50%,rgba(30,16,6,.5))}
.hero .container{position:relative;z-index:1}
.hero-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:rgba(40,20,6,.55);border:1.5px solid rgba(255,210,130,.45);color:#FFE2AE;font-size:13px;font-weight:800;letter-spacing:.1em}
.hero-kicker svg{width:14px;height:14px;fill:#FFB443}
.hero h1{margin:18px 0 14px;font-family:var(--font-game);font-weight:700;font-size:clamp(30px,4.8vw,50px);line-height:1.3;letter-spacing:-.01em;text-shadow:0 3px 0 #6B3510,0 0 3px #6B3510,0 8px 22px rgba(30,12,2,.55)}
.hero h1 em{font-style:normal;color:#FFD25E}
.hero p{margin:0 auto;max-width:540px;font-size:17px;line-height:1.7;font-weight:600;color:#FFF8EC;text-shadow:0 1px 2px rgba(20,10,4,.8)}
.leaves{position:absolute;inset:0;z-index:0;pointer-events:none}
.leaf{position:absolute;top:-40px;left:var(--x);width:var(--s);height:var(--s);animation:leaf-fall var(--d) linear var(--delay) infinite;opacity:0}
.leaf svg{display:block;width:100%;height:100%;fill:var(--c);filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));animation:leaf-sway calc(var(--d) / 3) ease-in-out infinite alternate}
@keyframes leaf-fall{0%{transform:translate3d(0,0,0);opacity:0}8%{opacity:.95}85%{opacity:.9}100%{transform:translate3d(var(--drift),560px,0);opacity:0}}
@keyframes leaf-sway{0%{transform:rotate(-35deg) translateX(-10px)}100%{transform:rotate(55deg) translateX(14px)}}

/* ── 도구 바로가기 ── */
.tool-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:-80px}
.tool-card{position:relative;display:grid;gap:4px;align-content:start;padding:18px;border-radius:18px;background:var(--card);border:2px solid var(--border);box-shadow:var(--shadow);color:var(--text);text-decoration:none;transition:transform .18s ease,border-color .18s,box-shadow .18s}
a.tool-card:hover{transform:translateY(-4px);border-color:var(--accent-hi);box-shadow:0 8px 0 var(--edge),0 22px 40px -24px rgba(90,55,20,.6)}
a.tool-card:active{transform:translateY(0)}
.tool-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:8px;color:#fff;background:linear-gradient(180deg,var(--accent-hi),var(--accent));box-shadow:0 3px 0 var(--accent-lo),inset 0 1px 0 rgba(255,255,255,.45)}
.tool-icon .icon{width:22px;height:22px;stroke-width:2.1}
a.tool-card:hover .tool-icon{animation:wiggle .5s ease}
@keyframes wiggle{0%,100%{transform:rotate(0)}30%{transform:rotate(-10deg)}60%{transform:rotate(8deg)}}
.tool-title{font-size:18px;font-weight:800;letter-spacing:-.02em}
.tool-desc{font-size:14px;font-weight:500;color:var(--text-sub)}
.tool-go{position:absolute;top:18px;right:16px;color:var(--text-faint);transition:transform .18s,color .18s}
a.tool-card:hover .tool-go{color:var(--accent);transform:translate(2px,-2px)}
.tool-card.is-soon{background:var(--sunken);border-style:dashed;box-shadow:none}
.tool-card.is-soon .tool-icon{background:var(--sunken);color:var(--text-faint);box-shadow:none}
.tool-card.is-soon .tool-title{color:var(--text-sub)}
.tool-card.is-soon .tool-desc{color:var(--text-faint)}
.badge{position:absolute;top:18px;right:16px;padding:2px 9px;border-radius:999px;background:var(--sunken);border:1.5px solid var(--border);font-size:11px;font-weight:700;color:var(--text-sub)}

/* ── 섹션 ── */
.tool-section{padding-top:72px;scroll-margin-top:var(--header-h)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}
.section-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:800;color:var(--accent-ink)}
.section-eyebrow svg{width:14px;height:14px;fill:var(--accent)}
.section-head h2{margin:6px 0 6px;font-family:var(--font-game);font-weight:700;font-size:32px;letter-spacing:-.01em;line-height:1.25}
.section-head p{margin:0;color:var(--text-sub);font-size:16px;font-weight:500}
.section-pill{flex:none;padding:7px 13px;border-radius:999px;border:2px solid var(--border);background:var(--card);font-size:14px;font-weight:700;color:var(--text-sub)}
.event-pill{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent-ink);font-weight:800}
.event-pill.is-ended{background:var(--sunken);border-color:var(--border);color:var(--text-sub)}
.event-ended-note{display:none;align-items:center;gap:12px;margin-bottom:16px;padding:16px 18px;border-radius:16px;border:2px solid var(--border-strong);background:var(--sunken);font-size:15px;font-weight:600;color:var(--text)}
.event-ended-note svg{width:28px;height:28px;flex:none;fill:var(--accent)}
.is-ended .event-ended-note{display:flex}
.is-ended .two-col,.is-ended .disclosure{opacity:.45;filter:grayscale(.7);pointer-events:none;user-select:none}

/* ── 게임 창 스타일 카드 ── */
.card{min-width:0;scroll-margin-top:calc(var(--header-h) + 12px);padding:0 24px 24px;border-radius:var(--radius);background:var(--card);border:2px solid var(--border);box-shadow:var(--shadow);overflow:hidden}
.win-bar{display:flex;align-items:center;gap:8px;margin:0 -24px 20px;padding:12px 20px;background:linear-gradient(180deg,var(--wood-hi),var(--wood-lo));color:#FFF4E2;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -2px 0 rgba(50,25,8,.25)}
.win-bar.is-result{background:linear-gradient(180deg,var(--accent-hi),var(--accent))}
.win-bar h3{margin:0;font-size:16px;font-weight:800;letter-spacing:-.01em}
.win-bar svg{width:16px;height:16px;fill:currentColor;opacity:.9}
.two-col{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px;align-items:start}
.sticky-col{position:sticky;top:calc(var(--header-h) + 16px)}
.block{margin-top:24px;padding-top:22px;border-top:2px dashed var(--border)}
.card-sub{margin:0;color:var(--text-sub);font-size:14px;font-weight:500}

/* ── 단계 제목 ── */
.step-head{display:flex;align-items:center;gap:12px}
.step-num{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:linear-gradient(180deg,var(--accent-hi),var(--accent));box-shadow:0 2px 0 var(--accent-lo);color:#fff;font-size:15px;font-weight:800}
.step-head>div{display:grid;gap:2px;min-width:0}
.step-head strong{font-size:18px;font-weight:800;letter-spacing:-.02em}
.step-head strong small{margin-left:4px;font-size:13px;font-weight:600;color:var(--text-sub)}
.step-head>div>span{font-size:14px;font-weight:500;color:var(--text-sub)}
.step-head .count{margin-left:auto;align-self:flex-end;flex:none}
.step-head+.field-grid{margin-top:18px}
.step-head+.chip-row{margin-top:14px}

/* ── 입력 ── */
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
.field{display:grid;gap:8px;min-width:0;margin:0}
.field-label{font-size:14px;font-weight:700;color:var(--text)}
.field-label small{margin-left:4px;font-size:13px;font-weight:500;color:var(--text-sub)}
.input{display:block;width:100%;min-width:0;height:50px;margin:0;padding:0 14px;border:2px solid var(--border);border-radius:12px;background:var(--input);font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;transition:border-color .15s,box-shadow .15s}
.input:hover{border-color:var(--border-strong)}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.input::placeholder{color:var(--text-faint);font-size:14px;font-weight:500}
input[type="date"].input{font-size:15px}
.unit-input{position:relative;display:block}
.unit-input .input{padding-right:54px}
.unit-input>span{position:absolute;right:14px;top:0;bottom:0;display:flex;align-items:center;font-size:14px;font-weight:700;color:var(--text-sub);pointer-events:none}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.check-chip{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 14px 0 12px;border-radius:12px;border:2px solid var(--border);background:var(--card);color:var(--text);font-size:15px;font-weight:600;cursor:pointer;transition:border-color .15s,background-color .15s,transform .1s}
.check-chip:hover{border-color:var(--border-strong)}
.check-chip:active{transform:translateY(1px)}
.check-chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.check-chip input{width:17px;height:17px;margin:0;accent-color:var(--accent);flex:none}
.check-chip small{font-size:13px;font-weight:800;color:var(--accent-ink)}
.buff-icon{width:26px;height:26px;object-fit:contain;image-rendering:pixelated;flex:none}

/* 게임 버튼: 직업 선택 */
.segmented{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--sunken);border:2px solid var(--border)}
.job-toggle{flex:1;display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--text-sub);font-size:15px;font-weight:700;cursor:pointer;transition:color .15s,background-color .15s,transform .1s}
.job-toggle:hover{color:var(--text);background:color-mix(in srgb,var(--card) 60%,transparent)}
.job-toggle.active{background:linear-gradient(180deg,var(--accent-hi),var(--accent));color:#fff;font-weight:800;box-shadow:0 3px 0 var(--accent-lo),inset 0 1px 0 rgba(255,255,255,.4)}
.job-toggle:active{transform:translateY(2px)}

/* ── 몬스터 검색 ── */
.count{font-size:14px;font-weight:600;color:var(--text-sub);font-variant-numeric:tabular-nums}
.search-wrap{position:relative;margin-top:16px}
.search-wrap .search-icon{position:absolute;left:15px;top:16px;width:18px;height:18px;color:var(--text-faint);pointer-events:none}
.search-wrap .input{padding-left:44px;padding-right:46px;font-size:16px}
.search-wrap input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
#clearSearch{position:absolute;right:7px;top:7px;width:36px;height:36px;border:0;border-radius:9px;background:transparent;color:var(--text-sub);font-size:22px;line-height:1;cursor:pointer}
#clearSearch:hover{background:var(--sunken);color:var(--text)}
.level-filters{display:flex;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:3px}
.level-filters::-webkit-scrollbar{display:none}
.level-chip{flex:none;height:34px;padding:0 14px;border-radius:999px;border:2px solid var(--border);background:var(--card);color:var(--text-sub);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;transition:transform .1s}
.level-chip:hover{color:var(--text);border-color:var(--border-strong)}
.level-chip.active{background:linear-gradient(180deg,var(--accent-hi),var(--accent));border-color:var(--accent);color:#fff;box-shadow:0 2px 0 var(--accent-lo)}
.level-chip:active{transform:translateY(1px)}
.results{margin-top:12px;max-height:350px;overflow:auto;overscroll-behavior:contain;border:2px solid var(--border);border-radius:14px;background:var(--input);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
.results::-webkit-scrollbar{width:8px}.results::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}
.option{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:background-color .12s}
.option:last-child{border-bottom:0}
.option:hover{background:var(--sunken)}
.option:hover .mob-icon{transform:translateY(-2px)}
.option[aria-selected="true"]{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent)}
.option:focus-visible{outline:3px solid var(--accent-hi);outline-offset:-3px;border-radius:10px}
.kbd-hint{margin-right:auto;color:var(--text-faint)}
.kbd-hint kbd{display:inline-block;min-width:20px;padding:0 5px;border-radius:5px;border:1.5px solid var(--border-strong);border-bottom-width:3px;background:var(--card);font:inherit;font-size:11px;font-weight:800;text-align:center;color:var(--text-sub)}
@media (hover:none){.kbd-hint{display:none!important}}
.mob-icon{width:42px;height:42px;flex:0 0 42px;object-fit:scale-down;image-rendering:auto;transition:transform .15s}
.mob-content{display:flex;flex:1;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}
.mob-content strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700}
.mob-location{font-size:13px;font-weight:500;color:var(--text-sub)}
.mob-chips{display:flex;gap:4px}
.mob-chips span{padding:1px 7px;border-radius:6px;background:var(--sunken);color:var(--text-sub);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.option[aria-selected="true"] .mob-chips span{background:var(--card)}
.mob-need{flex:none;margin-left:auto;padding:4px 10px;border-radius:9px;background:var(--sunken);color:var(--text-sub);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.mob-need.ok{background:var(--success-soft);color:var(--success)}
.mob-need.short{background:var(--danger-soft);color:var(--danger)}
.empty-results{margin:0;padding:32px 12px;text-align:center;font-size:14px;color:var(--text-sub)}
.list-legend{display:flex;justify-content:flex-end;gap:14px;margin-top:8px;font-size:13px;font-weight:600;color:var(--text-sub)}
.list-legend span{display:inline-flex;align-items:center;gap:5px}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%}
.dot.ok{background:var(--success)}.dot.short{background:var(--danger)}

/* ── 명중 결과 ── */
.target-card{display:flex;align-items:center;gap:16px;padding:14px;border-radius:16px;background:var(--sunken);border:2px solid var(--border);min-width:0}
.target-stage{position:relative;display:grid;place-items:center;width:100px;height:100px;flex:none;border-radius:14px;border:2px solid var(--border);background:var(--sunken);overflow:hidden}
.target-stage img{position:relative;width:86px;height:86px;object-fit:scale-down;image-rendering:auto}
.target-copy{display:grid;gap:4px;min-width:0}
.target-label{font-size:13px;font-weight:700;color:var(--text-sub)}
.target-copy strong{font-size:20px;font-weight:800;line-height:1.3;letter-spacing:-.02em}
.target-copy strong .mob-location{font-weight:500}
.target-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px;font-size:14px;color:var(--text-sub)}
.target-chips span{padding:2px 8px;border-radius:6px;background:var(--card);border:1.5px solid var(--border);font-size:13px;font-weight:700;color:var(--text-sub);font-variant-numeric:tabular-nums}
.result-metric{margin-top:16px}
.verdict{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:2px solid color-mix(in srgb,var(--danger) 35%,transparent);background:var(--danger-soft);color:var(--danger)}
[data-result="enough"] .verdict{border-color:color-mix(in srgb,var(--success) 35%,transparent);background:var(--success-soft);color:var(--success)}
[data-result="empty"] .verdict,[data-result="invalid"] .verdict{display:none}
.verdict-icon{display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;background:currentColor;box-shadow:0 2px 0 color-mix(in srgb,currentColor 60%,#000)}
.verdict-icon .icon{width:21px;height:21px;stroke:#fff;stroke-width:2.8}
.vi-ok,[data-result="enough"] .vi-short{display:none}
[data-result="enough"] .vi-ok{display:block}
.verdict-copy{display:grid;gap:1px;min-width:0}
.result-headline{font-size:22px;font-weight:800;line-height:1.3;letter-spacing:-.02em}
.surplus{font-size:14px;font-weight:700;opacity:.9;font-variant-numeric:tabular-nums}
.surplus:empty{display:none}
.stat-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.stat{display:grid;gap:2px;padding:14px 16px;border-radius:14px;border:2px solid var(--border);background:var(--card);min-width:0}
.stat-label{font-size:14px;font-weight:700;color:var(--text-sub)}
.stat .number{font-family:var(--font-game);font-weight:700;font-size:40px;line-height:1.15;font-variant-numeric:tabular-nums;justify-self:start}
.buff-included{display:none;margin-left:2px;padding:1px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;font-weight:800}
body:has(#buffPill:checked) .buff-included,body:has(#buffBless:checked) .buff-included{display:inline-block}
[data-result="empty"] .stat-mine,[data-result="invalid"] .stat-mine{display:none}
[data-result="empty"] .stat-pair,[data-result="invalid"] .stat-pair{grid-template-columns:minmax(0,1fr)}
.accuracy-hint{display:none;margin:10px 0 0;font-size:14px;color:var(--text-sub)}
[data-result="empty"] .accuracy-hint{display:block}
[data-result="empty"]~#resultMeter,[data-result="empty"]~.result-rows,[data-result="empty"]~#dexNote,[data-result="invalid"]~#resultMeter{display:none}

/* 게임 게이지 */
.meter{margin-top:20px}
.meter-visual{position:relative;padding-bottom:24px}
.meter-track{height:16px;padding:2px;border-radius:999px;background:var(--meter-track);box-shadow:inset 0 1px 3px rgba(60,30,10,.3);overflow:hidden}
.meter-fill{position:relative;height:100%;width:0;border-radius:inherit;background:linear-gradient(180deg,#FF9A80,#D6432D);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.meter-fill.enough{background:linear-gradient(180deg,#9BE077,#3B962B)}
.meter-fill::after,.exp-fill::after{content:"";position:absolute;left:4px;right:4px;top:1px;height:40%;border-radius:999px;background:rgba(255,255,255,.4)}
.meter-marker{position:absolute;top:-4px;left:0;width:4px;height:24px;border-radius:2px;background:var(--text);box-shadow:0 0 0 2px var(--card);transform:translateX(-50%);pointer-events:none}
.meter-caption{position:absolute;top:22px;left:0;transform:translateX(-50%);white-space:nowrap;font-size:13px;font-weight:600;color:var(--text-sub);font-variant-numeric:tabular-nums}
.result-rows{margin-top:6px;border-top:2px dashed var(--border)}
.result-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0 4px}
.row-label{font-size:15px;font-weight:600;color:var(--text-sub)}
.dex-value{max-width:60%;text-align:right;font-size:17px;font-weight:800;font-variant-numeric:tabular-nums}
.dex-note{margin:4px 0 0;font-size:13px;font-weight:500;color:var(--text-faint)}
.info-details{margin-top:16px;border-top:2px dashed var(--border);padding-top:12px;font-size:14px;color:var(--text-sub)}
.info-details summary{cursor:pointer;font-weight:700;color:var(--text-sub);width:max-content;max-width:100%}
.info-details summary:hover{color:var(--text)}
.info-details p{margin:8px 0 0;line-height:1.7}
.formula{display:block;margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--sunken);font-size:14px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}

/* ── 몬파 결과 ── */
.monpa-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:6px}
.monpa-level{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-variant-numeric:tabular-nums}
#monpaFinal{display:inline-block;font-family:var(--font-game);font-weight:700;font-size:48px;line-height:1.15}
.monpa-pct{font-size:22px;font-weight:800;color:var(--text-sub)}
.monpa-gain{flex:none;margin-bottom:8px;padding:5px 12px;border-radius:999px;background:linear-gradient(180deg,#FFE27A,#F5B800);color:#4A2A00;font-size:14px;font-weight:800;box-shadow:0 2px 0 #C98F00,inset 0 1px 0 rgba(255,255,255,.6);font-variant-numeric:tabular-nums;position:relative;overflow:hidden}
.monpa-gain::before{content:"▲ "}
.monpa-gain::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.7) 50%,transparent 65%);transform:translateX(-120%);animation:shine 3s ease-in-out infinite}
.monpa-gain:empty{display:none}
/* 경험치 바 (게임 EXP 바) */
.exp-bar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:4px 5px 4px 4px;border-radius:999px;background:#3A2716;box-shadow:inset 0 1px 3px rgba(0,0,0,.45),0 2px 0 var(--edge)}
.exp-tag{padding:2px 9px;border-radius:999px;background:#241708;color:#FFE45C;font-size:13px;font-weight:800;letter-spacing:.06em}
.exp-track{position:relative;flex:1;height:14px;border-radius:999px;background:#5A4330;overflow:hidden}
.exp-fill{position:relative;display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(180deg,#FFF07A,#F5C518 55%,#DFA300);transition:width .5s cubic-bezier(.2,.8,.2,1);overflow:hidden}
.exp-fill::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.6) 50%,transparent 70%);transform:translateX(-100%);animation:shine 2.6s ease-in-out infinite}
@keyframes shine{0%{transform:translateX(-120%)}60%,100%{transform:translateX(120%)}}
.monpa-progress{margin:8px 0 0;font-size:14px;color:var(--text-sub)}
.monpa-progress:empty{display:none}
.monpa-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.monpa-stats div{display:grid;gap:2px;padding:14px 16px;border-radius:14px;border:2px solid var(--border)}
.monpa-stats span{font-size:14px;font-weight:700;color:var(--text-sub)}
.monpa-stats strong{font-size:21px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;overflow-wrap:normal}
.park-block{margin-top:14px;padding:14px 16px;border-radius:14px;background:var(--sunken);border:2px solid var(--border)}
.park-title{font-size:14px;font-weight:700;color:var(--text-sub)}
.park-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.park-chips:empty{display:none}
.park-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;background:var(--card);border:2px solid var(--border);font-size:14px;font-weight:600;color:var(--text)}
.park-chip::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--park);box-shadow:0 0 0 3px color-mix(in srgb,var(--park) 25%,transparent)}
.park-chip b{font-weight:800;font-variant-numeric:tabular-nums}
.park-chip.p1{--park:#E39A2D}.park-chip.p2{--park:#3B962B}.park-chip.p3{--park:#4C7FE0}
.park-chip.is-zero{opacity:.45}
.park-rule{display:block;margin-top:10px;font-size:13px;font-weight:500;color:var(--text-faint)}
#monpaNote:empty{display:none}

/* ── 주차 계산기 (몬파 섹션 안 하위 섹션) ── */
.sub-section{margin-top:40px;padding-top:32px;border-top:2px dashed var(--border-strong);scroll-margin-top:calc(var(--header-h) + 8px)}
.sub-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.sub-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;color:#fff;background:linear-gradient(180deg,var(--accent-hi),var(--accent));box-shadow:0 3px 0 var(--accent-lo)}
.sub-icon .icon{width:20px;height:20px;stroke-width:2.1}
.sub-head h3{margin:0;font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.3}
.sub-head p{margin:4px 0 0;font-size:15px;font-weight:500;color:var(--text-sub)}
/* ── 주차 결과 ── */
.goal-custom{max-width:240px;margin-top:16px}
.monpa-reverse-results{display:grid;gap:10px}
.monpa-reverse-item{padding:16px;border-radius:14px;border:2px solid var(--border);background:var(--sunken);animation:rise .3s ease both}
.monpa-reverse-item .reverse-heading{display:block;font-size:15px;font-weight:800;color:var(--text)}
.monpa-reverse-item .reverse-label{display:block;margin-top:10px;font-size:13px;font-weight:700;color:var(--text-sub)}
.monpa-reverse-item .reverse-min{display:block;margin-top:2px;font-family:var(--font-game);font-weight:700;font-size:30px;line-height:1.25;color:var(--accent-ink);font-variant-numeric:tabular-nums}
.monpa-reverse-item p{margin:6px 0 0;font-size:14px;line-height:1.7;color:var(--text-sub)}
.monpa-reverse-item .reverse-counts{margin-top:10px;padding-top:10px;border-top:2px dashed var(--border);color:var(--text);font-weight:700}
.weekly-empty{display:grid;place-items:center;gap:8px;padding:36px 16px;border-radius:14px;border:2px dashed var(--border);text-align:center;color:var(--text-sub);font-size:14px}
.weekly-empty svg{width:34px;height:34px;fill:var(--accent);opacity:.7;animation:bob 2.4s ease-in-out infinite}
#monpaReverse:not(:empty)+.weekly-empty{display:none}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-5px) rotate(6deg)}}

/* ── 펼치기 ── */
.disclosure{margin-top:16px;border:2px solid var(--border);border-radius:16px;background:var(--card);box-shadow:0 3px 0 var(--edge)}
.disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;font-size:15px;font-weight:700;cursor:pointer;list-style:none}
.disclosure>summary::-webkit-details-marker{display:none}
.disclosure>summary::after{content:"";width:8px;height:8px;border-right:2.5px solid var(--text-sub);border-bottom:2.5px solid var(--text-sub);transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.disclosure[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.table-wrap{overflow-x:auto;padding:0 20px 12px;border-top:2px dashed var(--border)}
.disclosure table{width:100%;border-collapse:collapse;font-size:14px;text-align:left;white-space:nowrap;font-variant-numeric:tabular-nums}
.disclosure th,.disclosure td{padding:11px 8px;border-bottom:1px solid var(--border)}
.disclosure th{font-weight:700;color:var(--text-sub)}
.disclosure tr:last-child td{border-bottom:0}
.notice{margin:12px 0 0;font-size:14px;font-weight:500;line-height:1.7;color:var(--text-sub)}
.error{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--danger-soft);font-size:14px;font-weight:600;color:var(--danger)}
.error:empty{display:none}

/* 숫자 바뀔 때 톡 튀는 효과 */
.pop{animation:pop .35s ease}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.12)}100%{transform:scale(1)}}

/* ── 고급 도구 (숨김) ── */
.advanced{margin-top:40px}
.advanced .wide{margin-top:10px;padding:0}
.advanced .wide>details>summary{padding:18px 22px;cursor:pointer;font-weight:700}
.advanced .details-body{padding:0 22px 22px}
.advanced label{display:block;margin-top:14px;font-size:14px;font-weight:700}
.advanced input,.advanced select{display:block;width:100%;height:44px;margin-top:6px;padding:0 12px;border:2px solid var(--border);border-radius:10px;background:var(--input)}
.advanced .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.advanced .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.advanced button,.advanced .file{border:0;border-radius:10px;padding:11px 16px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}
.advanced .secondary{background:var(--accent-soft);color:var(--accent-ink)}
.advanced .file input{position:absolute;width:1px;height:1px;opacity:0}
.advanced .example{overflow:auto;padding:12px;border-radius:10px;background:var(--sunken);font-size:14px}

/* ── 푸터 (땅) ── */
.site-footer{position:relative;margin-top:96px;padding:40px 0 48px;background:#3A2716;color:#F1E3CC;font-size:14px;font-weight:500;line-height:1.8}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px;background:linear-gradient(180deg,#8BC75A,#5E9E37);box-shadow:inset 0 -3px 0 rgba(0,0,0,.15)}
[data-theme="dark"] .site-footer{background:#0F0B08}
[data-theme="dark"] .site-footer::before{background:linear-gradient(180deg,#4E7F33,#355A22)}
.site-footer a{color:#FFB443}
.footer-brand{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-family:var(--font-game);font-size:20px;color:#FFF4E2}
.footer-brand .brand-logo{width:34px;height:34px}
.site-footer p{margin:0}

/* ── 모바일 빠른 결과 바 ── */
.quick-bar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:12px;padding:10px 10px 10px 16px;border-radius:16px;background:#3A2716;border:2px solid #5A4330;color:#FFF4E2;box-shadow:0 14px 34px -10px rgba(0,0,0,.5);transform:translateY(calc(100% + 24px));transition:transform .25s ease;pointer-events:none}
.quick-bar.show{transform:none;pointer-events:auto}
.qb-dot{width:11px;height:11px;border-radius:50%;flex:none;background:#8C7760}
.quick-bar[data-result="enough"] .qb-dot{background:#6CC657;box-shadow:0 0 0 4px rgba(108,198,87,.25)}
.quick-bar[data-result="short"] .qb-dot{background:#FF6B57;box-shadow:0 0 0 4px rgba(255,107,87,.25)}
.qb-text{display:grid;flex:1;min-width:0;line-height:1.3}
.qb-name{font-size:13px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qb-status{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.quick-bar button{flex:none;height:40px;padding:0 14px;border:0;border-radius:10px;background:linear-gradient(180deg,#FFB443,#F08A1C);color:#fff;font-size:14px;font-weight:800;box-shadow:0 2px 0 #C8650C;cursor:pointer}

/* ── 반응형 ── */
@media (max-width:960px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.two-col{grid-template-columns:minmax(0,1fr);gap:14px}.sticky-col{position:static}}
@media (min-width:861px){.quick-bar{display:none}}
@media (max-width:768px){.hero{background-image:url('../autumn-hero.png');background-image:image-set(url('../autumn-hero-mobile.webp') type('image/webp'),url('../autumn-hero.png') type('image/png'));background-position:center 62%}}
@media (max-width:640px){
  :root{--header-h:60px}
  body{font-size:15px}
  .container{padding:0 16px}
  .brand-sub{display:none}
  .brand-name{font-size:19px}
  .brand-logo{width:38px;height:38px}
  .main-nav a{height:38px;padding:0 9px;font-size:14px;gap:5px}
  .main-nav .icon,.nav-long{display:none}
  .theme-toggle{width:38px;height:38px}
  .hero{padding:48px 0 104px}
  .hero p{font-size:15px}
  .hero-kicker{font-size:11px}
  .tool-grid{gap:10px;margin-top:-68px}
  .tool-card{padding:14px}
  .tool-icon{width:38px;height:38px;margin-bottom:6px}
  .tool-icon .icon{width:19px;height:19px}
  .tool-title{font-size:16px}
  .tool-desc{font-size:13px}
  .tool-go,.badge{top:14px;right:12px}
  .tool-section{padding-top:56px}
  .section-head{align-items:flex-start;flex-wrap:wrap;gap:10px}
  .section-head h2{font-size:27px}
  .section-head p{font-size:15px}
  .section-pill:not(.event-pill){display:none}
  .card{padding:0 18px 20px;border-radius:16px}
  .win-bar{margin:0 -18px 18px;padding:11px 18px}
  .field-grid{gap:12px}
  input[type="date"].input{padding:0 8px 0 10px;font-size:14px;letter-spacing:-.02em}
  input[type="date"].input::-webkit-calendar-picker-indicator{margin-left:2px;padding:0}
  .job-toggle{font-size:14px}
  .results{max-height:310px}
  .target-stage{width:80px;height:80px}
  .target-stage img{width:68px;height:68px}
  .stat .number{font-size:34px}
  .result-headline{font-size:20px}
  #monpaFinal{font-size:40px}
  .monpa-pct{font-size:18px}
  .list-legend{justify-content:flex-start}
  .monpa-stats strong{font-size:18px}
  .monpa-stats div{padding:12px 14px}
  .disclosure>summary{padding:14px 16px}
  .table-wrap{padding:0 12px 8px}
  .site-footer{margin-top:72px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .leaves{display:none}
}

/* ── 몬스터 도감 · 상세 페이지 ── */
.page-main{padding-top:28px}
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 16px;font-size:14px;font-weight:600;color:var(--text-sub)}
.breadcrumb a{color:var(--text-sub);text-decoration:none}
.breadcrumb a:hover{color:var(--accent-ink);text-decoration:underline}
.page-title{margin:6px 0 6px;font-family:var(--font-game);font-weight:700;font-size:34px;line-height:1.25}
.mob-hero{display:flex;flex-wrap:wrap;align-items:center;gap:22px}
.mob-hero .target-stage{width:150px;height:150px}
.mob-hero .target-stage img{width:130px;height:130px}
.mob-hero-copy{display:grid;gap:12px;min-width:0;flex:1}
.mob-title{margin:0;font-family:var(--font-game);font-weight:700;font-size:40px;line-height:1.2}
.mob-title small{margin-left:6px;font-family:var(--font-body);font-size:17px;font-weight:700;color:var(--text-sub)}
.tag-row{display:flex;flex-wrap:wrap;gap:6px}
.tag{padding:4px 10px;border-radius:999px;border:1.5px solid var(--border);background:var(--sunken);font-size:14px;font-weight:700;color:var(--text-sub)}
.tag.lv{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));color:var(--accent-ink)}
.tag.hot{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger)}
.tag.good{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 35%,transparent);color:var(--success)}
.btn{display:inline-flex;align-items:center;justify-self:start;gap:8px;height:44px;padding:0 18px;border-radius:12px;background:linear-gradient(180deg,var(--accent-hi),var(--accent));color:#fff;font-size:15px;font-weight:800;text-decoration:none;box-shadow:0 3px 0 var(--accent-lo);transition:transform .1s}
.btn:hover{filter:brightness(1.04)}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent-lo)}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:20px;align-items:start}
.win-bar h3 small{margin-left:4px;font-size:14px;font-weight:600;opacity:.85}
.stat-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.stat-list div{padding:12px 14px;border-radius:12px;border:2px solid var(--border);background:var(--card);min-width:0}
.stat-list .wide{grid-column:1/-1}
.stat-list dt{font-size:14px;font-weight:700;color:var(--text-sub)}
.stat-list dd{margin:2px 0 0;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.table-scroll{overflow-x:auto}
.acc-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.acc-table th,.acc-table td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:15px;white-space:nowrap}
.acc-table th{font-size:14px;font-weight:700;color:var(--text-sub)}
.acc-table th small{font-weight:600}
.acc-table td strong{font-size:17px;font-weight:800}
.acc-table tr.same td{background:var(--accent-soft)}
.map-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.map-list li{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;padding:12px 14px;border-radius:12px;border:2px solid var(--border);background:var(--card);font-weight:700}
.map-list li span{font-size:14px;font-weight:600;color:var(--text-sub)}
.drop-group{margin:14px 0 8px;font-size:14px;font-weight:800}
.drop-group small{color:var(--text-sub);font-weight:600}
.drop-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.drop-list li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:10px;background:var(--sunken);font-size:14px;font-weight:600}
.related-block{margin-top:36px}
.sub-title{margin:0 0 12px;font-size:20px;font-weight:800;letter-spacing:-.02em}
.related{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mob-card{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border-radius:14px;border:2px solid var(--border);background:var(--card);color:var(--text);text-decoration:none;transition:transform .15s,border-color .15s}
.mob-card:hover{transform:translateY(-2px);border-color:var(--accent-hi)}
.mob-card img{width:40px;height:40px;flex:none;object-fit:scale-down;image-rendering:auto}
.mob-card>span{display:grid;min-width:0}
.mob-card strong{overflow:hidden;font-size:15px;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.mob-card strong small{font-size:13px;font-weight:500;color:var(--text-sub)}
.mob-card>span>span{font-size:13px;font-weight:600;color:var(--text-sub);font-variant-numeric:tabular-nums}
.dex-toolbar{display:grid;grid-template-columns:minmax(0,360px) auto 1fr;align-items:center;gap:12px}
.dex-toolbar .search-wrap{margin:0}
.dex-toolbar .level-filters{margin:0}
.dex-toolbar .count{justify-self:end}
.dex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-top:16px}
.dex-grid .mob-card[hidden]{display:none}
.detail-link{justify-self:start;font-size:14px;font-weight:800;color:var(--accent-ink);text-decoration:none}
.detail-link:hover{text-decoration:underline}
@media (max-width:860px){
  .page-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dex-toolbar{grid-template-columns:minmax(0,1fr)}
  .dex-toolbar .count{justify-self:start}
}
@media (max-width:640px){
  .mob-title{font-size:32px}
  .page-title{font-size:28px}
  .mob-hero .target-stage{width:110px;height:110px}
  .mob-hero .target-stage img{width:96px;height:96px}
  .stat-list dd{font-size:18px}
}
.drop-count{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--text-sub)}
.drop-group:first-of-type{margin-top:6px}
.drop-quest{flex:none;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:13px;font-weight:800}
@media (min-width:641px){.drop-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.drop-list li{align-items:center;justify-content:flex-start}
.drop-list li img,.drop-noicon{width:32px;height:32px;flex:none;object-fit:scale-down;image-rendering:auto}
.drop-list li>span{flex:1;min-width:0}
.drop-hint{margin-left:4px;font-size:13px;font-weight:600;color:var(--text-faint)}
.drop-list li.is-uncertain{background:transparent;border:1.5px dashed var(--border-strong)}
.drop-list li.is-uncertain img,.drop-list li.is-uncertain>span{opacity:.6}
.drop-uncertain{flex:none;padding:1px 8px;border-radius:999px;background:var(--sunken);border:1px solid var(--border-strong);color:var(--text-sub);font-size:11px;font-weight:800;white-space:nowrap}
.drop-legend{margin:0 0 6px;font-size:14px;font-weight:600;color:var(--text-sub)}
.drop-legend .drop-uncertain{margin-right:2px}

/* ── 도감 필터 · 아이템 페이지 ── */
.dex-filters{margin-top:14px;padding:16px 18px;border-radius:16px;border:2px solid var(--border);background:var(--card);box-shadow:0 3px 0 var(--edge)}
.dex-filter-group+.dex-filter-group{margin-top:12px}
.dex-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
.dex-filter-row .field{width:180px}
.dex-filter-row select.input{font-size:15px;padding-right:10px}
.dex-filters .notice{margin-top:10px}
.mob-card .mob-sub{font-size:13px;font-weight:500;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mob-card .mob-need{justify-self:start;margin:4px 0 0}
.mob-card .mob-need[hidden]{display:none}
.mob-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.mob-card.is-uncertain{border-style:dashed}
.mob-card.is-uncertain img{opacity:.6}
.drop-list li>a{display:flex;align-items:center;gap:10px;flex:1;min-width:0;color:inherit;text-decoration:none}
.drop-list li>a:hover>span{text-decoration:underline}
.drop-list li>a>span{flex:1;min-width:0}
.drop-list li.is-uncertain a>img,.drop-list li.is-uncertain a>span{opacity:.6}
.item-stage{display:grid;place-items:center}
.item-stage img{width:64px;height:64px;object-fit:scale-down;image-rendering:auto}
.item-title{font-size:34px}
.item-card img{width:36px;height:36px;flex:none;object-fit:scale-down;image-rendering:auto}
.sub-title small{font-size:14px;font-weight:600;color:var(--text-sub)}
.map-list .map-name{font-size:15px;font-weight:700;color:var(--text)}
@media (max-width:640px){.dex-filter-row .field{width:calc(50% - 5px)}.item-title{font-size:28px}}

/* ── 맵 페이지 ── */
.map-check{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.map-check .field{width:170px}
.map-need{margin:0;padding:10px 14px;border-radius:12px;background:var(--sunken);font-size:14px;font-weight:700;color:var(--text-sub)}
.map-need.ok{background:var(--success-soft);color:var(--success)}
.map-need.short{background:var(--danger-soft);color:var(--danger)}
.map-card .map-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--accent-soft);color:var(--accent-ink)}
.map-card .map-icon .icon{width:20px;height:20px}
.street-group{margin-top:28px}
.street-group .sub-title{margin-bottom:10px}
.map-drops{margin-top:28px}
.map-drops-body{padding:0 20px 16px;border-top:2px dashed var(--border)}
.map-list .map-name a{color:inherit;text-decoration:none;border-bottom:1.5px dashed var(--border-strong)}
.map-list .map-name a:hover{color:var(--accent-ink);border-color:var(--accent)}
@media (max-width:640px){.map-check .field{width:calc(50% - 5px)}.map-drops-body{padding:0 12px 12px}}
@media (max-width:420px){.brand-text{display:none}.main-nav a{padding:0 7px}}

/* ── 맵 이미지 ── */
.map-shot{margin:0 0 18px;border-radius:14px;overflow:hidden;border:2px solid var(--border);background:linear-gradient(180deg,#B2DBF7,#EBF6FF)}
.map-shot img{display:block;width:100%;max-height:460px;object-fit:contain}
.map-shot figcaption{padding:8px 12px;border-top:2px solid var(--border);background:var(--sunken);font-size:13px;font-weight:600;color:var(--text-sub)}
.map-card{align-items:stretch}
.map-card .map-thumb{width:96px;height:64px;flex:none;object-fit:cover;object-position:center bottom;border-radius:10px;border:1.5px solid var(--border);image-rendering:auto;background:#CFE8FF}
@media (max-width:640px){.map-shot img{max-height:300px}.map-card .map-thumb{width:80px;height:56px}}

/* ── 맵 목록: 대륙 → 마을 ── */
.region-jump{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.region-jump .level-chip{display:inline-flex;align-items:center;text-decoration:none}
.continent-group{margin-top:40px;scroll-margin-top:calc(var(--header-h) + 12px)}
.continent-title{display:flex;align-items:center;gap:8px;margin:0 0 4px;padding-bottom:10px;border-bottom:2px dashed var(--border-strong);font-size:26px;font-weight:800;letter-spacing:-.02em}
.continent-title svg{width:22px;height:22px;fill:var(--accent)}
.continent-title small{font-size:15px;font-weight:600;color:var(--text-sub)}
.continent-group .street-group{margin-top:18px}
.continent-group .street-group .sub-title{font-size:18px}
@media (max-width:640px){.continent-title{font-size:22px}}

/* ── 통합 검색 (assets/search.js) ── */
.search-open{display:inline-flex;align-items:center;gap:8px;height:40px;min-width:168px;padding:0 8px 0 12px;flex:none;border-radius:12px;border:2px solid var(--border);background:var(--sunken);color:var(--text-faint);font:700 14px var(--font-body);cursor:pointer;transition:border-color .15s,background-color .15s}
.search-open:hover{border-color:var(--border-strong);background:var(--card);color:var(--text-sub)}
.search-open .icon{width:17px;height:17px}
.search-open span{margin-right:auto}
.search-open kbd,.search-close,.search-foot kbd{display:inline-block;min-width:20px;padding:1px 6px;border-radius:6px;border:1.5px solid var(--border-strong);border-bottom-width:3px;background:var(--card);color:var(--text-sub);font:700 11px var(--font-body);text-align:center}
.search-dialog{width:min(640px,calc(100% - 32px));max-height:min(640px,calc(100dvh - 96px));margin:76px auto auto;padding:0;border:2px solid var(--border-strong);border-radius:var(--radius);background:var(--card);color:var(--text);box-shadow:0 5px 0 var(--edge),0 30px 60px -20px rgba(40,22,8,.55);overflow:hidden}
.search-dialog[open]{display:flex;flex-direction:column}
.search-dialog::backdrop{background:rgba(36,22,10,.45)}
.search-box{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:2px solid var(--border)}
.search-box .icon{width:20px;height:20px;flex:none;color:var(--accent-ink)}
.search-box input{flex:1;min-width:0;height:36px;border:0;outline:0;background:transparent;color:var(--text);font:600 17px var(--font-body)}
.search-box input::placeholder{color:var(--text-faint)}
.search-close{cursor:pointer;padding:3px 8px}
.search-results{flex:1;overflow:auto;padding:6px 8px 10px;overscroll-behavior:contain}
.search-group h3{margin:10px 10px 4px;color:var(--text-faint);font:800 13px var(--font-body)}
.search-group h3 small{font-weight:700}
.search-hit{display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 10px;border-radius:12px;color:var(--text);text-decoration:none}
.search-hit img,.search-hit i{width:40px;height:40px;flex:none;border-radius:9px;background:var(--sunken);object-fit:contain}
.search-hit.is-p img,.search-hit.is-p i{width:58px;object-fit:cover}
.search-hit.is-t i{background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C8650C' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6'/%3E%3C/svg%3E") center/20px no-repeat}
.search-hit span{min-width:0}
.search-hit strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:800}
.search-hit small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-sub);font-size:14px;font-weight:600}
.search-hit:hover,.search-more:hover,.search-results [aria-selected="true"]{background:var(--accent-soft)}
.search-results [aria-selected="true"] strong{color:var(--accent-ink)}
.search-more{display:block;padding:8px 10px;border-radius:12px;color:var(--accent-ink);font-size:14px;font-weight:800;text-decoration:none}
.search-empty{margin:0;padding:28px 12px;text-align:center;color:var(--text-sub);font-size:15px;line-height:1.8}
.search-try{margin:8px 4px 0;padding:4px 12px;border-radius:999px;border:2px solid var(--border);background:var(--sunken);color:var(--text-sub);font:700 14px var(--font-body);cursor:pointer}
.search-try:hover{border-color:var(--accent);color:var(--accent-ink)}
.search-foot{display:flex;gap:16px;margin:0;padding:8px 14px;border-top:2px solid var(--border);color:var(--text-faint);font-size:13px;font-weight:600}
.search-foot kbd{margin-right:3px}
@media (hover:none){.search-foot,.search-open kbd{display:none}}
@media (max-width:860px){.search-open{min-width:0}.search-open span{display:none}.search-open kbd{display:none}.search-open{width:40px;padding:0;justify-content:center}}
@media (max-width:640px){.search-open{width:38px;height:38px}.search-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);margin-top:12px}.search-box input{font-size:16px}}
.search-open[hidden]{display:none}
.search-box input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.not-found-body{padding:28px 24px 30px;text-align:center}
.not-found-body p{color:var(--text-sub)}
.not-found-body .chip-row{justify-content:center;margin-top:18px}
/* 몬스터 그림: 큰 그림은 부드럽게 줄이고, 작은 그림은 원래 크기 또는 정확히 2·3배로 (assets/sprite.js) */
.search-hit img{object-fit:scale-down}
/* 스공 계산기 (stat/index.html) */
.stat-sub{margin:22px 0 4px;font-size:16px}
.stat-eff{display:grid;gap:8px;margin-top:8px}
.stat-eff p{margin:0;padding:12px 14px;border-radius:12px;background:var(--sunken);font-size:16px;font-weight:600}
.stat-eff b{font-size:20px;font-weight:800;color:var(--accent-ink)}
.stat-eff small{display:block;margin-top:2px;color:var(--text-sub);font-size:14px;font-weight:600}
.dex-value.is-up{color:var(--success)}.dex-value.is-down{color:var(--danger)}
.stat-table td,.stat-table th{white-space:nowrap}
.btn-row{display:flex;flex-wrap:wrap;gap:8px}
.btn.btn-sub{background:var(--card);color:var(--accent-ink);border:2px solid var(--accent);box-shadow:none}
.kill-empty{margin:6px 0 0;padding:14px;border-radius:12px;background:var(--sunken);color:var(--text-sub);font-size:15px}
.kill-verdict{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-top:8px;padding:14px 16px;border-radius:14px;background:var(--accent-soft)}
.kill-verdict strong{font-family:var(--font-game);font-size:32px;line-height:1.2;color:var(--accent-ink)}
.kill-verdict span{font-size:15px;font-weight:700;color:var(--text-sub)}
.kill-opts{margin-top:16px}
.kill-opts .check-chip[hidden]{display:none}
.stat-buffs{margin-top:12px}
.kill-prob{display:grid;gap:6px;margin-top:8px}
.kp-row{display:grid;grid-template-columns:84px minmax(0,1fr) 56px;align-items:center;gap:10px;font-size:15px;font-weight:700}
.kp-bar{height:12px;border-radius:999px;background:var(--meter-track);overflow:hidden}
.kp-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent-hi),var(--accent))}
.kp-row b{text-align:right;font-variant-numeric:tabular-nums}
.kill-list-box{margin-top:18px;padding-top:6px;border-top:2px dashed var(--border)}
.kill-list{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.kill-list li{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;background:var(--sunken);font-size:15px}
.kill-list a{font-weight:800;color:var(--text);text-decoration:none}
.kill-list a:hover{color:var(--accent-ink)}
.kill-list span{flex:none;color:var(--text-sub);font-weight:600;font-size:14px}
.kill-list .kill-none{justify-content:center;color:var(--text-sub)}
.skill-field{grid-column:1/-1}
@media (min-width:641px){.skill-field{grid-column:auto / span 1}.field-grid .skill-field{grid-column:1/2}.field-grid .skill-lv-field{grid-column:2/3}}
.kp-row.is-mid span:first-child,.kp-row.is-mid b{color:var(--accent-ink)}
.kill-verdict span{line-height:1.5}

/* 상단 메뉴 "계산기" 펼침 (assets/nav.js) */
.nav-menu{position:relative}
.nav-menu-btn{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px 0 14px;border:0;border-radius:12px;background:transparent;color:var(--text-sub);font:700 15px var(--font-body);cursor:pointer;white-space:nowrap;transition:background-color .15s,color .15s}
.nav-menu-btn:hover,.nav-menu-btn[aria-expanded="true"]{background:var(--sunken);color:var(--text)}
.nav-menu-btn[aria-current="true"]{background:var(--accent-soft);color:var(--accent-ink)}
.nav-menu-btn .nav-chev{width:14px;height:14px;transition:transform .15s}
.nav-menu-btn[aria-expanded="true"] .nav-chev{transform:rotate(180deg)}
.nav-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:60;display:grid;gap:2px;min-width:190px;padding:6px;border:2px solid var(--border-strong);border-radius:14px;background:var(--card);box-shadow:0 4px 0 var(--edge),0 18px 36px -18px rgba(40,22,8,.45)}
.nav-pop[hidden]{display:none}
.main-nav .nav-pop a{display:block;height:auto;padding:10px 12px;border-radius:10px;font-size:15px}
@media (max-width:640px){.nav-menu-btn{height:38px;padding:0 8px;font-size:14px;gap:4px}.nav-menu-btn>.icon:first-child{display:none}.nav-pop{left:-8px}}
