:root{
  --bg:#eef3ff;
  --navy:#12182d;
  --panel:#ffffff;
  --ink:#172033;
  --muted:#687187;
  --line:#e4e9f5;
  --soft:#f6f8ff;
  --accent:#ff982e;
  --accent2:#6d5bff;
  --good:#0c896b;
  --danger:#cf3554;
  --shadow:0 18px 42px rgba(23,32,51,.15);
  --radius:24px;
}
*{box-sizing:border-box}
body{
  margin:0;
  color:var(--ink);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;
  background:
    radial-gradient(circle at 15% -5%,rgba(255,178,55,.35),transparent 32%),
    radial-gradient(circle at 85% 0%,rgba(109,91,255,.28),transparent 34%),
    linear-gradient(180deg,var(--navy) 0 310px,var(--bg) 310px 100%);
  min-height:100vh;
}
button,select,input{font:inherit}
button,.fileLabel{cursor:pointer;transition:.14s transform,.14s opacity,.14s box-shadow}
button:hover,.fileLabel:hover{transform:translateY(-1px)}
button:active{transform:translateY(1px)}
.topbar{
  max-width:1220px;
  margin:0 auto;
  padding:32px 22px 22px;
  min-height:300px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:20px;
  align-items:center;
  color:#fff;
}
.eyebrow{display:inline-flex;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-weight:900;color:#ffe2ae;margin:0 0 10px}
h1{font-size:clamp(2.2rem,6vw,4.7rem);line-height:1;letter-spacing:-.07em;margin:0 0 12px}
.lead{font-size:1.04rem;line-height:1.8;color:#edf1ff;max-width:760px;margin:0}
.topArt{position:relative;height:260px;display:grid;place-items:center;overflow:hidden}
.topMachine{width:230px;filter:drop-shadow(0 24px 28px rgba(0,0,0,.35));animation:floaty 3.2s ease-in-out infinite}
.topBall{position:absolute;width:72px;filter:drop-shadow(0 12px 14px rgba(0,0,0,.28));animation:orb 4s ease-in-out infinite}
.topBall1{left:20px;top:50px}.topBall2{right:22px;top:34px;animation-delay:-1.2s}.topBall3{right:88px;bottom:24px;animation-delay:-2.1s}
@keyframes floaty{50%{transform:translateY(-9px)}}
@keyframes orb{50%{transform:translateY(-13px) rotate(18deg) scale(1.06)}}
.appShell{max-width:1220px;margin:0 auto;padding:0 22px 38px;display:grid;grid-template-columns:350px minmax(0,1fr);gap:18px;align-items:start}
.panel{background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.8);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;overflow:hidden}
.sidePanel{position:sticky;top:14px}.mainGrid{display:grid;gap:18px}
.panelHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.wrapHead{align-items:flex-start;flex-wrap:wrap}
h2{font-size:1.24rem;margin:0;letter-spacing:-.03em} h3{font-size:1rem;margin:0}
.stepBlock{border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,#fff,#fbfcff);padding:14px;margin-top:12px}
.stepLabel{display:flex;align-items:center;gap:9px;font-weight:950;margin-bottom:10px;color:#2d3650}
.stepLabel b{display:grid;place-items:center;width:25px;height:25px;border-radius:9px;background:#fff2d9;color:#8b4b00;border:1px solid #ffd59c}
.hint,.muted{color:var(--muted);font-size:.9rem;line-height:1.6;margin:.3rem 0}
select,input[type="number"],input[type="text"]{width:100%;border:1px solid var(--line);border-radius:14px;padding:10px 11px;background:#fff;color:var(--ink);outline:none}
select:focus,input:focus{border-color:#b9b3ff;box-shadow:0 0 0 4px rgba(109,91,255,.12)}
.primary,.plain,.fileLabel{border:0;border-radius:14px;padding:10px 13px;font-weight:950;display:inline-flex;align-items:center;justify-content:center;gap:7px}
.primary{background:linear-gradient(135deg,var(--accent),#ffcf68);color:#3a2100;box-shadow:0 10px 20px rgba(255,152,46,.25)}
.plain,.fileLabel{background:#f1f4fb;color:#29324a;border:1px solid #e2e8f5}.small{font-size:.82rem;padding:7px 10px;border-radius:11px}.fileLabel input{display:none}
.presetRow{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.presetRow button{padding:7px 9px;border-radius:999px;background:#fff7e8;border:1px solid #ffdfad;color:#7a4300;font-weight:900}
.pillGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pill{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 8px;font-size:.86rem;font-weight:950;color:#3b455f}.pill.active{background:#201a4a;color:#fff;border-color:#201a4a;box-shadow:0 9px 18px rgba(32,26,74,.18)}
.hidden{display:none!important}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 9px;font-size:.86rem;font-weight:900}.chip input{accent-color:var(--accent2)}
.infoBox{margin-top:12px;background:#fff9eb;border:1px solid #ffe0a4;color:#63420a;border-radius:18px;padding:12px;font-size:.88rem;line-height:1.6}.infoBox b{color:#422800}.warnings{display:grid;gap:9px;margin-bottom:12px}.warn{background:#fff4e7;border:1px solid #ffd4a1;color:#7c4300;border-radius:14px;padding:10px 12px;font-size:.88rem;font-weight:850}.warn.danger{background:#fff0f3;border-color:#ffc7d0;color:#82192f}
.statCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.statCard{border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#fbfcff,#f4f7ff);padding:14px;min-height:105px}.statLabel{font-size:.78rem;color:var(--muted);font-weight:950}.statValue{font-size:clamp(1.28rem,2.7vw,2rem);font-weight:1000;letter-spacing:-.05em;margin:3px 0}.statSub{font-size:.81rem;color:var(--muted);line-height:1.35}.rankSummary{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.rankBars{display:grid;gap:10px;margin-top:10px}.barRow{display:grid;grid-template-columns:70px 1fr 120px;gap:10px;align-items:center;font-size:.88rem}.barLabel{font-weight:1000}.barTrack{height:12px;background:#edf1fa;border-radius:999px;overflow:hidden}.barFill{height:100%;background:linear-gradient(90deg,#ffb12e,#6d5bff);border-radius:999px;transition:width .25s}.barVal{text-align:right;color:var(--muted);font-weight:900;display:grid;gap:1px}.barVal b{color:var(--ink);font-size:.93rem}.barVal small{font-size:.72rem;color:var(--muted)}
.drawArea{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px}.drawBox{border:1px solid var(--line);border-radius:21px;background:#fbfcff;padding:14px}.drawHead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.machineStage{position:relative;height:315px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 18%,#fff,#eef3ff 58%,#dee7f8);border:1px solid var(--line)}.machine{position:absolute;left:50%;top:14px;width:150px;transform:translateX(-50%);filter:drop-shadow(0 18px 22px rgba(0,0,0,.18));z-index:1}.machine.shake{animation:shake .45s ease-in-out}.singleResult{position:absolute;left:18px;right:18px;bottom:16px;min-height:132px;border-radius:18px;background:rgba(255,255,255,.87);border:1px solid rgba(255,255,255,.9);display:grid;place-items:center;padding:10px;box-shadow:0 14px 28px rgba(23,32,51,.12)}.emptyText{color:#8892a8;font-weight:900}.tenResults{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-height:315px}.slot{position:relative;min-height:148px;border:1px dashed #d8dfed;border-radius:18px;background:#fff;overflow:hidden;display:grid;place-items:center;padding:8px}.slot.wait::after{content:"?";font-size:2rem;font-weight:1000;color:#c0c8da}.slot .capsuleFly{position:absolute;width:74px;z-index:2;filter:drop-shadow(0 12px 12px rgba(0,0,0,.2));animation:capsulePop .38s ease-out both}.slot .resultCard{opacity:0;transform:scale(.92);animation:cardIn .2s ease-out .34s both}.slot.reducedMotion .capsuleFly{animation:none}.slot.reducedMotion .resultCard{animation:none;opacity:1;transform:none}
.resultCard{width:100%;display:grid;justify-items:center;text-align:center;gap:5px}.rankIcon{width:55px;height:55px;object-fit:contain;filter:drop-shadow(0 7px 8px rgba(0,0,0,.15))}.singleResult .rankIcon{width:74px;height:74px}.cardRank{font-weight:1000;font-size:.83rem;color:#37415c}.cardName{font-size:.9rem;font-weight:950;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rateText{font-size:.74rem;color:var(--muted);font-weight:800}.slot.hit,.singleResult.hit{box-shadow:0 0 0 3px rgba(255,152,46,.25) inset,0 14px 30px rgba(255,152,46,.12);border-color:#ffc36d}.slot.ultra,.singleResult.ultra{box-shadow:0 0 0 3px rgba(109,91,255,.22) inset,0 14px 30px rgba(109,91,255,.16);border-color:#b9b1ff}.rollSummary{margin-top:10px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:10px 12px;font-weight:850}
@keyframes shake{15%,55%{transform:translateX(-50%) rotate(-4deg)}35%,75%{transform:translateX(-50%) rotate(4deg)}}
@keyframes capsulePop{0%{transform:translateY(-78px) scale(.45) rotate(-40deg);opacity:0}55%{transform:translateY(10px) scale(1.08) rotate(20deg);opacity:1}100%{transform:translateY(0) scale(.82) rotate(0deg);opacity:0}}
@keyframes cardIn{from{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.buttonGroup{display:flex;gap:8px;flex-wrap:wrap}.tableWrap{overflow:auto;max-height:560px;border:1px solid var(--line);border-radius:18px}table{width:100%;border-collapse:collapse;min-width:780px;background:#fff}th,td{border-bottom:1px solid var(--line);padding:9px;text-align:left;font-size:.88rem}th{position:sticky;top:0;background:#f8faff;z-index:1;color:#4d5872;font-size:.8rem}td input[type="text"],td input[type="number"],td select{padding:8px;border-radius:10px}.ownedCell{text-align:center}.delBtn{background:#fff0f3!important;border-color:#ffd1da!important;color:#9a1832!important;padding:7px 9px!important}.footer{max-width:1220px;margin:0 auto 28px;padding:0 22px;color:#616b82;font-size:.88rem;line-height:1.6}
@media (max-width:980px){.topbar{grid-template-columns:1fr;min-height:auto}.topArt{height:170px}.topMachine{width:160px}.topBall{width:55px}.appShell{grid-template-columns:1fr}.sidePanel{position:static}.statCards{grid-template-columns:repeat(2,minmax(0,1fr))}.drawArea{grid-template-columns:1fr}.tenResults{grid-template-columns:repeat(5,1fr)}}
@media (max-width:560px){body{background:linear-gradient(180deg,var(--navy) 0 250px,var(--bg) 250px 100%)}.topbar{padding-top:22px}.appShell{padding:0 12px 30px}.panel{padding:14px;border-radius:20px}.statCards{grid-template-columns:1fr}.tenResults{grid-template-columns:repeat(2,1fr)}.drawHead{align-items:stretch;flex-direction:column}.primary{width:100%}.pillGrid{grid-template-columns:1fr}.barRow{grid-template-columns:58px 1fr 84px}.topArt{display:none}}


/* v5: 結果演出ではZZZ以上だけ名前を出し、ZZ以下はランクだけで見せる */
.resultCard.nameHidden .cardName {
  opacity: .82;
  font-weight: 800;
  letter-spacing: .03em;
}
.resultCard.nameHidden .rateText {
  color: #68707c;
}
.resultCard.nameShown .cardName {
  font-size: 1.02em;
}

/* v6: uploaded rank images + yokai result frame */
.capsuleFly{position:absolute;width:78px;z-index:5;filter:drop-shadow(0 12px 12px rgba(0,0,0,.2));animation:capsulePop .38s ease-out both;pointer-events:none}.singleResult .capsuleFly{width:100px}.singleResult .resultCard{position:relative;z-index:4;width:100%;max-width:245px}.slot .resultCard{position:relative;z-index:4}.yokaiFrame{position:relative;width:86px;height:86px;display:grid;place-items:center;margin:-3px auto 0}.yokaiBase{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 7px 8px rgba(0,0,0,.20))}.yokaiFrame .rankIcon{position:relative;z-index:2;width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 5px 5px rgba(0,0,0,.22));transform:translateY(1px)}.singleResult .yokaiFrame{width:126px;height:126px;margin-top:-5px}.singleResult .yokaiFrame .rankIcon{width:70px;height:70px}.plainRank{width:64px;height:64px;object-fit:contain}.singleResult .plainRank{width:86px;height:86px}.singleResult .cardName{font-size:1.04rem;min-height:1.25em}.slot .cardName{font-size:.82rem;min-height:2.05em}.slot.guaranteedSlot,.singleResult.guaranteedSlot{border-color:#ffb12e;box-shadow:0 0 0 3px rgba(255,177,46,.25) inset,0 14px 30px rgba(255,177,46,.16)}.guaranteeBadge{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 2px;padding:3px 8px;border-radius:999px;background:#201a4a;color:#fff;font-size:.68rem;font-weight:1000;letter-spacing:.02em}.resultCard.fromGuarantee .cardRank::after{content:" 確定";font-size:.72em;color:#8b4b00;background:#fff2d9;border:1px solid #ffd59c;border-radius:999px;padding:1px 5px;margin-left:3px}.singleResult{overflow:hidden}.singleResult::before{content:"";position:absolute;inset:auto 18px 10px;height:105px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.15));pointer-events:none}.slot .capsuleFly{width:74px}

/* v7: 狙い判定と期待値UIをZZZ以上に絞る */
#targetChips{display:grid;gap:10px}.targetGroup{width:100%;border:1px solid #edf1fa;border-radius:15px;background:#fbfcff;padding:10px}.targetGroupTitle{font-size:.78rem;font-weight:1000;color:#5a647c;margin-bottom:8px}.targetChip{background:#fff}.nameChips{max-height:156px;overflow:auto;padding-right:3px}.nameChips .chip{font-size:.8rem}
.importantCard{background:linear-gradient(180deg,#fff6e6,#fff)!important;border-color:#ffd492!important}.statCard:first-child .statValue{font-size:1.05rem;line-height:1.25;letter-spacing:-.02em;word-break:break-word}.targetBreakdown{margin-top:16px;border:1px solid var(--line);border-radius:19px;background:#fbfcff;padding:14px}.breakHead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.breakSubTitle{margin:12px 0 8px;font-size:.84rem;font-weight:1000;color:#4b5570}.targetRows{display:grid;gap:8px}.targetRow{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(75px,.6fr));gap:8px;align-items:center;border:1px solid #e8edf7;border-radius:14px;background:#fff;padding:9px}.targetRow.selectedTarget{border-color:#ffbf69;background:#fff8ed}.targetName{font-weight:1000;min-width:0}.targetName span{display:inline-flex;margin-left:6px;padding:2px 7px;border-radius:999px;background:#201a4a;color:#fff;font-size:.68rem;vertical-align:middle}.targetMetric{text-align:right}.targetMetric b{display:block;font-size:.95rem}.targetMetric small{display:block;color:var(--muted);font-size:.68rem;font-weight:850}.emptyBreak{border:1px dashed #d8dfed;border-radius:14px;color:var(--muted);font-weight:850;padding:12px;background:#fff;text-align:center}

/* v7: 妖怪枠の透過荒れ対策 + サイズ調整 + 1連演出の重なり防止 */
.machineStage{height:338px}.singleResult{min-height:148px;padding:12px 10px}.singleResult.singleRolling{display:grid;place-items:center;gap:8px}.singleResult.singleRolling .emptyText{margin-top:92px}.capsuleFly.singleCapsule{width:86px;animation:singleCapsuleDrop .58s ease-out both}.singleResult.singleReveal .resultCard{animation:cardIn .18s ease-out both}.yokaiFrame{width:68px;height:68px;margin:0 auto}.yokaiBase{filter:drop-shadow(0 5px 6px rgba(0,0,0,.24));image-rendering:auto}.yokaiFrame .rankIcon{width:38px;height:38px}.singleResult .yokaiFrame{width:92px;height:92px;margin-top:0}.singleResult .yokaiFrame .rankIcon{width:52px;height:52px}.singleResult .resultCard{max-width:220px;gap:3px}.slot .cardName{font-size:.78rem;min-height:1.9em}.singleResult .cardName{font-size:.98rem;min-height:1.15em}.rankIcon{width:48px;height:48px}.singleResult .rankIcon{width:58px;height:58px}.plainRank{width:54px;height:54px}.singleResult .plainRank{width:66px;height:66px}.rateText{font-size:.69rem}.slot{min-height:138px;padding:7px}.tenResults{min-height:300px}.slot .capsuleFly{width:64px}.singleResult::before{height:112px}
@keyframes singleCapsuleDrop{0%{transform:translateY(-62px) scale(.52) rotate(-35deg);opacity:0}45%{transform:translateY(5px) scale(1.05) rotate(18deg);opacity:1}82%{transform:translateY(18px) scale(.92) rotate(0deg);opacity:1}100%{transform:translateY(24px) scale(.86);opacity:0}}
@media (max-width:560px){.targetRow{grid-template-columns:1fr 1fr}.targetName{grid-column:1/-1}.targetMetric{text-align:left}.nameChips{max-height:190px}.machineStage{height:320px}}


/* v9: 10連結果をさらにコンパクト化。5列表示で画像が大きく見えすぎないよう調整 */
.tenBox .tenResults{
  gap:7px;
  min-height:248px;
  align-items:stretch;
}
.tenBox .slot{
  min-height:116px;
  padding:5px 4px;
  border-radius:14px;
}
.tenResults .resultCard{
  gap:2px;
  line-height:1.1;
}
.tenResults .yokaiFrame{
  width:50px;
  height:50px;
  margin:0 auto -1px;
}
.tenResults .yokaiBase{
  filter:drop-shadow(0 3px 4px rgba(0,0,0,.22));
}
.tenResults .yokaiFrame .rankIcon{
  width:30px;
  height:30px;
}
.tenResults .rankIcon{
  width:38px;
  height:38px;
}
.tenResults .plainRank{
  width:42px;
  height:42px;
}
.tenResults .cardRank{
  font-size:.68rem;
  line-height:1.05;
}
.tenResults .cardName{
  font-size:.70rem;
  min-height:1.55em;
  line-height:1.12;
  -webkit-line-clamp:2;
}
.tenResults .rateText{
  font-size:.61rem;
  line-height:1.05;
}
.tenResults .guaranteeBadge{
  font-size:.57rem;
  padding:2px 6px;
  margin-bottom:0;
}
.tenResults .slot .capsuleFly{
  width:46px;
}
.tenResults .resultCard.fromGuarantee .cardRank::after{
  font-size:.62em;
  padding:0 4px;
  margin-left:2px;
}
@media (max-width:560px){
  .tenBox .slot{min-height:112px;}
  .tenResults .yokaiFrame{width:48px;height:48px;}
  .tenResults .yokaiFrame .rankIcon{width:29px;height:29px;}
}

/* v10: 鬼連継続シミュレーター */
.onirenPanel{
  border:1px solid #ffe0a4;
  background:linear-gradient(180deg,#fffdf8,#ffffff);
}
.onirenExpected{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:8px 0 12px;
}
.onirenStat{
  border:1px solid #ffe1aa;
  border-radius:16px;
  background:#fff8ea;
  padding:11px;
}
.onirenStat b{
  display:block;
  font-size:1.18rem;
  color:#5a3200;
  letter-spacing:-.03em;
}
.onirenStat span{
  display:block;
  color:#806034;
  font-size:.76rem;
  font-weight:850;
  margin-top:3px;
}
.onirenRates{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:8px 0 12px;
}
.onirenRate{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid #e8edf7;
  border-radius:999px;
  background:#fff;
  padding:6px 9px;
  font-size:.84rem;
  font-weight:950;
}
.onirenRate span{color:#6d5bff}
.onirenResult{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fbfcff;
  padding:12px;
}
.onirenFinal{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:10px;
}
.onirenFinal b{
  font-size:2rem;
  line-height:1;
  color:#201a4a;
  letter-spacing:-.05em;
}
.onirenFinal span{font-weight:950;color:#5f6881}
.onirenSteps{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:7px;
  margin-bottom:10px;
}
.onirenStep{
  border:1px solid #e2e8f5;
  border-radius:14px;
  background:#fff;
  padding:8px 6px;
  text-align:center;
}
.onirenStep b{display:block;font-size:.9rem}.onirenStep span{display:block;font-size:.66rem;font-weight:950;color:#687187;margin-top:2px}
.onirenStep.continue{background:#effcf8;border-color:#a9e8d6;color:#0c6d55}.onirenStep.stop{background:#fff4e8;border-color:#ffc87f;color:#7b4300}.onirenStep.off{opacity:.45}
.onirenSummary{
  background:#fff;
  border:1px solid #e8edf7;
  border-radius:14px;
  padding:10px;
  font-size:.88rem;
  line-height:1.7;
  font-weight:850;
}
@media(max-width:720px){
  .onirenExpected{grid-template-columns:repeat(2,minmax(0,1fr));}
  .onirenSteps{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:430px){
  .onirenExpected{grid-template-columns:1fr;}
  .onirenSteps{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* v13: スマホ編集向けの調整 */
html{-webkit-text-size-adjust:100%;}
.tableWrap{overflow:auto;-webkit-overflow-scrolling:touch;}
#dataTable{min-width:760px;}
#dataTable th,#dataTable td{vertical-align:middle;}
#dataTable input,#dataTable select{font-size:16px;min-height:38px;}
.pill,.chip,.primary,.plain{touch-action:manipulation;}
.statValue{overflow-wrap:anywhere;}
@media (max-width:720px){
  .topbar{padding-left:14px;padding-right:14px;}
  .appShell{padding-left:10px;padding-right:10px;gap:12px;}
  .panelHead.wrapHead{gap:10px;}
  .panelHead.wrapHead .buttonGroup{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .buttonGroup .fileLabel{grid-column:1/-1;justify-content:center;}
  #pullPresets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
  #pullPresets button{width:100%;min-height:38px;}
  .targetBreakdown{padding:10px;}
  .targetRows{gap:6px;}
  .targetRow{padding:8px;}
}
@media (max-width:560px){
  select,input[type="number"],input[type="text"]{font-size:16px;min-height:42px;}
  .lead{font-size:.94rem;}
  .sidePanel .stepBlock{padding:10px;border-radius:16px;}
  .pillGrid{grid-template-columns:1fr 1fr;gap:7px;}
  .pill{font-size:.82rem;min-height:40px;padding:8px;}
  .chips{gap:6px;}
  .chip{font-size:.8rem;padding:7px 8px;}
  .statCard{padding:11px;border-radius:15px;}
  .statValue{font-size:1.12rem;line-height:1.2;}
  .drawBox{padding:10px;border-radius:18px;}
  .tenResults{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .tenBox .slot{min-height:108px;}
  .singleResult{min-height:136px;}
  .singleResult .yokaiFrame{width:82px;height:82px;}
  .singleResult .yokaiFrame .rankIcon{width:48px;height:48px;}
  .rankSummary h3,.breakHead h3{font-size:1rem;}
  .tablePanel .hint{font-size:.78rem;}
}
@media (max-width:380px){
  .pillGrid{grid-template-columns:1fr;}
  .tenResults .cardName{font-size:.66rem;}
  .tenResults .rateText{font-size:.56rem;}
}


/* v34 ぷにっとWiki組み込みUI: 元要素は消さず、見た目だけ改善 */
:root{
  --bg:#fff7fb;
  --navy:#fff7fb;
  --panel:#ffffff;
  --ink:#2f3440;
  --muted:#667085;
  --line:#ffc6df;
  --soft:#fff0f8;
  --accent:#ff71ad;
  --accent2:#67c9ff;
  --good:#0c896b;
  --danger:#cf3554;
  --shadow:0 12px 28px rgba(255,113,173,.12);
  --radius:22px;
}
body{
  color:var(--ink);
  background-color:#ffe67a;
  background-image:linear-gradient(rgba(255,255,255,.42),rgba(255,255,255,.42)), url("../../../assets/bg/main-bg.jpg");
  background-size:cover;
  background-position:center top;
  background-attachment:fixed;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(255,250,255,.48);
  pointer-events:none;
  z-index:-1;
}
.wikiNav{
  position:sticky;
  top:0;
  z-index:50;
  background:#fff;
  border-bottom:3px solid #ffc6df;
  box-shadow:0 5px 16px rgba(0,0,0,.08);
}
.wikiNavIn{
  max-width:1220px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
}
.wikiNavLinks{display:flex;gap:8px;overflow:auto}
.wikiNav a{
  white-space:nowrap;
  text-decoration:none;
  color:#d92d82;
  font-weight:900;
  border-radius:999px;
  padding:8px 12px;
}
.wikiNav a.current,.wikiNav a:hover{background:#ffe7f3}
.wikiNavSearch{margin-left:auto;display:flex;gap:6px;min-width:min(330px,42vw)}
.wikiNavSearch input{width:100%;border:2px solid #ffc6df;border-radius:999px;padding:9px 12px;background:#fff;color:#333}
.wikiNavSearch button{border:0;border-radius:999px;background:#ff71ad;color:#fff;font-weight:900;padding:9px 13px}

.topbar{
  color:#333;
  min-height:250px;
  padding-top:28px;
}
.eyebrow{
  color:#d28a00;
  background:rgba(255,255,255,.86);
  border:2px solid #ffe1a6;
}
h1{
  color:#dc2b84;
  text-shadow:none;
}
.lead{
  color:#516070;
  font-weight:900;
}
.panel{
  border:3px solid #ffc6df;
  background:rgba(255,255,255,.96);
  box-shadow:var(--shadow);
}
.stepBlock,.infoBox,.statCard,.breakCard,.rankBars,.onirenRates,.onirenResult,.onirenExpected{
  border-color:#ffc6df;
}
.primary{
  background:linear-gradient(135deg,#ff71ad,#67c9ff);
  color:#fff;
}
.plain,.fileLabel{
  border-color:#ffc6df;
  color:#d92d82;
  background:#fff;
}
select,input{
  border:2px solid #ffc6df;
  border-radius:14px;
  background:#fff;
}
.pill,.targetChip{
  border-color:#ffc6df;
}
.pill.active,.targetChip.active{
  background:#ffe7f3;
  border-color:#ff71ad;
  color:#c72273;
}
.tenResults{
  grid-template-columns:repeat(5,minmax(104px,1fr));
  gap:12px;
}
.slot{
  min-height:178px;
  border-radius:18px;
  border-color:#ffc6df;
  background:linear-gradient(180deg,#fff,#fff8fc);
  overflow:hidden;
}
.resultCard{
  padding:8px 6px 10px;
  min-height:166px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
}
.yokaiFrame,.customPuniFrame{
  width:78px;
  height:78px;
  position:relative;
  display:grid;
  place-items:center;
  margin:0 auto 2px;
}
.yokaiBase{
  width:78px;
  height:78px;
}
.rankIcon{
  max-width:68px;
  max-height:68px;
  object-fit:contain;
}
.plainRank{
  width:68px;
  height:68px;
  object-fit:contain;
}
.customPuni{
  width:72px;
  height:72px;
  object-fit:contain;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.16));
}
.cardRank{
  font-size:.76rem;
  line-height:1;
  padding:3px 8px;
  border-radius:999px;
  background:#fff0f8;
  border:1px solid #ffc6df;
  color:#c72273;
  font-weight:950;
}
.cardName{
  font-size:.82rem;
  line-height:1.2;
  font-weight:950;
  min-height:2.05em;
  max-height:2.45em;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  word-break:break-word;
}
.cardName.frameName{
  font-size:1.08rem;
  color:#c72273;
  display:block;
  max-height:none;
  min-height:1.4em;
}
.rateText{
  margin-top:auto;
  font-size:.72rem;
  color:#667085;
  line-height:1.18;
  min-height:1.2em;
}
.singleResult .resultCard{
  min-height:210px;
}
.singleResult .customPuniFrame,.singleResult .yokaiFrame{
  width:104px;
  height:104px;
}
.singleResult .customPuni,.singleResult .yokaiBase{
  width:100px;
  height:100px;
}
.singleResult .rankIcon{
  max-width:88px;
  max-height:88px;
}
.dataTable input,.dataTable select,#dataTable input,#dataTable select{
  font-size:.9rem;
}
.footer{
  background:rgba(255,255,255,.92);
  color:#667085;
  border-top:2px solid #ffc6df;
}
@media(max-width:760px){
  body{background-attachment:scroll;background-size:auto 100%}
  .wikiNavIn{flex-wrap:wrap}
  .wikiNavLinks{width:100%;gap:4px}
  .wikiNav a{font-size:14px;padding:8px 10px}
  .wikiNavSearch{order:2;margin-left:0;min-width:100%}
  .topbar{min-height:auto;padding:22px 14px 16px;grid-template-columns:1fr}
  .topArt{display:none}
  .appShell{grid-template-columns:1fr;padding:0 10px 28px}
  .sidePanel{position:static}
  .tenResults{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .slot{min-height:168px}
  .resultCard{min-height:156px}
  .cardName{font-size:.78rem}
}


/* v35 ガシャ結果画像中央揃え・背景パス修正 */
body{
  background-color:#ffe67a !important;
  background-image:
    linear-gradient(rgba(255,255,255,.42),rgba(255,255,255,.42)),
    url("../../../assets/bg/main-bg.jpg") !important;
  background-size:cover !important;
  background-position:center top !important;
  background-attachment:fixed !important;
}
.resultCard{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
}
.yokaiFrame,
.customPuniFrame{
  position:relative !important;
  width:82px !important;
  height:82px !important;
  display:grid !important;
  place-items:center !important;
  margin:0 auto 4px !important;
  flex:0 0 auto !important;
}
.yokaiFrame .yokaiBase{
  position:absolute !important;
  inset:0 !important;
  width:82px !important;
  height:82px !important;
  object-fit:contain !important;
  margin:auto !important;
  z-index:0 !important;
}
.yokaiFrame .rankIcon{
  position:absolute !important;
  inset:0 !important;
  width:64px !important;
  height:64px !important;
  max-width:64px !important;
  max-height:64px !important;
  object-fit:contain !important;
  margin:auto !important;
  transform:none !important;
  left:0 !important;
  right:0 !important;
  top:0 !important;
  bottom:0 !important;
  z-index:1 !important;
}
.rankIcon.plainRank,
.plainRank{
  display:block !important;
  position:static !important;
  width:72px !important;
  height:72px !important;
  max-width:72px !important;
  max-height:72px !important;
  object-fit:contain !important;
  margin:4px auto 6px !important;
  transform:none !important;
}
.customPuni{
  display:block !important;
  position:static !important;
  width:72px !important;
  height:72px !important;
  max-width:72px !important;
  max-height:72px !important;
  object-fit:contain !important;
  margin:auto !important;
  transform:none !important;
}
.cardRank,
.cardName,
.rateText{
  width:100% !important;
  text-align:center !important;
}
.singleResult .yokaiFrame,
.singleResult .customPuniFrame{
  width:112px !important;
  height:112px !important;
}
.singleResult .yokaiFrame .yokaiBase{
  width:112px !important;
  height:112px !important;
}
.singleResult .yokaiFrame .rankIcon{
  width:88px !important;
  height:88px !important;
  max-width:88px !important;
  max-height:88px !important;
}
.singleResult .customPuni{
  width:96px !important;
  height:96px !important;
  max-width:96px !important;
  max-height:96px !important;
}
@media(max-width:760px){
  body{
    background-attachment:scroll !important;
    background-size:auto 100% !important;
  }
  .yokaiFrame,
  .customPuniFrame{
    width:74px !important;
    height:74px !important;
  }
  .yokaiFrame .yokaiBase{
    width:74px !important;
    height:74px !important;
  }
  .yokaiFrame .rankIcon{
    width:58px !important;
    height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
  }
  .customPuni{
    width:64px !important;
    height:64px !important;
    max-width:64px !important;
    max-height:64px !important;
  }
}


/* v38 10連結果はみ出し修正 */
.tenResults{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(92px,1fr)) !important;
  gap:10px !important;
  overflow:hidden !important;
}
.slot{
  min-width:0 !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
.resultCard{
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.cardName,.rateText,.cardRank{
  max-width:100% !important;
  overflow-wrap:anywhere !important;
}
@media(max-width:560px){
  .tenResults{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:8px !important;
  }
  .slot{
    min-height:158px !important;
  }
  .resultCard{
    min-height:148px !important;
    padding:7px 4px 9px !important;
  }
}
@media(min-width:561px) and (max-width:900px){
  .tenResults{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}


/* v39 10連結果を1画面内に収める */
.miniControl small{
  display:block;
  color:#667085;
  font-size:.72rem;
  line-height:1.25;
  margin-top:3px;
}
.tenResults{
  width:100% !important;
  max-width:100% !important;
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:8px !important;
  overflow:hidden !important;
  align-items:stretch !important;
}
.slot{
  min-width:0 !important;
  min-height:132px !important;
  width:100% !important;
  max-width:100% !important;
  padding:4px !important;
  box-sizing:border-box !important;
}
.resultCard{
  min-height:124px !important;
  padding:5px 3px 6px !important;
  gap:2px !important;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box !important;
}
.yokaiFrame,
.customPuniFrame{
  width:50px !important;
  height:50px !important;
  margin:0 auto 2px !important;
}
.yokaiFrame .yokaiBase{
  width:50px !important;
  height:50px !important;
}
.yokaiFrame .rankIcon{
  width:41px !important;
  height:41px !important;
  max-width:41px !important;
  max-height:41px !important;
}
.rankIcon.plainRank,
.plainRank{
  width:48px !important;
  height:48px !important;
  max-width:48px !important;
  max-height:48px !important;
  margin:0 auto 2px !important;
}
.customPuni{
  width:48px !important;
  height:48px !important;
  max-width:48px !important;
  max-height:48px !important;
}
.cardRank{
  font-size:.58rem !important;
  padding:2px 5px !important;
  line-height:1 !important;
}
.cardName{
  font-size:.66rem !important;
  line-height:1.08 !important;
  min-height:1.2em !important;
  max-height:2.25em !important;
  -webkit-line-clamp:2 !important;
}
.cardName.frameName{
  font-size:.82rem !important;
  line-height:1.05 !important;
}
.rateText{
  font-size:.55rem !important;
  line-height:1.05 !important;
  margin-top:auto !important;
  white-space:normal !important;
}
.guaranteeBadge{
  font-size:.55rem !important;
  padding:2px 4px !important;
}
.singleResult .resultCard{
  min-height:190px !important;
}
.singleResult .yokaiFrame,
.singleResult .customPuniFrame{
  width:96px !important;
  height:96px !important;
}
.singleResult .yokaiFrame .yokaiBase{
  width:96px !important;
  height:96px !important;
}
.singleResult .yokaiFrame .rankIcon{
  width:76px !important;
  height:76px !important;
  max-width:76px !important;
  max-height:76px !important;
}
.singleResult .customPuni{
  width:88px !important;
  height:88px !important;
  max-width:88px !important;
  max-height:88px !important;
}
@media(max-width:760px){
  .tenResults{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    gap:5px !important;
  }
  .slot{
    min-height:112px !important;
    padding:3px !important;
    border-radius:12px !important;
  }
  .resultCard{
    min-height:106px !important;
    padding:4px 2px 5px !important;
  }
  .yokaiFrame,
  .customPuniFrame{
    width:38px !important;
    height:38px !important;
  }
  .yokaiFrame .yokaiBase{
    width:38px !important;
    height:38px !important;
  }
  .yokaiFrame .rankIcon{
    width:31px !important;
    height:31px !important;
    max-width:31px !important;
    max-height:31px !important;
  }
  .rankIcon.plainRank,
  .plainRank{
    width:36px !important;
    height:36px !important;
    max-width:36px !important;
    max-height:36px !important;
  }
  .customPuni{
    width:36px !important;
    height:36px !important;
    max-width:36px !important;
    max-height:36px !important;
  }
  .cardRank{
    font-size:.48rem !important;
    padding:1px 3px !important;
  }
  .cardName{
    font-size:.52rem !important;
    line-height:1.02 !important;
  }
  .cardName.frameName{
    font-size:.64rem !important;
  }
  .rateText{
    font-size:.45rem !important;
  }
}
@media(max-width:390px){
  .tenResults{gap:3px !important;}
  .slot{padding:2px !important;min-height:102px !important;}
  .resultCard{min-height:98px !important;}
  .yokaiFrame,.customPuniFrame{width:34px !important;height:34px !important;}
  .yokaiFrame .yokaiBase{width:34px !important;height:34px !important;}
  .yokaiFrame .rankIcon{width:28px !important;height:28px !important;max-width:28px !important;max-height:28px !important;}
  .rankIcon.plainRank,.plainRank{width:32px !important;height:32px !important;max-width:32px !important;max-height:32px !important;}
  .customPuni{width:32px !important;height:32px !important;max-width:32px !important;max-height:32px !important;}
  .cardName{font-size:.48rem !important;}
  .rateText{display:none !important;}
}


/* v40 10連結果さらに小型化・1画面化 */
.tenResults{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:6px !important;
  max-height:none !important;
}
.slot{
  min-height:108px !important;
  padding:3px !important;
  border-radius:12px !important;
}
.resultCard{
  min-height:100px !important;
  padding:4px 2px 5px !important;
  gap:1px !important;
}
.yokaiFrame,
.customPuniFrame{
  width:42px !important;
  height:42px !important;
  margin:0 auto 1px !important;
}
.yokaiFrame .yokaiBase{
  width:42px !important;
  height:42px !important;
}
.yokaiFrame .rankIcon{
  width:34px !important;
  height:34px !important;
  max-width:34px !important;
  max-height:34px !important;
}
.rankIcon.plainRank,
.plainRank{
  width:40px !important;
  height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
  margin:0 auto 1px !important;
}
.customPuni{
  width:40px !important;
  height:40px !important;
  max-width:40px !important;
  max-height:40px !important;
}
.cardRank{
  font-size:.48rem !important;
  padding:1px 4px !important;
}
.cardName{
  font-size:.54rem !important;
  line-height:1.03 !important;
  min-height:1.05em !important;
  max-height:2.15em !important;
}
.cardName.frameName{
  font-size:.68rem !important;
}
.rateText{
  font-size:.45rem !important;
  line-height:1.03 !important;
}
.guaranteeBadge{
  font-size:.46rem !important;
  padding:1px 3px !important;
}
@media(max-width:760px){
  .tenResults{gap:3px !important;}
  .slot{min-height:92px !important;padding:2px !important;}
  .resultCard{min-height:86px !important;padding:3px 1px 4px !important;}
  .yokaiFrame,.customPuniFrame{width:30px !important;height:30px !important;}
  .yokaiFrame .yokaiBase{width:30px !important;height:30px !important;}
  .yokaiFrame .rankIcon{width:25px !important;height:25px !important;max-width:25px !important;max-height:25px !important;}
  .rankIcon.plainRank,.plainRank{width:28px !important;height:28px !important;max-width:28px !important;max-height:28px !important;}
  .customPuni{width:28px !important;height:28px !important;max-width:28px !important;max-height:28px !important;}
  .cardRank{font-size:.40rem !important;padding:1px 2px !important;}
  .cardName{font-size:.44rem !important;line-height:1.0 !important;}
  .cardName.frameName{font-size:.55rem !important;}
  .rateText{font-size:.38rem !important;}
}
@media(max-width:390px){
  .rateText{display:none !important;}
  .slot{min-height:78px !important;}
  .resultCard{min-height:74px !important;}
}
