/* Paperoom table tools. Uses the site's design tokens (style.css :root); prefix w-.
   Surfaces are white cards on blush paper with soft layered shadows; primary buttons sit on a coloured base, like the site's .button. */
:is(.w-tool,[data-widget]){--w-ink:var(--ink,#17181f);--w-card:var(--card,#fff);--w-rule:var(--rule,#f1e2da);--w-rule-2:var(--rule-2,#e0c8bc);--w-muted:var(--muted,#5b5e72);color:var(--w-ink);font-family:var(--body,system-ui,sans-serif)}
:where(.w-tool,[data-widget]) button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.w-stage{position:relative;display:grid;gap:18px;justify-items:center;padding:clamp(18px,4vw,36px);border:0;border-radius:30px;background:var(--dots,radial-gradient(circle at 1px 1px,#17181f14 1.4px,transparent 1.8px)) 0 0/16px 16px,linear-gradient(160deg,#fff 0,var(--sun-tint,#fff1c4) 150%);box-shadow:var(--shadow,0 2px 4px #5a2a1a0a,0 14px 34px -14px #6a2e1c3d)}
.w-readout{display:flex;align-items:baseline;gap:10px;font-family:var(--display,inherit);font-size:15px;color:var(--w-muted)}
.w-readout output{font-family:var(--display,inherit);font-size:clamp(34px,7vw,56px);font-weight:900;line-height:1;color:var(--w-ink);font-variant-numeric:tabular-nums}
.w-controls{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:center;margin-top:18px}
.w-button{min-height:48px;padding:10px 26px;border:0;border-radius:16px;background:var(--w-ink);color:#fff;font:850 16px/1.2 var(--display,system-ui,sans-serif);cursor:pointer;box-shadow:0 1px 2px #17181f33,0 8px 18px -8px #17181f80;transition:transform .15s,box-shadow .15s}
.w-button:hover{transform:translateY(-2px);box-shadow:0 2px 4px #17181f33,0 14px 24px -10px #17181f80}
.w-button:active{transform:translateY(3px);box-shadow:0 1px 2px #17181f33}
.w-button.secondary{background:var(--w-card);color:var(--w-ink);box-shadow:0 1px 2px #6a2e1c1f,0 8px 18px -10px #6a2e1c59}
.w-button.secondary:hover{box-shadow:0 2px 4px #6a2e1c1f,0 14px 24px -12px #6a2e1c66}
.w-button.secondary:active{box-shadow:0 1px 2px #6a2e1c1f}
.w-button:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.w-button.secondary:disabled,.w-button.secondary:disabled:hover,.w-button.secondary:disabled:active{box-shadow:0 1px 4px -2px #6a2e1c40}
.w-chips{display:flex;flex-wrap:wrap;gap:6px}
.w-chip{min-height:44px;min-width:48px;padding:6px 14px;border:0;border-radius:99px;background:var(--w-card);box-shadow:inset 0 0 0 1px var(--w-rule);font-weight:700;font-size:14px;cursor:pointer}
.w-chip[aria-checked=true],.w-chip[aria-pressed=true]{background:var(--w-ink);color:var(--w-card);box-shadow:none}
.w-step{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:700}
.w-step-label{margin-inline-end:4px}
.w-step-btn{width:44px;height:44px;border:0;border-radius:50%;background:var(--w-card);color:var(--w-ink);box-shadow:inset 0 0 0 1px var(--w-rule),var(--shadow-s,0 1px 2px #5a2a1a0d,0 4px 14px -6px #5a2a1a24);font-size:20px;line-height:1;cursor:pointer}
.w-step-btn:disabled{opacity:.35;cursor:default}
.w-step-value{min-width:2ch;text-align:center;font-size:20px;font-variant-numeric:tabular-nums}
.w-note{margin:12px auto 0;max-width:60ch;text-align:center;font-size:13px;color:var(--w-muted)}
.w-more{margin:14px auto 0;max-width:640px;font-size:14px}
.w-more summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center;justify-content:center}
.w-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
:is(.w-tool,[data-widget]) :focus-visible{outline:3px solid var(--blue,#2f6bff);outline-offset:3px}
:is(.w-tool,[data-widget]) input:not([type=checkbox],[type=radio]),:is(.w-tool,[data-widget]) select,:is(.w-tool,[data-widget]) textarea{font:inherit;color:inherit;background:var(--paper,#fff8f4);border:0;border-radius:14px;box-shadow:inset 0 0 0 1.5px var(--rule-2,#e0c8bc);padding:10px 14px;min-height:44px;transition:box-shadow .15s,background .15s}
:is(.w-tool,[data-widget]) :is(input,select,textarea):focus-visible{outline:none;background:#fff;box-shadow:inset 0 0 0 2px var(--ink,#17181f),0 0 0 4px var(--blue-tint,#e2eaff)}
:is(.w-tool,[data-widget]) textarea{width:100%;resize:vertical}

/* Dice */
.w-dice-tray{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(14px,3vw,28px);perspective:700px;min-height:110px;align-items:center}
.w-die{--size:clamp(62px,13vw,86px);position:relative;width:var(--size);height:var(--size);padding:0;border:0;background:none;cursor:pointer;border-radius:16px}
.w-die.held{transform:translateY(-6px);filter:drop-shadow(0 10px 10px #2f6bff55)}
.w-die-hold{position:absolute;inset-inline:0;bottom:calc(-1 * (var(--size) * .42));font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--blue-ink,#1f55e0);opacity:0;transition:opacity .2s}
.w-die.held .w-die-hold{opacity:1}
.w-cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .82s cubic-bezier(.15,.85,.25,1.04)}
.w-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:16%;gap:4%;border:0;border-radius:18%;background:var(--die,var(--sun,#ffc21a));box-shadow:inset 0 -6px 0 #00000014;backface-visibility:hidden}
.w-face i{display:block;border-radius:50%;place-self:center;width:72%;aspect-ratio:1}
.w-face i.on{background:var(--w-ink)}
.w-face-front{transform:translateZ(calc(var(--size)/2))}.w-face-back{transform:rotateY(180deg) translateZ(calc(var(--size)/2))}
.w-face-right{transform:rotateY(90deg) translateZ(calc(var(--size)/2))}.w-face-left{transform:rotateY(-90deg) translateZ(calc(var(--size)/2))}
.w-face-top{transform:rotateX(90deg) translateZ(calc(var(--size)/2))}.w-face-bottom{transform:rotateX(-90deg) translateZ(calc(var(--size)/2))}
.w-poly{width:100%;height:100%;overflow:visible}
.w-poly polygon{fill:var(--die,var(--sun,#ffc21a));stroke:#0000001a;stroke-width:4;stroke-linejoin:round}
.w-poly text{font:900 34px var(--display,inherit);fill:var(--w-ink)}
.ink-sun{--die:var(--sun,#ffc21a)}.ink-pink{--die:var(--pink,#ff4f8b)}.ink-blue{--die:var(--blue,#2f6bff)}.ink-teal{--die:var(--teal,#11a5a0)}.ink-orange{--die:var(--orange,#ff8a1e)}.ink-green{--die:var(--green,#18b47b)}
/* Blue is the one toy colour too dark for ink pips, so its pips and numbers switch to white. */
.ink-blue .w-face i.on{background:#fff}.ink-blue .w-poly text{fill:#fff}
.w-dice-tray.is-rolling .w-die{animation:w-toss .82s cubic-bezier(.2,.7,.3,1) both}
.w-dice-tray.is-rolling .w-die:nth-child(2n){animation-delay:.05s}.w-dice-tray.is-rolling .w-die:nth-child(3n){animation-delay:.09s}
.w-dice-tray.is-rolling .w-die.held{animation:none}
.w-dice-tray.is-rolling .w-poly{animation:w-spin .6s cubic-bezier(.2,.7,.3,1) both}
@keyframes w-toss{0%{transform:translateY(0)}30%{transform:translateY(-34px) rotate(-8deg)}62%{transform:translateY(4px) rotate(3deg)}80%{transform:translateY(-6px)}100%{transform:none}}
@keyframes w-spin{from{transform:rotate(-200deg) scale(.7)}to{transform:none}}
.w-dice-history{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:4px;text-align:center;font-variant-numeric:tabular-nums}
.w-dice-history b{font-weight:800}
@media (prefers-reduced-motion:reduce){:is(.w-tool,[data-widget]) *,:is(.w-tool,[data-widget]) *::before,:is(.w-tool,[data-widget]) *::after{animation:none!important;transition:none!important}}
@media print{:is(.w-tool,[data-widget]){display:none!important}}

/* coin */
/* Coin flip. Prefix w-coin-; shared tokens and controls come from widgets.css. */
.w-coin .w-coin-stage{position:relative;perspective:900px;width:100%;height:clamp(210px,56vw,260px);display:grid;place-items:center}
.w-coin-lift{--w-coin:clamp(150px,42vw,190px);--w-lift:clamp(64px,18vw,96px);position:relative;width:var(--w-coin);height:var(--w-coin);transform-style:preserve-3d}
.w-coin-lift.is-tossing{animation:w-coin-lift 1.2s cubic-bezier(.4,0,.6,1) both}
@keyframes w-coin-lift{0%{transform:translateY(0)}50%{transform:translateY(calc(var(--w-lift) * -1))}100%{transform:translateY(0)}}
.w-coin-body{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.16,.7,.3,1)}
.w-coin-face{position:absolute;inset:0;display:grid;place-items:center;box-sizing:border-box;border:3px solid #0000001a;border-radius:50%;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.w-coin-front{background:var(--sun,#ffc21a);box-shadow:inset 0 -8px 0 #00000012}
.w-coin-back{background:var(--pink,#ff4f8b);box-shadow:inset 0 -8px 0 #00000012;transform:rotateY(180deg)}
.w-coin-face::before{content:"";position:absolute;inset:9%;border-radius:50%;border:2px solid color-mix(in srgb,var(--w-ink) 30%,transparent);box-shadow:inset 2px 3px 0 color-mix(in srgb,var(--w-ink) 8%,transparent)}
.w-coin-text{position:relative;padding:0 10%;font-family:var(--display,inherit);font-weight:900;font-size:clamp(22px,6.4vw,32px);line-height:1.1;color:var(--w-ink);white-space:nowrap;text-align:center}
.w-coin-tally{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;max-width:540px;margin:0 auto}
.w-coin-cell{min-width:0;margin:0;padding:8px 6px;border:0;border-radius:16px;background:var(--w-card);box-shadow:inset 0 0 0 1.5px var(--w-rule);text-align:center}
.w-coin-cell dt{font-size:13px;font-weight:700;color:var(--w-muted);overflow-wrap:anywhere}
.w-coin-cell dd{margin:2px 0 0;font-family:var(--display,inherit);font-size:clamp(20px,5vw,26px);font-weight:900;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* spinner */
/* Spinner. Prefix w-spinner-; shared tokens and controls come from widgets.css. */
.w-spinner .w-spinner-board{width:min(100%,330px);margin:0 auto;filter:drop-shadow(0 16px 22px #6a2e1c2e)}
.w-spinner-svg{display:block;width:100%;height:auto;overflow:visible}
.w-spinner-rotor{transition:transform 4.2s cubic-bezier(.12,.67,.15,1)}
.w-spinner-disc{fill:var(--w-card)}
.w-spinner-seg{stroke:none;fill-opacity:.7}
.w-spinner-seg.c-sun{fill:var(--sun,#ffc21a)}
.w-spinner-seg.c-pink{fill:var(--pink,#ff4f8b)}
.w-spinner-seg.c-blue{fill:var(--blue,#2f6bff)}
.w-spinner-seg.c-teal{fill:var(--teal,#11a5a0)}
.w-spinner-seg.c-orange{fill:var(--orange,#ff8a1e)}
.w-spinner-seg.c-green{fill:var(--green,#18b47b)}
/* The winning wedge is drawn at full strength; the others are softened so it stands out. */
.w-spinner-seg.is-winner{fill-opacity:1}
.w-spinner-sep{stroke:#fff;stroke-width:2.5}
.w-spinner-rim{fill:none;stroke:#0000001a;stroke-width:3}
.w-spinner-hub{fill:var(--w-ink)}
.w-spinner-pointer{fill:var(--w-ink)}
.w-spinner-label{font:700 11px/1 var(--body,system-ui,sans-serif);fill:var(--w-ink)}
.w-spinner-label.is-dense{font-size:9px}
.w-spinner .w-spinner-winner{display:inline-block;min-width:0;max-width:100%;overflow-wrap:anywhere;text-align:start;font-weight:900;font-size:clamp(24px,6.5vw,36px)}
.w-spinner-check{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:14px;font-weight:700;cursor:pointer}
.w-spinner-check input{width:22px;height:22px;margin:0;accent-color:var(--w-ink)}
.w-spinner-check:has(input:disabled),.w-spinner textarea:disabled{opacity:.6;cursor:default}
.w-spinner-entries{display:grid;gap:8px;width:100%;max-width:560px;margin:18px auto 0}
.w-spinner-field{display:grid;gap:6px;font-size:14px;font-weight:700}
.w-spinner-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--w-muted)}
.w-spinner-count{font-variant-numeric:tabular-nums;font-weight:700}
.w-spinner-msg{margin:0;min-height:1.4em;font-size:14px;font-weight:700;text-align:start}

/* letters */
/* Letter picker. Prefix w-letter(s)-; shared tokens and controls come from widgets.css. */
.w-letters{--w-tile-h:clamp(132px,38vw,168px)}
.w-letters .w-stage{gap:14px}
.w-letter-tile{position:relative;width:calc(var(--w-tile-h) * 1.1);height:var(--w-tile-h);overflow:hidden;border:0;border-radius:22px;background:var(--w-card);box-shadow:var(--shadow,0 2px 4px #5a2a1a0a,0 14px 34px -14px #6a2e1c3d)}
.w-letter-half{position:absolute;inset-inline:0;height:50%;overflow:hidden;background:var(--sun,#ffc21a)}
.w-letter-top{top:0;transform-origin:50% 100%;border-radius:22px 22px 0 0}
.w-letter-bottom{bottom:0;background:var(--sun-tint,#fff1c4);border-radius:0 0 22px 22px}
.w-letter-glyph{position:absolute;inset-inline:0;height:var(--w-tile-h);line-height:var(--w-tile-h);font-family:var(--display,inherit);font-size:calc(var(--w-tile-h) * .56);font-weight:900;text-align:center;color:var(--w-ink)}
.w-letter-top .w-letter-glyph{top:0}
.w-letter-bottom .w-letter-glyph{top:calc(var(--w-tile-h) * -.5)}
.w-letter-tile::after{content:"";position:absolute;inset-inline:0;top:50%;height:2px;background:#17181f1f;transform:translateY(-1px)}
.w-letter-top.is-flap{animation:w-letter-flap var(--w-flap,200ms) cubic-bezier(.2,.7,.3,1) both}
@keyframes w-letter-flap{from{transform:perspective(500px) rotateX(-78deg)}to{transform:none}}
.w-letters-count{margin:0;font-size:14px;font-weight:700;color:var(--w-muted);font-variant-numeric:tabular-nums;text-align:center}
.w-letters-msg{margin:0;min-height:1.4em;font-size:14px;font-weight:700;text-align:center}
.w-letters-block{display:grid;gap:10px;width:100%;margin-top:16px}
.w-letters-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px}
.w-letters-title{margin:0;font-size:14px;font-weight:800}
.w-letters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:8px;width:100%}
.w-letters-grid .w-letter-chip{width:100%;min-height:46px;padding:6px 4px;font-family:var(--display,inherit);font-size:17px}
.w-letters-history{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:44px;margin:0;padding:0;list-style:none}
.w-letters-item{display:grid;place-items:center;min-width:40px;min-height:40px;padding:0 8px;border:0;border-radius:12px;background:var(--w-card);box-shadow:inset 0 0 0 1px var(--w-rule);font-family:var(--display,inherit);font-size:18px;font-weight:900}
.w-letters-none{font-size:14px;color:var(--w-muted)}
.w-letters .w-chip:disabled{opacity:.55;cursor:default}

/* timer */
/* Round timer. Prefix w-timer-; shared tokens and controls come from widgets.css. */
.w-timer .w-timer-ring{position:relative;width:min(70vw,290px);aspect-ratio:1;margin:4px auto 0}
.w-timer-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.w-timer-track{fill:none;stroke:var(--w-rule-2);stroke-width:14}
.w-timer-arc{fill:none;stroke:var(--blue,#2f6bff);stroke-width:14}
.w-timer-disc{fill:var(--w-card);stroke:#0000001a;stroke-width:2.5;transform-box:fill-box;transform-origin:center}
.w-timer-digits{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display,inherit);font-size:clamp(40px,12vw,60px);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;color:var(--w-ink)}
.w-timer.is-ended .w-timer-disc{fill:var(--w-ink);animation:w-timer-pulse .9s ease-out 1 both}
.w-timer.is-ended .w-timer-digits{color:var(--w-card)}
@keyframes w-timer-pulse{0%{transform:scale(.94)}45%{transform:scale(1.03)}100%{transform:scale(1)}}
.w-timer-status{margin:14px 0 0;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--w-muted);text-align:center}
.w-timer-presets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:520px;margin:0 auto}
.w-timer-presets .w-chip:disabled{opacity:.5;cursor:default}
.w-timer-custom{min-width:0;margin:0;padding:0;border:0;display:grid;justify-items:center;gap:8px}
.w-timer-custom legend{width:100%;padding:0 0 4px;font-size:13px;font-weight:800;color:var(--w-muted);text-align:center}
.w-timer-custom:disabled{opacity:.5}
.w-timer-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px}

/* number-caller */
/* Number caller. Classes are prefixed w-nc-; shared pieces come from widgets.css. */
.w-number-caller [hidden]{display:none!important}
.w-nc-stage{width:100%;box-sizing:border-box}
.w-nc-slot{width:100%;display:grid;place-items:center;min-height:calc(clamp(132px,30vw,176px) + 16px);overflow:hidden;padding:8px 0}
.w-nc-ball{--d:clamp(132px,30vw,176px);position:relative;width:var(--d);height:var(--d);display:grid;place-items:center;border:0;border-radius:50%;background:var(--sun,#ffc21a);box-shadow:inset -10px -12px 0 #00000014,var(--shadow,0 2px 4px #5a2a1a0a,0 14px 34px -14px #6a2e1c3d);box-sizing:border-box}
.w-nc-ball.is-empty{background:var(--paper-2,#fff0e8);border:0;box-shadow:none}
.w-nc-disc{display:flex;flex-direction:column;align-items:center;justify-content:center;width:72%;height:72%;border:0;border-radius:50%;background:#fff;box-shadow:inset 0 -5px 0 #0000000f;line-height:1;box-sizing:border-box}
.w-nc-letter{font:900 clamp(14px,3.2vw,20px)/1 var(--display,inherit);letter-spacing:.14em;color:var(--pink-ink,#d6185f)}
.w-nc-num{font-weight:900;font-size:clamp(40px,9vw,64px);line-height:1.05;font-variant-numeric:tabular-nums;color:var(--w-ink)}
.w-nc-ball.is-rolling{animation:w-nc-roll .6s cubic-bezier(.2,.7,.3,1) both}
@keyframes w-nc-roll{from{transform:translateX(var(--w-nc-from,-120%)) rotate(-540deg)}to{transform:none}}
.w-nc-status{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums;text-align:center}
.w-nc-label{font-size:13px;font-weight:700;color:var(--w-muted)}
.w-nc-recent-wrap{display:grid;justify-items:center;gap:6px;width:100%}
.w-nc-recent{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:0;padding:0;list-style:none}
.w-nc-recent li{display:inline-flex;align-items:center;min-height:36px;padding:4px 12px;border:0;border-radius:99px;background:var(--w-card);box-shadow:inset 0 0 0 1.5px var(--w-rule);font-weight:800;font-variant-numeric:tabular-nums}
.w-nc-recent li:first-child{background:var(--pink-tint,#ffe4ee);box-shadow:inset 0 0 0 1.5px var(--pink,#ff4f8b)}
.w-nc-setup{margin-top:14px}
.w-nc-pause{min-height:44px}
.w-nc-board{display:grid;grid-template-columns:repeat(var(--w-nc-cols,10),minmax(0,1fr));gap:4px;width:100%;max-width:680px;margin:18px auto 0;direction:ltr;box-sizing:border-box}
.w-nc-head{display:grid;place-items:center;min-height:36px;font:900 clamp(16px,3vw,22px)/1 var(--display,inherit);color:var(--w-ink)}
.w-nc-cell{position:relative;display:grid;place-items:center;aspect-ratio:1.3;min-height:26px;border:0;border-radius:10px;background:var(--w-card);box-shadow:inset 0 0 0 1px var(--w-rule)}
.w-nc-board.is-75 .w-nc-cell{aspect-ratio:2.2}
.w-nc-n{position:relative;z-index:1;font-size:clamp(12px,2.6vw,16px);font-weight:700;font-variant-numeric:tabular-nums;color:var(--w-ink)}
.w-nc-dab{position:absolute;left:50%;top:50%;translate:-50% -50%;height:80%;aspect-ratio:1;border-radius:50%;border:0;background:var(--pink,#ff4f8b);opacity:0;box-sizing:border-box}
.w-nc-cell.is-called .w-nc-dab{opacity:1;animation:w-nc-pop .32s cubic-bezier(.2,.9,.3,1.2) both}
@keyframes w-nc-pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.w-nc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* teams */
/* Team maker. Classes are prefixed w-tm-; shared pieces come from widgets.css. */
.w-teams [hidden]{display:none!important}
.w-tm-stage{justify-items:stretch;width:100%;box-sizing:border-box}
.w-tm-label{display:grid;gap:8px;width:100%}
.w-tm-label-text{font-size:14px;font-weight:700}
.w-tm-names{width:100%;box-sizing:border-box;min-height:140px;line-height:1.5}
.w-tm-count{font-size:13px;font-weight:700;color:var(--w-muted);text-align:end}
.w-tm-msg{min-height:1.5em;margin:12px 0 0;text-align:center;font-weight:700;color:var(--w-ink)}
.w-tm-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:14px;width:100%;margin-top:12px}
.w-tm-card{flex:1 1 150px;max-width:260px;min-width:0;border:0;border-radius:22px;background:var(--w-card);box-shadow:var(--shadow,0 2px 4px #5a2a1a0a,0 14px 34px -14px #6a2e1c3d);overflow:hidden}
.w-tm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;padding:12px 14px;background:var(--c);color:var(--tm-ink,var(--w-ink))}
.w-tm-title{margin:0;font:900 17px/1.2 var(--display,inherit)}
.w-tm-size{font-size:12px;font-weight:700}
.w-tm-list{margin:0;padding:0;list-style:none}
.w-tm-list li{padding:9px 14px;border-bottom:1px solid var(--w-rule);font-weight:600;overflow-wrap:anywhere;animation:w-tm-fly .42s cubic-bezier(.2,.7,.3,1) both}
.w-tm-list li:last-child{border-bottom:0}
@keyframes w-tm-fly{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.w-tm-sun{--c:var(--sun,#ffc21a)}
.w-tm-pink{--c:var(--pink,#ff4f8b)}
/* White header text on blue passes 4.5:1; on teal the ink text passes, so teal keeps the default. */
.w-tm-blue{--c:var(--blue,#2f6bff);--tm-ink:#fff}
.w-tm-teal{--c:var(--teal,#11a5a0)}
.w-tm-orange{--c:var(--orange,#ff8a1e)}
.w-tm-green{--c:var(--green,#18b47b)}
/* Hidden until needed; positioned off-screen so it can still be selected and copied. */
.w-tm-copy{position:fixed;inset-block-start:0;inset-inline-start:-9999px;width:1px;height:1px;opacity:0}
.w-tm-copy.is-open{position:static;inset:auto;width:100%;height:auto;min-height:120px;margin-top:12px;opacity:1;box-sizing:border-box}

/* scoreboard */
/* Scoreboard. Classes are prefixed w-sb-; shared pieces come from widgets.css. */
.w-scoreboard [hidden]{display:none!important}
.w-scoreboard{display:grid;gap:14px}
.w-sb-add{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;justify-content:center}
.w-sb-field{display:grid;gap:4px;flex:1 1 220px;min-width:0}
.w-sb-label{font-size:13px;font-weight:700;color:var(--w-muted)}
.w-sb-limit{margin:0;text-align:center;font-size:13px;color:var(--w-muted)}
.w-sb-stage{width:100%;box-sizing:border-box;justify-items:stretch}
.w-sb-list{display:grid;gap:12px;width:100%;margin:0;padding:0;list-style:none}
.w-sb-empty{margin:0;text-align:center;font-weight:700;color:var(--w-muted)}
.w-sb-row{display:grid;gap:8px;padding:14px;border:0;border-radius:22px;background:var(--w-card);box-shadow:var(--shadow,0 2px 4px #5a2a1a0a,0 14px 34px -14px #6a2e1c3d);box-sizing:border-box}
.w-sb-c-sun{--c:var(--sun,#ffc21a)}
.w-sb-c-pink{--c:var(--pink,#ff4f8b)}
.w-sb-c-blue{--c:var(--blue,#2f6bff)}
.w-sb-c-teal{--c:var(--teal,#11a5a0)}
.w-sb-c-orange{--c:var(--orange,#ff8a1e)}
.w-sb-c-green{--c:var(--green,#18b47b)}
.w-sb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.w-sb-name{font-weight:800;font-size:18px;overflow-wrap:anywhere;min-width:0}
.w-sb-tools{display:flex;gap:6px;margin-inline-start:auto}
.w-sb-tools .w-chip,.w-sb-bump{min-height:44px}
.w-sb-remove.is-armed{background:var(--sun,#ffc21a);color:var(--w-ink);box-shadow:inset 0 0 0 1.5px var(--sun-ink,#9a6a00)}
.w-sb-rename{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1 1 100%;min-width:0}
.w-sb-rename input{flex:1 1 160px;min-width:0}
.w-sb-scorebox{display:flex;justify-content:flex-start}
.w-sb-score{font:900 clamp(34px,8vw,52px)/1 var(--display,inherit);font-variant-numeric:tabular-nums;color:var(--w-ink)}
.w-sb-track{height:14px;border:0;border-radius:999px;background:var(--w-rule);box-shadow:inset 0 0 0 1px #17181f0d;overflow:hidden}
.w-sb-fill{display:block;height:100%;background:var(--c,var(--sun,#ffc21a));transition:width .4s ease}
.w-sb-bumps{display:flex;flex-wrap:wrap;gap:6px}
.w-sb-bump{min-width:56px;font-variant-numeric:tabular-nums}
.w-sb-adjust{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.w-sb-amount{width:120px;font-variant-numeric:tabular-nums}
.w-sb-msg{min-height:1.5em;margin:0;text-align:center;font-weight:700;color:var(--w-ink)}
.w-sb-history summary{min-height:44px}
.w-sb-tablewrap{overflow-x:auto;max-width:100%}
.w-sb-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.w-sb-table th,.w-sb-table td{padding:6px 8px;border-bottom:1px solid var(--w-rule);text-align:center;overflow-wrap:anywhere}
.w-sb-table thead th{font-weight:800}
.w-sb-table tbody th{font-weight:700}
