:root,:root[data-theme=light]{--color-bg:#f3f5ee;--color-bg-elevated:#fff;--color-bg-sunken:#e7eddf;--color-fg:#233025;--color-fg-muted:#52614f;--color-fg-subtle:#7a7157;--color-accent:#3c582c;--color-accent-fg:#fff;--color-link:#1c4f9a;--color-link-active:#0b2a5a;--color-divider:#d7dfcf;--color-warning-bg:#fff1c4;--color-warning-fg:#6b3a00;--color-success-bg:#d4f0d4;--color-success-fg:#1a4d1a;--color-board-bg:#f1ead0;--color-board-grid:#4a3f1f;--color-board-square:#f8f3e2;--color-board-square-goal:#f3c44b;--color-board-wall-empty:#e3d8ad;--color-board-wall-placed:#2a2415;--color-board-marker:#c83b3b;--color-board-pawn-outline:#1d1a14;--color-board-frame:#81785e;--color-board-wall-legal:#11100c;--color-board-wall-illegal:#c83b3b;--color-board-pawn-hint:#00000038;--color-board-pawn-hint-stroke:#000;--color-board-pawn-hover:#00000057;--color-shadow:#00000029;--color-entry-online:#2a73c8;--color-entry-ranked:#b8860b;--color-entry-local:#2f8f68;--color-entry-fun:#8a3aa3;--color-entry-challenge:#d96b24;--color-ranked-gold:#a77800;--seat-yellow:#f3c44b;--seat-red:#c83b3b;--seat-purple:#8a3aa3;--seat-blue:#2a73c8;--seat-yellow-fg:#2a2415;--seat-red-fg:#fff;--seat-purple-fg:#fff;--seat-blue-fg:#fff}:root[data-theme=dark]{--color-bg:#16130d;--color-bg-elevated:#211d15;--color-bg-sunken:#0e0c08;--color-fg:#f1ead0;--color-fg-muted:#c4b993;--color-fg-subtle:#8a8167;--color-accent:#f3c44b;--color-accent-fg:#1d1a14;--color-link:#6aa5ff;--color-link-active:#b9d3ff;--color-divider:#3a3322;--color-warning-bg:#4d3500;--color-warning-fg:#ffd866;--color-success-bg:#1c4d1c;--color-success-fg:#b6e2b0;--color-board-bg:#1f1a10;--color-board-grid:#c4b993;--color-board-square:#16130d;--color-board-square-goal:#5a4612;--color-board-wall-empty:#3a3322;--color-board-wall-placed:#f1ead0;--color-board-marker:#ff7676;--color-board-pawn-outline:#f1ead0;--color-board-frame:#746b50;--color-board-wall-legal:#f1ead0;--color-board-wall-illegal:#ff7676;--color-board-pawn-hint:#ffffff42;--color-board-pawn-hint-stroke:#fff;--color-board-pawn-hover:#ffffff61;--color-shadow:#0006;--color-entry-online:#6aa5ff;--color-entry-ranked:#f3c44b;--color-entry-local:#5fc99d;--color-entry-fun:#c98de0;--color-entry-challenge:#ff9a58;--color-ranked-gold:#f3c44b;--seat-yellow:#f3c44b;--seat-red:#ff7676;--seat-purple:#c98de0;--seat-blue:#6aa5ff;--seat-yellow-fg:#1d1a14;--seat-red-fg:#1d1a14;--seat-purple-fg:#1d1a14;--seat-blue-fg:#1d1a14}:root[data-theme=light][data-skin=slate]{--color-board-bg:#d7dde0;--color-board-grid:#465158;--color-board-square:#eef1f2;--color-board-square-goal:#d9cf9f;--color-board-wall-empty:#bcc5c9;--color-board-wall-placed:#354047;--color-board-frame:#657279}:root[data-theme=dark][data-skin=slate]{--color-board-bg:#20272b;--color-board-grid:#b8c2c7;--color-board-square:#151a1d;--color-board-square-goal:#514b2b;--color-board-wall-empty:#394348;--color-board-wall-placed:#e0e6e8;--color-board-frame:#7f8b91}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--shadow-1:0 1px 2px var(--color-shadow);--shadow-2:0 6px 24px var(--color-shadow);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px}.guide-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:18px;display:grid}.guide-card{border-top:3px solid #839d45;padding:26px;position:relative}.guide-card h2{margin-top:12px;font-size:1.2rem}.guide-card p{line-height:1.85}.guide-step{letter-spacing:.12em;color:#65813f;font-size:.8rem;font-weight:800}.wall-inventory{white-space:nowrap;align-items:baseline;gap:5px;margin-left:auto;display:inline-flex}.wall-inventory strong{font-variant-numeric:tabular-nums;font-size:clamp(26px,3vw,34px);font-weight:850;line-height:1.2}.wall-inventory small{font-size:12px}.profile-account-details{margin-top:20px}.profile-account-details summary{cursor:pointer;padding:12px 0;font-weight:700}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;font-size:16px;line-height:1.5}a{color:var(--color-link);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}a:focus-visible{outline:2px solid var(--color-link-active);outline-offset:2px;border-radius:2px}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-3) 0;font-weight:600;line-height:1.25}h1{font-size:1.6rem}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:0 0 var(--space-3) 0}code,pre{font-family:var(--font-mono)}button{font:inherit}.skip-link{background:var(--color-fg);color:var(--color-bg);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);z-index:1000;position:absolute;top:0;left:-1000px}.skip-link:focus{left:var(--space-3);top:var(--space-3)}.app-shell{grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.app-header{z-index:50;background:var(--color-bg-elevated);border-bottom:1px solid var(--color-divider);-webkit-backdrop-filter:saturate(120%)blur(6px);backdrop-filter:saturate(120%)blur(6px);position:sticky;top:0}.app-header__inner{max-width:960px;padding:var(--space-3) var(--space-4);align-items:center;gap:var(--space-3);margin:0 auto;display:flex}.app-header__brand{white-space:nowrap;color:var(--color-fg);flex-shrink:0;align-items:center;gap:.45rem;font-size:1.05rem;font-weight:700;display:inline-flex}.app-header__brand small{color:var(--color-fg-muted);margin-left:var(--space-1);font-weight:500}.app-nav{gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.app-header__brand img{object-fit:cover;border-radius:7px}@media (max-width:600px){.app-header__inner{flex-wrap:wrap}.app-header__inner>.sync-status{margin-left:auto}.app-nav{order:2;justify-content:space-between;gap:2px;width:100%;margin-left:0}.app-nav__link{padding:8px 7px}}.app-nav__link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-fg-muted);font-size:.95rem}.app-nav__link[aria-current=page]{background:var(--color-bg-sunken);color:var(--color-fg)}.theme-toggle{border:1px solid var(--color-divider);color:var(--color-fg-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);cursor:pointer;background:0 0;font-size:.9rem}.theme-toggle:focus-visible{outline:2px solid var(--color-link-active);outline-offset:2px}.sync-status{align-items:center;gap:var(--space-1);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);min-height:2.25rem;color:var(--color-fg);padding:var(--space-1) var(--space-2);cursor:pointer;display:inline-flex}.sync-status__signal{grid-template-columns:repeat(3,.38rem);align-items:end;gap:2px;display:inline-grid}.sync-status__cell{opacity:.22;border-radius:2px;width:.38rem}.sync-status__cell--red{background:#c52b38;height:.45rem}.sync-status__cell--yellow{background:#d3a000;height:.7rem}.sync-status__cell--green{background:#238657;height:.95rem}.sync-status[data-state=disconnected] .sync-status__cell--red,.sync-status[data-state=unsynced] .sync-status__cell--red,.sync-status[data-state=connecting] .sync-status__cell--yellow,.sync-status[data-state=syncing] .sync-status__cell--yellow,.sync-status[data-state=synced] .sync-status__cell--green{opacity:1}.sync-status__label,.sync-status__latency{white-space:nowrap;font-size:.72rem}.sync-status__refresh{font-size:1.15rem;line-height:1}.app-main{--board-fit-size:clamp(14rem, calc(100dvh - 16rem), 42rem);width:100%;max-width:960px;padding:var(--space-5) var(--space-4) var(--space-7);margin:0 auto}.identity-choice{align-content:center;min-height:75vh;display:grid}.identity-choice__panel{width:100%;max-width:42rem;margin-inline:auto}.identity-choice__primary{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:minmax(0,1fr) auto;align-items:stretch;display:grid}.identity-choice__login{gap:var(--space-2);display:grid}.identity-choice__login input{width:100%;min-width:0;padding:var(--space-2)}.identity-choice__actions{gap:var(--space-2);margin-block:var(--space-3);flex-wrap:wrap;display:flex}.identity-choice__button{min-height:2.5rem;font-size:.9rem}.local-config__entry{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.local-config__entry .choice-button{min-height:5rem;font-size:1.15rem;font-weight:700}.local-config__back{margin-bottom:var(--space-3)}@media (max-width:540px){.identity-choice__primary{grid-template-columns:1fr}}.consent-row{align-items:flex-start;gap:var(--space-2);line-height:1.6;display:flex}.consent-row input{flex:none;block-size:1.25rem;inline-size:1.25rem;margin-top:.15rem}.consent-row a{margin-inline:.2em;text-decoration:underline}.app-footer{border-top:1px solid var(--color-divider);background:var(--color-bg-elevated)}.app-footer__inner{max-width:960px;padding:var(--space-4);color:var(--color-fg-subtle);gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;align-items:center;margin:0 auto;font-size:.85rem;display:flex}.app-footer__icp-wrap{align-items:center;margin-left:auto;display:inline-flex}.app-footer__icp{color:inherit;white-space:nowrap;text-decoration:none}.app-footer__icp:hover,.app-footer__icp:focus-visible{text-decoration:underline}.page-title{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.page-title small{color:var(--color-fg-muted);font-weight:500}.page-title--art{text-align:center;margin-block:var(--space-5);justify-content:center}.page-title--art h1{letter-spacing:.12em;text-shadow:0 .08em 0 color-mix(in srgb, var(--color-accent) 55%, transparent);font-size:clamp(2.2rem,9vw,4.8rem);font-weight:800}.home-rules-button{margin:0 auto var(--space-5);padding:var(--space-2) var(--space-6);min-height:44px;color:var(--color-link);cursor:pointer;text-underline-offset:6px;text-decoration:underline;-webkit-text-decoration-color:var(--color-divider);text-decoration-color:var(--color-divider);background:0 0;border:0;border-radius:12px;display:block}@media (max-width:600px){.home-rules-button{padding-inline:4px;font-size:clamp(12px,3.65vw,16px)}.app-nav .app-nav__link{padding:8px 6px;font-size:.82rem}}.home-rules-button:hover{text-decoration-color:currentColor}.home-rules-button:focus-visible{outline:2px solid var(--color-link);outline-offset:3px}.home-page{isolation:isolate;max-width:820px;padding-top:clamp(36px,6vh,72px);position:relative}.home-aliases{z-index:-1;text-align:center;letter-spacing:.03em;color:var(--color-fg);opacity:.09;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;font:700 clamp(16px,3.6vw,36px)/1.5 Georgia,Songti SC,serif;position:absolute;inset:12px 0 auto}.home-kicker{text-align:center;color:var(--color-fg-muted);letter-spacing:.18em;font-size:.75rem}.home-page .page-title--art{margin:20px 0 12px}.home-page .page-title--art h1{color:var(--color-accent);text-shadow:none;letter-spacing:.18em;font-family:Georgia,Songti SC,SimSun,serif;font-size:clamp(44px,10vw,76px)}.home-note{text-align:center;max-width:38rem;color:var(--color-fg-muted);margin:0 auto 26px;font-size:.85rem;line-height:1.8}.home-identity-entry{width:-moz-fit-content;width:fit-content;max-width:100%;color:var(--color-fg-muted);justify-content:center;align-items:center;gap:10px;margin:-12px auto 22px;font-size:.8rem;display:flex}.home-login-button{white-space:nowrap;min-height:2.35rem;padding:.45rem 1rem}.home-streak{background:color-mix(in srgb, #d7ad24 18%, var(--color-bg-elevated));color:#6f5310;border-radius:999px;width:-moz-fit-content;width:fit-content;margin:-16px auto 18px;padding:5px 13px;font-size:.78rem;font-weight:800}:root[data-theme=dark] .home-streak{color:#f2d67a}.home-footnote{text-align:center;color:var(--color-fg-muted);margin-top:28px;font-size:.8rem}.home-side-actions{justify-content:space-between;gap:8px;margin:10px 0 -12px;display:flex}.home-side-action{border:1px solid var(--color-divider);background:color-mix(in srgb, var(--color-accent) 14%, var(--color-bg-elevated));min-height:32px;color:var(--color-fg);font:inherit;cursor:pointer;border-radius:999px;padding:4px 14px;font-size:.78rem;font-weight:700}.home-side-action:active{transform:scale(.96)}.home-side-action:focus-visible{outline:2px solid var(--color-link);outline-offset:2px}.feedback-compose textarea,.feedback-reply textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--color-divider);background:var(--color-bg-elevated);width:100%;color:var(--color-fg);font:inherit;border-radius:10px;padding:12px;line-height:1.6}.feedback-compose{gap:14px;display:grid}.check-row{color:var(--color-fg-muted);align-items:center;gap:8px;display:flex}.feedback-threads{gap:16px;margin-top:18px;display:grid}.feedback-messages{gap:10px;padding:0;list-style:none;display:grid}.feedback-message{background:var(--color-bg-sunken);border-radius:12px;max-width:86%;padding:10px 12px}.feedback-message--player{border-bottom-right-radius:3px;margin-left:auto}.feedback-message--administrator{border-left:3px solid var(--color-accent);border-bottom-left-radius:3px;margin-right:auto}.feedback-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0}.feedback-reply{gap:8px;margin-top:12px;display:grid}.home-privacy-link{text-align:center;padding:8px;font-size:.75rem;display:block}.home-page .entry-grid{grid-template-columns:1fr;gap:12px}@media (min-width:640px){.home-page .entry-grid{grid-template-columns:1fr 1fr;gap:16px}.home-page [data-home-entry=local]{grid-column:1/-1}}.card{background:var(--color-bg-elevated);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4);box-shadow:var(--shadow-1)}.card--sunken{background:var(--color-bg-sunken);box-shadow:none}.profile-hero{align-items:center;gap:var(--space-5);padding:var(--space-6);margin-bottom:var(--space-5);background:linear-gradient(135deg, var(--color-bg-elevated), var(--color-bg-sunken));border:1px solid var(--color-divider);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);display:flex}.profile-hero__mark{background:var(--color-entry-local);color:#fff;border-radius:50%;flex:0 0 72px;place-items:center;height:72px;font-size:1.75rem;font-weight:700;display:grid}.profile-hero__body{min-width:0}.profile-hero__body h2{margin:var(--space-1) 0;font-size:1.55rem}.profile-hero__body p{color:var(--color-fg-muted)}.profile-hero__body .notice{margin:0;display:inline-block}.profile-links{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-links a,.profile-link-button{width:100%;padding:var(--space-4);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:var(--color-fg);text-align:left;cursor:pointer;display:block}.settings-page{min-height:0}@media (max-width:520px){.profile-hero{padding:var(--space-4);align-items:flex-start;gap:var(--space-3)}.profile-hero__mark{flex-basis:52px;height:52px;font-size:1.25rem}.profile-links{grid-template-columns:1fr}}.entry-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}@media (min-width:600px){.entry-grid{grid-template-columns:1fr 1fr}}@media (min-width:900px){.entry-grid{grid-template-columns:1fr 1fr 1fr}}.entry-button{--entry-border:transparent;--entry-contrast:#fff;min-height:4.5rem;padding:var(--space-4);border:3px solid var(--entry-border);text-align:center;cursor:pointer;color:var(--entry-contrast);background:#3c582c;border-radius:16px;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;transition:transform .12s,box-shadow .12s;display:grid;position:relative}.entry-button[data-home-entry=standard]{--entry-contrast:#172714;background:#839d45}.entry-button[data-home-entry=ranked]{--entry-contrast:#172714;background:#92ab76}.entry-button[data-home-entry=fun]{--entry-contrast:#142d43;background:#77aad7}.entry-button[data-home-entry=challenge]{--entry-contrast:#142d43;background:#b4d3ec}.entry-button:active,.btn:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.entry-button,.btn{transition:none}}.entry-button--ranked{--entry-border:var(--color-ranked-gold)}.entry-button:hover,.entry-button:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-1);outline:none}.entry-button h3{margin:0}.entry-button__title{grid-column:2}.entry-button__meta,.entry-button__presence{text-align:right;grid-column:3;justify-self:end}.entry-button__status,.entry-button__presence{color:inherit;font-size:.78rem;font-weight:600}.hall-tabs{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.choice-options{flex-wrap:wrap;gap:8px;display:flex}.choice-option{cursor:pointer;position:relative}.choice-option input{opacity:0;width:1px;height:1px;position:absolute}.choice-option span{border:1px solid var(--color-divider);min-height:44px;color:var(--color-fg);background:var(--color-bg);border-radius:10px;padding:10px 14px;display:block}.choice-option input:checked+span{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-accent-fg);font-weight:700}.choice-option input:focus-visible+span{outline:2px solid var(--color-link);outline-offset:3px}.choice-option input:disabled+span{opacity:.5;cursor:not-allowed}.hall-tab{text-align:center;flex:1}.hall-tab[aria-current=page]{background:var(--color-accent);color:var(--color-accent-fg)}.room-list{gap:var(--space-3);display:grid}.room-card{text-align:left;width:100%;color:var(--color-fg)}.room-card[data-status=active]{opacity:.5;box-shadow:none}.room-card__top{justify-content:space-between;gap:var(--space-3);display:flex}.room-card__participants{overflow-wrap:anywhere;text-align:start;display:block}.room-card__facts{gap:var(--space-2);color:var(--color-fg-muted);flex-wrap:wrap;font-size:.9rem;display:flex}.entry-button[aria-disabled=true]{opacity:.6;cursor:not-allowed;background:var(--color-bg-sunken)}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:var(--space-3) 0;font-size:.95rem}.notice--warning{background:var(--color-warning-bg);color:var(--color-warning-fg)}.notice--success{background:var(--color-success-bg);color:var(--color-success-fg)}.toolbar{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;align-items:center;display:flex}.btn{background:var(--color-accent);color:var(--color-accent-fg);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;border:0;font-size:.95rem}.btn:hover,.btn:focus-visible{filter:brightness(1.05);outline:2px solid var(--color-link-active);outline-offset:2px}.btn[disabled]{opacity:.6;cursor:not-allowed}.btn--secondary{color:var(--color-fg);border:1px solid var(--color-divider);background:0 0}.btn--danger{color:#fff;background:#b4232f}.page-home-return{width:min(100%,24rem);margin:var(--space-7) auto 0;min-height:3rem;display:block}.local-config{gap:var(--space-4);display:grid}.choice-group{border:0;margin:0;padding:0}.choice-group legend{margin-bottom:var(--space-2);font-weight:700}.choice-group__buttons{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));display:grid}.choice-button{min-height:3.25rem;padding:var(--space-2) var(--space-3);border:2px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-fg);cursor:pointer;font-weight:650}.choice-button[aria-pressed=true]{border-color:var(--color-link-active);background:var(--color-bg-sunken)}.choice-button:focus-visible{outline:3px solid var(--color-link-active);outline-offset:2px}.local-config__start{width:100%;min-height:3.25rem}.ranked-table{border-collapse:collapse;width:100%}.ranked-board>summary{cursor:pointer;font-weight:700}.ranked-board__content{max-height:min(60vh,32rem);margin-top:var(--space-3);overflow:auto}.ranked-table th,.ranked-table td{padding:var(--space-2);border-bottom:1px solid var(--color-divider);text-align:left}.ranked-table th:first-child,.ranked-table td:first-child{text-align:center;font-variant-numeric:tabular-nums;width:4.5rem}.ranked-table td:nth-child(3),.ranked-table td:nth-child(4){font-variant-numeric:tabular-nums}.model-status{gap:var(--space-2);display:grid}.model-status p{margin:0}.model-status progress{width:100%;accent-color:var(--color-accent)}@keyframes wall-control-breathe{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--color-accent) 45%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--color-accent) 12%, transparent)}}.wall-control--active{animation:1.8s ease-in-out infinite wall-control-breathe}html[data-reduce-motion=true] *,html[data-reduce-motion=true] :before,html[data-reduce-motion=true] :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}html[data-reduce-motion=true] .wall-control--active{outline:2px solid var(--color-accent);outline-offset:2px;animation:none}@media (prefers-reduced-motion:reduce){.wall-control--active{outline:2px solid var(--color-accent);outline-offset:2px;animation:none}}.field{gap:var(--space-1);margin-bottom:var(--space-3);flex-direction:column;display:flex}.field label{color:var(--color-fg-muted);font-size:.9rem}.field input,.field select{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-divider);background:var(--color-bg-elevated);color:var(--color-fg);font:inherit}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--color-link-active);outline-offset:1px}.seat-tag{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--color-divider);border-radius:999px;font-size:.85rem;display:inline-flex}.seat-tag__dot{background:var(--seat-color,var(--color-fg-muted));border-radius:50%;width:10px;height:10px}.record-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.record-list__item{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);flex-wrap:wrap;align-items:center;display:flex}.record-list__item small{color:var(--color-fg-muted)}.record-list__item__actions{gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.record-list__note{white-space:pre-wrap;overflow-wrap:anywhere;max-width:56ch;margin:.4rem 0 0}.record-list__note-editor{gap:var(--space-2);flex-wrap:wrap;margin-top:.5rem;display:flex}.record-list__note-editor:empty{display:none}.record-list__note-editor textarea{box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);width:min(100%,34rem);min-height:5rem;color:var(--color-fg);padding:.5rem}.records-page__title{flex-wrap:wrap}.records-page__title>button:last-child{margin-left:auto}.notice:empty{display:none}.record-list__pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-block:var(--space-4);display:flex}.record-list__pagination[hidden]{display:none}.record-review__counts{gap:var(--space-2);margin-block:var(--space-3);flex-wrap:wrap;font-weight:700;display:flex}.record-list__item>input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--color-accent);cursor:pointer;flex:none;margin:0 .2rem 0 0}.record-list__item>input[hidden],.record-list__item__actions[hidden]{display:none}.record-list__selection-bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.record-list__selection-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.record-list__selection-actions[hidden]{display:none}.record-list__selection-actions>span{color:var(--color-fg-muted);font-size:.9rem}.dialog textarea[aria-label=批量备注内容]{box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);width:100%;min-height:6rem;color:var(--color-fg);resize:vertical;padding:.6rem}.record-review__counts span{border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);padding:.45rem .75rem}.app-main--analysis{max-width:74rem;padding-top:var(--space-2)}.app-main--analysis,.app-main--match{--board-fit-size:clamp(14rem, calc(100dvh - 13rem), 42rem)}.record-review__title{width:min(100%, var(--board-fit-size));margin-inline:auto;margin-bottom:var(--space-2);flex-wrap:wrap;align-items:center}.record-review__title h1{margin:0;font-size:1.35rem}.record-review__title .notice{margin:0}.record-review{gap:var(--space-3);width:min(100%, var(--board-fit-size));align-items:start;min-width:0;margin-inline:auto;display:grid}.record-review__board-column,.record-review__panel,.record-review__record,.record-review__code{min-width:0}.record-review__board-column{flex-direction:column;align-items:stretch;width:100%;display:flex}.record-review__board-column>.play-match-info,.record-review__board-column>.board-frame--play,.record-review__board-column>.record-review__board-toolbar,.record-review__board-column .board-canvas{width:100%}.record-review__board-column .seat-roster__row{gap:.35rem;padding:.35rem .5rem;font-size:.85rem}.record-review__board-column .wall-inventory strong{font-size:1.75rem}.record-review__board-column>.toolbar{justify-content:center;margin:.25rem 0 0}.record-review__board-area{position:relative}.record-review__board-area .board-surface{max-width:none}.record-review__eval{background:var(--color-bg);border-radius:.4rem;flex-direction:column;width:.65rem;display:flex;position:absolute;top:0;bottom:0;left:-.9rem;overflow:hidden}.record-review__eval[data-ready=false] .record-review__eval-segment{background:0 0!important}.record-review__eval-segment{flex:none;width:100%;display:block}.record-review__eval-segment:last-child{flex:auto}.record-review__record{min-width:0}.record-review__code{gap:var(--space-2);margin-top:var(--space-2);display:grid}.record-review__code h2{margin:0;font-size:1.1rem}.record-review__code label{gap:.35rem;font-weight:650;display:grid}.record-review__code textarea{box-sizing:border-box;border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);width:100%;min-height:5rem;color:var(--color-fg);overflow-wrap:anywhere;resize:vertical;padding:.6rem;font:.8rem/1.45 monospace}.record-review__record-heading{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.record-review__record-heading h2{margin:0;font-size:1.1rem}.record-review__record-actions{gap:.4rem;margin-left:auto;display:inline-flex}.record-review__record-actions .btn{padding:.3rem .6rem}.record-review__panel{flex-direction:column;height:auto;min-height:0;margin-bottom:0;padding:.75rem;display:flex;overflow:visible}.record-review__panel>:not(.record-analysis__moves){flex:none}.record-review__panel h2{white-space:nowrap;margin:0;font-size:1.1rem}.record-analysis__heading{justify-content:space-between;align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.record-analysis__actions{flex:none;gap:.3rem;display:flex}.record-analysis__actions .btn{white-space:nowrap;padding:.35rem .45rem;font-size:.875rem}.record-review__panel p{margin-bottom:.4rem;font-size:.875rem;line-height:1.45}.record-review__panel>.toolbar{margin-block:.5rem}.record-review__panel progress{width:100%;height:.5rem;accent-color:var(--color-accent);margin-bottom:.4rem;display:block}.record-review__panel progress[hidden],.record-analysis__loading-label[hidden]{display:none}.record-review__progress{min-width:0;color:var(--color-fg-muted);white-space:nowrap;text-overflow:ellipsis;flex:0 0 100%;order:1;margin:0;font-size:.85rem;overflow:hidden}.record-review__tree{border-radius:var(--radius-md);background:var(--color-bg-sunken);flex-wrap:wrap;align-content:flex-start;gap:0 .4rem;max-height:13rem;margin-block:.5rem;padding:.45rem;list-style:none;display:flex;overflow:auto}.record-review__tree li{margin:0}.record-review__turn{white-space:nowrap;flex:none;align-items:stretch;display:inline-flex}.record-review__turn-number{color:var(--color-fg-muted);flex:none;align-items:center;padding-right:.2rem;font-size:.85rem;display:inline-flex}.record-review__step{color:var(--color-fg);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:0;padding:.18rem .3rem;font-size:.85rem}.record-review__step:hover,.record-review__step:focus-visible{background:var(--color-bg-elevated)}.record-review__step--current{box-shadow:inset 0 -2px var(--color-accent);font-weight:800}.record-review__step--branch{color:var(--color-link)}.record-review__step small{margin-left:.2rem}.record-analysis__step{color:var(--color-fg);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:0;padding:.35rem .5rem;font-size:.875rem}.record-analysis__step:hover{color:var(--color-link);text-decoration:underline}.record-analysis__step:focus-visible{outline:2px solid var(--color-link-active);outline-offset:-2px}.record-analysis__moves{flex:none;min-height:0;margin:0;padding:0;list-style:none;overflow:visible}.record-analysis__moves li{margin-block:var(--space-2)}.record-analysis__moves li>div:first-child{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.record-analysis__line{flex-wrap:wrap;gap:0;margin-top:.4rem;display:flex}.help-article{max-width:68ch;margin-inline:auto}.help-article>h2{border-bottom:1px solid var(--color-divider);margin:2rem 0 .6rem;padding-bottom:.3rem}.help-section h3{margin:1.1rem 0 .2rem;font-size:1.05rem}.help-section p{margin:0;line-height:1.75}.board-frame.record-review__shared{max-width:calc(var(--board-fit-size) + 2 * var(--space-3));margin-inline:auto;display:flex}@media (max-width:759px){.app-main--analysis{padding-inline:0}.app-main--analysis .record-review,.app-main--analysis .record-review__title{margin-left:.75rem;margin-right:0}.app-main--analysis .record-review__eval{width:.5rem;left:-.65rem}}@media (min-width:760px){.record-review__title{width:min(100%, calc(var(--board-fit-size) + var(--analysis-column-width,20rem) + .5rem))}.record-review{width:min(100%, calc(var(--board-fit-size) + var(--analysis-column-width,20rem) + .5rem));grid-template-columns:minmax(0, var(--board-fit-size)) minmax(0, var(--analysis-column-width,20rem));column-gap:.5rem}.record-review__board-column{grid-area:1/1}.record-review__panel{height:var(--analysis-panel-height,auto);grid-area:1/2;min-height:16.75rem;overflow:auto}.record-review__panel .record-analysis__moves{overscroll-behavior:auto;flex:auto;overflow:auto}.record-review__record{grid-area:2/1}.record-review__code{grid-area:3/1}}.dialog-backdrop{padding:var(--space-4);z-index:100;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--color-bg-elevated);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:var(--space-5);box-shadow:var(--shadow-2);border:1px solid var(--color-divider);max-height:calc(100vh - 2 * var(--space-4));max-height:calc(100dvh - 2 * var(--space-4));overscroll-behavior:contain;overflow-y:auto}.dialog h2{margin-top:0}.dialog--create{flex-direction:column;display:flex;overflow:hidden}.dialog--create>h2,.dialog--create>button,.dialog--create>.toolbar{flex-shrink:0}.dialog__body{overscroll-behavior:contain;min-height:0;padding:3px;overflow-y:auto}.dialog--create>.toolbar{padding-top:var(--space-3);border-top:1px solid var(--color-divider)}.board-frame{background:var(--color-bg-elevated);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-divider);gap:var(--space-3);flex-direction:column;display:flex}.board-canvas{aspect-ratio:1;touch-action:none;border-radius:var(--radius-md);width:100%;min-width:0;height:auto;box-shadow:var(--shadow-1);cursor:pointer;display:block}.board-frame:not(.board-frame--play) .board-canvas{width:min(100%, var(--board-fit-size))}.board-canvas[data-mode=wall]{cursor:crosshair}.wall-drag-token{border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);cursor:grab;touch-action:none;flex:none;justify-content:center;align-items:center;width:3.25rem;height:2.4rem;padding:.25rem;display:inline-flex}.wall-drag-token:active{cursor:grabbing}.wall-drag-token:disabled{opacity:.45;cursor:default}.wall-drag-token__stick{background:var(--color-fg);border-radius:.2rem;width:2.15rem;height:.48rem;display:block;box-shadow:inset 0 1px #ffffff4d}.wall-drag-token--v .wall-drag-token__stick{width:.48rem;height:1.55rem}.board-frame--play{box-shadow:none;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex}.board-frame--play .board-canvas{width:min(100%, var(--board-fit-size))}.board-surface{width:100%;max-width:var(--board-fit-size);position:relative}.board-surface .board-canvas{width:100%;display:block}.board-touch-confirm{z-index:2;border-radius:var(--radius-md);background:var(--color-bg-elevated);width:max-content;max-width:calc(100% - .7rem);color:var(--color-fg);box-shadow:var(--shadow-1);text-align:center;pointer-events:none;margin:0;padding:.4rem .7rem;font-size:.875rem;font-weight:750;position:absolute;top:.35rem;left:50%;transform:translate(-50%)}.board-touch-confirm[hidden]{display:none}.app-main--match{flex-direction:column;align-items:center;display:flex}.app-main--match>.board-frame--play,.app-main--match>.toolbar,.app-main--match>.play-recent-moves,.app-main--match>.play-move-details,.online-match-content{width:min(100%, var(--board-fit-size));margin-inline:auto}.app-main--match>.toolbar,.online-match-content>.toolbar{justify-content:center}.online-match-content>.match-outcome,.online-match-content>.play-recent-moves,.online-match-content>.play-move-details,.online-match-content>.match-phrases,.online-match-content>.match-meta,.online-match-content>.notice{width:100%}.online-match-content>.match-meta,.online-match-content>.play-recent-moves{text-align:center}.app-header--match .app-header__match-label{margin-inline:auto;font-weight:700}.play-match-info{width:min(100%,42rem)}.play-match-info>.notice{border:2px solid #0000;min-height:4.5rem;margin:.2rem 0;padding:.55rem}.app-main>.board-frame--play>.play-match-info>.notice:not([hidden]){z-index:20;background:var(--color-bg-elevated);width:min(42rem,100vw - 2rem);min-height:0;box-shadow:var(--shadow-1);position:fixed;top:4rem;left:50%;transform:translate(-50%)}.play-match-info .seat-roster{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.seat-swap{flex-wrap:wrap;gap:.4rem;display:flex}.seat-swap[hidden]{display:none}.seat-swap select{border:1px solid var(--color-divider);border-radius:var(--radius-md);background:var(--color-bg-elevated);min-width:0;color:var(--color-fg);flex:7rem;padding:.4rem}.play-recent-moves{min-height:1.5em;color:var(--color-fg-muted)}.play-move-details{margin-block:var(--space-3)}.play-move-details summary{cursor:pointer;font-weight:700}.online-match-content>.match-outcome:not([hidden]){margin-bottom:var(--space-3)}.online-match-content .play-match-info>.notice{margin:.2rem 0;font-weight:700}.online-match-content .play-match-info>.notice--warning{border:2px solid var(--color-warning-fg)}.online-match-content .play-match-info .seat-roster{width:100%}.online-match-content .play-match-info{container-type:inline-size}@media (max-width:600px){.app-main,.app-main--analysis,.app-main--match{--board-fit-size:clamp(14rem, calc(100dvh - 20rem), 42rem)}.toolbar .btn{padding:.4rem .65rem;font-size:.86rem}.local-config{gap:.75rem}.choice-group__buttons{gap:.4rem}.choice-button{min-height:2.65rem;padding:.35rem .55rem;font-size:.92rem}.local-config__entry .choice-button{min-height:3.75rem;font-size:1rem}.board-frame{padding:var(--space-2)}.board-frame--play{padding:0}}.board-side{gap:var(--space-3);flex-direction:column;display:flex}@media (min-width:720px){.board-frame{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;display:grid}.board-canvas{max-width:none}.board-frame--play{display:flex}.board-side{min-width:0}}.seat-roster{gap:var(--space-2);flex-direction:column;display:flex}.seat-roster__row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-sunken);font-size:.9rem;display:flex}.seat-roster__row[data-active=true]{outline:2px solid var(--active-seat-color,var(--color-accent));outline-offset:-2px}.board-pip{right:max(.75rem, env(safe-area-inset-right));bottom:max(.75rem, env(safe-area-inset-bottom));z-index:30;box-sizing:border-box;border:1px solid var(--color-fg-muted);background:var(--color-bg);border-radius:.65rem;width:clamp(10rem,45vw,14rem);max-width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);padding:.4rem;position:fixed;overflow:auto;box-shadow:0 .25rem 1rem #0003}.board-pip[hidden]{display:none}.board-pip>canvas{aspect-ratio:1;pointer-events:none;width:100%;display:block}.board-pip__heading{justify-content:space-between;align-items:center;gap:.3rem;margin-bottom:.3rem;font-size:.75rem;display:flex}.board-pip__back{color:var(--color-link);cursor:pointer;font:inherit;background:0 0;border:0;padding:.3rem}.board-pip__roster{gap:.25rem;margin-bottom:.3rem;display:grid}.board-pip .seat-roster__row{gap:.3rem;min-width:0;padding:.3rem .4rem;font-size:.75rem}.board-pip .seat-roster__row>span:not([class]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-pip .wall-inventory{white-space:nowrap;margin-left:auto}.board-pip .wall-inventory strong{font-size:1rem}.board-pip .online-seat-card{flex-wrap:wrap;display:flex}.board-pip .online-seat-card__seat{display:block}.board-pip .online-seat-card__seat>strong{font-size:.75rem}.board-pip .online-seat-card__identity{flex:1;display:block}.board-pip .online-seat-card__identity>strong{max-width:6rem;display:block}.board-pip .online-seat-card__identity>small,.board-pip .online-seat-card__state{display:none}.board-pip .online-seat-card__clock{flex-wrap:wrap;flex:0 0 100%;gap:.3rem;display:flex}.board-pip .online-seat-card__clock small{margin-left:0}.board-pip .match-clock__turn{animation:none;font-size:.8rem!important}.seat-roster__row[data-active=true] .wall-inventory strong{color:var(--active-seat-color,var(--color-accent))}.seat-roster__row[data-eliminated=true]{opacity:.55;text-decoration:line-through}.seat-roster__row small{color:var(--color-fg-muted);margin-left:auto}.move-log{font-family:var(--font-mono);background:var(--color-bg-sunken);border-radius:var(--radius-md);padding:var(--space-3);max-height:12rem;font-size:.85rem;overflow:auto}.move-log ol,ol.move-log{margin:0;padding-left:0;list-style:none}.move-log li{margin-block:.2rem}.online-seat-card{grid-template-columns:auto minmax(0,.9fr) minmax(0,1.25fr) auto;align-items:center;gap:.25rem .55rem;display:grid}.online-seat-card>.seat-tag__dot{align-self:start;margin-top:.35rem}.online-seat-card__seat,.online-seat-card__identity,.online-seat-card__clock{gap:.08rem;min-width:0;display:grid}.online-seat-card__identity strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.online-seat-card__clock{font-variant-numeric:tabular-nums}.online-seat-card__clock>small,.online-seat-card__identity>small,.online-seat-card__seat>small{margin-left:0}.online-seat-card__state{color:var(--color-fg-muted)}.online-seat-card[data-active=true] .online-seat-card__state{color:var(--active-seat-color,var(--color-accent));font-weight:800}.online-seat-card[data-warning=true] .match-clock__turn{color:#c73630;font-size:1.35rem;animation:1s ease-out infinite clock-pulse}.match-clock__turn{font-variant-numeric:tabular-nums}@keyframes clock-pulse{0%{transform:scale(1.08)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.match-clock__turn{animation:none!important}}@media (max-width:520px){.online-seat-card{grid-template-columns:auto minmax(0,1fr) auto}.online-seat-card__identity,.online-seat-card__clock{grid-column:2}.online-seat-card>.wall-inventory{grid-area:1/3/span 3}}@container (width<=640px){.online-seat-card{grid-template-columns:auto minmax(0,1fr);gap:.2rem .35rem;padding:.45rem .5rem}.online-seat-card>.seat-tag__dot{grid-area:1/1}.online-seat-card__seat{grid-area:1/2}.online-seat-card__seat>strong{white-space:nowrap;font-size:.8rem}.online-seat-card__identity{grid-area:2/2}.online-seat-card>.wall-inventory{grid-area:3/2;margin-left:0}.online-seat-card .wall-inventory strong{font-size:1.75rem}.online-seat-card__clock{grid-area:4/2}.online-seat-card__clock>small{white-space:nowrap}}.match-phrase-bubble{border:1px solid var(--color-divider);background:var(--color-bg-sunken);overflow-wrap:anywhere;border-radius:12px;margin:.5rem 0;padding:.6rem .9rem;font-weight:700}.match-phrases{border:1px solid var(--color-divider);border-radius:12px;margin-block:.75rem;padding:.75rem}.match-phrases summary{cursor:pointer;padding:.35rem;font-weight:700}.match-phrases__choices{flex-wrap:wrap;gap:.5rem;margin-block:.75rem;display:flex}.match-exit-dialog{border:1px solid var(--color-divider);max-width:min(440px,100vw - 32px);max-height:calc(100dvh - 40px);color:var(--color-fg);overflow:auto}.match-exit-dialog::backdrop{background:#14201880}.email-account{max-width:36rem;margin-inline:auto}.email-account__field{gap:.5rem;margin-block:1rem;display:grid}.email-account__field[hidden]{display:none}.email-account__field input{box-sizing:border-box;width:100%;min-width:0;font:inherit;padding:.75rem}.match-outcome{color:#183047;background:#e7eff9;border:2px solid #637f9b;border-radius:1rem;margin-bottom:1.25rem;padding:1.25rem 1.5rem}.match-outcome[hidden]{display:none}.match-outcome h2{margin:0 0 .4rem;font-size:clamp(1.8rem,6vw,2.7rem);font-weight:900}.match-outcome p{overflow-wrap:anywhere;margin:0}.match-outcome--won{color:#294018;background:linear-gradient(120deg,#f9e69b,#d5f1c4);border-color:#a67c13}.match-outcome--lost{color:#60233a;background:linear-gradient(120deg,#ffe0d5,#f5d6ed);border-color:#b54b64}:root[data-theme=dark] .match-outcome{color:#e1eeff;background:#20354b;border-color:#789abc}:root[data-theme=dark] .match-outcome--won{color:#fff0ad;background:linear-gradient(120deg,#514619,#264b2e);border-color:#d2b959}:root[data-theme=dark] .match-outcome--lost{color:#ffdfeb;background:linear-gradient(120deg,#502b39,#412840);border-color:#d4819d}.operations-panel{max-width:64rem;margin-inline:auto}.operations-role-editor{overflow-wrap:anywhere;margin-block:1.5rem}.operations-role-editor input:not([type=checkbox]),.operations-role-editor select{box-sizing:border-box;background:var(--color-bg-sunken);width:100%;color:var(--color-fg);border:1px solid var(--color-divider);border-radius:.5rem;margin-block:.5rem;padding:.7rem;display:block}.operations-audit{overflow-wrap:anywhere;padding-left:1.5rem}.operations-audit li{border-bottom:1px solid;padding-block:1rem}.home-announcements{gap:.55rem;width:min(34rem,100%);margin:.5rem auto 1rem;display:grid}.home-announcement{border:1px solid color-mix(in srgb, var(--text) 18%, transparent);background:color-mix(in srgb, var(--surface) 94%, var(--accent));width:100%;color:var(--text);text-align:left;border-radius:.85rem;gap:.22rem;padding:.75rem .9rem;display:grid}.home-announcement.is-unread{border-left:.38rem solid var(--accent)}.home-announcement span{white-space:pre-wrap;overflow-wrap:anywhere}
