@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#273a30;background:#f6f5f0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d18a4c;outline-offset:4px}header{height:88px;border-bottom:1px solid #e4e5dd;display:flex;align-items:center;justify-content:space-between;max-width:1320px;margin:auto;padding:0 48px}.brand{text-decoration:none;color:#253c2e;font-size:24px;font-weight:800;display:flex;align-items:center;gap:13px}.brand-en{font-size:10px;letter-spacing:2.5px;color:#889085;font-weight:500;padding-left:3px}.brand-icon{position:relative;font-size:27px;line-height:1;width:38px}.brand-icon i{font-style:normal;font-size:21px;color:#fff;text-shadow:0 0 2px #7d8a78;position:absolute;left:17px;top:10px}.header-note{font-size:12px;color:#7f897d;display:flex;align-items:center;gap:9px}.live-dot{display:inline-block;width:6px;height:6px;background:#6c8b61;border-radius:50%;vertical-align:middle}main{max-width:1160px;margin:auto;padding:43px 40px 0}.intro{margin-bottom:31px}.eyebrow{font-size:10px;letter-spacing:2px;color:#7a8977;font-weight:700}h1{font-size:40px;letter-spacing:-2px;margin:9px 0 10px;font-weight:700}.intro p{color:#858b80;font-size:13px;margin:0}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:30px;align-items:start}.board-card{background:#fffefb;border:1px solid #e5e6dc;border-radius:15px;padding:19px 24px 0;box-shadow:0 8px 26px #29332204}.board-top{display:flex;justify-content:space-between;font-size:11px;color:#8e9489;margin-bottom:20px}.board-top>span:first-child{color:#62755d}.board-top .live-dot{margin-right:5px}.board-wrap{position:relative;margin:8px 2px 17px 13px;padding:18px;background:#dbc097;background-image:repeating-linear-gradient(2deg,transparent 0px,transparent 5px,#9e704408 6px,transparent 8px),linear-gradient(110deg,#e9d2ac,#ddbd8d);border-radius:5px;box-shadow:inset 0 0 0 1px #b7996b55,0 3px 8px #5942200c}#board{display:grid;grid-template-columns:repeat(15,1fr);aspect-ratio:1;position:relative}.cell{position:relative;border:0;padding:0;background:transparent;min-width:0;isolation:isolate;display:flex;align-items:center;justify-content:center}.cell:before{content:'';position:absolute;inset:0;background:linear-gradient(#896f48a3,#896f48a3) center/1px 100% no-repeat,linear-gradient(#896f48a3,#896f48a3) center/100% 1px no-repeat;z-index:-2}.cell.first-row:before{top:50%;background-position:center top,left top}.cell.last-row:before{bottom:50%;background-position:center bottom,left bottom}.cell.first-col:before{left:50%;background-position:left center,left center}.cell.last-col:before{right:50%;background-position:right center,right center}.cell.star:after{content:'';position:absolute;width:5px;height:5px;background:#7d603c;border-radius:50%;z-index:-1}.stone{height:88%;width:88%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:clamp(8px,1vw,12px);font-weight:600;box-shadow:1px 3px 3px #573e3540}.black{background:radial-gradient(circle at 33% 26%,#53564e,#1e221e 70%);color:#eee}.white{background:radial-gradient(circle at 33% 26%,#fff,#f4f2e8 60%,#d5d2c7);color:#4f554c;border:1px solid #b5b09c55}.cell.last .stone:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#d89557}.show-numbers .cell.last .stone:after{display:none}.cell.winner .stone{outline:2px solid #d7843b;outline-offset:1px}.cell:not(.occupied):hover:after{content:'';width:80%;height:80%;border-radius:50%;background:#263b2f3b;position:absolute}.white-turn .cell:not(.occupied):hover:after{background:#ffffffe0}.cell:focus-visible{outline:2px solid #496648;outline-offset:-2px}.coordinates{position:absolute;display:flex;justify-content:space-between;color:#9c9e8e;font-size:9px;pointer-events:none}.coordinates.top{top:-17px;left:18px;right:18px}.coordinates.top span{width:6.666%;text-align:center}.coordinates.left{left:-17px;top:18px;bottom:18px;flex-direction:column}.coordinates.left span{height:6.666%;display:flex;align-items:center;justify-content:center}.board-bottom{border-top:1px solid #eeeee5;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#94998d}.board-bottom button{background:none;border:0;color:#7e8978;padding:8px 0;font-size:10px}.board-bottom button span{font-size:9px;background:#edf0e8;border-radius:4px;padding:3px 5px;margin-left:5px}.turn-card{background:#fffefb;border:1px solid #e5e6dc;border-radius:14px;padding:24px}.turn-card .eyebrow{letter-spacing:1px;font-size:10px}.turn-title{display:flex;align-items:center;gap:11px;margin:17px 0 12px}.sample{display:inline-block;width:28px;height:28px;border-radius:50%;box-shadow:1px 2px 3px #0002;flex-shrink:0}.sample.small{width:20px;height:20px}h2{font-size:20px;letter-spacing:-.9px;margin:0}.turn-card p{font-size:11px;line-height:1.8;color:#92988c;margin:0 0 24px;min-height:20px}.players{display:flex;gap:8px}.player{display:flex;align-items:center;gap:8px;background:#f7f7f2;border:1px solid #efefe6;border-radius:8px;padding:12px 9px;flex:1;font-size:11px}.player.active{border-color:#809279;background:#eff2e9}.player small{display:block;color:#919989;font-size:9px;margin-top:2px}.player strong{margin-left:auto;font-size:13px;font-weight:500}.move-total{display:flex;justify-content:space-between;font-size:11px;color:#8d9586;margin:20px 0}.move-total strong{font-size:12px;color:#53634e;font-weight:500}.dim{color:#a4ab9b}button.primary,button.secondary{width:100%;padding:12px;border-radius:7px;font-size:12px;font-weight:500}.primary{background:#2c4736;border:1px solid #2c4736;color:#fff}.primary:hover{background:#3f5c47}.secondary{margin-top:8px;background:transparent;border:1px solid #dfe3d7;color:#667660}.secondary:hover{background:#f1f3eb}button:disabled{opacity:.4;cursor:default}.primary span,.secondary span{font-size:17px;margin-right:7px}.rules{padding:24px 7px 0}.rules-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600}.tiny-badge{font-size:9px;padding:4px 7px;border-radius:4px;background:#e9ede2;color:#849077;font-weight:400}.rules ol{padding-left:19px;font-size:11px;line-height:1.9;color:#93998b;margin:15px 0 21px}.rules li{padding-left:3px;margin:8px 0}.rules b{font-weight:600;color:#66785e}.five{display:flex;align-items:center;gap:4px;padding:15px 0;border-top:1px solid #e2e5da}.five i{background:#60745a;border-radius:50%;width:10px;height:10px}.five span{font-size:10px;color:#87917e;margin-left:8px}.local-note{text-align:center;font-size:10px;color:#a2a998;margin-top:18px}.local-note>span{font-size:15px;margin-right:4px}footer{border-top:1px solid #e2e5da;margin-top:36px;padding:23px 0;display:flex;justify-content:space-between;color:#a2a797;font-size:10px}footer span:last-child{font-size:9px;letter-spacing:1.8px}dialog{border:1px solid #e0e4d6;border-radius:16px;padding:30px;color:#273a30;max-width:360px}dialog::backdrop{background:#172a2470;backdrop-filter:blur(3px)}dialog p{font-size:13px;color:#858e7a;margin:15px 0 24px}dialog>div{display:flex;gap:10px}dialog .secondary{margin:0}@media(min-width:1200px){main{padding-top:45px}.board-wrap{padding:20px}}@media(max-width:800px){header{height:72px;padding:0 24px}main{padding:30px 20px 0}.game-layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.turn-card{padding:19px}.board-card{padding:16px 18px 0}.board-wrap{padding:12px}.coordinates.top{left:12px;right:12px}.coordinates.left{top:12px;bottom:12px}h1{font-size:34px}h2{font-size:17px}.player{padding:9px 6px;gap:5px}.header-note{font-size:10px}}@media(max-width:640px){.header-note{display:none}main{padding:28px 16px 0}.intro{margin-bottom:26px}.intro p{font-size:11px}.game-layout{grid-template-columns:1fr}.board-card{padding:16px 22px 0}.board-wrap{padding:15px}.coordinates.top{left:15px;right:15px}.coordinates.left{top:15px;bottom:15px}.turn-card{padding:22px}.turn-title{margin:12px 0}.turn-card p{margin-bottom:16px}.players{gap:12px}.player{padding:11px 14px}.turn-card button{padding:12px}.rules{padding:22px 10px 0}.rules ol{font-size:12px}.local-note{margin-top:10px}footer{margin-top:26px;font-size:9px;gap:14px}footer span:last-child{font-size:8px;letter-spacing:1px}.stone{font-size:10px}}

