:root{color-scheme:light;--ink:#233a2e;--muted:#756f60;--paper:#f4f0e8;--line:#ded5c7;--green:#315e4a;--coral:#d6705f}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:"Noto Serif SC",Songti SC,Microsoft YaHei,serif;background:#ece6db;color:var(--ink);font-size:15px;line-height:1.55}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible{outline:3px solid #e5ad61;outline-offset:3px}h1,h2,p{margin:0}h1,h2{font-weight:700;line-height:1.25}h2{font-size:21px}.table-shell{width:min(1050px,calc(100% - 36px));margin:22px auto 0}.panel,.topbar{background:#f9f6ef;border:1px solid var(--line);border-radius:20px;box-shadow:0 3px 10px #5a49250a}.topbar{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:17px 24px;margin-bottom:18px;min-height:88px}.room-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.room-code>span{font-size:13px;color:#796e5d}.room-code strong{font-size:22px;letter-spacing:.15em}.room-code button,.text-button{border:0;background:none;color:#47715c;text-decoration:underline;text-underline-offset:3px;font-size:12px;padding:4px}.turn-status{text-align:center;color:#315e4a;font-size:20px;font-weight:700}.turn-status small{display:block;font-size:11px;color:#827b6b;font-weight:400;margin-top:3px}.leave{justify-self:end;padding:9px 15px;background:#f9f6ef;border:1px solid #d8d0c3;border-radius:11px;color:#665f53;font-size:12px}.player-panel{padding:23px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:20px;margin:0 0 17px;border:1px solid}.opponent-panel{background:#f2dfd6;border-color:#e9cfc0}.self-panel{background:#dfe7d7;border-color:#c9d7c0}.player-meta{display:flex;align-items:center;gap:15px;min-width:185px}.player-meta h2{font-size:20px;color:#283e31}.player-meta p,.section-head p,.action-heading p{color:#857a68;font-size:12px;margin-top:4px}.you-label{font-size:12px;font-weight:400}.avatar{width:57px;height:57px;display:grid;place-items:center;border-radius:50%;font-size:28px;color:#fff;flex-shrink:0;border:2px solid #ffffffa8}.cat{background:#dd9488}.leaf{background:#567b60}.tile-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tile{--tile:#95bc9a;width:76px;height:106px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:10px;border:3px solid #f8f4ea;background:var(--tile);box-shadow:0 2px #b5a58c,0 4px 7px #4e3d2628;position:relative;color:#24352a}.tile.green,.number-cell.green,.clue-color.green,.sample-tile.green,.color-choice.green{--tile:#a8c6a5}.tile.pink,.number-cell.pink,.clue-color.pink,.sample-tile.pink,.color-choice.pink{--tile:#e7b5b4}.tile.blue,.number-cell.blue,.clue-color.blue,.sample-tile.blue,.color-choice.blue{--tile:#a7c7dc}.tile.red,.number-cell.red,.clue-color.red,.sample-tile.red,.color-choice.red{--tile:#dc8e80}.tile.orange,.number-cell.orange,.clue-color.orange,.sample-tile.orange,.color-choice.orange{--tile:#edc88f}.tile:before{content:"";position:absolute;inset:4px;border:1px solid #ffffff8a;border-radius:5px;pointer-events:none}.tile-number{font-size:38px;line-height:1;font-weight:600}.dots{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:8px}.dots i{width:6px;height:6px;background:currentColor;border-radius:50%;display:block}.tile.selected{outline:3px solid #406f55;outline-offset:3px;transform:translateY(-3px)}.back{background:var(--tile);color:#1f5037}.back:before{border:1px solid #ffffffb5}.back-number{position:absolute;top:8px;left:9px;font-size:11px;opacity:.8}.back-mark{font-size:32px;line-height:1}.back-name{font-size:10px;letter-spacing:.1em}.market-panel,.clues-panel,.notes-panel{padding:23px;margin-bottom:17px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:17px}.section-head h2 span{font-weight:400;font-size:14px}.subtle{font-size:12px;color:#8b8272}.market-row{min-height:106px}.actions{padding:2px 5px 12px}.action-heading{margin-bottom:12px}.action-heading h2{font-size:18px}.color-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.color-choice{border:1px solid #d5cdbf;border-radius:10px;background:#faf7f0;color:#3a4a39;padding:11px 13px;font-size:13px}.color-choice small{color:#8b8070}.color-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--tile);margin-right:7px}.clue-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.primary,.coral{background:#315e4a;color:#fff;border:1px solid #254e3d;border-radius:12px;box-shadow:0 3px 5px #3d3a2a1c;padding:14px 18px;font-weight:700}.coral{background:#d66f5e;border-color:#c25e4d}.clue-actions button{min-height:74px;text-align:left}.clue-actions button strong,.clue-actions button small{display:block}.clue-actions button small{font-size:12px;font-weight:400;opacity:.9;margin-top:4px}.guess-link{display:block;margin:12px auto 0;border:0;background:transparent;color:#315e4a;font-weight:700;padding:6px}.clue-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.clue-list li{display:flex;gap:9px;align-items:center;font-size:13px;border-top:1px solid #eae3d8;padding:9px 0 0}.clue-color{height:13px;width:13px;background:var(--tile);border-radius:4px}.empty{font-size:13px;color:#9a8f7e}.number-grid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px}.number-cell{min-width:0;background:color-mix(in srgb,var(--tile) 43%,#faf7f0);border:1px solid color-mix(in srgb,var(--tile) 75%,#b3a996);border-radius:5px;min-height:48px;color:#354438;position:relative;display:flex;align-items:center;justify-content:center;gap:5px}.number-cell span{font-size:14px}.number-cell .dots{gap:2px}.number-cell .dots i{width:3px;height:3px}.number-cell.crossed{background:#e8e5dd;color:#a49c90;text-decoration:line-through}.number-cell.crossed:after{content:"\d7";position:absolute;right:4px;top:0;font-size:13px}.finish{display:flex;align-items:center;gap:16px;padding:22px;margin:0 0 17px}.finish h2{font-size:19px}.finish p{font-size:12px;color:#857a68;margin-top:5px}.finish-star{font-size:28px;color:#d29c53}.finish-answer{margin-left:auto;display:flex;flex-direction:column;font-size:11px;color:#857a68}.finish-answer strong{font-size:15px;color:#315e4a}.secondary{border:1px solid #cfc6b8;background:#f9f6ef;color:#365845;border-radius:11px;padding:11px 16px;font-weight:600}.footer{text-align:center;color:#9f9586;font-size:11px;padding:14px 0 26px}.entry-shell{min-height:100vh;display:grid;place-items:center;padding:28px 15px}.entry-card{width:min(100%,470px);background:#f9f6ef;border:1px solid #e0d6c6;border-radius:24px;padding:34px 42px;box-shadow:0 12px 45px #5b4c3014;text-align:center}.entry-icon{display:grid;place-items:center;background:#dce7d6;color:#3f6b51;border-radius:50%;width:54px;height:54px;margin:0 auto 13px;font-size:28px}.entry-kicker{color:#87917d;font-size:12px;letter-spacing:.14em;margin-bottom:9px}.entry-card h1{font-size:29px;letter-spacing:.03em}.intro{font-size:13px;color:#837b6c;margin:12px 0 20px}.entry-sample{display:flex;justify-content:center;gap:7px;margin-bottom:22px}.sample-tile{background:var(--tile);border:2px solid #fff9f0;border-radius:7px;width:47px;height:59px;display:grid;place-items:center;font-size:22px;box-shadow:0 2px 3px #5b4b3128}.field{display:block;text-align:left;font-size:12px;font-weight:700;color:#52614f;margin:12px 0 8px}.field input{display:block;width:100%;margin-top:6px;padding:12px 14px;background:#fff;border:1px solid #d8d0c3;border-radius:10px;color:#273d2f;outline-offset:2px}.field input::placeholder{color:#b4aa9c}.full{width:100%}.primary span{float:right}.separator{display:flex;align-items:center;gap:12px;color:#a69b89;font-size:11px;margin:17px 0 10px}.separator:before,.separator:after{content:"";height:1px;background:#e3dbce;flex:1}.entry-foot{font-size:11px;color:#a59b8b;margin-top:17px}.error{color:#a84e41;font-size:12px;margin-top:12px}.banner{background:#fff1eb;border:1px solid #e8c2b7;padding:12px;border-radius:10px;margin:0 0 14px}.waiting{text-align:center;padding:75px 20px}.waiting-mark{font-size:32px;color:#8da987}.waiting h1{font-size:25px;margin:10px}.waiting p{color:#877d6e;margin:15px 0 22px}.modal-backdrop{position:fixed;inset:0;z-index:10;background:#28382da8;display:grid;place-items:center;padding:18px}.modal{width:min(100%,480px);position:relative;background:#faf7f0;padding:30px;border-radius:20px;border:1px solid #e0d6c5;box-shadow:0 10px 50px #1d261f44}.modal h2{font-size:22px}.modal p{font-size:13px;color:#817768;margin:12px 0 19px}.close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:26px;color:#837968}.guess-inputs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 20px}.guess-inputs label span{display:block;text-align:center;color:#8e8372;font-size:10px;margin-bottom:4px}.guess-inputs input{width:100%;min-width:0;border:1px solid #d8cfc1;background:#fff;border-radius:8px;padding:10px 2px;text-align:center}.modal-cancel{display:block;margin:10px auto 0}@media(max-width:700px){.table-shell{width:min(100% - 20px,540px);margin-top:10px}.topbar{padding:13px;grid-template-columns:1fr auto;gap:8px}.room-code{gap:6px}.room-code strong{font-size:17px}.room-code button{font-size:10px}.turn-status{grid-column:1 / -1;grid-row:2;text-align:left;font-size:15px;border-top:1px solid #ebe5da;padding-top:8px}.turn-status small{display:inline;margin-left:10px}.leave{grid-column:2;grid-row:1}.player-panel{padding:16px;display:block}.player-meta{margin-bottom:14px}.avatar{width:40px;height:40px;font-size:21px}.player-meta h2{font-size:17px}.tile-row{justify-content:center;gap:6px}.tile{width:calc((100vw - 82px)/5);max-width:67px;height:90px;border-width:2px;gap:7px}.player-panel .tile-row{flex-wrap:nowrap}.player-panel .tile{width:min(67px,calc((100% - 24px)/5))}.tile-number{font-size:30px}.back-mark{font-size:24px}.back-name{font-size:9px}.market-row{justify-content:flex-start;min-height:90px}.market-panel,.clues-panel,.notes-panel{padding:17px}.section-head h2{font-size:18px}.number-grid{gap:4px}.number-cell{min-height:43px;display:flex;flex-direction:column;gap:0}.number-cell span{font-size:12px}.number-cell .dots{gap:2px;min-height:5px}.number-cell .dots i{width:2px;height:2px}.number-cell.crossed:after{font-size:10px}.finish{flex-wrap:wrap}.finish-answer{margin-left:0}.finish .secondary{width:100%}.entry-card{padding:30px 23px}.clue-actions button{padding:12px;min-height:78px}.clue-actions button strong{font-size:14px}.clue-actions button small{font-size:11px}}@media(max-width:700px){.player-panel .tile-row{flex-wrap:nowrap;width:100%}.player-panel .tile{width:calc((100% - 24px)/5);min-width:0;max-width:67px}}
