:root{--bg:#080b10;--card:#101722;--text:#edf4ff;--muted:#93a4b8;--line:#243348;--felt:#077a32;--felt2:#035525;--felt3:#053a1d;--gold:#f4d55d;--red:#ed2634;--green:#6df0ad;--blue:#80b7ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#18263d 0,#080b10 42%,#030507 100%);color:var(--text);font-family:Geist,system-ui,sans-serif}.shell{width:min(1560px,97vw);margin:24px auto 48px}.card{background:linear-gradient(145deg,rgba(18,29,43,.94),rgba(10,15,23,.94));border:1px solid rgba(128,183,255,.16);border-radius:28px;box-shadow:0 24px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.04)}.hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:30px 34px;margin-bottom:22px}.eyebrow{color:var(--blue);text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700}.eyebrow strong{color:var(--green)}h1{font-size:56px;line-height:.9;margin:8px 0 12px;letter-spacing:-.06em}.subhead{margin:0;color:var(--muted);font-size:18px}.bankroll-card{min-width:240px;padding:20px;border-radius:24px;background:linear-gradient(145deg,#162237,#0d141f);border:1px solid var(--line)}.bankroll-card span,.bankroll-card em{display:block;color:var(--muted);font-style:normal}.bankroll-card strong{display:block;font-size:34px;margin:7px 0;color:var(--green);font-family:Geist Mono,monospace}.layout{display:grid;grid-template-columns:250px minmax(700px,1fr) 280px;gap:18px}.panel{padding:22px}h2{margin:0 0 16px;font-size:18px;letter-spacing:-.02em}.panel label{display:block;color:var(--muted);font-size:13px;margin:12px 0}.panel input,.panel select{width:100%;margin-top:6px;background:#080d14;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font:inherit}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0}button{cursor:pointer;border:0;border-radius:14px;padding:12px 13px;font-weight:800;color:var(--text);background:linear-gradient(145deg,#1d2a3d,#111a27);box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:transform .12s ease,filter .12s ease}button:hover{transform:translateY(-1px);filter:brightness(1.12)}.primary{width:100%;background:linear-gradient(145deg,#1ecf86,#08784f);margin-top:10px}.secondary{width:100%;background:linear-gradient(145deg,#263852,#142033);margin-top:10px}.fineprint{font-size:12px;color:var(--muted);line-height:1.45}.table-card{padding:18px}.dice-strip{display:flex;align-items:center;gap:12px;margin-bottom:14px}.die{width:58px;height:58px;border-radius:16px;background:linear-gradient(145deg,#fff,#bac7d8);color:#0a0e14;display:grid;place-items:center;font-size:28px;font-weight:900;box-shadow:0 10px 28px rgba(0,0,0,.35)}.roll-summary{color:var(--muted);font-size:15px}
.craps-table{position:relative;width:100%;aspect-ratio:1100/620;min-height:0;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,var(--felt) 0,var(--felt2) 55%,var(--felt3) 100%);border:12px solid #6a3819;box-shadow:inset 0 0 0 5px #1b0d06,inset 0 0 90px rgba(0,0,0,.28),0 25px 60px rgba(0,0,0,.45);font-family:Georgia,'Times New Roman',serif}.craps-table:before{content:"";position:absolute;inset:5.2%;border:3px solid rgba(230,216,122,.62);border-radius:52px;pointer-events:none}.rail-top{position:absolute;left:50%;top:3.6%;transform:translateX(-50%);font-family:Geist Mono,monospace;font-size:clamp(9px,1vw,13px);letter-spacing:.24em;color:rgba(255,255,255,.64);z-index:3}.table-zone{position:absolute;border:3px solid rgba(223,245,231,.72);background:rgba(0,70,36,.28);display:flex;align-items:center;justify-content:center;text-align:center;color:#eafff2;text-shadow:0 2px 0 rgba(0,0,0,.22);font-weight:900}.side-pass{left:5.4%;top:12%;width:5%;height:73%;writing-mode:vertical-rl;font-size:clamp(12px,1.9vw,25px);letter-spacing:.08em}.side-dont{left:10.4%;top:12%;width:5%;height:73%;writing-mode:vertical-rl;font-size:clamp(9px,1.15vw,16px);letter-spacing:.06em}.dont-come{left:15.4%;top:12%;width:9.5%;height:23%;font-size:clamp(12px,1.9vw,27px);line-height:.95}.point-box{top:12%;height:23%;width:9.2%;display:grid;grid-template-rows:22% 58% 20%;place-items:center}.point-box small{font-family:Geist Mono,monospace;font-size:clamp(6px,.8vw,10px);letter-spacing:.08em;color:rgba(255,255,255,.78)}.point-box strong{font-size:clamp(20px,4.2vw,56px);line-height:1;color:var(--gold)}.point-box em{font:900 clamp(7px,.9vw,12px) Geist Mono,monospace;font-style:normal;letter-spacing:.16em;color:#fff}.z4{left:24.9%}.z5{left:34.1%}.z6{left:43.3%}.z6 strong,.z9 strong{font-size:clamp(17px,3.1vw,42px);transform:rotate(-14deg)}.z8{left:52.5%}.z9{left:61.7%}.z10{left:70.9%}.come{left:24.9%;top:35%;width:55.2%;height:19%;color:var(--red);font-size:clamp(34px,6.4vw,84px);letter-spacing:.08em}.field{left:24.9%;top:54%;width:55.2%;height:14%;gap:5%;color:var(--gold);font-size:clamp(13px,2.4vw,30px);line-height:1.05}.field b{font-size:clamp(14px,2.3vw,31px)}.field-two,.field-twelve{border:3px solid var(--gold);border-radius:999px;width:clamp(24px,4.4vw,58px);height:clamp(24px,4.4vw,58px);display:grid;place-items:center}.big{left:5.4%;top:68%;width:19.5%;height:17%;gap:6%;border-radius:0 0 45px 0}.big span{color:var(--red);font-size:clamp(26px,5vw,64px);font-style:italic}.big b{font-size:clamp(10px,1.7vw,23px);letter-spacing:.18em;writing-mode:vertical-rl}.dont-bottom{left:24.9%;top:68%;width:55.2%;height:8.5%;font-size:clamp(12px,2.25vw,29px);font-style:italic}.pass-bottom{left:24.9%;top:76.5%;width:55.2%;height:8.5%;font-size:clamp(14px,2.5vw,34px);letter-spacing:.22em}.props{right:5.4%;top:12%;width:14.5%;height:73%;display:block;padding:0;overflow:hidden}.props .seven{height:15%;border-bottom:3px solid rgba(223,245,231,.72);display:flex;align-items:center;justify-content:center;color:#fff;font-size:clamp(8px,1.05vw,14px)}.prop-pays{height:85%;display:grid;grid-template-rows:repeat(6,1fr)}.prop-pays span,.prop-pays b{display:grid;place-items:center;border-bottom:2px solid rgba(223,245,231,.45);color:#fff;font-size:clamp(9px,1.3vw,18px)}.prop-pays b{color:var(--gold)}.puck{position:absolute;z-index:8;width:clamp(42px,7vw,74px);height:clamp(42px,7vw,74px);border-radius:999px;display:grid;place-items:center;font:900 clamp(12px,1.8vw,22px) Geist Mono,monospace;letter-spacing:.05em;box-shadow:0 12px 28px rgba(0,0,0,.48);border:5px solid #f6f6f6}.puck.off{left:17%;top:38%;background:#111;color:#fff}.puck.on{background:#fff;color:#111;border-color:#151515}.chip-layer,.result-layer{position:absolute;inset:0;z-index:7;pointer-events:none}.result-layer{z-index:9}.chip{position:absolute;min-width:clamp(42px,6.4vw,68px);height:clamp(42px,6.4vw,68px);border-radius:999px;background:radial-gradient(circle,#fff 0 26%,#ef4053 27% 48%,#fff 49% 56%,#151923 57%);border:4px dashed rgba(20,25,35,.8);display:grid;place-items:center;color:#111722;font-weight:1000;font-family:Geist Mono,monospace;box-shadow:0 14px 28px rgba(0,0,0,.38)}.chip small{background:rgba(255,255,255,.88);border-radius:99px;padding:3px 6px}.chip.paid{box-shadow:0 0 0 5px rgba(109,240,173,.42),0 14px 30px rgba(0,0,0,.35)}.chip.lost{box-shadow:0 0 0 5px rgba(255,92,108,.48),0 14px 30px rgba(0,0,0,.35);filter:saturate(.75)}.result-badge{position:absolute;transform:translate(-50%,-50%);padding:8px 12px;border-radius:999px;font:900 clamp(11px,1.5vw,18px) Geist Mono,monospace;color:#07120d;box-shadow:0 12px 24px rgba(0,0,0,.35)}.result-badge.paid{background:#66f0a9}.result-badge.lost{background:#ff5c6c;color:#fff}.result-badge.push,.result-badge.working,.result-badge.off{background:#f4d55d}.result-badge.moved{background:#80b7ff;color:#06111f}.net-result{position:absolute;right:4%;bottom:4%;z-index:10;border-radius:18px;padding:10px 14px;font:900 clamp(14px,2vw,24px) Geist Mono,monospace;background:rgba(5,10,15,.82);border:2px solid rgba(255,255,255,.25)}.net-result.win{color:#6df0ad}.net-result.loss{color:#ff5c6c}.net-result.neutral{color:#f4d55d}
.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.feed,.report{padding:22px;min-height:280px}.feed-list{display:flex;flex-direction:column;gap:10px;max-height:340px;overflow:auto}.event{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#0a1019;border:1px solid var(--line);border-radius:16px;padding:12px}.event strong{color:var(--text)}.event.paid em{color:var(--green)}.event.lost em{color:#ff5c6c}.event.working em,.event.off em,.event.push em{color:var(--gold)}.muted{color:var(--muted)}pre{white-space:pre-wrap;background:#070b11;border:1px solid var(--line);border-radius:18px;padding:16px;color:#d5e8ff;max-height:420px;overflow:auto;font-family:Geist Mono,monospace;font-size:12px}
@media (max-width:1250px){.layout{grid-template-columns:1fr}.table-card{overflow:visible}.bottom-grid{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}h1{font-size:44px}.panel{padding:18px}.craps-table{width:100%;}}


/* v20260930e: mobile rotated board and reduced markers */
.puck{width:clamp(30px,4.8vw,50px);height:clamp(30px,4.8vw,50px);font-size:clamp(10px,1.35vw,16px);border-width:4px}
.puck.off{left:17.8%;top:39.5%}
.chip{min-width:30px;font-size:clamp(9px,1.1vw,13px);border-width:3px}
.chip small{padding:2px 5px}
.net-result{right:2.2%;bottom:1.5%;padding:6px 10px;font-size:clamp(11px,1.45vw,18px);opacity:.92}
.result-badge{padding:5px 8px;font-size:clamp(9px,1.1vw,14px)}
@media (max-width:700px){
  .table-card{overflow:hidden;min-height:calc((100vw - 52px) * 1.78 + 132px)}
  .craps-table{width:calc((100vw - 52px) * 1.78);max-width:none;transform-origin:top left;transform:rotate(90deg) translateY(-100%);margin-top:10px;margin-bottom:calc((100vw - 52px) * .78);border-width:9px;border-radius:22px}
  .puck{width:30px;height:30px;font-size:9px;border-width:3px}
  .chip{border-width:2px;font-size:9px}
  .chip small{padding:1px 4px}
  .net-result{right:1.5%;bottom:1.2%;padding:4px 7px;font-size:10px;border-radius:10px}
  .result-badge{padding:3px 5px;font-size:9px}
}


/* v20260930g: bankroll funding area, table-side actions, square bet buttons */
.bankroll-card{min-width:360px}.funding-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-bottom:14px}.funding-row label{font-size:12px;color:var(--muted)}.funding-row input{width:100%;margin-top:5px;background:#080d14;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px;font:inherit}.small-action{width:auto;margin:0;padding:11px 14px}.bankroll-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.add-funds{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#1ecf86,#08784f);font-size:24px;line-height:1;padding:0}.bank-lines{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bank-lines div{background:rgba(3,8,14,.35);border:1px solid rgba(128,183,255,.13);border-radius:16px;padding:10px}.bank-lines em{font-size:12px;color:var(--muted);font-style:normal}.bank-lines strong{font-size:22px!important;margin:2px 0 0!important}.table-action-row{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:14px;align-items:center;margin-bottom:14px}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-buttons .primary,.action-buttons .secondary{margin:0;height:56px}.dice-strip{justify-content:flex-end;margin:0}.die{width:50px;height:50px;font-size:24px}.button-grid{grid-template-columns:repeat(2, minmax(0,1fr));gap:14px}.button-grid button{aspect-ratio:1.35/1;min-height:72px;border-radius:18px;font-size:16px}.modal.hidden{display:none}.modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(0,0,0,.62);backdrop-filter:blur(8px)}.modal-card{width:min(420px,92vw);background:#101722;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.55)}.modal-card label{display:block;color:var(--muted);margin:12px 0}.modal-card input{width:100%;margin-top:6px;background:#080d14;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px;font:inherit}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.modal-actions button{margin:0}
@media (max-width:700px){.hero{padding:22px}.bankroll-card{min-width:0;width:100%}.funding-row{grid-template-columns:1fr}.small-action{width:100%}.bank-lines{grid-template-columns:1fr}.table-action-row{grid-template-columns:1fr;gap:10px}.action-buttons{grid-template-columns:1fr 1fr}.action-buttons .primary,.action-buttons .secondary{height:54px}.dice-strip{justify-content:flex-end}.button-grid{grid-template-columns:repeat(2,1fr);gap:12px}.button-grid button{min-height:78px;border-radius:18px}.die{width:46px;height:46px}.roll-summary{font-size:14px}}


/* v20260930h: dice moved onto table next to roll results */
.table-action-row{grid-template-columns:minmax(220px,360px);justify-content:end}.table-dice{position:absolute;left:auto;right:18%;bottom:2.8%;z-index:11;margin:0;padding:6px 8px;border-radius:16px;background:rgba(5,10,15,.58);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(3px)}.table-dice .die{width:42px;height:42px;font-size:22px}.table-dice .roll-summary{font-size:14px;color:#f4d55d;white-space:nowrap}.net-result{right:2.2%;bottom:2.8%}
@media (max-width:700px){.table-dice{right:15.5%;bottom:2.2%;gap:5px;padding:4px 5px;border-radius:12px}.table-dice .die{width:28px;height:28px;font-size:17px;border-radius:9px}.table-dice .roll-summary{font-size:9px;max-width:112px;overflow:hidden;text-overflow:ellipsis}.net-result{right:1.2%;bottom:2.2%;font-size:9px;padding:4px 6px}}


/* v20260930j: strategy preset and text parser controls */
.hidden{display:none!important}.strategy-fields{display:grid;gap:10px}.panel textarea{width:100%;resize:vertical;min-height:110px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.07);color:#f5f7fa;padding:10px 12px;font:500 14px/1.35 var(--mono, monospace)}.panel textarea:focus{outline:2px solid rgba(246,194,68,.55);border-color:rgba(246,194,68,.75)}