.cell.first-row:before,.cell.last-row:before,.cell.first-col:before,.cell.last-col:before{inset:0}
.cell.first-row:before{background-size:1px 50%,100% 1px;background-position:center bottom,center center}
.cell.last-row:before{background-size:1px 50%,100% 1px;background-position:center top,center center}
.cell.first-col:before{background-size:1px 100%,50% 1px;background-position:center center,right center}
.cell.last-col:before{background-size:1px 100%,50% 1px;background-position:center center,left center}
.cell.first-row.first-col:before{background-size:1px 50%,50% 1px;background-position:center bottom,right center}
.cell.first-row.last-col:before{background-size:1px 50%,50% 1px;background-position:center bottom,left center}
.cell.last-row.first-col:before{background-size:1px 50%,50% 1px;background-position:center top,right center}
.cell.last-row.last-col:before{background-size:1px 50%,50% 1px;background-position:center top,left center}

[hidden]{display:none!important}.online-panel{margin:-7px 0 25px;border:1px solid #dfe4d7;border-radius:12px;padding:18px 22px;background:#fffefb}.mode-tabs{display:flex;gap:6px;margin-bottom:18px}.mode-tabs button{border:0;border-radius:6px;padding:8px 14px;font-size:12px;background:transparent;color:#7e8978}.mode-tabs .selected{color:#2c4736;background:#eaf0e3;font-weight:700}#online-lobby{display:flex;align-items:center;justify-content:space-between;gap:20px}.lobby-title b{display:block;font-size:14px}.lobby-title>span{display:block;margin-top:6px;font-size:11px;color:#8b9482}.lobby-controls{display:flex;gap:12px}.lobby-controls .primary{white-space:nowrap;width:auto}.lobby-controls form{display:flex;gap:6px}input{font:inherit;border:1px solid #dce2d2;border-radius:6px;padding:10px 12px;color:#3e5337;background:#fafbf6;min-width:0}#room-code{width:160px;font-size:12px;text-transform:uppercase}.lobby-controls .secondary{margin:0;width:60px}#network-message{margin:10px 0 0;font-size:12px;color:#937045;line-height:1.6}#network-message:empty{display:none}#room-info>div:first-child{display:flex;gap:15px;align-items:center;flex-wrap:wrap;font-size:12px}#room-id{font-family:monospace;letter-spacing:1px}#my-color{padding:4px 8px;border-radius:5px;background:#edf1e6;color:#5e7352}#connection{color:#8e9b7e;font-size:11px}.room-actions{display:flex;gap:8px;margin:12px 0 8px}.room-actions .secondary{width:auto;padding:8px 14px;font-size:11px;margin:0}#invite-link{width:100%;font-size:11px;background:#f5f7ef;color:#839074}.request-panel{padding:18px;margin-bottom:16px;background:#eff2e5;border:1px solid #c9d4b9;border-radius:12px;font-size:12px}.request-panel>div{display:flex;gap:8px;margin-top:12px}.request-panel .secondary{margin:0}#board .cell[aria-disabled=true]:not(.occupied):hover:after{display:none}@media(max-width:800px){#online-lobby{align-items:stretch;flex-direction:column;gap:15px}.lobby-controls{flex-wrap:wrap}}@media(max-width:640px){.online-panel{padding:16px}.lobby-controls{flex-direction:column}.lobby-controls .primary{width:100%}.lobby-controls form{width:100%}#room-code{flex:1}.mode-tabs button{flex:1;font-size:11px}#room-info>div:first-child{gap:10px}#connection{width:100%}}
/* Room lobby, participant roster, and chat. */
aside{display:flex;flex-direction:column;gap:16px}.turn-card{order:0}.request-panel{order:-1;margin:0}.members-panel{order:1}.chat-panel{order:2}.rules{order:3}.local-note{order:4;margin-top:0}.online-panel{padding:20px 22px}.profile-form{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid #e9ece2}.profile-form label{font-size:12px;font-weight:600}.profile-form input{width:165px;font-size:12px}.profile-form .secondary{width:auto;margin:0;padding:10px 13px;font-size:11px}.profile-form>span{font-size:10px;color:#929b86}.lobby-controls{flex-wrap:wrap;align-items:center;gap:8px}#online-lobby{align-items:flex-start}.lobby-title{min-width:200px}.lobby-controls select{font:inherit;font-size:11px;background:#f6f8f0;color:#53684a;border:1px solid #dce2d2;border-radius:6px;padding:11px 8px;max-width:170px}.lobby-controls .primary{font-size:11px}#join-form{flex:1;min-width:210px}#room-code{width:145px}.seat-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:17px;padding-top:16px;border-top:1px solid #e8ece0}.seat-controls>span{font-size:11px;color:#8b967e;margin-right:4px}.seat-controls>button{font:inherit;font-size:11px;padding:9px 15px;border:1px solid #dce3d0;border-radius:6px;color:#6b7d5c;background:#f9fbf5}.seat-controls>button.selected{border-color:#607652;background:#eaf0e1;color:#344d2d;font-weight:600}.seat-controls>button.primary{background:#2c4736;color:#fff;width:auto;margin-left:auto;border-color:#2c4736}.room-hint{font-size:10px;color:#8c977f;margin:10px 0 0}.members-panel,.chat-panel{border:1px solid #e0e5d7;border-radius:13px;background:#fffefb;padding:18px 20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-heading h2{font-size:13px;letter-spacing:-.3px}.section-heading>span{font-size:10px;color:#8f9c80}#member-list{list-style:none;padding:0;margin:13px 0 0}#member-list li{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #f0f2e9;font-size:11px}#member-list li:last-child{border:0}#member-list b{font-size:11px;font-weight:500;min-width:0;overflow-wrap:anywhere}#member-list small{margin-left:auto;white-space:nowrap;font-size:9px;color:#8a9978}.member-role{display:inline-flex;justify-content:center;min-width:32px;flex-shrink:0;padding:4px 6px;border-radius:5px;background:#edf1e7;color:#6a7e58;font-size:9px}.role-1{background:#334333;color:#fff}.role-2{background:#f6f6ed;border:1px solid #d9dfcf;color:#69765d}.members-panel>p{font-size:9px;color:#a0a88f;margin:10px 0 0;line-height:1.7}#chat-messages{height:235px;overflow-y:auto;padding:13px 0 4px;margin-top:8px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5ddc8 transparent}.chat-empty{color:#a1aa92;font-size:11px;line-height:1.8;padding:50px 5px;text-align:center}.chat-message{margin-bottom:13px}.chat-meta{display:flex;align-items:baseline;gap:8px;font-size:10px;color:#718364}.chat-meta b{font-weight:500;overflow-wrap:anywhere}.chat-meta time{font-size:8px;color:#a3ac96}.chat-message p{font-size:12px;line-height:1.65;overflow-wrap:anywhere;white-space:pre-wrap;margin:5px 0 0;padding:8px 10px;border-radius:0 9px 9px 9px;background:#f2f5eb;color:#536649}.chat-message.mine p{background:#e7efde}.chat-message.mine .chat-meta b{color:#3d6030}#chat-form{display:flex;gap:6px;border-top:1px solid #edf0e6;padding-top:12px}#chat-input{width:100%;font-size:11px;padding:10px 9px}#send-chat{border:0;border-radius:6px;background:#2c4736;color:#fff;font:inherit;font-size:10px;padding:0 11px;white-space:nowrap}#chat-error{font-size:10px;color:#a16545;line-height:1.6;margin:8px 0 0}#chat-error:empty{display:none}.player>span:nth-child(2){min-width:0}.player #black-name,.player #white-name{display:block;max-width:70px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.turn-title h2{overflow-wrap:anywhere;line-height:1.5;font-size:18px}.rules{padding-top:9px}.chat-panel form input:disabled{opacity:.6}@media(max-width:900px){#online-lobby{flex-direction:column;gap:15px}.lobby-controls{width:100%}}@media(max-width:640px){.profile-form{gap:8px}.profile-form label{width:100%}.profile-form input{flex:1;min-width:110px}.profile-form>span{width:100%}.online-panel{padding:16px}.lobby-controls{display:grid;grid-template-columns:1fr 1fr}.lobby-controls select{width:100%;max-width:none}.lobby-controls .primary{width:100%}.lobby-controls #join-form{grid-column:1/-1;min-width:0}.seat-controls>button{padding:9px 12px}.seat-controls>button.primary{margin-left:0}.seat-controls>span{width:100%;margin-bottom:2px}.members-panel,.chat-panel{padding:18px 20px}#chat-messages{height:240px}}
.resign-button{width:100%;border:1px solid #dfc9ba;background:#fcf7f2;color:#a16c4e;border-radius:7px;font:inherit;font-size:11px;padding:10px;margin-top:9px}.resign-button:hover:not(:disabled){background:#f4e7dc;border-color:#c99d80}.pending-stone{opacity:.78}#resign-dialog{max-width:390px}#resign-dialog>div{align-items:stretch}#resign-dialog button{margin:0}#resign-dialog .resign-button{background:#a56848;color:#fff;border-color:#a56848;font-size:11px;white-space:nowrap}#resign-description{line-height:1.9}#connection{font-variant-numeric:tabular-nums}

.records-panel{order:1;border:1px solid #dce3d1;border-radius:13px;background:#fffefb;padding:18px 20px}.records-panel .section-heading button{border:0;background:#eef2e6;color:#607653;border-radius:5px;padding:3px 9px;font-size:17px}.records-panel #record-name{font-size:12px;font-weight:600;margin:14px 0 12px;overflow-wrap:anywhere}#record-totals{display:flex;gap:8px}#record-totals>div{flex:1;background:#f1f4ea;border-radius:8px;text-align:center;padding:12px 4px}#record-totals strong{display:block;font-size:23px;font-weight:600;font-variant-numeric:tabular-nums}#record-totals span{font-size:10px;color:#849477}#record-status{font-size:10px;color:#859278;line-height:1.7;margin:10px 0}#rival-details{border-top:1px solid #edf0e6;padding-top:12px;margin-top:12px}#rival-details summary{cursor:pointer;font-size:11px;font-weight:500}#rival-count{float:right;font-size:9px;color:#98a08d}#rival-list{list-style:none;margin:10px 0 0;padding:0;max-height:210px;overflow:auto}#rival-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;font-size:10px;border-bottom:1px solid #f1f3eb}#rival-list b{font-weight:500;overflow-wrap:anywhere}#rival-list span{white-space:nowrap;color:#7b8d6d;font-variant-numeric:tabular-nums}.record-note{font-size:9px;line-height:1.8;color:#9aa58d;margin:14px 0 0}.match-record{background:#f2f5eb;border-radius:8px;padding:12px;margin:14px 0 0;text-align:center}.match-record small{font-size:9px;color:#849478}.match-record>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}.match-record b{font-size:10px;font-weight:500;flex:1;overflow-wrap:anywhere}.match-record strong{font-size:19px;white-space:nowrap;letter-spacing:3px}.match-record>span{display:block;font-size:9px;color:#8e9c80;margin-top:6px}#member-list .member-record{display:block;font-size:9px;font-weight:400;color:#8b9a7b;margin-top:3px}

.account-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-6px 0 18px;color:#879679;font-size:10px}.account-bar button{background:none;border:0;color:#617c50;font:inherit;font-size:10px;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}#account-dialog{max-width:450px;width:calc(100% - 32px)}#account-dialog p{line-height:1.8;font-size:11px}#account-dialog #account-id{font-weight:600;color:#4b6840}#account-dialog #recovery-panel{display:block;margin-top:14px}#account-dialog label{display:block;font-size:11px;margin:15px 0 8px}#account-dialog input{width:100%;font-size:11px}#recovery-code{font-family:monospace}#account-dialog #recovery-panel p{font-size:10px;color:#a0774e;margin:10px 0}#account-dialog #restore-form{display:block;border-top:1px solid #e8ecdf;margin-top:20px}#account-error{color:#9a7249}#account-dialog #close-account{margin-top:8px}

.cell.forbidden:not(.occupied):after,.cell.forbidden:not(.occupied):hover:after{content:'×';background:none;position:absolute;color:#ab5d47;font-size:17px;font-weight:500;width:auto;height:auto;border-radius:0;pointer-events:none}.play-options{display:flex;gap:7px;margin-top:10px}.play-options .secondary{margin:0;font-size:10px;padding:9px 5px}.rules ol{line-height:1.9}.rules-note{font-size:10px;line-height:1.8;color:#8b977e}.rules-source{font-size:10px;line-height:1.8;color:#6e865d;text-underline-offset:3px}

.cell.forbidden:disabled{opacity:1;cursor:not-allowed}
#board .cell.forbidden:not(.occupied)::after,#board .cell.forbidden:not(.occupied):hover::after{display:block}

/* Board and conversation share the main row; controls and reference cards sit below. */
main{max-width:1220px;padding:30px 32px 0}.intro{margin-bottom:25px}.intro h1{font-size:34px}.intro p{line-height:1.8}.game-layout{grid-template-columns:minmax(0,1fr) 320px;grid-template-areas:"board chat" "controls controls" "request request";gap:20px;align-items:stretch}.board-card{grid-area:board;min-width:0;padding:19px 24px 0}.chat-panel{grid-area:chat;display:flex;flex-direction:column;min-width:0;min-height:430px;align-self:stretch;padding:20px;margin:0}.chat-panel .section-heading{padding-bottom:15px;border-bottom:1px solid #edf0e6}.chat-panel .section-heading h2{font-size:14px}.chat-panel .section-heading>span{font-size:10px}#chat-messages{flex:1;height:0;min-height:240px;margin-top:0;padding:15px 0 6px}.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;margin:0;padding:25px 15px;line-height:2}#chat-form{margin-top:auto;padding-top:14px}#chat-input{font-size:12px;padding:12px 10px}#send-chat{font-size:11px;padding:0 14px}.chat-message p{font-size:12px;line-height:1.8}.request-panel{grid-area:request;margin:0}.turn-card{grid-area:controls;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);gap:0 28px;padding:21px 24px;align-items:center}.turn-card>.eyebrow{grid-column:1;grid-row:1}.turn-card>.turn-title{grid-column:1;grid-row:2;margin:9px 0 5px}.turn-card>.turn-title h2{font-size:20px}.turn-card>p{grid-column:1;grid-row:3;margin:0;font-size:11px;min-height:0}.turn-card>.players{grid-column:2;grid-row:1 / 4;align-self:center}.player{padding:14px 13px;gap:10px}.player #black-name,.player #white-name{max-width:130px}.turn-card>.move-total{grid-column:1;grid-row:4;justify-content:flex-start;gap:12px;margin:14px 0 0;font-size:10px}.turn-card>.match-record{grid-column:2;grid-row:4;margin:12px 0 0;padding:9px 12px}.match-record>div{margin-top:5px}.match-record strong{font-size:17px}.game-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:17px;border-top:1px solid #e9ede1}.game-actions>.play-options{display:contents}.game-actions button.primary,.game-actions button.secondary,.game-actions .resign-button{flex:1;min-width:120px;width:auto;margin:0;padding:11px 9px;font-size:11px}.game-actions #restart{order:0}.game-actions #undo{order:1}.game-actions #pass{order:2}.game-actions #offer-draw{order:3}.game-actions #resign{order:4}.support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin-top:20px;align-items:start}.support-grid>.records-panel,.support-grid>.members-panel,.support-grid>.rules{margin:0;padding:20px 22px;border:1px solid #e0e5d7;border-radius:13px;background:#fffefb;min-width:0}.support-grid>.rules{padding:20px 22px}.rules ol{font-size:11px;padding-left:18px;margin-bottom:12px}.rules .five{margin-top:15px}.local-note{text-align:center;margin:20px 0 0}.profile-settings{margin:0 0 15px}.profile-settings summary{font-size:11px;color:#708162;cursor:pointer;width:fit-content}.profile-settings[open] summary{margin-bottom:13px}.profile-settings .profile-form{margin:0;padding:0;border:0}.account-bar{margin:0 0 17px}.mode-tabs{margin-bottom:15px}.in-room .intro{display:none}.in-room header{height:66px}.in-room main{padding-top:20px}.in-room .online-panel{padding:16px 20px;margin-bottom:20px}.in-room .mode-tabs{display:inline-flex;margin:0 24px 12px 0}.in-room .profile-settings{display:inline-block;margin:0 0 12px;vertical-align:middle}.in-room .profile-settings[open]{display:block}.in-room .account-bar{margin:0 0 15px;font-size:9px}#room-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}#room-info>.room-actions{grid-column:2;grid-row:1;margin:0;align-items:center}#room-info>div:first-child{gap:10px}#room-info>#invite-link{grid-column:1 / -1;font-size:10px;padding:7px 10px}#room-info>.seat-controls{grid-column:1 / -1;margin-top:0;padding-top:11px}#room-info>.room-hint{grid-column:1 / -1;margin:0}.seat-controls>button{padding:8px 13px}.room-actions .secondary{font-size:10px;padding:7px 11px}body[data-mode=local] .profile-settings,body[data-mode=local] .account-bar{display:none}body[data-mode=local] .game-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "controls" "request";max-width:860px;margin-inline:auto}body[data-mode=local] .mode-tabs{margin-bottom:0}
@media(max-width:1000px){main{padding-inline:24px}.game-layout{grid-template-columns:minmax(0,1fr) 285px;gap:16px}.board-card{padding:17px 20px 0}.chat-panel{padding:17px}.turn-card{padding:20px;gap:0 18px}.game-actions button.primary,.game-actions button.secondary,.game-actions .resign-button{min-width:100px}.support-grid{gap:16px}}
@media(max-width:760px){header{height:66px;padding-inline:20px}main{padding:24px 16px 0}.intro{margin-bottom:22px}.intro h1{font-size:30px}.game-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"board" "controls" "request" "chat";gap:15px}.board-card{padding:17px 22px 0}.chat-panel{height:400px;min-height:0;padding:19px 20px}#chat-messages{height:0;min-height:0}.turn-card{grid-template-columns:1fr;gap:0;padding:19px 20px}.turn-card>.eyebrow{grid-column:1;grid-row:1}.turn-card>.turn-title{grid-column:1;grid-row:2}.turn-card>p{grid-column:1;grid-row:3}.turn-card>.players{grid-column:1;grid-row:4;margin-top:15px}.turn-card>.match-record{grid-column:1;grid-row:5}.turn-card>.move-total{grid-column:1;grid-row:6;margin-top:12px}.game-actions{grid-row:7;gap:7px;margin-top:14px;padding-top:14px}.game-actions button.primary,.game-actions button.secondary,.game-actions .resign-button{min-width:calc(33% - 7px);font-size:10px;padding:11px 7px}.support-grid{grid-template-columns:minmax(0,1fr);gap:15px;margin-top:15px}.support-grid>.records-panel,.support-grid>.members-panel,.support-grid>.rules{padding:19px 20px}.in-room header{height:60px}.in-room main{padding-top:15px}.in-room .online-panel{padding:15px}.in-room .mode-tabs{display:flex;margin:0 0 12px}.in-room .profile-settings{margin-bottom:12px}.profile-settings .profile-form>span{font-size:9px}.account-bar{gap:8px;line-height:1.8}#room-info{grid-template-columns:minmax(0,1fr)}#room-info>.room-actions{grid-column:1;grid-row:2;margin-top:1px}#room-info>div:first-child{gap:8px}#connection{width:100%;font-size:10px}.seat-controls>button{padding:8px 11px}.seat-controls>span{width:auto;margin:0 3px 0 0}.seat-controls>button.primary{margin-left:auto}.room-hint{font-size:9px}.player #black-name,.player #white-name{max-width:110px}.rules ol{font-size:11px}}

/* Chat content must never contribute an intrinsic height to the board row. */
.chat-panel{contain:size;min-height:0;overflow:hidden}
.chat-panel .section-heading,#chat-form,#chat-error{flex-shrink:0}
#chat-messages{flex:1 1 0;min-height:0;overflow-y:auto}
.turn-clock{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#6b7d5c;font-size:11px}
.turn-clock strong{font-size:17px;letter-spacing:.5px;font-variant-numeric:tabular-nums;color:#344f36}
.turn-clock.urgent{color:#aa593f}.turn-clock.urgent strong{color:#aa593f}
.turn-clock.idle strong{color:#8c9881}
@media(max-width:760px){.turn-clock{font-size:9px;gap:5px}.turn-clock strong{font-size:15px}}

/* Requests stay in the viewport even when the controls are below the board. */
#request-dialog{width:calc(100% - 32px);max-width:430px;max-height:calc(100dvh - 40px);overflow-y:auto;padding:0;border:1px solid #dce3d1;box-shadow:0 24px 80px #172a2430}
#request-dialog .request-panel{padding:28px;background:#fffefb;border:0;border-radius:0}
#request-dialog .eyebrow{font-size:10px;letter-spacing:1px;margin-bottom:10px;color:#89977b}
#request-dialog h2{font-size:20px;line-height:1.6;overflow-wrap:anywhere;outline:none}
#request-dialog p{font-size:12px;line-height:1.85;margin:12px 0 18px;color:#7e8c72}
#request-dialog .request-clock{font-size:11px;background:#f3f1e6;padding:10px 12px;border-radius:7px;color:#947245}
#request-dialog #request-error{color:#a05e43;margin:10px 0}
#request-error:empty{display:none}
#request-dialog .request-panel>div:last-child{display:flex;gap:9px;margin-top:20px}
#request-dialog button{flex:1;width:auto;margin:0;padding:12px 14px;font:inherit;font-size:12px}
.game-notice{position:fixed;z-index:1000;top:22px;right:22px;display:flex;align-items:flex-start;gap:15px;width:min(390px,calc(100% - 32px));padding:19px 20px;border:1px solid #d4dfc9;border-radius:12px;background:#fffefb;box-shadow:0 12px 40px #263d3126;color:#344f36}
.game-notice>div{min-width:0;flex:1}.game-notice strong{font-size:14px}.game-notice p{margin:7px 0 0;font-size:12px;line-height:1.8;color:#7c8c70;overflow-wrap:anywhere}
.game-notice button{flex-shrink:0;border:0;background:#eff3e8;color:#71865e;border-radius:50%;width:26px;height:26px;font-size:18px;line-height:1;cursor:pointer}
@media(max-width:760px){.game-notice{top:16px;right:16px;padding:16px}#request-dialog .request-panel{padding:23px}#request-dialog h2{font-size:18px}}
