@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--bg:#10221e;--panel:#172c26;--line:#ffffff12;--text:#e0e8de;--muted:#82998b;--mint:#9ecdac;--gold:#dbb27c;--felt:#235c45;--sans:'Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px/1.5 var(--sans)}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button{border:0;background:transparent}h2,p{margin:0}header{height:68px;display:flex;justify-content:space-between;align-items:center;padding:0 28px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px}.brand>span{color:var(--gold);font-size:28px}.brand b{font-size:17px;font-weight:600;letter-spacing:2px}.brand i{font-style:normal;font-size:11px;color:var(--muted);margin-left:6px;border-left:1px solid #ffffff20;padding-left:15px}.header-actions{display:flex;align-items:center;gap:15px;font-size:11px;color:#a0b0a0}.header-actions button,.upload{padding:7px 9px;cursor:pointer}.header-actions .new-button{background:#293e30;border:1px solid #506449;color:#d3ddb9;border-radius:5px;padding:8px 15px}.game-shell{max-width:1800px;display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:24px;padding:22px 26px;margin:auto;align-items:start}.game-column{min-width:0}.table-header{display:flex;justify-content:space-between;align-items:center;height:39px;margin-bottom:18px}.view-tabs{display:flex;gap:4px;background:#ffffff05;border:1px solid var(--line);border-radius:7px;padding:4px}.view-tabs button{padding:7px 15px;font-size:11px;border-radius:4px;color:var(--muted)}.view-tabs button.active{background:#395744;color:#dce8d2}.auto-label{font-size:10px;display:flex;align-items:center;gap:6px;color:#8ea68f}.auto-label input{accent-color:#86b38e;width:12px;height:12px}.poker-table{height:620px;min-height:560px;background:radial-gradient(ellipse at 50% 40%,#306a4d,#24543f 65%,#224d3a);border:1px solid #567a5666;border-radius:150px 150px 90px 90px;position:relative;box-shadow:inset 0 0 0 10px #10281e55,inset 0 0 0 12px #6d8c4c22,0 14px 40px #00000010;overflow:hidden}.table-texture{position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}.center-mark{position:absolute;top:100px;left:50%;transform:translateX(-50%);font-size:190px;opacity:.035;pointer-events:none}.kitty-area{position:absolute;top:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;color:#a2b491;font-size:10px;white-space:nowrap}.cards{display:flex;justify-content:center;gap:5px}.card{background:#f9f5e7;border:1px solid #e2ddc6;border-radius:5px;color:#243e31;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;font-family:Georgia,serif;font-size:28px;line-height:1.05;width:52px;height:73px;padding:7px 6px;position:relative;box-shadow:0 3px 5px #00000015;flex-shrink:0}.card .suit{font-size:15px;line-height:1}.card.red{color:#b95948}.card.joker{font:12px/1.2 var(--sans)}.card.joker .suit{font:7px/1 var(--sans);writing-mode:vertical-rl;align-self:center;margin-top:5px}.card.back{background:repeating-linear-gradient(45deg,#546f66 0,#546f66 2px,#456255 2px,#456255 5px);border:3px solid #bdc2a3;color:#c9ceb2;align-items:center;justify-content:center;font-size:22px}.tiny .card{width:27px;height:37px;padding:3px;font-size:18px;border-radius:3px}.tiny .card .suit{font-size:8px}.tiny .card.joker{font-size:8px}.tiny .card.joker .suit{font-size:5px;margin:0}.tiny .card.back{font-size:17px;border-width:2px}.avatar{height:46px;width:46px;border-radius:50%;border:1px solid #94a17499;background:#577355;color:#e2e9cd;display:inline-flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:24px;position:relative;flex-shrink:0}.avatar.p0{background:#546e55;border-color:#9fbb7c}.avatar.p1{background:#566785;border-color:#98a9c4}.avatar.p2{background:#896249;border-color:#c79a6e}.opponent{position:absolute;top:105px;width:130px;text-align:center;padding:0;z-index:2}.opponent.left{left:50px}.opponent.right{right:50px}.opponent .avatar{margin-bottom:9px;height:51px;width:51px}.opponent.active .avatar{box-shadow:0 0 0 5px #ddbd7625;border-color:#e0c279}.seat-info{font-size:12px}.seat-role{color:#bbccaa;font-size:9px;margin-left:5px}.seat-cards{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:10px}.seat-cards .card{width:23px;height:32px;font-size:15px;border-width:2px;border-radius:3px}.seat-count{font-family:Georgia,serif;font-size:27px;color:#d1dbbf}.seat-count small{font-family:var(--sans);font-size:9px;margin-left:4px;color:#a2b899}.seat-turn{font-size:9px;color:#e2c28e;height:20px;margin-top:4px}.last-play{position:absolute;top:283px;font-size:12px;color:#bdcaaa;width:145px;text-align:center;white-space:normal}.left-play{left:40px}.right-play{right:40px}.last-play b{font:17px Georgia,serif;letter-spacing:2px;display:block;color:#d4dfca}.last-play small{font-size:9px}.center-play{position:absolute;top:143px;left:190px;right:190px;text-align:center;min-height:145px}.turn-label{font-size:13px;color:#e3d2a7;margin-bottom:19px;letter-spacing:1px}.center-cards{flex-wrap:wrap;gap:3px;min-height:60px;align-items:center}.center-cards .card{width:35px;height:51px;font-size:22px;padding:4px}.center-cards .card.joker{font-size:9px}.center-cards .card .suit{font-size:10px}#center-subtitle{font-size:10px;color:#adc1a5;margin-top:13px}.hand-zone{position:absolute;bottom:32px;left:28px;right:28px;display:flex;align-items:center;flex-direction:column}.my-info{display:flex;align-items:center;gap:10px;width:100%;padding-left:17px;margin-bottom:18px}.my-info .avatar{height:33px;width:33px;font-size:19px}.my-info b{font-size:12px;font-weight:500}.my-info small{font-size:9px;color:#a9bc9c;display:block}.my-info #hand-count{font-size:10px;color:#9db694;margin-left:4px}.my-info #selected-label{margin-left:auto;font-size:10px;color:#d4c894;margin-right:15px}.hand-cards{gap:0;width:100%;justify-content:center;padding:9px 0 0;min-height:95px;margin-bottom:13px;max-width:100%}.hand-cards .card{width:54px;height:81px;margin-left:var(--overlap,-12px);padding:7px 6px;font-size:27px;transition:transform .15s,box-shadow .15s;cursor:pointer}.hand-cards .card:first-child{margin-left:0}.hand-cards .card:last-child{margin-right:0}.hand-cards .card .suit{margin-top:4px;align-self:flex-start}.hand-cards .card.joker{font-size:12px}.hand-cards .card.joker .suit{margin-top:0;align-self:flex-start}.hand-cards .card.selected{transform:translateY(-14px);box-shadow:0 0 0 2px #e2bd77;border-color:#e2bd77;z-index:2}.hand-cards .card:hover:not(:disabled){transform:translateY(-6px);z-index:3}.hand-cards .card.selected:hover{transform:translateY(-14px)}.hand-cards .card:disabled{opacity:1;cursor:default}.action-buttons{display:flex;align-items:center;justify-content:center;gap:12px;min-height:42px}.action-buttons button{min-width:78px;border:1px solid #9faf7555;border-radius:6px;padding:9px 19px;background:#35593e;color:#d5dec2;font-size:12px}.action-buttons button.primary,.primary{background:#dbb87d;color:#293c25;border:1px solid #e6c798;font-weight:600}.action-buttons button.subtle{background:transparent;border:0;color:#afc39e;min-width:0;font-size:10px;padding:6px}.bid-assessment{font-size:10px;min-height:16px;margin-top:11px;color:#aebe9a;max-width:650px;text-align:center}.toast{position:absolute;top:75px;left:50%;transform:translateX(-50%);background:#eac393;color:#4a3725;padding:10px 15px;border-radius:6px;font-size:11px;max-width:85%;z-index:10;white-space:normal;text-align:center}.timeline{margin-top:25px;border:1px solid var(--line);border-radius:9px;background:#ffffff03;padding:17px 19px}.timeline-head{display:flex;justify-content:space-between;align-items:center}.timeline-head b{font-size:12px;font-weight:500}.timeline-head span{font-size:10px;color:#7e9884;margin-left:12px}.timeline-buttons{display:flex;gap:15px;color:#8aa589}.timeline-buttons button{font-size:10px;padding:0}.event-track{display:flex;gap:7px;overflow:auto;scrollbar-width:thin;padding:16px 0 8px;min-height:71px}.event-chip{border:1px solid #ffffff10;background:#ffffff04;border-radius:5px;min-width:77px;padding:8px 10px;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-start;font-size:10px;color:#91a78a}.event-chip .event-name{font-size:9px;color:#7f9985}.event-chip .event-cards{font-family:Georgia,var(--sans);font-size:13px;color:#cad5bd;letter-spacing:1px;margin-top:3px}.event-chip.current{border-color:#c4ad6980;background:#bbab5820}.event-chip.p1{border-left:2px solid #879ab9}.event-chip.p2{border-left:2px solid #c4926b}.event-chip.p0{border-left:2px solid #9fb881}.event-empty{font-size:10px;color:#627e6b;padding:10px 0}.replay-row{display:flex;gap:13px;align-items:center;margin-top:9px;color:#6e8c75;font-size:9px}input[type=range]{accent-color:#9fba89;height:3px;cursor:pointer}.replay-row input{flex:1}.charts-sidebar{display:flex;flex-direction:column;gap:15px}.chart-card{background:var(--panel);border:1px solid #ffffff10;border-radius:9px;padding:19px 17px}.chart-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.chart-title>div{display:flex;align-items:center;gap:8px}.chart-dot{width:5px;height:5px;border-radius:50%;display:inline-block}.mint{background:var(--mint)}.gold{background:var(--gold)}h2{font-size:14px;font-weight:500}.chip{font-size:9px;color:#a8c6ac;background:#36583e55;border:1px solid #4a715755;padding:2px 6px;border-radius:3px}.gold-chip{color:#c4ae85;border-color:#b6966755;background:#977e4330}.calculation-state{font-size:9px;color:#7d9c80}.chart-subtitle{display:flex;justify-content:space-between;font-size:9px;color:#7a9781;align-items:center;margin-bottom:10px}.chart-subtitle button{font-size:9px;border:1px solid #45644888;border-radius:4px;padding:2px 6px;color:#a3b99b}.matrix-container{width:100%}.matrix-container svg{display:block;width:100%;height:auto;overflow:visible}.matrix-cell{transition:fill .35s}.matrix-cell.flash{animation:cellflash .75s}@keyframes cellflash{0%{stroke:#f4d397;stroke-width:1.6}100%{stroke:transparent}}.prob-legend{display:flex;align-items:center;gap:6px;color:#6f8e75;font-size:8px;margin:8px 0 18px}.prob-legend i{width:52px;height:5px;background:linear-gradient(to right,#ffffff05,#aacb95);border-radius:3px}.prob-legend small{font-size:8px;margin-left:auto}.scenario-title{display:flex;justify-content:space-between;font-size:10px;color:#a1b69c;margin:15px 0 9px}.scenario-title span:last-child{font-size:8px;color:#647f69}.scenario-row{display:grid;grid-template-columns:96px 1fr 28px;align-items:center;gap:10px;font-size:9px;color:#8daa8e;margin:8px 0}.scenario-track{height:11px;background:#ffffff05;position:relative;border-radius:2px}.scenario-track i{display:block;height:100%;border-radius:2px;transition:width .35s;background:#759f7d}.scenario-track .baseline{position:absolute;top:-2px;width:0;border-right:1px dashed #d7d6b6bb;height:15px;transition:left .3s}.scenario-row b{font-weight:400;font-size:9px;color:#afc4a5;text-align:right}.probe-panel{border-top:1px solid var(--line);padding-top:12px;margin-top:15px;min-height:52px}.probe-placeholder{color:#657f6a;font-size:10px;padding:6px 0}.probe-head{font-size:10px;display:flex;justify-content:space-between;margin-bottom:8px;color:#b2c5a7}.probe-risks{display:flex;gap:8px}.risk-box{background:#ffffff04;border-radius:4px;padding:8px 10px;flex:1;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#7e9d7d}.risk-box b{font-family:Georgia,serif;font-size:22px;color:#cbd6b5;font-weight:400}.probe-delta{font-size:9px;color:#9eaa87;margin-top:8px}.belief-box{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.belief-heading{display:flex;justify-content:space-between;font-size:10px;color:#b1c1a8;margin-bottom:11px}.belief-heading button{font-size:9px;color:#718d73;padding:0}.slider-label{display:flex;justify-content:space-between;font-size:9px;color:#8ba484}.slider-label b{font-size:9px;font-weight:400;color:#b2bb8b}.expectation-slider{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:8px;color:#6f8f70}.expectation-slider input{flex:1;width:0}.belief-box details{margin-top:14px}.belief-box summary{font-size:9px;color:#6f8c73;cursor:pointer}.belief-box details label{font-size:9px;color:#a5b799;display:block;margin:10px 0}.belief-box details label output{float:right;color:#7c9676}.belief-box details input{display:block;width:100%;margin-top:10px}.belief-box details p{font-size:9px;color:#6e8a70;line-height:1.8}.global-totals{display:flex;gap:10px;border-top:1px solid var(--line);margin-top:10px;padding-top:11px;justify-content:space-between;font-size:9px;color:#809c80}.global-totals b{color:#c2c9a0;font-family:Georgia,serif;font-size:15px;font-weight:400;margin-left:5px}.sidebar-foot{display:flex;justify-content:space-between;font-size:9px;color:#4e715b;padding:0 3px}.sidebar-foot button{font-size:9px;color:#648369}.sidebar-foot span{color:#4d795e}dialog{border:1px solid #4e6952;border-radius:13px;background:#1a3026;color:var(--text);max-width:520px;width:calc(100% - 36px);padding:28px}dialog::backdrop{background:#07130ccc;backdrop-filter:blur(4px)}dialog p{font-size:11px;line-height:1.9;color:#8ca68d;margin:15px 0}dialog h2{font-size:19px}.close-dialog{position:absolute;right:15px;top:12px;font-size:23px;color:#849b7f}textarea{width:100%;background:#11281c;border:1px solid #476747;border-radius:5px;color:#d9e3cb;outline-color:#9cb887;padding:11px;font-size:13px;resize:vertical}.input-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin-top:12px}.input-picker button{background:#2b4531;border:1px solid #4d6744;border-radius:4px;height:35px;font-size:13px}.input-picker button.joker{font-size:10px}.dialog-bottom{display:flex;align-items:center;gap:15px;margin-top:20px;font-size:12px}.dialog-bottom span{margin-right:auto;color:#a0bb8e}.dialog-bottom button{padding:8px 20px;border-radius:5px;font-size:11px}.input-error{color:#e3b089}#rules-dialog a{color:#bfcaa6}.hidden-global{font-size:11px;color:#657c61;text-align:center;padding:32px 0}[hidden]{display:none!important}.loading{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.3}}
@media(min-width:1650px){.poker-table{height:680px}.hand-zone{bottom:45px}.hand-cards .card{width:61px;height:88px;font-size:31px}.center-play{top:174px}.opponent{top:129px}.last-play{top:324px}.my-info{margin-bottom:28px}}
@media(max-width:1240px){.game-shell{grid-template-columns:minmax(0,1fr) 385px;gap:16px;padding:18px}.poker-table{border-radius:110px 110px 70px 70px;height:600px}.opponent.left{left:20px}.opponent.right{right:20px}.center-play{left:138px;right:138px}.last-play{width:100px}.left-play{left:30px}.right-play{right:30px}.hand-zone{left:20px;right:20px}.hand-cards .card{width:48px;height:76px;font-size:25px}.hand-cards .card.joker{font-size:10px}.view-tabs button{padding:7px 10px}.auto-label{font-size:9px}.chart-card{padding:16px 13px}.scenario-row{grid-template-columns:85px 1fr 28px;gap:8px}.center-cards .card{width:29px;height:44px;font-size:18px}}
@media(max-width:1000px){.game-shell{grid-template-columns:1fr;padding:16px;max-width:900px}.charts-sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:15px}.sidebar-foot{grid-column:1/-1}.poker-table{height:580px}.hand-zone{bottom:30px}.hand-cards .card{width:54px;height:81px;font-size:28px}.full-card{position:sticky;top:15px}.table-header{margin-bottom:15px}.opponent.left{left:42px}.opponent.right{right:42px}.center-play{left:190px;right:190px}.last-play{width:145px}.left-play{left:40px}.right-play{right:40px}.timeline{margin:18px 0}.header-actions{gap:4px}header{padding:0 22px}}
@media(max-width:600px){header{height:56px;padding:0 13px}.brand{gap:7px}.brand b{font-size:15px}.brand i{display:none}.brand>span{font-size:23px}.header-actions{font-size:9px;gap:3px}.header-actions button,.upload{padding:6px}.header-actions .new-button{padding:7px 9px}.game-shell{padding:10px;gap:0}.table-header{height:34px;margin:4px 0 11px}.view-tabs{padding:3px}.view-tabs button{font-size:10px;padding:5px 10px}.auto-label{font-size:8px;gap:3px}.auto-label input{width:10px;height:10px}.poker-table{height:530px;min-height:530px;border-radius:60px 60px 30px 30px;box-shadow:inset 0 0 0 5px #142c1e50,inset 0 0 0 6px #6d8c4c22}.kitty-area{top:17px;gap:7px;font-size:9px}.tiny .card{width:21px;height:30px;font-size:14px}.tiny .card.joker{font-size:7px}.tiny .card.joker .suit{font-size:4px}.opponent{top:77px;width:78px}.opponent.left{left:13px}.opponent.right{right:13px}.opponent .avatar{width:37px;height:37px;font-size:20px;margin-bottom:7px}.seat-info{font-size:10px}.seat-role{display:block;margin:1px 0 0;font-size:8px}.seat-count{font-size:22px}.seat-cards{gap:5px;margin-top:7px}.seat-cards .card{width:17px;height:24px;font-size:10px}.seat-turn{font-size:8px}.center-play{top:99px;left:96px;right:96px}.turn-label{font-size:11px;letter-spacing:0;margin-bottom:15px}.center-cards .card{width:25px;height:36px;font-size:16px;padding:3px;border-radius:3px}.center-cards .card .suit{font-size:7px}.center-cards .card.joker{font-size:7px}.center-cards{gap:2px}#center-subtitle{font-size:8px}.last-play{top:238px;width:79px;font-size:10px}.left-play{left:12px}.right-play{right:12px}.last-play b{font-size:13px;letter-spacing:1px}.last-play small{font-size:8px}.center-mark{top:86px;font-size:136px}.hand-zone{left:10px;right:10px;bottom:26px}.my-info{padding:0 4px;margin-bottom:15px;gap:7px}.my-info .avatar{width:28px;height:28px;font-size:16px}.my-info b{font-size:10px}.my-info small{font-size:8px}.my-info #hand-count{font-size:9px}.my-info #selected-label{font-size:8px;margin:0 4px 0 auto}.hand-cards{min-height:83px;padding-top:10px}.hand-cards .card{width:36px;height:69px;padding:5px 3px;font-size:22px;border-radius:4px}.hand-cards .card .suit{font-size:11px}.hand-cards .card.joker{font-size:8px;writing-mode:vertical-rl;align-items:flex-start}.hand-cards .card.joker .suit{display:none}.action-buttons{gap:8px;flex-wrap:wrap;max-width:100%}.action-buttons button{min-width:61px;padding:8px 13px;font-size:10px}.action-buttons button.subtle{font-size:9px}.bid-assessment{font-size:8px;min-height:20px;max-width:320px;margin-top:8px}.timeline{padding:14px 12px}.timeline-head b{font-size:11px}.timeline-head span{font-size:9px;margin-left:7px}.timeline-buttons{gap:10px}.timeline-buttons button{font-size:9px}.event-chip{min-width:67px}.charts-sidebar{grid-template-columns:1fr;width:100%;gap:12px}.full-card{position:static}.chart-card{padding:18px}.sidebar-foot{padding:3px 5px 10px}.matrix-container svg{max-height:165px}.partial-card .matrix-container svg{max-height:125px}.scenario-row{font-size:10px;grid-template-columns:99px 1fr 30px}.scenario-row b{font-size:10px}.chart-subtitle{font-size:9px}.belief-heading,.slider-label{font-size:10px}.belief-box summary{font-size:10px}.expectation-slider{font-size:9px}.probe-placeholder{font-size:10px}.toast{top:57px;font-size:10px;max-width:91%;padding:9px 12px;width:max-content}}

.simulation-controls{display:flex;align-items:center;gap:12px;margin:0 0 17px;padding:11px 14px;border:1px solid #ffffff12;border-radius:8px;background:#ffffff04}.simulation-controls button{font-size:11px;border-radius:5px;padding:8px 15px}.sim-toggle{background:#d7b77a;color:#283a22;min-width:112px;font-weight:600}.sim-step{border:1px solid #6d875966;color:#b6c9a3}.speed-control{display:flex;gap:9px;align-items:center;margin-left:10px;font-size:10px;color:#8fa589}.speed-control select{background:#253e2e;color:#c6d5b4;border:1px solid #526b4555;border-radius:4px;padding:5px 8px;font:11px var(--sans);outline-offset:3px}#sim-status{margin-left:auto;font-size:10px;color:#8fa887}.autonomous-status{color:#c3d5ac;font-size:12px;display:flex;align-items:center;gap:8px;min-height:42px}.autonomous-status i{width:5px;height:5px;background:#d8b679;border-radius:50%;animation:pulse 1.2s infinite}.decision-card{border-color:#a3884744;padding:16px 17px}.decision-card .chart-title{margin-bottom:9px}#decision-main{font-size:14px;color:#d1dcbf;line-height:1.7}#decision-detail{font-size:9px;color:#899c7a;margin-top:7px;line-height:1.8}.chart-card.decision-card{background:linear-gradient(115deg,#30422c55,#192e25)}
@media(max-width:1000px){.charts-sidebar .decision-card{grid-column:1/-1}.charts-sidebar .full-card{grid-column:2;grid-row:2}.charts-sidebar .partial-card{grid-column:1;grid-row:2}}
@media(max-width:600px){.simulation-controls{padding:9px;gap:7px;flex-wrap:wrap;margin-bottom:12px}.simulation-controls button{font-size:10px;padding:7px 11px}.sim-toggle{min-width:100px}.speed-control{margin-left:auto;font-size:9px;gap:5px}.speed-control select{font-size:10px;padding:5px}.simulation-controls #sim-status{font-size:9px;width:100%;margin:0;padding-left:2px}.charts-sidebar .full-card,.charts-sidebar .partial-card,.charts-sidebar .decision-card{grid-column:1;grid-row:auto}.autonomous-status{font-size:10px}.decision-card{padding:15px 18px}}
