:root{--bg-dark: #0a0e17;--bg-panel: #1a1e2e;--text-main: #f8fafc;--text-muted: #94a3b8;--accent: #f59e0b;--glass: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .1);--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}body{margin:0;padding:0;background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-sans);height:100vh;overflow:hidden}#root{height:100%}.app-container{display:flex;flex-direction:column;height:100%;padding:24px;box-sizing:border-box}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:12px 24px;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;border:1px solid var(--glass-border);box-shadow:0 4px 30px #0000001a}.header-left{display:flex;align-items:center;gap:16px}.title{font-size:24px;font-weight:700;margin:0;background:linear-gradient(to right,#fbbf24,#f97316);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.divider{width:1px;height:24px;background:#fff3}.turn-counter{display:flex;align-items:center;gap:8px}.turn-label{font-size:14px;color:var(--text-muted)}.turn-value{font-family:var(--font-mono);font-size:18px;font-weight:600}.header-right{display:flex;align-items:center;gap:24px}.player-info{display:flex;align-items:center;gap:12px;font-weight:500}.player-dot{width:16px;height:16px;border-radius:50%;box-shadow:0 0 10px #ffffff4d}.btn{padding:10px 20px;border-radius:8px;font-weight:600;border:none;cursor:pointer;transition:all .2s;font-family:inherit;font-size:14px}.btn-primary{background-color:#2563eb;color:#fff;box-shadow:0 0 15px #2563eb66}.btn-primary:hover{background-color:#3b82f6}.btn-primary:active{transform:scale(.95)}.btn:disabled{background-color:#ffffff1a;color:#ffffff4d;cursor:not-allowed;box-shadow:none}.main-area{flex:1;min-height:0;position:relative;background-color:var(--bg-dark);border-radius:16px;border:1px solid var(--glass-border);box-shadow:inset 0 0 20px #00000080;overflow:hidden;display:flex;align-items:center;justify-content:center}.main-area.busy{pointer-events:none}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--bg-panel);padding:32px;border-radius:24px;border:1px solid var(--glass-border);box-shadow:0 25px 50px -12px #00000080;text-align:center;width:100%;max-width:320px}.modal h2{margin:0 0 8px;font-size:32px}.modal p{color:var(--text-muted);margin:0 0 24px;font-size:18px}.btn-action{background-color:var(--accent);color:#000;width:100%;padding:12px;font-size:16px}.btn-action:hover{background-color:#fbbf24}.board-svg{max-width:100%;max-height:100%;filter:drop-shadow(0 20px 13px rgba(0,0,0,.4))}.start-screen{height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-dark);background-image:radial-gradient(circle at 15% 50%,rgba(255,255,255,.03),transparent 25%),radial-gradient(circle at 85% 30%,rgba(255,255,255,.03),transparent 25%)}.start-modal{background:var(--bg-panel);padding:40px;border-radius:16px;box-shadow:0 10px 40px #0006;width:100%;max-width:480px;border:1px solid var(--glass-border);display:flex;flex-direction:column;gap:32px}.start-modal .title{text-align:center;font-size:36px;font-weight:800;letter-spacing:2px;color:var(--text-main);margin:0;text-transform:uppercase;background:linear-gradient(135deg,#fff,#aaa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.settings-panel{display:flex;flex-direction:column;gap:24px}.setting-group{display:flex;flex-direction:column;gap:8px}.setting-group label{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.button-row{display:flex;gap:8px;flex-wrap:wrap}.size-btn{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-main);border-radius:8px;padding:8px 16px;font-weight:600;cursor:pointer;transition:all .2s;flex:1}.size-btn:hover{background:#ffffff1a}.size-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.range-label{font-size:14px;text-align:center;color:var(--text-main);font-weight:500}.code-group{background:#0003;padding:16px;border-radius:12px}.code-display,.code-input-row{display:flex;align-items:center;gap:8px}.code-display code{flex:1;font-family:var(--font-mono);font-size:16px;background:#0000004d;padding:10px;border-radius:6px;color:#fbbf24;border:1px solid rgba(255,255,255,.1)}.icon-btn,.action-btn{background:#ffffff1a;border:none;color:#fff;padding:10px;border-radius:6px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.icon-btn:hover,.action-btn:hover{background:#fff3}.action-btn{padding:10px 16px;font-weight:600}.code-input-row input{flex:1;background:#0000004d;border:1px solid rgba(255,255,255,.1);color:#fff;padding:10px;border-radius:6px;font-family:var(--font-mono);font-size:16px;outline:none}.code-input-row input:focus{border-color:#2563eb}.error-text{color:#ef4444;font-size:13px;margin-top:4px}.play-btn{background:var(--accent);color:#000;border:none;padding:16px;border-radius:12px;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px;transition:transform .2s,box-shadow .2s}.play-btn:hover{transform:translateY(-2px);background:#fbbf24;box-shadow:0 4px 12px #fbbf2466}.combat-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;z-index:100;background:radial-gradient(circle at center,rgba(0,0,0,.6) 0%,transparent 80%)}.combat-panel{display:flex;align-items:center;gap:32px;background:#0a0e17e6;padding:32px 48px;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 50px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.combat-side{display:flex;flex-direction:column;align-items:center;gap:16px}.combat-side h3{margin:0;font-size:16px;text-transform:uppercase;letter-spacing:2px;color:var(--side-color);text-shadow:0 0 10px var(--side-color)}.dice-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:160px}.combat-die{width:40px;height:40px;background:var(--side-color);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;box-shadow:0 4px 12px #00000080,inset 0 2px 4px #fff6;text-shadow:0 2px 4px rgba(0,0,0,.4);opacity:0;transform:translateY(-20px) rotate(-15deg);animation:drop-in .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes drop-in{to{opacity:1;transform:translateY(0) rotate(0)}}.combat-vs{font-size:32px;font-weight:800;color:var(--text-muted);opacity:.5;font-style:italic}.sum-tag{font-size:36px;font-weight:800;color:#fff}.combat-outcome{margin-top:24px;font-size:42px;font-weight:900;letter-spacing:4px;text-shadow:0 4px 20px rgba(0,0,0,.8)}.combat-outcome.win{color:#4ade80}.combat-outcome.lose{color:#ef4444}.fade-in{animation:simple-fade .3s ease-out forwards}@keyframes simple-fade{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.odds-tooltip{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#000000d9;border:1px solid var(--glass-border);padding:16px 24px;border-radius:12px;display:flex;align-items:center;gap:16px;font-size:18px;font-weight:700;box-shadow:0 10px 30px #00000080;pointer-events:none;z-index:10}.prob-value{color:#fbbf24;font-size:24px;font-weight:900}@media(max-width:768px){.app-container{padding:12px}.header{flex-direction:column;gap:12px;padding:16px}.combat-panel{padding:24px;flex-direction:column;gap:16px}.combat-vs{font-size:20px}.dice-row{max-width:100%}.start-modal{padding:24px}.odds-tooltip{bottom:12px;width:90%;justify-content:space-between}}
