:root{
  --bg:#f4f6fb; --card:#fff; --text:#20242c; --accent:#5b6ee1;
  --accent2:#7c4dff; --border:#dfe3ec; --muted:#727887;
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI","Noto Sans JP",sans-serif;
  background:linear-gradient(135deg,#eef2ff,#f8f9fc);color:var(--text);min-height:100vh}
.app{max-width:1100px;margin:auto;padding:24px}
header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
h1{font-size:clamp(26px,4vw,42px);margin:0}
.sub{color:var(--muted);margin-top:4px}
.top-actions{display:flex;gap:8px;flex-wrap:wrap}
.tabs{display:flex;gap:8px;margin-bottom:18px}
.tab-btn{padding:9px 16px}
.tab-btn.active{background:var(--accent);color:#fff}
.tab-panel{display:none}
.tab-panel.active{display:block}
button{border:0;border-radius:12px;padding:11px 16px;font-size:15px;font-weight:700;cursor:pointer;
  background:#eef0f6;color:var(--text);transition:.15s}
button:hover{transform:translateY(-1px);filter:brightness(.98)}
button.primary{background:var(--accent);color:#fff}
button.danger{background:#ffe8e8;color:#b42318}
button.small{padding:7px 10px;font-size:13px}
.layout{display:grid;grid-template-columns:1.35fr .85fr;gap:20px}
.card{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:22px;
  box-shadow:0 12px 35px rgba(45,55,90,.08);padding:22px}
.slot-wrap{display:flex;justify-content:center;padding:22px 0 28px}
.slot-window{width:min(100%,520px);height:250px;overflow:hidden;position:relative;
  border:8px solid #252b36;border-radius:22px;
  background:linear-gradient(90deg,#e8ebf0 0,#fff 8%,#fff 92%,#e8ebf0 100%);
  box-shadow:
    0 10px 20px rgba(24,31,45,.18),
    0 2px 0 #505865,
    inset 0 0 0 2px #111722,
    inset 0 0 24px rgba(0,0,0,.18)}
.slot-window:before,.slot-window:after{content:"";position:absolute;left:0;right:0;height:82px;z-index:3;pointer-events:none}
.slot-window:before{top:0;background:linear-gradient(#d9dde4 0%,rgba(255,255,255,.84) 30%,transparent 100%)}
.slot-window:after{bottom:0;background:linear-gradient(transparent 0%,rgba(255,255,255,.84) 70%,#d9dde4 100%)}
.pointer{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:74px;
  border-top:3px solid var(--accent);border-bottom:3px solid var(--accent);
  background:linear-gradient(90deg,rgba(91,110,225,.04),rgba(91,110,225,.11),rgba(91,110,225,.04));
  box-shadow:0 0 12px rgba(91,110,225,.18);z-index:4;pointer-events:none}
.pointer:before,.pointer:after{content:"";position:absolute;top:50%;transform:translateY(-50%);
  width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent}
.pointer:before{left:8px;border-left:0;border-right:14px solid var(--accent)}
.pointer:after{right:8px;border-right:0;border-left:14px solid var(--accent)}
.reel{position:absolute;left:0;right:0;will-change:transform;transform:translateZ(0)}
.reel.spinning{filter:blur(.45px)}
.item{height:74px;display:flex;align-items:center;justify-content:center;
  font-size:30px;font-weight:800;letter-spacing:.02em;
  border-bottom:1px solid #e4e7ed;
  background:linear-gradient(180deg,#f8f9fb 0%,#fff 48%,#f1f3f6 100%);
  text-shadow:0 1px 0 #fff}
.result{text-align:center;min-height:58px}
.result-label{font-size:13px;color:var(--muted)}
.result-name{font-size:34px;font-weight:900;margin-top:4px}
.start-row{display:flex;justify-content:center;gap:10px;margin-top:14px}
.start{font-size:21px;padding:15px 42px;border-radius:16px}
.settings h2,.history h2{margin-top:0}
.draw-controls{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
label{font-weight:700;font-size:14px;display:block;margin:16px 0 7px}
input[type="text"],input[type="number"],select{width:100%;padding:10px 11px;border:1px solid var(--border);
  border-radius:10px;font:inherit;background:#fff}
input[type="range"]{width:100%}
.choice-list{display:flex;flex-direction:column;gap:8px}
.choice{display:grid;grid-template-columns:1fr 90px 38px;gap:7px;align-items:center}
.add{width:100%;margin-top:9px}
.inline{display:flex;align-items:center;gap:10px}
.toggle{display:flex;gap:8px}
.mode{flex:1}
.mode.active{background:var(--accent);color:white}
.history-list{max-height:310px;overflow:auto;margin-top:10px}
.history-item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f5}
.history-item:last-child{border-bottom:0}
.history-item b{font-size:16px}
.history-item small{color:var(--muted)}
.empty{color:var(--muted);padding:15px 0;text-align:center}
.stats{font-size:12px;color:var(--muted);margin-top:8px}
.security-box{margin-top:18px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#f7f9fc;font-size:13px;line-height:1.7}
.security-box b{display:block;margin-bottom:3px}
.io-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.io-row button,.io-row label{margin:0}
.file-label{display:inline-flex;align-items:center;border-radius:12px;padding:11px 16px;font-size:15px;font-weight:700;cursor:pointer;background:#eef0f6;color:var(--text)}
.file-label input{display:none}
.fullscreen{position:fixed;inset:0;background:rgba(18,22,31,.97);z-index:20;color:white;
  visibility:hidden;opacity:0;text-align:center;padding:30px;pointer-events:none}
.fullscreen.show{visibility:visible;opacity:1;pointer-events:auto}
.fullscreen-inner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,1000px);opacity:1}
.fullscreen.show .fullscreen-inner{transform:translate(-50%,-50%);opacity:1}
.fs-name{font-size:clamp(55px,12vw,150px);font-weight:1000;position:relative;display:inline-block}
.fs-name::after{content:attr(data-text);position:absolute;inset:0;color:transparent;pointer-events:none;
  background:linear-gradient(115deg,transparent 0%,transparent 42%,rgba(255,255,255,.92) 49%,rgba(255,255,255,.92) 51%,transparent 58%,transparent 100%);
  background-size:260% 100%;background-position:150% 0;-webkit-background-clip:text;background-clip:text;opacity:0}
.fullscreen.show .fs-name::after{animation:nameShine 1.05s .18s ease-out 1}
@keyframes nameShine{0%{background-position:150% 0;opacity:0}12%{opacity:1}88%{opacity:1}100%{background-position:-150% 0;opacity:0}}
.fs-label{font-size:20px;opacity:.75;margin-bottom:15px}
#closeFs{display:block;margin:30px auto 0}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:30;overflow:hidden}
.confetti i{position:absolute;width:10px;height:18px;top:-30px;animation:fall linear forwards}
@keyframes fall{to{transform:translate3d(var(--x),110vh,0) rotate(900deg)}}
body.flashy{--accent:#ff4d8d;--accent2:#7c4dff}
body.flashy .card{box-shadow:0 15px 50px rgba(124,77,255,.16)}
body.flashy .slot-window{border-color:#4b3ca7}
footer{text-align:center;color:var(--muted);font-size:12px;margin-top:20px}
@media(max-width:800px){.layout{grid-template-columns:1fr}.app{padding:14px}.card{padding:16px}}

.exclude-control{margin-top:18px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fafbfe}
.exclude-control label{margin:0;display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}
.exclude-control input{width:18px;height:18px;accent-color:var(--accent);flex:0 0 auto}
.exclude-note{font-size:12px;color:var(--muted);margin-top:6px;padding-left:28px;line-height:1.55}


.probability-unlock{margin-top:28px;padding-top:16px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.probability-unlock label{display:flex;align-items:center;gap:8px;margin:0;font-weight:600;cursor:pointer}
.probability-unlock input{width:15px;height:15px;accent-color:var(--accent)}
body:not(.probability-editing) .probability-only{display:none!important}

.choice-count{margin:4px 0 4px;text-align:center;font-size:14px;color:var(--muted);font-weight:600}
.txt-io-btn{font:inherit!important;font-weight:400!important;line-height:1.2!important}
.file-label.txt-io-btn{font-size:15px!important;font-weight:400!important}
