:root{
  --bg-color:#0f0f0f;
  --font-family:'Lato', sans-serif;
}
html.fonts-loading body{opacity:0;transition:none}
html.fonts-ready body{opacity:1;transition:none}
html.fonts-ready.fonts-ready-animate body{transition:opacity .2s ease}
/* Extracted from your inline <style> (trimmed comments) */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; font-family:var(--font-family); background:var(--bg-color); color:#fff}
button, input, textarea, select, label{font-family:inherit}
.app{display:flex; height:100%; padding:12px; gap:12px; min-height:0; overflow:hidden}
.left, .right{background:var(--bg-color); border:1px solid rgba(255,255,255,.1); border-radius:12px; box-shadow:0 8px 28px rgba(0,0,0,.35)}
.left{flex:1; display:flex; flex-direction:column; min-width:0; min-height:0}
.right{width:560px; display:flex; flex-direction:column; min-width:360px; min-height:0; position:relative}

.head{padding:8px 12px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(255,255,255,.1)}
.brand{display:flex; flex-direction:column; gap:4px}
.brand-top{display:flex; align-items:center; gap:8px}
#titleText{font-weight:800; font-size:20px; line-height:1}
#descText{font-size:12px; color:rgba(255,255,255,0.7); min-height:14px}
.btn{appearance:none; border:1px solid rgba(255,255,255,.2); background:var(--bg-color); color:#fff; padding:8px 12px; border-radius:10px; cursor:pointer; font-weight:bold}
.btn:hover{border-color:rgba(255,255,255,.35)}
.btn.small{padding:6px 10px; font-size:13px}
.btn.primary{background:#2b60db; border:0}
.btn.toggle.active{ background:#3b7cff; border-color:#3b7cff; color:#fff }
.btn.danger{ background:#a33; border-color:#a33 }

.canvas-wrap{flex:1; display:flex; align-items:center; justify-content:center; padding:6px; position:relative; min-width:0; min-height:0; overflow:hidden}
canvas{display:block; width:100%; height:auto; background:transparent}
.fs-canvas{ width: 100vmin !important; height: 100vmin !important; max-width:none !important; }

.foot{padding:10px 12px; display:flex; justify-content:flex-end; align-items:center; border-top:2px solid rgba(255,255,255,.1)}

.tabs{display:flex; gap:14px; padding:8px 12px; align-items:center; border-bottom:2px solid rgba(255,255,255,.1)}
.tab{cursor:pointer; color:rgba(255,255,255,0.5); user-select:none; line-height:1; display:inline-flex; align-items:center; height:26px; font-weight:600; transition:color .2s ease}
.tab.active{color:#e9ecf1}
.badge{display:inline-block; min-width:18px; padding:0 6px; font-size:12px; line-height:18px; border-radius:9px; background:var(--bg-color); border:1px solid rgba(255,255,255,.1); margin-left:6px; text-align:center}

.panel{display:none; flex-direction:column; flex:1 1 auto; min-height:0; overflow:auto; scrollbar-width:none; -ms-overflow-style:none}
.panel::-webkit-scrollbar{width:0; height:0}
.panel.active{display:flex}

.toolbar{display:flex; gap:8px; padding:8px 12px; align-items:center}
.results-body{padding:10px 12px; display:flex; flex-direction:column; gap:8px}
.results-table{width:100%; border-collapse:collapse}
.results-footer{margin-top:4px; display:flex; align-items:center; gap:10px; justify-content:flex-start}
.results-total{font-weight:600}
.results-edit-card{display:flex; flex-direction:column; gap:12px}
.results-edit-title{font-size:20px; font-weight:700}
.results-edit-hint{margin:0; font-size:13px; color:rgba(255,255,255,0.72)}
.results-edit-body{display:flex; flex-direction:column; gap:10px; max-height:360px; overflow:auto; padding-right:4px}
.results-edit-list{display:flex; flex-direction:column; gap:8px}
.results-edit-empty{display:none; align-items:center; justify-content:center; text-align:center; font-size:13px; color:rgba(255,255,255,0.65); border:1px dashed rgba(255,255,255,0.18); border-radius:12px; padding:24px}
.results-edit-row{display:flex; gap:12px; align-items:flex-start; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); border-radius:12px; padding:10px}
.results-edit-order{font-weight:700; font-size:14px; opacity:0.7; min-width:22px; text-align:center; padding-top:6px}
.results-edit-fields{flex:1; display:flex; flex-direction:column; gap:8px}
.results-edit-field{display:flex; flex-direction:column; gap:6px; font-size:12px; color:rgba(255,255,255,0.75)}
.results-edit-input{width:100%; padding:6px 10px; border-radius:8px; border:1px solid rgba(255,255,255,0.18); background:rgba(0,0,0,0.35); color:#fff; font-size:13px; font-weight:600}
.results-edit-input:focus{outline:2px solid rgba(59,124,255,0.6); outline-offset:1px}
.results-edit-actions{display:flex; flex-direction:column; gap:6px}
.results-edit-action{appearance:none; border:1px solid rgba(255,255,255,0.18); background:rgba(255,255,255,0.08); color:#fff; padding:6px 10px; border-radius:8px; font-size:12px; font-weight:700; cursor:pointer; transition:background .2s ease, border-color .2s ease}
.results-edit-action:hover:not(:disabled){border-color:rgba(255,255,255,0.32); background:rgba(255,255,255,0.18)}
.results-edit-action:disabled{opacity:0.4; cursor:not-allowed}
.results-edit-action.danger{color:#ff8484; border-color:rgba(255,107,107,0.4); background:rgba(255,107,107,0.08)}
.results-edit-action.danger:hover:not(:disabled){border-color:rgba(255,107,107,0.6); background:rgba(255,107,107,0.14)}
.results-edit-new{display:flex; flex-direction:column; gap:10px; border-top:1px solid rgba(255,255,255,0.12); padding-top:12px}
.results-edit-new-fields{display:flex; flex-wrap:wrap; gap:10px}
.results-edit-new-fields label{flex:1 1 200px; display:flex; flex-direction:column; gap:6px; font-size:12px; color:rgba(255,255,255,0.75)}
.results-edit-new-fields input{width:100%; padding:6px 10px; border-radius:8px; border:1px solid rgba(255,255,255,0.18); background:rgba(0,0,0,0.35); color:#fff; font-size:13px; font-weight:600}
.results-edit-new-fields input:focus{outline:2px solid rgba(59,124,255,0.6); outline-offset:1px}
.results-edit-actions-bar{margin-top:4px}
.entries{flex:1; overflow:auto; padding:0 8px 10px 8px; scrollbar-width:none; -ms-overflow-style:none}
.entries::-webkit-scrollbar{width:0; height:0}
.entries-foot{padding:10px 12px; border-top:1px solid rgba(255,255,255,.08); display:flex; justify-content:flex-end}

.row{display:flex; gap:10px; align-items:center; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.06); flex-wrap:wrap}
.thumb{width:34px; height:34px; border-radius:8px; background:var(--bg-color) center/cover no-repeat; border:1px solid rgba(255,255,255,.25); cursor:pointer; flex:0 0 34px}

.thumb.has{border-style:solid}
.thumb-btn{display:flex; align-items:center; justify-content:center; padding:0; font-size:10px; line-height:1.2; font-family:inherit; letter-spacing:0.4px; text-transform:uppercase; color:rgba(255,255,255,0.7); background-color:transparent;}
.thumb-btn:focus{outline:2px solid rgba(59,124,255,.65); outline-offset:2px}
.thumbwrap{display:flex; flex-direction:column; align-items:center; gap:4px; min-width:48px}
.metric{ min-width:34px; text-align:left; font-weight:700; font-size:11px }
.metric.h4like{ font-size:14px; font-weight:700 }
.metric.h3like{ font-size:15px; font-weight:700 }


.entry-name-wrap{flex:1 1 220px; min-width:220px; display:flex; flex-direction:column; gap:8px}
.entry-name-input{width:100%; padding:6px 10px; border-radius:8px; border:1px solid rgba(255,255,255,.12); background:var(--bg-color); color:#fff; font-weight:600; font-size:13px; line-height:1.2}
.entry-name-input::placeholder{color:rgba(255,255,255,.4)}
.entry-name-input:focus{outline:2px solid rgba(59,124,255,.6); outline-offset:1px}
.entry-weight{position:relative; display:flex; align-items:center; flex:0 0 auto; min-width:0}
.entry-weight-button{appearance:none; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,0.08); color:#fff; font-size:12px; font-weight:700; padding:6px 12px; border-radius:999px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; transition:background .2s ease, border-color .2s ease; min-width:64px}
.entry-weight-button::after{content:''; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:6px solid rgba(255,255,255,0.85); margin-top:2px; transition:transform .2s ease, border-top-color .2s ease}
.entry-weight-button:focus-visible{outline:2px solid rgba(59,124,255,.6); outline-offset:2px}
.entry-weight-button:hover{border-color:rgba(255,255,255,.32); background:rgba(255,255,255,0.12)}
.entry-weight.is-open .entry-weight-button{background:#3b7cff; border-color:#3b7cff}
.entry-weight.is-open .entry-weight-button::after{border-top-color:#fff; transform:rotate(180deg); margin-top:0; margin-bottom:2px}
.entry-weight-panel{position:absolute; top:calc(100% + 8px); right:0; background:rgba(17,20,27,0.96); border:1px solid rgba(255,255,255,.16); border-radius:12px; padding:10px; display:none; flex-direction:column; gap:10px; box-shadow:0 10px 26px rgba(0,0,0,.45); min-width:200px; z-index:40}
.entry-weight.is-open .entry-weight-panel{display:flex}
.entry-weight-panel::before{content:''; position:absolute; top:-6px; right:18px; width:12px; height:12px; transform:rotate(45deg); background:inherit; border-left:1px solid rgba(255,255,255,.16); border-top:1px solid rgba(255,255,255,.16)}
.entry-weight-panel-row{display:flex; align-items:center; gap:6px; font-size:12px; color:rgba(255,255,255,0.65)}
.entry-weight-slider{width:100%; accent-color:#3b7cff}
.entry-weight-field{width:70px; padding:6px 8px; border-radius:8px; border:1px solid rgba(255,255,255,.18); background:var(--bg-color); color:#fff; font-weight:600; font-size:12px}
.entry-weight-field:focus{outline:2px solid rgba(59,124,255,.6); outline-offset:1px}
.entry-weight-suffix{font-weight:600; color:rgba(255,255,255,0.85)}
.kill{ border:none; background:transparent; color:#ff4d4f; font-size:32px; line-height:1; cursor:pointer; padding:4px 6px; }
.kill:hover{ color:#ff7676 }

.colorbox{ display:flex; align-items:center; justify-content:center; border:none; width:32px; height:32px }
.colorbox input[type="color"]{ width:28px; height:28px; border:1px solid #fff; padding:0; border-radius:50%; background:transparent; appearance:none; cursor:pointer; box-sizing:border-box }
.colorbox input[type="color"]:disabled{ cursor:not-allowed; opacity:0.6 }
.colorbox input[type="color"]::-webkit-color-swatch-wrapper{ padding:0; border-radius:50% }
.colorbox input[type="color"]::-webkit-color-swatch{ border:none; border-radius:50% }

.subtabs{display:flex; gap:14px; padding:8px 12px; align-items:center; border-bottom:1px solid rgba(255,255,255,.1)}
.subtab{cursor:pointer; color:rgba(255,255,255,0.5); user-select:none; line-height:1; display:inline-flex; align-items:center; height:26px; font-weight:600; transition:color .2s ease}
.subtab.active{color:#e9ecf1}

.bulkbox{flex:1; margin:0 12px 12px 12px; display:flex; flex-direction:column; min-height:200px; gap:12px}
.bulkbox textarea{flex:1; min-height:260px; resize:vertical; width:100%; border-radius:10px; border:1px solid rgba(255,255,255,.12); background:var(--bg-color); color:#fff; padding:10px; font-family:inherit; font-size:13px; font-weight:600; line-height:1.2; scrollbar-width:none; -ms-overflow-style:none}
.bulkbox textarea::-webkit-scrollbar{width:0; height:0}
.bulkbox .hint{font-size:12px; color:rgba(255,255,255,0.7); margin-top:6px; display:flex; justify-content:space-between}

.section{border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:12px; margin:10px 12px}
.section h3{margin:0 0 8px; font-size:15px}
.section-note{margin:0; font-size:12px; color:rgba(255,255,255,0.65)}
.winner-options{display:flex; flex-direction:column; gap:8px}
.theme-grid{display:flex; flex-wrap:wrap; gap:10px}
.theme-picker{flex:1 1 180px; min-width:150px; display:flex; flex-direction:column; gap:8px; padding:10px; border:1px solid rgba(255,255,255,.1); border-radius:12px; background:rgba(255,255,255,0.04)}
.theme-picker-header{display:flex; align-items:center; justify-content:space-between; gap:8px}
.theme-picker-header label{font-size:12px; font-weight:700; color:rgba(233,236,241,0.85)}
.theme-picker-row{display:flex; align-items:center; gap:10px}
.theme-color-input{width:38px; height:38px; border:none; padding:0; border-radius:50%; background:transparent; cursor:pointer; appearance:none}
.theme-color-input::-webkit-color-swatch-wrapper{padding:0; border-radius:50%}
.theme-color-input::-webkit-color-swatch{border:none; border-radius:50%}
.theme-color-input::-moz-color-swatch{border:none; border-radius:50%}
.theme-color-input:focus-visible{outline:2px solid rgba(59,124,255,.6); outline-offset:2px}
.theme-color-input.is-auto{box-shadow:0 0 0 1px rgba(255,255,255,0.45) inset}
.theme-color-reset{background:none; border:none; color:rgba(233,236,241,0.7); font-size:12px; font-weight:600; cursor:pointer; padding:2px 4px; border-radius:6px}
.theme-color-reset:hover{color:#fff}
.theme-color-reset:disabled{color:rgba(233,236,241,0.4); cursor:default}
.theme-color-reset:focus-visible{outline:2px solid rgba(59,124,255,.6); outline-offset:1px}
.theme-color-value{font-size:12px; font-weight:600; color:rgba(233,236,241,0.9); min-width:68px}
.theme-color-value.is-auto{font-style:italic; font-weight:500; color:rgba(233,236,241,0.65)}
.theme-note{font-size:12px; color:rgba(255,255,255,0.65); margin:8px 0 0 0}
.save-load-actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px}
.center-actions{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px}
.center-color-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px}
.center-color-row label{font-size:13px; font-weight:600; color:rgba(233,236,241,0.85)}
.center-color-wheel{width:36px; height:36px; padding:0; border:none; background:transparent; cursor:pointer; border-radius:50%}
.center-color-wheel::-webkit-color-swatch-wrapper{padding:0; border-radius:50%}
.center-color-wheel::-webkit-color-swatch{border:none; border-radius:50%}
.center-color-wheel::-moz-color-swatch{border:none; border-radius:50%}
.center-color-text{min-width:150px; padding:6px 8px; border-radius:8px; border:1px solid rgba(255,255,255,.18); background:rgba(0,0,0,0.25); color:#fff; font-size:13px}
.center-color-text::placeholder{color:rgba(233,236,241,0.5)}
.center-color-text[data-invalid="true"]{border-color:#ff6b6b; box-shadow:0 0 0 1px rgba(255,107,107,0.45)}
.center-color-note{font-size:12px; color:rgba(255,255,255,0.6); margin:0 0 0 2px}
.bottom-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:4px }
.left-controls{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.right-controls{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end }
.spin-color-control label{ font-size:13px; font-weight:600; color:rgba(233,236,241,0.85); }
.spin-color-control input[type="color"]{ width:30px; height:30px; border:none; padding:0; border-radius:50%; background:transparent; cursor:pointer; }
.spin-color-control input[type="color"]::-webkit-color-swatch-wrapper{ padding:0; border-radius:50%; }
.spin-color-control input[type="color"]::-webkit-color-swatch{ border:none; border-radius:50%; }
.spin-color-control input[type="color"]::-moz-color-swatch{ border:none; border-radius:50%; }
.slider-row{ display:flex; align-items:center; gap:8px; flex-wrap:wrap }
.slider-row input[type="range"]{ width:220px }
.slider-row.shrink input[type="range"]{ width:110px }
.trim-control{ margin-top:12px; display:flex; flex-direction:column; gap:6px }
.trim-label{ font-weight:600; font-size:.95rem }
.trim-slider{ position:relative; width:100%; height:34px }
.trim-slider input[type="range"]{
  position:absolute;
  inset:0;
  width:100%;
  margin:0;
  background:transparent;
  pointer-events:none;
  appearance:none;
  -webkit-appearance:none;
}
.trim-slider input[type="range"]::-webkit-slider-runnable-track{ background:transparent }
.trim-slider input[type="range"]::-moz-range-track{ background:transparent; border:0 }
.trim-slider input[type="range"]::-moz-range-progress{ background:transparent }
.trim-slider input[type="range"]::-ms-track{ background:transparent; border-color:transparent; color:transparent }
.trim-slider input[type="range"]::-ms-fill-lower{ background:transparent }
.trim-slider input[type="range"]::-ms-fill-upper{ background:transparent }
.trim-slider input[type="range"]:first-of-type{ z-index:3 }
.trim-slider input[type="range"]:last-of-type{ z-index:2 }
.trim-slider input[type="range"]::-webkit-slider-thumb{ pointer-events:auto }
.trim-slider input[type="range"]::-moz-range-thumb{ pointer-events:auto }
.trim-slider .trim-track{ position:absolute; left:0; right:0; top:50%; height:4px; border-radius:999px; background:rgba(255,255,255,.18); transform:translateY(-50%); pointer-events:none }
.trim-slider .trim-range{ position:absolute; top:0; bottom:0; left:0; width:0; border-radius:999px; background:#3fb4ff }
.trim-summary{ font-size:.9rem; opacity:.78 }
.spin-slider-label{ font-size:12px; font-weight:600; opacity:.85; min-width:96px; text-align:right }

.subsection{ width:100%; padding:10px; }
#subCustomWinner{ border:none; }
#subCustomSpin{ border:none; }
.subsection .inline{ display:flex; align-items:center; gap:10px }

.subsections-wrap{ display:flex; gap:10px; flex-wrap:wrap }
.subsections-wrap .subsection{ flex:1 1 260px }

.wheel-modal{ position:absolute; inset:0; display:none; align-items:center; justify-content:center; z-index:2500; }
.wheel-modal.show{ display:flex }
.wheel-modal .modal-card{ position:relative; background:var(--bg-color); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:12px 16px; width:min(520px, 92%); box-shadow:0 12px 30px rgba(0,0,0,.5) }
.wheel-modal .modal-card h4{ margin:0 0 6px 0; text-align:left }
.wheel-modal .winner{ margin-top:8px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px }
.wheel-modal .winner .thumb{ width:56px; height:56px; border-radius:10px; border:1px solid rgba(255,255,255,.15) }
#winnerLabel{ font-size:40px; font-weight:800; line-height:1.1; width:100%; text-align:center }
#winnerAutoRemoveCountdown{ display:none; font-size:16px; font-weight:700; text-align:center; color:rgba(255,255,255,0.85); }
.wheel-modal .modal-actions{ display:flex; flex-direction:column; align-items:stretch; gap:12px; margin-top:16px }
.wheel-modal .modal-actions .modal-buttons{ display:flex; gap:8px; justify-content:flex-end }

#resultWheelModal .modal-card{ width:min(700px, 96%); padding:24px 32px; }
#resultWheelModal .modal-card h4{ margin-bottom:16px; font-size:30px; text-align:center; }
#resultWheelModal .winner{ gap:18px; margin-top:12px; }
#resultWheelModal .winner .thumb{ width:90px; height:90px; border-radius:14px; }
#resultWheelModal #winnerLabel{ font-size:48px; }
#resultWheelModal .modal-actions{ margin-top:28px; gap:20px; align-items:center; }
#resultWheelModal #winnerAutoRemoveCountdown{ margin:0 auto; padding:10px 18px; border-radius:999px; background:rgba(255,255,255,0.08); width:100%; max-width:420px; }
#resultWheelModal .modal-actions .modal-buttons{ justify-content:center; gap:16px; }

.center-image-modal{ width:min(680px, 95%); }
.center-image-body{ display:flex; flex-wrap:wrap; gap:16px; margin-top:6px }
.center-image-left{ display:flex; flex-direction:column; gap:10px; flex:1 1 220px }
.center-image-left button{ align-self:flex-start }
.center-image-full{ position:relative; width:220px; height:220px; border-radius:12px; border:1px solid rgba(255,255,255,.12); background:var(--bg-color); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.center-image-full::before{ content:'No Image'; color:rgba(255,255,255,.6); font-size:13px; text-align:center; padding:0 12px; white-space:nowrap; }
.center-image-full img{ max-width:100%; max-height:100%; display:none; object-fit:contain }
.center-image-full[data-empty="false"]::before{ content:'' }
.center-image-full[data-empty="false"] img{ display:block }
.center-image-right{ display:flex; flex-direction:column; gap:8px; flex:1 1 240px; min-width:220px; align-items:flex-start }
.crop-label{ font-size:13px; font-weight:700; opacity:.85 }
.center-crop-area{ position:relative; width:240px; height:240px; border-radius:50%; overflow:hidden; border:2px solid rgba(255,255,255,.15); background:var(--bg-color); flex:0 0 auto }
.center-crop-area::after{ content:''; position:absolute; inset:0; border-radius:50%; box-shadow:inset 0 0 0 2px rgba(0,0,0,.4); pointer-events:none }
.center-crop-area img{ position:absolute; left:50%; top:50%; --offset-x:0px; --offset-y:0px; transform:translate(calc(-50% + var(--offset-x)), calc(-50% + var(--offset-y))); user-select:none; touch-action:none; cursor:grab; will-change:transform }
.center-crop-area.dragging img{ cursor:grabbing }
.crop-hint{ font-size:12px; opacity:.65 }

.canvas-wrap.entry-image-active{ overflow:visible; }
#entryImageWheelModal{ position:absolute; top:50%; left:100%; right:auto; bottom:auto; transform:translate(24px, -50%); align-items:stretch; justify-content:center; width:auto; }
#entryImageWheelModal .modal-card{ width:min(420px, 90vw); }
.entry-image-modal{ width:min(720px, 95%); }
.entry-image-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px }
.entry-image-header-content{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; min-height:48px }
.entry-image-nav{ appearance:none; border:1px solid rgba(255,255,255,.2); background:var(--bg-color); color:#fff; width:32px; height:32px; border-radius:999px; cursor:pointer; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center }
@supports (clip-path:polygon(0 50%, 100% 0, 100% 100%)){
  .entry-image-nav{ font-size:0; line-height:0; display:grid; place-items:center; position:relative }
  .entry-image-nav::after{ content:''; position:absolute; left:50%; top:50%; width:10px; height:10px; background:currentColor; clip-path:polygon(0 50%, 100% 0, 100% 100%); transform:translate(-50%, -50%); }
  #entryImagePrevBtn.entry-image-nav::after{ transform:translate(-50%, -50%); }
  #entryImageNextBtn.entry-image-nav::after{ transform:translate(-50%, -50%) rotate(180deg); }
}
.entry-image-nav:hover{ border-color:rgba(255,255,255,.35) }
.entry-image-nav:disabled{ opacity:.35; cursor:not-allowed }
.entry-image-body{ display:flex; flex-wrap:wrap; gap:18px; margin-top:6px; align-items:center; justify-content:center }
.entry-image-preview{ position:relative; flex:1 1 320px; min-width:260px; max-width:340px; display:flex; align-items:center; justify-content:center; background:var(--bg-color); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:10px }
.entry-image-preview canvas{ width:100%; height:auto; max-width:320px }
.entry-image-preview[data-has-image="true"] .entry-image-empty{ display:none }
.entry-image-preview .entry-image-empty{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.65); font-size:13px; padding:0 12px; text-align:center; pointer-events:none; white-space:nowrap }
.entry-image-controls{ flex:1 1 220px; min-width:220px; display:flex; flex-direction:column; gap:10px; align-items:center; text-align:center }
.entry-image-label{ font-size:18px; font-weight:600; opacity:1 }
.entry-image-buttons{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center }
.entry-image-scale{ width:100%; display:flex; flex-direction:column; gap:6px; align-items:stretch; text-align:left; background:rgba(0,0,0,0.15); padding:12px; border-radius:10px }
.entry-image-scale-label{ display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:600; color:rgba(255,255,255,0.85) }
.entry-image-scale-value{ font-variant-numeric:tabular-nums; font-size:14px }
.entry-image-scale-slider{ width:100% }
.entry-image-scale-help{ font-size:12px; color:rgba(255,255,255,0.65); line-height:1.4 }
.entry-image-shadow{ width:100%; display:flex; flex-direction:column; gap:6px; align-items:stretch; text-align:left; background:rgba(0,0,0,0.15); padding:12px; border-radius:10px }
.entry-image-shadow-label{ display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:600; color:rgba(255,255,255,0.85) }
.entry-image-shadow-value{ font-variant-numeric:tabular-nums; font-size:14px }
.entry-image-shadow-slider{ width:100% }
.entry-image-shadow-help{ font-size:12px; color:rgba(255,255,255,0.65); line-height:1.4 }
.entry-image-note{ font-size:12px; color:rgba(255,255,255,0.7); text-align:center }

@media (max-width: 1200px){
  .canvas-wrap.entry-image-active{ overflow:hidden; }
  #entryImageWheelModal{ left:50%; transform:translate(-50%, -50%); }
}

@media (max-width: 860px){
  #entryImageWheelModal{ inset:0; position:absolute; top:0; left:0; transform:none; align-items:center; justify-content:center; }
  #entryImageWheelModal .modal-card{ width:min(520px, 92%); }
}

/* Fullscreen tweaks */
body.fs-active .right{ display:none !important; }
body.fs-active .left{ background:transparent !important; border:none !important; box-shadow:none !important; }
body.fs-active .left .head, body.fs-active .left .foot{ display:none !important; }
body.fs-active .app{ padding:0 !important; gap:0 !important; }
#secSpin #toggleSlowSpinBtn{ margin-left:6px; vertical-align:middle }

.modal{ position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(0,0,0,.55) }
.modal.show, .modal[style*="display: flex"]{ display:flex !important; }

/* Sidebar overlay */
#sidebarSpinOverlay{
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: none;
  z-index: 5;
  background: rgba(10,10,10,0.55);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18),
              0 0 0 1px rgba(255,255,255,0.12);
  border-radius: 12px;
  --spinner-color: #ffffff;
  --spinner-color-muted: rgba(255,255,255,0.35);
  --spinner-color-strong: rgba(255,255,255,0.95);
}
#sidebarSpinOverlay[hidden]{
  display: none !important;
}
#sidebarSpinOverlay.show{
  display: block;
  pointer-events: auto;
}
#sidebarSpinOverlay .overlay-card{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  gap: 10px;
  font-family: inherit;
}
#sidebarSpinOverlay .spinner{
  width: 28px; height: 28px;
  border: 3px solid var(--spinner-color-muted, rgba(255,255,255,.35));
  border-top-color: var(--spinner-color-strong, rgba(255,255,255,.95));
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
#sidebarSpinOverlay .msg{ font-size: 18px; font-weight: 700; color: #fff; }
#sidebarSpinOverlay .hint{ font-size: 13px; color: rgba(255,255,255,.9); }
@keyframes spin{ to{ transform: rotate(360deg) } }

#sidebarSpinOverlay{ contain: content; will-change: opacity; }
#sidebarSpinOverlay .overlay-card{ contain: content; }
#wheel.spinning{ will-change: transform; }

/* Fullscreen polish */
body.fs-active{ overflow:hidden !important; }
body.fs-active .left .canvas-wrap{ padding:0 !important; }
.fs-canvas{ width: calc(100vmin - 8px) !important; height: calc(100vmin - 8px) !important; max-width:none !important; }
body.fs-active #wheelStage{
  max-width: none !important;
  width: calc(100vmin - 8px) !important;
}

#descText:empty{ display:none; }
.brand-top .btn.small{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:28px;
  padding:0 10px;
  line-height:1;
  vertical-align:middle;
}

.tab, .subtab { font-family: inherit; }
.right{ border-width: 1px !important; }

/* === Snapshot-rotate additions === */
#wheelStage{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:900px;
  aspect-ratio:1 / 1;
}
#wheelSnapshot{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:none;
  pointer-events:none;
  will-change: transform;
  transform-origin:center center;
}
/* CSS pointer (we still draw a pointer on canvas too, but this gives a crisp overlay) */
#pointerOverlay{
  position:absolute;
  top:50%;
  right:8px;
  transform:translateY(-50%);
  display:none;
  pointer-events:none;
  width:0; height:0;
  --pointer-scale:1;
  border-top:solid transparent;
  border-bottom:solid transparent;
  border-right:solid var(--pointer-color, rgba(255,255,255,0.95));
  border-top-width:calc(18px * var(--pointer-scale, 1));
  border-bottom-width:calc(18px * var(--pointer-scale, 1));
  border-right-width:calc(24px * var(--pointer-scale, 1));
  filter:drop-shadow(0 0 2px rgba(0,0,0,.4));
}

/* CSS editor overlay */
body.pe-active{
  cursor: crosshair;
}
#paddingEditorOverlay{
  position:absolute;
  display:none;
  pointer-events:none;
  border:2px dashed rgba(79,130,255,0.8);
  background:rgba(79,130,255,0.16);
  border-radius:10px;
  z-index:10000;
  box-shadow:0 0 0 1px rgba(12,20,45,0.6);
}
#paddingEditorOverlay.show{
  display:block;
}
#paddingEditorOverlay.selected{
  border-style:solid;
  background:rgba(79,130,255,0.12);
  box-shadow:0 0 0 2px rgba(79,130,255,0.35);
}

#paddingEditorPanel{
  position:fixed;
  bottom:20px;
  right:20px;
  width:320px;
  max-width:calc(100vw - 32px);
  background:rgba(34,34,34,0.96);
  border:1px solid rgba(79,130,255,0.5);
  border-radius:14px;
  padding:16px;
  box-shadow:0 18px 40px rgba(0,0,0,0.55);
  display:none;
  flex-direction:column;
  gap:12px;
  z-index:10001;
  color:rgba(255,255,255,0.85);
  font-size:13px;
}
body.pe-active #paddingEditorPanel{
  display:flex;
}
#paddingEditorPanel .pe-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
#paddingEditorPanel .pe-title{
  font-weight:700;
  font-size:15px;
  color:#ffffff;
}
#paddingEditorPanel .pe-target{
  font-weight:600;
  color:rgba(255,255,255,0.95);
  font-size:13px;
}
#paddingEditorPanel .pe-note{
  font-size:12px;
  color:rgba(255,255,255,0.75);
  line-height:1.5;
}
#paddingEditorPanel .pe-subtitle{
  font-size:12px;
  font-weight:600;
  color:rgba(255,255,255,0.75);
  margin-top:4px;
}
#paddingEditorPanel .pe-subtitle + .pe-grid{
  margin-top:4px;
}
#paddingEditorPanel .pe-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}
#paddingEditorPanel label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:rgba(255,255,255,0.65);
}
#paddingEditorPanel input[type="number"]{
  padding:6px 10px;
  border-radius:8px;
  border:1px solid rgba(79,130,255,0.45);
  background:var(--bg-color);
  color:#fff;
  font-size:13px;
  box-shadow:inset 0 0 0 1px rgba(12,18,32,0.4);
}
#paddingEditorPanel input[type="number"]:disabled{
  opacity:0.4;
}
#paddingEditorPanel label.pe-font-select{
  gap:6px;
}
#paddingEditorPanel label.pe-font-select span{
  font-size:12px;
  color:rgba(255,255,255,0.65);
}
#paddingEditorPanel select{
  padding:6px 10px;
  border-radius:8px;
  border:1px solid rgba(79,130,255,0.45);
  background:var(--bg-color);
  color:#fff;
  font-size:13px;
  box-shadow:inset 0 0 0 1px rgba(12,18,32,0.4);
  font-family:inherit;
  width:100%;
}
#paddingEditorPanel select:disabled{
  opacity:0.4;
}
#paddingEditorPanel .pe-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
#paddingEditorPanel .pe-hint{
  font-size:11px;
  color:rgba(255,255,255,0.6);
  line-height:1.4;
}
#paddingEditorPanel .pe-cta{
  font-size:12px;
  color:rgba(255,255,255,0.65);
  line-height:1.45;
}
#paddingEditorPanel .pe-font-note{
  font-size:11px;
  color:rgba(255,255,255,0.6);
  line-height:1.45;
}
#paddingEditorPanel .btn.small.secondary{
  background:var(--bg-color);
  border-color:rgba(79,130,255,0.5);
  color:rgba(255,255,255,0.85);
}
#paddingEditorPanel .btn.small.secondary:hover{
  border-color:rgba(119,160,255,0.75);
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.subtabs:nth-of-type(1) > div.subtab.active:nth-of-type(1) {
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.subtabs:nth-of-type(1) > div.subtab:nth-of-type(2) {
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 6px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.subtabs:nth-of-type(1) {
  padding: 5px 12px 5px 12px;
  margin: 0px 0px 0px 0px;
}

#entriesCount {
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 3px;
}

#resultsCount {
  padding: 0px 0px 0px 0px;
  margin: 0px 0px 0px 3px;
}

