@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Inter:wght@400;600;700&display=swap');

:root{
  --jack-bg:#160f0b;
  --jack-bg-2:#24150e;
  --jack-panel:#efe1bf;
  --jack-panel-2:#d8c08d;
  --jack-ink:#21160f;
  --jack-gold:#c79a3b;
  --jack-gold-2:#f0cf75;
  --jack-red:#6c1f24;
  --jack-red-2:#9d3438;
  --jack-green:#315c46;
  --jack-line:#6e5638;
  --jack-shadow:rgba(0,0,0,.45);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  min-height:100vh;
  background:
    radial-gradient(circle at 20% 10%, rgba(199,154,59,.14), transparent 34%),
    radial-gradient(circle at 80% 20%, rgba(108,31,36,.17), transparent 28%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.012) 0 1px, transparent 1px 4px),
    linear-gradient(145deg,var(--jack-bg),#0d0907 65%,var(--jack-bg-2));
  color:#f8efd9;
  font-family:Inter,system-ui,sans-serif;
}

.jack-page-shell{width:min(1120px,100%);margin:0 auto;padding:34px 18px 48px}
.jack-hero{
  max-width:860px;margin:0 auto 26px;padding:26px 30px;
  display:flex;align-items:center;gap:24px;
  border:1px solid rgba(240,207,117,.55);border-radius:18px;
  background:linear-gradient(135deg,rgba(23,14,10,.96),rgba(52,28,17,.93));
  box-shadow:0 20px 55px rgba(0,0,0,.35), inset 0 0 35px rgba(199,154,59,.06);
}
.jack-sigil{
  flex:0 0 82px;width:82px;height:82px;border-radius:50%;
  display:grid;place-items:center;
  font-family:Cinzel,serif;font-weight:700;font-size:3.2rem;color:#1b1009;
  background:radial-gradient(circle at 35% 30%,#ffe9a6,var(--jack-gold) 55%,#7d5317 100%);
  border:4px double #6c4517;box-shadow:0 0 0 3px rgba(240,207,117,.15),0 10px 24px rgba(0,0,0,.4);
}
.jack-kicker{font-family:Cinzel,serif;letter-spacing:.22em;font-size:.72rem;color:#cbb27d;margin:0 0 4px}
.jack-hero h1{position:static;font-family:Cinzel,serif;font-size:clamp(2.1rem,6vw,4.2rem);line-height:1;color:#f4ead2;margin:0;font-weight:600;text-align:left}
.jack-hero h1 span{color:var(--jack-gold-2)}
.jack-subtitle{margin:10px 0 0;color:#cdbf9e;font-size:.98rem}

main{display:flex;justify-content:center}
#fast_dice_roller_block{margin-top:0!important}

/* Parchment panels */
.dice_attribute_button,.dice_roll_button_container,.dice_log_container,.dice_roll_other_option_container,.e_dice_log_title,.e_dice_log_container{
  background:linear-gradient(145deg,#2a1a12,#1b110d)!important;
  border:1px solid rgba(240,207,117,.33)!important;
  box-shadow:-7px 8px 0 rgba(0,0,0,.28)!important;
}
.dice_roll_button{background:linear-gradient(145deg,#2d1b12,#1a100c)!important}
.dice_roll_button:hover{outline:1px solid var(--jack-gold-2)!important;filter:brightness(1.15)}
.dice_roll_button_roll_text,.dice_roll_button_custom_text_1,.dnd_roll_again_element_1{
  background:linear-gradient(135deg,#4b1519,var(--jack-red-2))!important;
}
.left_right_dice_attribute_button{background:linear-gradient(135deg,#69301e,#9d4d25)!important}
.dice_reset_button,.dnd_roll_again_element_2,.roll_history_element_result_span,.e_roll_history_element_result_span{
  background:linear-gradient(135deg,#264535,var(--jack-green))!important;
}
.dice_roll_style_check_box.selected{background:var(--jack-gold)!important}
.dice_roll_style_check_box.non_selected{background:var(--jack-green)!important}
.roll_animation_separator{background:linear-gradient(90deg,var(--jack-red),var(--jack-gold),var(--jack-green))!important}

/* Typography */
.dice_roll_button_text,.dice_roll_button_roll_text,.dice_reset_button_text,.dice_roll_button_container_title,.dice_roll_style_text,.e_dice_log_title,.dnd_roll_again_text,.roll_history_element_result_left_text,.roll_history_element_result_center_text,.roll_history_element_result_right_text,.e_roll_history_element_result_left_text,.e_roll_history_element_result_center_text,.e_roll_history_element_result_right_text{
  font-family:Cinzel,serif!important;
}
.regulartext,.roll_history_element_name_left_text,.roll_history_element_name_right_text,.roll_history_element_name_right_text_main,.e_roll_history_element_name_left_text,.e_roll_history_element_name_right_text{
  font-family:Inter,system-ui,sans-serif!important;
}

/* Result panel gets a paper-like inner surface */
.roll_history_element_main_bg{
  background:
    linear-gradient(rgba(109,75,40,.07),rgba(109,75,40,.07)),
    linear-gradient(145deg,#f5e8c7,#d8c08d)!important;
  color:var(--jack-ink)!important;
  border-bottom:1px solid #8f7148;
}
.roll_history_element_name_left_text,.roll_history_element_name_right_text_main,
.roll_history_element_result_center_text,.roll_history_element_result_right_text{
  color:var(--jack-ink)!important;
}
.roll_history_element_name_left_text{border-color:#8f7148!important;background:rgba(255,255,255,.22)}
.roll_history_element_name_right_text_main{border-color:#8f7148!important}
.roll_history_element_result_right_text{border-color:#8f7148!important}
.roll_history_element_result_left_text{background:linear-gradient(135deg,#53181d,#8d2c31)!important;color:#fff!important}

/* Dice face overrides: no missing texture files required */
.f_d_2{background-image:none!important;background:radial-gradient(circle at 35% 30%,#ffd96c,#d59a1a 70%,#92610d)!important}
.f_d_4{background-image:none!important;background:linear-gradient(145deg,#8e2d74,#53174d)!important}
.f_d_6{background-image:none!important;background:linear-gradient(145deg,#eeeae2,#a5a6a8)!important}
.f_d_8{background-image:none!important;background:linear-gradient(145deg,#c84145,#7d181d)!important}
.f_d_10{background-image:none!important;background:linear-gradient(145deg,#4e6e9c,#233b62)!important}
.f_d_12{background-image:none!important;background:linear-gradient(145deg,#62b99e,#246554)!important}
.f_d_20{background-image:none!important;background:linear-gradient(145deg,#d39b1d,#7e5710)!important}

/* Make log/history match the theme */
.e_dice_log_container,.roll_history_element_container{scrollbar-color:#9d7a43 #20140f}
.e_roll_history_element_name_left_text{border-color:#7a6241!important}
.e_roll_history_element_result_left_text{background:linear-gradient(135deg,#53181d,#8d2c31)!important}

.jack-footer{max-width:860px;margin:28px auto 0;text-align:center;color:#86775d;font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.12em}

@media(max-width:620px){
  .jack-page-shell{padding:18px 0 36px}
  .jack-hero{margin:0 12px 22px;padding:20px 18px;border-radius:14px;align-items:flex-start}
  .jack-sigil{width:58px;height:58px;flex-basis:58px;font-size:2.1rem}
  .jack-subtitle{font-size:.86rem}
  #fast_dice_roller_block{row-gap:18px!important}
}

/* =========================================================
   V2 — MESA DEL FAVOR DE JACK
   Fondo más reconocible, espacios compactos y controles nuevos
   ========================================================= */
body{
  position:relative;
  overflow-x:hidden;
  background:
    radial-gradient(ellipse at 50% -10%, rgba(222,173,76,.18), transparent 43%),
    radial-gradient(circle at 14% 34%, rgba(111,27,31,.19), transparent 27%),
    radial-gradient(circle at 86% 70%, rgba(48,86,65,.14), transparent 30%),
    linear-gradient(115deg, transparent 0 49.6%, rgba(226,187,102,.025) 49.8% 50.2%, transparent 50.4%),
    repeating-linear-gradient(7deg, #120b08 0 3px, #160e0a 3px 7px, #100806 7px 10px);
}
body::before{
  content:"";
  position:fixed;
  inset:-12vh -8vw;
  pointer-events:none;
  z-index:-2;
  opacity:.58;
  background:
    radial-gradient(circle at 13% 26%, transparent 0 72px, rgba(202,155,60,.12) 73px 74px, transparent 75px 90px, rgba(202,155,60,.06) 91px 92px, transparent 93px),
    conic-gradient(from 22deg at 13% 26%, transparent 0 8%, rgba(202,155,60,.08) 8.3% 8.6%, transparent 8.9% 24%, rgba(202,155,60,.07) 24.3% 24.6%, transparent 24.9% 100%),
    radial-gradient(circle at 88% 76%, transparent 0 125px, rgba(133,43,48,.14) 126px 128px, transparent 129px 152px, rgba(202,155,60,.06) 153px 154px, transparent 155px),
    conic-gradient(from -18deg at 88% 76%, transparent 0 12%, rgba(133,43,48,.11) 12.3% 12.6%, transparent 12.9% 31%, rgba(202,155,60,.07) 31.3% 31.6%, transparent 31.9% 100%);
}
body::after{
  content:"J";
  position:fixed;
  right:-.06em;
  top:50%;
  transform:translateY(-48%) rotate(-8deg);
  z-index:-1;
  pointer-events:none;
  font-family:Cinzel,serif;
  font-size:min(62vw,760px);
  font-weight:700;
  line-height:.8;
  color:rgba(221,174,76,.025);
  text-shadow:0 0 60px rgba(221,174,76,.02);
}

.jack-page-shell{
  width:min(1180px,100%);
  padding:28px 22px 52px;
  position:relative;
}
.jack-page-shell::before,.jack-page-shell::after{
  content:"✦";
  position:absolute;
  top:154px;
  color:rgba(227,187,102,.24);
  font-size:1rem;
}
.jack-page-shell::before{left:8px}.jack-page-shell::after{right:8px}

.jack-hero-v2{
  max-width:1040px;
  min-height:152px;
  margin-bottom:18px;
  padding:23px 30px;
  position:relative;
  overflow:hidden;
  border-radius:12px 12px 22px 22px;
  background:
    linear-gradient(90deg, rgba(199,154,59,.08) 0 1px, transparent 1px 100%),
    linear-gradient(0deg, rgba(199,154,59,.06) 0 1px, transparent 1px 100%),
    radial-gradient(circle at 12% 50%, rgba(157,52,56,.25), transparent 24%),
    linear-gradient(120deg,#170d09,#2d170f 55%,#130b08)!important;
  background-size:34px 34px,34px 34px,auto,auto!important;
  box-shadow:0 18px 42px rgba(0,0,0,.37), inset 0 0 55px rgba(0,0,0,.25)!important;
}
.jack-hero-v2::after{
  content:"";
  position:absolute;
  right:22px;
  bottom:12px;
  font-family:Cinzel,serif;
  font-size:.57rem;
  letter-spacing:.28em;
  color:rgba(240,207,117,.28);
}
.jack-sigil{
  border-radius:18px;
  transform:rotate(-4deg);
  background:
    linear-gradient(135deg,rgba(255,255,255,.24),transparent 35%),
    radial-gradient(circle at 35% 30%,#ffe9a6,var(--jack-gold) 55%,#765017 100%);
  box-shadow:0 0 0 3px rgba(240,207,117,.12),0 10px 24px rgba(0,0,0,.4),inset 0 0 0 2px rgba(66,35,9,.38);
}
.jack-hero-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}
.jack-hero-chips span{
  padding:5px 8px 4px;
  border:1px solid rgba(229,191,108,.24);
  border-radius:999px;
  font-family:Cinzel,serif;
  font-size:.58rem;
  letter-spacing:.08em;
  color:#c9b078;
  background:rgba(0,0,0,.18);
}

main{display:block}
#fast_dice_roller_block{
  max-width:1040px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.52fr) minmax(330px,.88fr);
  gap:16px!important;
  align-items:start;
}
.dice_attribute_container{
  max-width:none!important;
  gap:12px!important;
  padding:16px;
  align-content:start;
  border:1px solid rgba(221,176,84,.23);
  border-radius:16px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.018),transparent 30%),
    linear-gradient(145deg,rgba(41,24,16,.97),rgba(19,12,9,.97));
  box-shadow:0 15px 34px rgba(0,0,0,.24),inset 0 0 0 1px rgba(0,0,0,.25);
}
.dice_attribute_container_element{
  max-width:none!important;
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:10px!important;
}
.dice_attribute_button{
  position:relative;
  max-width:none!important;
  height:48px!important;
  overflow:visible!important;
  margin-top:19px;
  border-radius:10px!important;
  box-shadow:0 5px 0 rgba(0,0,0,.24)!important;
}
.dice_attribute_button::before{
  content:attr(data-label);
  position:absolute;
  left:2px;
  top:-19px;
  font-family:Cinzel,serif;
  font-size:.63rem;
  font-weight:700;
  letter-spacing:.08em;
  color:#c9ae72;
  text-transform:uppercase;
}
.left_right_dice_attribute_button{width:38px!important;border-radius:9px 0 0 9px}
.dice_attribute_button .left_right_dice_attribute_button:last-child{border-radius:0 9px 9px 0}
.left_right_dice_attribute_button_text{top:-4px!important;font-size:2.6em!important;line-height:48px!important}
.option_dice_attribute_button{height:100%!important;border-color:rgba(221,176,84,.16)!important}
.diceAmountInput,.diceAdvantageAmountInput{font-family:Cinzel,serif!important;font-weight:700}

.dice_reset_button{
  max-width:112px!important;
  height:34px!important;
  border-radius:8px!important;
  box-shadow:0 4px 0 rgba(0,0,0,.22)!important;
  margin-left:auto;
}
.dice_reset_button_text{font-size:1rem!important;top:7px!important;font-family:Cinzel,serif!important}

.jack-roll-mode-panel{
  width:100%;
  display:grid;
  grid-template-columns:minmax(170px,.75fr) minmax(300px,1.25fr);
  gap:12px;
  padding:12px;
  border-radius:12px;
  border:1px solid rgba(229,191,108,.22);
  background:
    radial-gradient(circle at 0% 0%,rgba(198,150,56,.08),transparent 34%),
    #160f0c;
}
.jack-mode-copy{display:flex;flex-direction:column;gap:2px;justify-content:center}
.jack-control-eyebrow{font-family:Cinzel,serif;font-size:.58rem;letter-spacing:.15em;color:#8e764d;text-transform:uppercase}
.jack-mode-copy strong{font-family:Cinzel,serif;color:#eee0bd;font-size:.92rem}
.jack-mode-copy small{color:#96886e;font-size:.69rem;line-height:1.35;margin-top:3px}
.jack-mode-switch{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
  padding:4px;
  border-radius:10px;
  background:#0e0907;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.jack-mode-btn{
  border:1px solid transparent;
  border-radius:7px;
  padding:9px 7px 8px;
  cursor:pointer;
  color:#9f9278;
  background:transparent;
  font-family:Cinzel,serif;
  font-size:.67rem;
  font-weight:700;
  transition:.18s ease;
}
.jack-mode-btn:hover{color:#fff1c5;background:rgba(199,154,59,.08)}
.jack-mode-btn.active{
  color:#1b110b;
  background:linear-gradient(145deg,#f0d27d,#b98429);
  border-color:#f8df98;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
}
.jack-mode-btn[data-mode="advantage"].active{background:linear-gradient(145deg,#a8d8b9,#47775b);color:#102018;border-color:#c1e8ce}
.jack-mode-btn[data-mode="disadvantage"].active{background:linear-gradient(145deg,#d88c91,#7b272d);color:#fff0e7;border-color:#e7a4a8}

.dice_roll_button_container_title{
  display:block!important;
  width:100%;
  margin:2px 0 -2px;
  padding:0!important;
  background:none!important;
  font-family:Cinzel,serif!important;
  font-size:.86rem!important;
  letter-spacing:.08em;
  color:#ccb37a!important;
  text-align:left!important;
}
.dice_roll_button_container{
  width:100%;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  padding:9px;
  border-radius:13px!important;
  box-shadow:0 7px 0 rgba(0,0,0,.25)!important;
}
.dice_roll_button{
  width:100%!important;
  height:92px!important;
  border-radius:9px!important;
  border:1px solid rgba(226,188,104,.08);
  transition:transform .17s ease,filter .17s ease,border-color .17s ease;
}
.dice_roll_button:hover{transform:translateY(-2px);border-color:rgba(240,207,117,.5)}
.dice_roll_button.jack-selected-die{outline:2px solid rgba(240,207,117,.72)!important;box-shadow:inset 0 0 20px rgba(199,154,59,.14)}
.dice_roll_button_img{
  width:64px!important;
  height:55px!important;
  padding:7px 11px 0!important;
  margin:0 auto!important;
  object-fit:contain;
  filter:drop-shadow(-3px 4px 0 rgba(0,0,0,.32))!important;
}
.dice_roll_button_text{font-size:1.28em!important;margin-top:6px!important}
.dice_roll_button:hover .dice_roll_button_text{font-size:1.65em!important;margin-top:13px!important;top:-9px!important}
.dice_roll_button_roll_text{font-size:1.08em!important}
.dice_roll_button_custom_block{
  width:100%!important;
  height:92px!important;
  max-height:92px!important;
  grid-column:span 2;
  display:grid!important;
  grid-template-columns:1fr 1fr;
}
.dice_roll_button_custom_container{width:100%!important;height:92px!important}
.dice_roll_button_custom_input{width:75%!important;height:52px!important;margin-top:13px!important;padding-top:5px!important}
.dice_roll_button_custom_text_1{font-size:.75rem!important;margin-top:8px!important;padding:3px!important}
.dice_roll_button_custom_text_2_element{top:6px!important}

.dice_roll_other_option_container{
  width:100%!important;
  min-height:0!important;
  padding:10px 12px!important;
  gap:8px!important;
  justify-content:space-between!important;
  border-radius:11px!important;
  box-shadow:0 5px 0 rgba(0,0,0,.23)!important;
}
#dnd_dice_roller_toggle_text{font-size:.72rem;color:#998b70;max-width:210px}
.dice_roll_style_selector_container{min-width:0!important;gap:9px!important;align-items:center}
.dice_roll_style_check_box{width:16px!important;height:16px!important;border-width:3px!important}
.dice_roll_style_text{font-size:.92rem!important}

.dice_log_container{
  max-width:none!important;
  height:430px!important;
  border-radius:16px!important;
  box-shadow:0 15px 34px rgba(0,0,0,.28)!important;
  position:relative;
}
.dice_log_container::after{
  content:"J";
  position:absolute;
  right:12px;
  bottom:2px;
  pointer-events:none;
  font-family:Cinzel,serif;
  font-size:4.5rem;
  color:rgba(240,207,117,.035);
}
.roll_history_element_main_bg{max-height:150px!important}
.roll_history_element_name_result_container{padding-top:8px!important}
.roll_history_element_name_left_text{font-size:.82rem!important;padding:4px 8px!important}
.roll_history_element_name_right_text_main{font-size:.78rem!important;padding:4px 7px!important}
.roll_history_element_result_left_text{font-size:1.75rem!important;width:46px!important}
.roll_history_element_result_center_text{font-size:1rem!important;column-gap:6px!important;row-gap:6px!important}
.roll_history_element_result_span{padding:2px 8px!important}
.jack-roll-mode-detail{
  min-height:43px;
  padding:8px 10px;
  display:flex;
  align-items:center;
  gap:8px;
  background:linear-gradient(90deg,rgba(197,153,60,.09),rgba(0,0,0,.16));
  border-top:1px solid rgba(217,176,91,.14);
  color:#b6a98d;
  font-size:.68rem;
  line-height:1.3;
}
.jack-mode-mark{
  flex:none;
  border:1px solid rgba(226,186,98,.35);
  border-radius:999px;
  padding:4px 7px 3px;
  font-family:Cinzel,serif;
  font-size:.56rem;
  font-weight:700;
  letter-spacing:.08em;
  color:#e2c77e;
}
.jack-roll-mode-detail.advantage .jack-mode-mark{color:#a9d8b9;border-color:rgba(123,190,147,.4)}
.jack-roll-mode-detail.disadvantage .jack-mode-mark{color:#df9699;border-color:rgba(196,91,96,.45)}
.roll_history_separator{height:18px!important}
.dice_animation_scene{height:calc(100% - 199px)!important;min-height:215px!important}

.e_dice_log_block{grid-column:1 / -1!important;width:100%!important;max-width:none!important}
.e_dice_log_title{
  margin:0 0 8px!important;
  padding:9px 12px!important;
  border-radius:10px!important;
  font-size:1rem!important;
  letter-spacing:.08em;
  text-align:left!important;
}
.e_dice_log_container{height:225px!important;border-radius:12px!important}
.e_dice_log_element{padding:10px 12px!important;position:relative}
.jack-history-mode{width:100%;font-size:.67rem;color:#baa978;margin:4px 0 0 0;padding-left:4px}
.jack-history-mode.advantage{color:#87b99a}.jack-history-mode.disadvantage{color:#ca7c80}

/* Saved rolls */
.jack-saved-rolls{
  width:min(1040px,100%);
  margin:16px auto 0;
  padding:17px;
  border:1px solid rgba(221,176,84,.24);
  border-radius:16px;
  background:
    linear-gradient(110deg,rgba(199,154,59,.055) 0 1px,transparent 1px 28px),
    radial-gradient(circle at 100% 0%,rgba(108,31,36,.14),transparent 28%),
    linear-gradient(145deg,rgba(38,22,15,.97),rgba(17,11,8,.97));
  background-size:29px 29px,auto,auto;
  box-shadow:0 15px 34px rgba(0,0,0,.23);
}
.jack-section-heading{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:12px}
.jack-section-heading h2{font-family:Cinzel,serif;color:#f2e3bd;font-size:1.18rem;margin:2px 0 0}
.jack-section-heading p{max-width:520px;margin:0;color:#9d8f73;font-size:.72rem;line-height:1.45;text-align:right}
.jack-section-heading b{color:#cdb57d;font-weight:600}
.jack-save-composer{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:11px}
#jack_saved_roll_name{
  width:100%;
  border:1px solid rgba(222,179,89,.25);
  border-radius:9px;
  outline:none;
  padding:10px 12px;
  background:#100a07;
  color:#f0e4c9;
  font:600 .8rem Inter,system-ui,sans-serif;
}
#jack_saved_roll_name:focus{border-color:#c99c42;box-shadow:0 0 0 3px rgba(199,154,59,.08)}
#jack_saved_roll_name::placeholder{color:#706550}
.jack-save-btn,.jack-preset-load,.jack-preset-roll,.jack-preset-delete{
  border:0;
  cursor:pointer;
  font-family:Cinzel,serif;
  font-weight:700;
}
.jack-save-btn{
  padding:9px 14px;
  border-radius:9px;
  color:#211309;
  background:linear-gradient(145deg,#eed17e,#b27a25);
  box-shadow:0 4px 0 #654316;
}
.jack-save-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.jack-saved-rolls-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.jack-empty-saved{
  grid-column:1 / -1;
  padding:15px;
  border:1px dashed rgba(197,158,81,.18);
  border-radius:10px;
  color:#776b56;
  text-align:center;
  font-size:.75rem;
}
.jack-saved-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 10px 10px 12px;
  border:1px solid rgba(220,177,89,.16);
  border-radius:10px;
  background:rgba(9,6,5,.52);
}
.jack-saved-info{min-width:0;display:flex;flex-direction:column;gap:3px}
.jack-saved-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Cinzel,serif;color:#e9d9b5;font-size:.78rem}
.jack-saved-info span{color:#92846a;font-size:.67rem}
.jack-saved-actions{display:flex;gap:5px}
.jack-preset-load,.jack-preset-roll,.jack-preset-delete{border-radius:7px;padding:7px 8px;font-size:.62rem}
.jack-preset-load{background:#2b2118;color:#c5ae7a;border:1px solid rgba(199,154,59,.22)}
.jack-preset-roll{background:#5f1e23;color:#f5e5d8;border:1px solid #7c2a30}
.jack-preset-delete{width:29px;background:#17100c;color:#8e7565;border:1px solid rgba(255,255,255,.08);font-size:.9rem}
.jack-preset-load:hover,.jack-preset-roll:hover,.jack-preset-delete:hover{filter:brightness(1.18)}

.jack-footer{margin-top:20px!important;font-size:.62rem!important;color:#6f634f!important}

@media(max-width:860px){
  #fast_dice_roller_block{grid-template-columns:1fr!important;max-width:620px!important}
  .dice_log_container{grid-row:auto!important}
  .e_dice_log_block{grid-column:1!important}
  .jack-saved-rolls{max-width:620px}
  .jack-section-heading{align-items:flex-start;flex-direction:column;gap:7px}
  .jack-section-heading p{text-align:left}
}
@media(max-width:610px){
  .jack-page-shell{padding:14px 10px 34px!important}
  .jack-hero-v2{margin:0 0 13px!important;padding:18px 15px!important;gap:13px!important;min-height:0}
  .jack-hero-v2::after{display:none}
  .jack-hero-chips span{font-size:.49rem}
  .dice_attribute_container{padding:12px;border-radius:12px}
  .dice_attribute_container_element{grid-template-columns:1fr!important}
  .jack-roll-mode-panel{grid-template-columns:1fr!important}
  .dice_roll_button_container{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .dice_roll_button_custom_block{grid-column:span 3!important}
  .jack-saved-rolls-list{grid-template-columns:1fr}
  .jack-save-composer{grid-template-columns:1fr}
  .jack-saved-card{grid-template-columns:1fr}
  .jack-saved-actions{justify-content:flex-end}
}
@media(max-width:380px){
  .dice_roll_button_container{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .dice_roll_button_custom_block{grid-column:span 2!important}
  .jack-mode-switch{grid-template-columns:1fr!important}
}

/* =========================================================
   V3 — Ventaja / Desventaja con DOS dados 3D simultáneos
   ========================================================= */
.dice_animation_scene{position:relative;overflow:hidden}

.jack-dual-dice-stage{
  position:absolute;
  inset:0;
  display:none;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:center;
  justify-items:center;
  gap:14px;
  padding:14px 18px 18px;
  box-sizing:border-box;
  perspective:900px;
  z-index:3;
}
.jack-dual-dice-stage.active{display:grid}

.jack-dual-slot{
  position:relative;
  width:100%;
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  cursor:pointer;
  transition:opacity 260ms ease, filter 260ms ease, transform 260ms ease;
}
.jack-dual-slot::before{
  content:"";
  position:absolute;
  inset:9px 3px;
  border:1px solid rgba(221,176,84,.12);
  border-radius:13px;
  background:radial-gradient(circle at 50% 52%,rgba(211,160,59,.08),transparent 58%);
  pointer-events:none;
}
.jack-dual-slot + .jack-dual-slot::after{
  content:"";
  position:absolute;
  left:-7px;
  top:18%;
  bottom:18%;
  width:1px;
  background:linear-gradient(transparent,rgba(221,176,84,.26),transparent);
}

.jack-dual-caption,
.jack-dual-result-pill{
  position:relative;
  z-index:8;
  font-family:Cinzel,serif;
  text-transform:uppercase;
  letter-spacing:.1em;
  text-align:center;
  user-select:none;
}
.jack-dual-caption{
  color:#8f8168;
  font-size:.56rem;
  min-height:15px;
}
.jack-dual-result-pill{
  min-width:68px;
  padding:5px 9px 4px;
  border:1px solid rgba(218,177,91,.25);
  border-radius:999px;
  background:rgba(15,10,7,.72);
  color:#d3c7aa;
  font-size:.67rem;
  box-shadow:0 5px 15px rgba(0,0,0,.22);
}

.jack-dual-visual{
  position:relative;
  z-index:4;
  width:170px;
  height:142px;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:scale(.78);
  transform-origin:center;
}
.jack-dual-wrapper{
  transform-style:preserve-3d;
  transform-origin:center;
}
.jack-dual-wrapper .dice_element{cursor:inherit!important}

.jack-dual-shadow{
  position:absolute;
  z-index:1;
  width:76px;
  height:24px;
  bottom:18px;
  left:50%;
  transform:translateX(-50%);
  border-radius:50%;
  background:rgba(0,0,0,.38);
  filter:blur(8px);
  transition:opacity 250ms ease, transform 250ms ease;
}

.jack-dual-slot.chosen{
  transform:translateY(-3px) scale(1.035);
  filter:drop-shadow(0 0 13px rgba(229,188,91,.36));
}
.jack-dual-slot.chosen::before{
  border-color:rgba(232,193,105,.45);
  background:radial-gradient(circle at 50% 52%,rgba(216,166,63,.17),transparent 61%);
}
.jack-dual-slot.chosen .jack-dual-caption{color:#edcf82}
.jack-dual-slot.chosen .jack-dual-result-pill{
  color:#fff0bd;
  border-color:rgba(235,196,105,.58);
  background:linear-gradient(145deg,rgba(111,73,16,.88),rgba(55,34,8,.9));
}
.jack-dual-slot.discarded{opacity:.45;filter:saturate(.55) brightness(.72)}
.jack-dual-slot.discarded .jack-dual-shadow{opacity:.45;transform:translateX(-50%) scale(.85)}

.jack-dual-dice-stage.advantage .jack-dual-slot.chosen .jack-dual-result-pill{
  border-color:rgba(154,215,176,.58);
  color:#c8efd5;
  background:linear-gradient(145deg,rgba(44,99,65,.88),rgba(17,49,31,.9));
}
.jack-dual-dice-stage.disadvantage .jack-dual-slot.chosen .jack-dual-result-pill{
  border-color:rgba(224,137,143,.58);
  color:#ffd3d6;
  background:linear-gradient(145deg,rgba(112,38,43,.9),rgba(56,18,21,.92));
}

@media (max-width:560px){
  .jack-dual-dice-stage{gap:2px;padding:10px 4px 14px}
  .jack-dual-visual{width:145px;transform:scale(.63)}
  .jack-dual-caption{font-size:.49rem}
  .jack-dual-result-pill{font-size:.58rem;min-width:58px;padding:4px 7px 3px}
  .jack-dual-slot + .jack-dual-slot::after{left:-1px}
}

@media (max-width:370px){
  .jack-dual-visual{width:120px;transform:scale(.53)}
}
/* d100 / dado personalizado: reemplazo de las texturas faltantes */
.f_d_custom{
  background-image:none!important;
  background:linear-gradient(145deg,#426d34,#213e1d)!important;
  border:1px solid rgba(150,190,112,.22);
  box-sizing:border-box;
}
.new_f_d_custom{background:linear-gradient(145deg,#72501b,#b48731)!important}

/* =========================================================
   FIX V3.1 — controles Cantidad / Modificador
   Evita que el botón + salte a una segunda línea.
   ========================================================= */
.dice_attribute_button.responsive{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) 38px;
  grid-template-rows:48px;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  column-gap:0!important;
}

.dice_attribute_button .left_right_dice_attribute_button{
  width:38px!important;
  min-width:38px!important;
  height:48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  margin:0!important;
}

.dice_attribute_button .option_dice_attribute_button{
  width:auto!important;
  min-width:0!important;
  height:48px!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}

.dice_attribute_button .left_right_dice_attribute_button_text{
  position:static!important;
  top:auto!important;
  margin:0!important;
  padding:0!important;
  line-height:1!important;
  font-size:2.2em!important;
  transform:translateY(-1px);
}

.dice_attribute_button .left_right_dice_attribute_button:first-child{
  border-radius:9px 0 0 9px!important;
}

.dice_attribute_button .left_right_dice_attribute_button:last-child{
  border-radius:0 9px 9px 0!important;
}

/* =========================================================
   V4 — Fondo de dados, logo de Jack, columnas y fórmulas
   ========================================================= */
body{
  background-color:#050505!important;
  background-image:
    linear-gradient(rgba(4,4,4,.70),rgba(4,4,4,.86)),
    url('images/jack-dice-pattern.png')!important;
  background-size:auto,520px 520px!important;
  background-repeat:repeat,repeat!important;
  background-attachment:fixed,fixed!important;
  background-position:center top,center top!important;
}
body::before{display:none!important}

.jack-page-shell{width:min(1180px,100%)!important;padding-top:24px!important}
.jack-hero-v2{
  max-width:1120px!important;
  min-height:118px!important;
  margin-bottom:16px!important;
  padding:18px 24px!important;
  border-radius:18px!important;
  background:linear-gradient(110deg,rgba(8,8,8,.96),rgba(25,18,13,.94))!important;
  border:1px solid rgba(232,209,155,.34)!important;
  backdrop-filter:blur(5px);
}
.jack-hero-v2::after{content:none!important;display:none!important}
.jack-hero-chips{display:none!important}
.jack-brand-icon{
  width:78px;
  height:78px;
  flex:0 0 78px;
  object-fit:contain;
  border-radius:50%;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.45));
}
.jack-hero h1{font-size:clamp(2rem,5vw,3.55rem)!important}
.jack-subtitle{margin-top:6px!important}

#fast_dice_roller_block{
  max-width:1120px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.34fr) minmax(350px,.86fr)!important;
  gap:16px!important;
  align-items:start!important;
}
.jack-left-column,.jack-right-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.jack-right-column{
  padding:10px;
  border:1px solid rgba(222,190,117,.22);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(17,14,12,.94),rgba(5,5,5,.96));
  box-shadow:0 16px 36px rgba(0,0,0,.34);
}
.jack-right-column .dice_log_container,
.jack-right-column .e_dice_log_title,
.jack-right-column .e_dice_log_container{
  box-shadow:none!important;
}
.jack-right-column .dice_log_container{
  width:100%!important;
  height:430px!important;
  border-radius:12px!important;
  margin:0!important;
}
.jack-right-column .dnd_roll_again_container{
  width:100%!important;
  display:flex!important;
  gap:8px!important;
  margin:0!important;
}
.jack-right-column .dnd_roll_again_element_1,
.jack-right-column .dnd_roll_again_element_2{max-width:none!important;flex:1}
.jack-right-column .e_dice_log_block{width:100%!important;margin:0!important}
.jack-right-column .e_dice_log_title{
  margin:0 0 7px!important;
  border-radius:10px!important;
  background:rgba(37,27,20,.96)!important;
}
.jack-right-column .e_dice_log_container{
  height:285px!important;
  border-radius:10px!important;
}

.jack-saved-rolls{
  width:100%!important;
  margin:0!important;
  padding:14px!important;
  border-radius:14px!important;
  background:linear-gradient(145deg,rgba(28,21,17,.97),rgba(7,7,7,.97))!important;
}
.jack-saved-rolls-list{grid-template-columns:1fr!important}
.jack-section-heading{align-items:flex-start!important;flex-direction:column!important;gap:5px!important}
.jack-section-heading p{text-align:left!important;max-width:none!important}

.jack-expression-panel{
  width:100%;
  display:grid;
  grid-template-columns:minmax(165px,.72fr) minmax(280px,1.28fr);
  gap:10px 12px;
  padding:12px;
  border:1px solid rgba(232,198,119,.24);
  border-radius:12px;
  background:
    radial-gradient(circle at 0 0,rgba(198,153,61,.08),transparent 33%),
    rgba(10,9,8,.88);
}
.jack-expression-copy{display:flex;flex-direction:column;justify-content:center;gap:2px}
.jack-expression-copy strong{font-family:Cinzel,serif;color:#eee0bd;font-size:.91rem}
.jack-expression-copy small{color:#8f846f;font-size:.67rem;line-height:1.35;margin-top:3px}
.jack-expression-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
#jack_expression_input{
  width:100%;
  min-width:0;
  height:40px;
  border:1px solid rgba(226,190,109,.28);
  border-radius:9px;
  outline:none;
  padding:0 11px;
  background:#050505;
  color:#f0e7d0;
  font:700 .88rem 'Courier New',monospace;
  letter-spacing:.015em;
}
#jack_expression_input::placeholder{color:#726a5b;font-weight:400}
#jack_expression_input:focus{border-color:#d2ad5d;box-shadow:0 0 0 3px rgba(210,173,93,.09)}
#jack_expression_roll{
  height:40px;
  border:1px solid #d1b36b;
  border-radius:9px;
  padding:0 13px;
  cursor:pointer;
  background:linear-gradient(145deg,#f0d782,#a87327);
  color:#1c1209;
  font:700 .66rem Cinzel,serif;
  white-space:nowrap;
  box-shadow:0 4px 0 #614216;
}
#jack_expression_roll:hover{filter:brightness(1.08);transform:translateY(-1px)}
.jack-expression-error{
  grid-column:1 / -1;
  min-height:0;
  margin:0;
  color:#df8f91;
  font-size:.68rem;
  line-height:1.3;
}
.jack-expression-error:empty{display:none}

.jack-expression-stage{
  width:calc(100% - 22px);
  height:calc(100% - 18px);
  margin:9px 11px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
  border:1px solid rgba(229,198,125,.14);
  border-radius:13px;
  background:radial-gradient(circle at 50% 42%,rgba(205,165,74,.11),transparent 55%);
  color:#d9caab;
}
.jack-expression-stage strong{font-family:Cinzel,serif;color:#f2dfad;font-size:clamp(.9rem,2vw,1.15rem)}
.jack-expression-stage .jack-expression-total{font-family:Cinzel,serif;font-size:2.8rem;line-height:1;color:#f5e7bf}
.jack-expression-stage .jack-expression-breakdown{max-width:95%;font:600 .72rem Inter,sans-serif;color:#a99b80;line-height:1.55}
.jack-expression-stage .jack-expression-comparison{font:.67rem Cinzel,serif;color:#c9b475}
.jack-expression-chip{
  display:inline-block;
  margin:2px 3px;
  padding:3px 6px;
  border-radius:6px;
  border:1px solid rgba(210,177,100,.18);
  background:rgba(0,0,0,.3);
  color:#d8c9a7;
}

/* Keep the amount / modifier controls locked in a single row. */
.dice_attribute_button.responsive{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) 38px!important;
  grid-template-rows:48px!important;
  flex-wrap:nowrap!important;
  align-items:stretch!important;
  column-gap:0!important;
}
.dice_attribute_button .left_right_dice_attribute_button{
  width:38px!important;
  height:48px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.dice_attribute_button .left_right_dice_attribute_button_text{
  position:static!important;
  margin:0!important;
  line-height:1!important;
  transform:none!important;
}
.dice_attribute_button .option_dice_attribute_button{width:auto!important;min-width:0!important}

@media(max-width:900px){
  #fast_dice_roller_block{grid-template-columns:1fr!important;max-width:680px!important}
  .jack-right-column{order:2}
  .jack-left-column{order:1}
  .jack-expression-panel{grid-template-columns:1fr!important}
}
@media(max-width:610px){
  .jack-brand-icon{width:58px;height:58px;flex-basis:58px}
  .jack-expression-controls{grid-template-columns:1fr!important}
  #jack_expression_roll{width:100%}
  .jack-right-column{padding:7px;border-radius:13px}
}