#editBtn {
  padding: 0px 10px 0px 10px;
  margin: 2px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.left:nth-of-type(1) > div.head:nth-of-type(1) {
  padding: 10px 12px 10px 12px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.tabs:nth-of-type(2) {
  padding: 5px 12px 5px 12px;
  margin: 0px 0px 0px 0px;
}

#bulkText {
  padding: 8px 8px 8px 8px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.panel.active:nth-of-type(2) > div.toolbar:nth-of-type(1) {
  padding: 10px 10px 12px 10px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.toolbar:nth-of-type(1) {
  padding: 10px 12px 2px 12px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) > table > thead > tr > th:nth-of-type(1) {
  padding: 1px 1px 1px 1px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) {
  padding: 5px 12px 5px 12px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) > table > tbody > tr:nth-of-type(1) > td:nth-of-type(1) {
  padding: 8px 1px 1px 1px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) > table > tbody > tr:nth-of-type(1) > td:nth-of-type(2) {
  padding: 8px 1px 1px 1px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) > table > tbody > tr:nth-of-type(2) > td:nth-of-type(1) {
  padding: 4px 1px 1px 1px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(4) > div.body:nth-of-type(2) > table > tbody > tr:nth-of-type(2) > td:nth-of-type(2) {
  padding: 4px 1px 1px 1px;
  margin: 0px 0px 0px 0px;
}

#saveBtn {
  padding: 6px 5px 6px 5px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.panel.active:nth-of-type(3) > div.toolbar:nth-of-type(1) {
  padding: 10px 10px 2px 10px;
  margin: 0px 0px 0px 0px;
}

#shuffleBtn {
  padding: 6px 10px 6px 10px;
  margin: 0px 0px 0px 0px;
}

div.app:nth-of-type(1) > div.right:nth-of-type(2) > div.panel.active:nth-of-type(3) > div.panel.active:nth-of-type(3) > div.entries:nth-of-type(2) > div.row:nth-of-type(1) > div.entry-name-wrap:nth-of-type(1) > input.entry-name-input {
  padding: 6px 12px 6px 12px;
  margin: 0px 0px 0px 0px;
}

#entries {
  padding: 0px 10px 10px 10px;
  margin: 0px 0px 0px 0px;
}
